📄 l_key.c
字号:
/*键盘程序,本程序涉直接采用分时扫描法,将读到的键值直接输出P2口,在LED灯显示,
此程序也将直观看到每个按键所对应的键值了,都从LED表现出来,这是学习矩阵键盘的关键*/
#include <reg52.h>
#include <intrins.h>
unsigned char l_key=0xff; //我们定入一个变量,存放按键值
void ReadKey(void); //扫描键盘 获取键值
void main(void) //入口函数
{
while(1){
ReadKey(); //调用键盘扫描
if(l_key!=0xff) //如果有键按下,将其输出P2口LED灯显示,
P2=~l_key; //这里取反是因为LED灯采用共阴接法
}
}
void ReadKey(void) //读键盘值
{
P0=0xfe; //将第一列拉低,扫描是否有按键按下,第一列按键包括:0,4,8,C
l_key=P0; //读取键值
if(l_key!=0xfe) //如果l_key不等于0xfe,说明有键按下,就返回,否则继续扫描下一列
return;
P0=0xfd; //将第二列拉低,扫描是否有按键按下,第二列按键包括:1,5,9,D
l_key=P0; //读取键值
if(l_key!=0xfd) //如果l_key不等于0xfd,说明有键按下,就返回,否则继续扫描下一列
return;
P0=0xfb; //将第三列拉低,扫描是否有按键按下,第三列按键包括:2,6,A,F
l_key=P0; //读取键值
if(l_key!=0xfb) //如果l_key不等于0xfb,说明有键按下,就返回,否则继续扫描下一列
return;
P0=0xf7; //将第四列拉低,扫描是否有按键按下,第四列按键包括:3,7,B,F
l_key=P0; //读取键值
if(l_key!=0xf7) //如果l_key不等于0xf7,说明有键按下,就返回,否则扫描完毕将l_key=0xff
return;
l_key=0xff;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -