今天静下心来好好研究了一下4*4键盘,发现了点小问题
请看下面这段程序
P2=0xf0; //column is 0; row is 1
temp=P2;
if(temp!=0xf0) // some key is down
{
delay500us(20); //delay to avoid shake
temp=P2;
if(temp!=0xf0) //make sure that some key is down
{
P2=P2|0xfe; //column scan
temp=P2;
if(temp!=0xf0)
{
switch(temp) // to find the key
{
case 0xee : P1=0x00;
break;
case 0xde : P1=0x04;
break;
case 0xbe : P1=0x08;
break;
default:
break;
}
}
}
}
其中的column scan一行的“P2=P2|0xfe;” ,我觉得用“P2=0xfe;”代替也是可以的
现把proteus仿真及源程序附上,请各位帮忙看一下,我的小见解科学否 ^_^ |