代码如下:
void abc()
{
uchar i,key;
P3 = 0x0f;
if(P3 != 0x0f)
{
dalay(10); //按键是否按下检测延时
if(P3 != 0x0f)
{
P3 = 0xef;
for(i = 1;i < 5;i++)
{
key = P3 & 0x0f; //屏蔽高四位,只对比检测到的第四位
switch(key)
{
case 0x0e:b = i + 0;break;
case 0x0d:b = i + 4;break;
case 0x0b:b = i + 8;break;
case 0x07:b = i + 12;break;
default : b=88;
}
if(b!=88)break;
else
P3 =~( 1<<(i-1));
}
P3 = 0x0f; //松手检测
while(P3 != 0x0f) //未松手则一直在此等待
; //松手则退出
}
}
}
|