📄 key_scan for led.h
字号:
//Filename:key_scan.h
//Device:At89S52
//Finished:2007-5-10
#include<reg52.h>
//定义数据口
#define DAT P1
/*常用数据类型的重命名*/
#ifndef __uchar_
#define uchar unsigned char
#endif
#ifndef __uint_
#define uint unsigned int
#endif
#ifndef __ulong_
#define ulong unsigned long int
#endif
//延时函数
void Delay(uint cnt)
{
while(cnt--);
}
/***********************************************
该函数实现对4*4键盘的扫描并返回对应的键值
************************************************/
uchar Get_keynum()
{
uchar cnt,temp=0xff,keynum=0xff;
DAT=0xfe; //初始化数据口
for(cnt=0;cnt<4;cnt++)
{
if((DAT&0xf0)!=0xf0)
{
temp=DAT;
Delay(500); //延时消抖
if(temp!=DAT)
continue;
else
break;
}
else
DAT=(DAT<<1)+1;
}
while((DAT&0xf0)!=0xf0&&cnt<4)
DAT=0xf0;
switch(temp)
{
case 0xe7:keynum=1;break;
case 0xeb:keynum=2;break;
case 0xed:keynum=3;break;
case 0xee:keynum=4;break;
case 0xd7:keynum=5;break;
case 0xdb:keynum=6;break;
case 0xdd:keynum=7;break;
case 0xde:keynum=8;break;
case 0xb7:keynum=9;break;
case 0xbb:keynum=0;break;
case 0xbd:keynum=10;break;
case 0xbe:keynum=11;break;
case 0x77:keynum=12;break;
case 0x7b:keynum=13;break;
case 0x7d:keynum=14;break;
case 0x7e:keynum=15;break;
default:keynum=0xff;break;
}
return keynum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -