我用8279扩展4*4的键盘,但是发现其中一个键盘的值按下后得不到,而其他按键的值可以 正常得到,不知道为什么,请各位大哥大姐指导一下,不胜感激! void key()interrupt 2 using 2 { uchar kk; COM8279=0xd1; COM8279=0x00; COM8279=0x2a; kk=COM8279; while (kk&0x0f==0); //无键按下等待 COM8279=0x40; //读fifo ram 命令 flag=1; }
void dealkey() {
if(flag==1) { flag=0; m=DAT8279; } switch(m) { case 0xd8: keyVal=0xd8; break; case 0xd9: keyVal=0xd9; break; case 0xda: keyVal=0xda; break; case 0xdb://得不到键值的按键,但此键若与其它按键做成组合键, 却能得到正确键值,不知为什么 keyVal=0xdb; break; case 0xd3: keyVal=0xd3; break; default:break; }
|