说明,别扯消抖、换东西这样的RZ回答,谢谢
按键能得到5-16的键值,只有1-4的没有就是代码注释了未执行的那句,其它都正常,键盘正常,求解决办法
if(P1 != 0xF0) { P1 = 0xF0; //扫描行 switch(P1) { case (0xE0): key = 1;break; case (0xD0): key = 2;break; case (0xB0): key = 3;break; case (0x70): key = 4;break; default:break; } P1 = 0x0F; //列预赋值 DelayMs(10); P1 = 0x0F; DelayMs(1); switch(P1) { case (0x0E): key = key + 0;break; //该行未执行 case (0x0D): key = key + 4;break; case (0x0B): key = key + 8;break; case (0x07): key = key + 12;break; default:break; }
P1 = 0xF0; //扫描行
这句下面加个延时,如:
if (P1 != 0xf0) { delay_ms(5); }
这个还可能需要检查电路接线啊,光看代码怎么排除?
如果接线错误了呢?!