📄 keyscan.c
字号:
#include <reg52.h>
#define uchar unsigned char
bit bdata KeyFlag;
void Delay10ms(void)
{
uchar i,j,k;
for(i=5; i>0; i--)
for(j=4; j>0; j--)
for(k=248; k>0; k--);
}
uchar KeyScan(void)
{
uchar PreRead; /*first read key value*/
uchar ReRead; /*second read key value*/
uchar RowTemp;
uchar ColTemp;
KeyFlag = 0;
P2 = 0xf0;
RowTemp = P2 & 0xf0; /*read row value*/
if(RowTemp == 0xf0) return(0xff);
P2 = 0x0f;
ColTemp = P2 & 0x0f; /*read column value*/
PreRead = RowTemp|ColTemp; /*get keyboard scan value*/
Delay10ms();
P2 = 0xf0;
RowTemp = P2 & 0xf0; /*reread row value*/
if(RowTemp == 0xf0) return(0xff);
P2 = 0x0f;
ColTemp = P2 & 0x0f; /*reread column value*/
ReRead = RowTemp|ColTemp; /*re-get keyboard scan value*/
if(PreRead==ReRead)
{
KeyFlag = 1;
//P2 = 0xf0;
return(~ReRead);
}
}
main()
{
uchar GetKeyValue;
uchar KeyValue;
GetKeyValue=KeyScan();
if(KeyFlag = 1)
KeyValue = GetKeyValue;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -