矩阵按键扫描,按如下程序在protues里测试,程序进入while(tl==0x0f),没法进入switch,迷惑,求大神点拨,感谢!
P2=0xf0;
if(P2!=0xf0)
{
delay(10);
if(P2!=0xf0) {th=P2;kb=1;}
while(kb)
{
tl=(P2=0x0f)&0x0f;
while(tl==0x0f){P1=0x04;}
temp=th|tl;temp^=0xff;temp=~temp;
P1=0x01;
switch(temp)
{
case 0x11: key_v=7;break; //第一行
case 0x12: key_v=4;break; //第二行
case 0x14: key_v=1;break; //第三行
case 0x18: key_v=10;break; //第四行
case 0x10: P2=0X02;break;
default : break;
}
kb=0;
} |