/*------------------------------------------------
按键扫描函数
------------------------------------------------*/
unsigned char KeyScan(void)
{
unsigned char Val;
KeyPort=0xf0;
if(KeyPort!=0xf0)
{
DelayMs(10);
if(KeyPort!=0xf0)
{
KeyPort=0xfe;
if(KeyPort!=0xfe)
{
Val=KeyPort&0xf0;
Val+=0x0e;
while(KeyPort!=0xfe);
DelayMs(10);
while(KeyPort!=0xfe);
return Val;
}
KeyPort=0xfd;
if(KeyPort!=0xfd)
{
Val=KeyPort&0xf0;
Val+=0x0d;
while(KeyPort!=0xfd);
DelayMs(10);
while(KeyPort!=0xfd);
return Val;
}
KeyPort=0xfb;
if(KeyPort!=0xfb)
{
Val=KeyPort&0xf0;
Val+=0x0b;
while(KeyPort!=0xfb);
DelayMs(10);
while(KeyPort!=0xfb);
return Val;
}
KeyPort=0xf7;
if(KeyPort!=0xf7)
{
Val=KeyPort&0xf0;
Val+=0x07;
while(KeyPort!=0xf7);
DelayMs(10);
while(KeyPort!=0xf7);
return Val;
}
}
}
return 0xff;
}
/*------------------------------------------------
按键值处理函数
------------------------------------------------*/
unsigned char KeyPro(void)
{
switch(KeyScan())
{
case 0x7e:return 0;break;//0
case 0x7d:return 1;break;//1
case 0x7b:return 2;break;//2
case 0x77:return 3;break;//3
case 0xbe:return 4;break;//4
case 0xbd:return 5;break;//5
case 0xbb:return 6;break;//6
case 0xb7:return 7;break;//7
case 0xde:return 8;break;//8
case 0xdd:return 9;break;//9
case 0xdb:return 10;break;//a
case 0xd7:return 11;break;//b
case 0xee:return 12;break;//c
case 0xed:return 13;break;//d
case 0xeb:return 14;break;//e
case 0xe7:return 15;break;//f
default:return 0xff;break;
}
}
作者: 腾飞梦想5 时间: 2018-7-12 13:14
switch(P3)
{
case 0xfe:P1=dofly_table[1];break;
case 0xfd:P1=dofly_table[2];break;
case 0xfb:P1=dofly_table[3];break;
case 0xf7:P1=dofly_table[4];break;
case 0xef:P1=dofly_table[5];break;
case 0xdf:P1=dofly_table[6];break;
case 0xbf:P1=dofly_table[7];break;
case 0x7f:P1=dofly_table[8];break;
default:break;
}