从上到下端口依次为P0.6、P0.7、P2.0~P2.4,求大神给个扫描方案。以下为自己写的第一行扫描,但是始终扫描不出第六列。求指点。
P0&=0xbf; //first line P0^6=0,扫描第一行;
hang=0;
if((P0^7!=1)||((P2&0x1f)!=0x1f)) //是否有键按下
delay1ms(1);
if((P0^7!=1)||((P2&0x1f)!=0x1f))
{
if (P0^7!=1)
lie=5;
else
{
switch(P2&0x1f)
{
case 0x1e:lie=4;break;
case 0x1d:lie=3;break;
case 0x1b:lie=2;break;
case 0x17:lie=1;break;
case 0x0f:lie=0;break;
default: key=0;
}
}
key=tab[hang][lie];
}
|