哪位高手能帮忙把下面按键扫描程序改成用定时器对按键进行定时扫描啊,我用的是51单片机,感激万分!!!! /*键盘扫描*/ void judge(void) { P1=0xf0; lie=P1; lie=lie&0xf0; if(lie!=0xf0) { delay(); if(lie!=0xf0) //假设第二行第三列按下 { lie=P1; key0=lie; //10110000 P1=key0|0x0f; //10111111 实际上按键还没断开的话,赋值后P3的值为10111101,因为第二行被按下为低电平 hang=P1&0x0f; //00001101 key=hang+lie; //10111101 } P1=0xf0; temp=P1; while(temp!=0xf0) //等待按键松开 { temp=P1; } switch ( key ) //判断键值(那一个键按下) { case 0x7d: key1(); break; case 0xee: key2(); break; //对键值赋值 case 0xde: key3(); break; case 0xbe: key4(); break; case 0x7e: key5(); break; case 0xed: key6(); break; case 0xdd: key7(); break; case 0xbd: key8(); break; default: break; }} } |