關于單片機按鍵問題性能提升總結
更新時間:2018年12月17日 08:37:07 作者:Engineer-Bruce_Yang
今天小編就為大家分享一篇關于關于單片機按鍵問題性能提升總結,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
最近看了一本書《8051單片機創(chuàng)新教程》,這本書比大學課本寫得好,在大學的課本中,我們常見的按鍵掃描程序如下:
unsinged char KeyScan(void) { unsigned char KeyValue=0; if(KEY_IO != 0xFF) //檢測到有按鍵按下 { DelayNms(20); //延時 20 毫秒(嚴重影響單片機的運行效率) if(KEY_IO != 0xFF)//確認按鍵按下 { switch(KEY_IO) { case 0xFE: KeyValue=1;break; case 0xFD: KeyValue=2;break; default : KeyValue=0;break; } } } return KeyValue; }
在現實中,論壇上看到以下代碼,我們不妨這樣,沒有用延時,運行效率大大提高!單片機實時性能顯著提高!
//讀取按鍵 uchar read_key() { static int Key_on_off = 0 ;//按鍵自鎖變量 uchar num , temp ; num = P2 ; num &= 0xf0 ; //將低四位清0 if(num != 0xf0) { if(Key_on_off == 0) { Key_on_off = 1 ; switch(num) { //返回按鍵的編碼 case 0xe0 : temp = 1 ; break ; case 0xd0 : temp = 2 ; break ; case 0xb0 : temp = 3 ; break ; case 0x70 : temp = 4 ; break ; } } } else Key_on_off = 0 ; return temp ; }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接