關(guān)于單片機按鍵問題性能提升總結(jié)
更新時間:2018年12月17日 08:37:07 作者:Engineer-Bruce_Yang
今天小編就為大家分享一篇關(guān)于關(guān)于單片機按鍵問題性能提升總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
最近看了一本書《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; }
在現(xiàn)實中,論壇上看到以下代碼,我們不妨這樣,沒有用延時,運行效率大大提高!單片機實時性能顯著提高!
//讀取按鍵 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 ; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
輕松實現(xiàn)C/C++各種常見進制相互轉(zhuǎn)換
這篇文章主要介紹了輕松實現(xiàn)C/C++各種常見進制相互轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11C++11中隱式類型轉(zhuǎn)換的實現(xiàn)示例
C++類型轉(zhuǎn)換分為:隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換,本文主要介紹了C++11中隱式類型轉(zhuǎn)換的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-06-06C語言數(shù)據(jù)結(jié)構(gòu)之單鏈表的查找和建立
鏈表是一種物理存儲結(jié)構(gòu)上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。本文將和大家一起聊聊C語言中單鏈表的查找和建立,感興趣的可以學習一下2022-09-09