keyscan.h
来自「此程序是基于89s52单片机的c程序」· C头文件 代码 · 共 123 行
H
123 行
#define uchar unsigned char
#define uint unsigned int
//uchar num;
uchar temp1;
uchar num=0xff;
uchar key_scan( )
{
num=0;
P2=0xfe;
temp1=P2;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='0';
break;
case 0xd0: num='1';
break;
case 0xb0: num='2';
break;
case 0x70: num='3';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P2;
temp1=temp1&0xf0;
}
P2=0xfd;
temp1=P2;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='4';
break;
case 0xd0: num='5';
break;
case 0xb0: num='6';
break;
case 0x70: num='7';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P2;
temp1=temp1&0xf0;
}
P2=0xfb;
temp1=P2;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='8';
break;
case 0xd0: num='9';
break;
case 0xb0: num='A';
break;
case 0x70: num='B';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P2;
temp1=temp1&0xf0;
}
P2=0xf7;
temp1=P2;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='C';
break;
case 0xd0: num='D';
break;
case 0xb0: num='E';
break;
case 0x70: num='F';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P2;
temp1=temp1&0xf0;
}
return(num);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?