目录
原理
矩阵键盘按列扫描,给P13.12.11.10 赋值,如 0111时候,如果P17等于0的话就是S1按下。
不按行扫描是因为引脚冲突。
矩阵键盘实现键码显示
【Delay,c 】【Delay.h】和【LCD1602.c】【 LCD1602.h】参考前文
【MatrixKey.c】
此处代码对新手友好
// An highlighted block
#include <REGX52.H>
#include "Delay.h"
/**
* @brief 矩阵键盘读取按键键码
* @param
* @retval Keynumber按下按键的键码值
按键按下不放,程序会停留在此函数,松手的一瞬间,返回按键键码,没有按键按下,返回0;
*/
unsigned char MatrixKey()
{
unsigned char Keynumber=0;
P1=0xFF;
P1_3=0;
if(P1_7==0){
Delay(20);while(P1_7==0);Delay(20);Keynumber=1;}
if(P1_6==0){
Delay(20);while(P1_6==0);Delay(20);Keynumber=5;}
if(P1_5==0){
Delay(20);while(P1_5==0);Delay(20);Keynumber