📄 key.c
字号:
#include<reg52.h>
#include<key.h>
static void delay(void);
void delay(void) //延时子程序
{
unsigned char n, m;
for (n = 100; n > 0; n--)
for (m = 300; m > 0; m--);
}
uchar KeyScan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线
{
uchar rcode, ccode;
PX = 0xF0; // 发全0行扫描码,列线输入
if((PX&0xF0) != 0xF0) // 若有键按下
{
delay(); // 延时去抖动
if((PX&0xF0) != 0xF0)
{ rcode = 0xFE; // 逐行扫描初值
while((rcode&0x10) != 0)
{
PX = rcode; // 输出行扫描码
if((PX&0xF0) != 0xF0) // 本行有键按下
{
ccode = (PX&0xF0)|0x0F;
do{;}while((PX&0xF0) != 0xF0); //等待键释放
return ((~rcode) + (~ccode)); // 返回键编码
}
else
rcode = (rcode<<1)|0x01; // 行扫描码左移一位
}
}
}
return 0; // 无键按下,返回值为0
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -