请教下矩阵键盘程序加了去抖程序哪里错误。
个人用的反转法,发现不加去抖程序的时候运行正常。加了去抖反而检测不出按键了,求教。
程序如下,“//”后面的内容加了为去抖的。
uchar scan()
{
// P1=0xf0;
// temp=P1;
// if(temp!=0xf0)
// {
// delay(5);
// temp=P1;
// if(temp!=0xf0)
// {
P1=0xf0;
delay(5);
temp=P1&0xF0;
temp=~((temp>>4)|0xf0);
switch(temp)
{
case 8:key=1;break;
case 4:key=2;break;
case 2:key=3;break;
case 1:key=4;break;
default:key=17;
}
P1=0x0f; //低四位输入
delay(5);
temp=P1&0x0f;
temp=~(temp|0xF0);
switch(temp)
{
case 8:key=key+0;break;
case 4:key=key+4;break;
case 2:key=key+8;break;
case 1:key=key+12;break;
default:key=17;
}
// }}
return key;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>