uchar keyscan()
{
uchar keyl,keyh;
uchar key;
{
P1=0Xf0;
keyl=P1;
keyl=keyl&0xf0;
if(keyl!=0xf0)
{
delay(5);
if(keyl!=0xf0)
{
keyl=P1&0xf0; //1110 0000
keyl=keyl|0x0f;//1110 1111
P1=keyl;
keyh=P1;
keyh=keyh&0x0f;//0000 1110
keyl=keyl&0xf0;//1110 0000
key=keyl+keyh; //1110 1110
}
}
switch(key)
{
case 0xee: num=4;
break;
case 0xde: num=3;
break;
case 0xbe: num=2;
break;
}
}
return num;
} |