键盘扫描程序.txt
来自「经典的键盘扫描程序」· 文本 代码 · 共 33 行
TXT
33 行
#include <AT89X51.h>
void delays(void)
{
unsigned char i;
for(i=2000;i>0;i--);
}
//kbscan(void)键扫描函数
//P1.0-p1.2行线输出,p1.3-p1.5列线输入
unsigned char kbscan(void)
{
unsigned char sccode,recode;
P1=0xf0; //发全"0"行扫描码,列线输入
if((P1&0xf0)!=0xf0) //若有键按下
{
delays(); //延时去抖动
if((P1&0xf0)!=0xf0)
{
sccode=0xfe; //逐行扫描初值
while((sccode&0x10)!=0)
{
P1=sccode; //输出行扫描码
if((P1&0xf0)!=0xf0) //本行有键按下
{
recode=(P1&0xf0)|0x0f; //取列码
return((~sccode)+(~recode));//返回特征键码:00010001则为1行1列的KEY。
}
else sccode=(sccode<<1)|0x01; //行扫描码左移一位
}
}
}
return(0);//无键按下,返回值为0
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?