在寫單片機程序的過程中,難免會遇到按鍵的寫法,比如一個按鍵實現長按,短按。本文只針對這些操作說明一下自己按鍵的思想。可應用到實際工程中。 按鍵處理過程:設置一個按鍵標志,按下時為1,松開時為0,然后每xxms執行這個函數,有按鍵按下時,計數器+1,然后根據計數的數值做一個判斷。單次按鍵需要 ...
最近做一任務需要使用一個按鍵實現三種功能,分別是按鍵單擊功能,按鍵雙擊功能和按鍵長按功能,可能之前沒有接觸過這類按鍵復用情況,頂多也只是簡單識別單擊和長按,沒有想過雙擊以上按鍵功能,也是絞盡腦汁,想了半天,又上網看了些例程,算是對於按鍵的識別有點小小的了解,感覺這個功能挺實用,在此做個隨筆。 一 思路 .識別長按操作思路:我們使用系統定時器定時,然后讓系統每過一段時間去掃描按鍵I O口狀態,當掃 ...
2018-09-19 12:12 0 7160 推薦指數:
在寫單片機程序的過程中,難免會遇到按鍵的寫法,比如一個按鍵實現長按,短按。本文只針對這些操作說明一下自己按鍵的思想。可應用到實際工程中。 按鍵處理過程:設置一個按鍵標志,按下時為1,松開時為0,然后每xxms執行這個函數,有按鍵按下時,計數器+1,然后根據計數的數值做一個判斷。單次按鍵需要 ...
直接貼上源碼和測試例程,附帶的都有中文注釋不多做解釋。 底層驅動: 測試例程(基於51內核) ...
stm32f103 按鍵長短按得識別原理 需要一個定時器,用來計算按鍵按下的時間,可以一秒鍾檢測100次, 設置初始化為10ms的中斷,比如使用定時4作為按鍵時間計算的定時器 比如我們需要4種模式,輕觸,短按,長按,超級長按 ...
最近自己在琢磨按鍵程序,之前弄了,按鍵單擊程序,程序可以實現讀取按鍵的幾個狀態,然后根據需求使用。單擊按鍵的幾個狀態如下: 單擊后,馬上返回按鍵值 單擊后,釋放之后,返回按鍵值 單擊后,按住不放,多次返回按鍵值 但是在其上面擴展雙擊和三擊以及多擊程序時,遇到了麻煩 ...
基本的按鍵程序結構分析: 注意:以上基本按鍵程序中,在按鍵執行之后必須要加上等待按鍵釋放,否則程序會出現一些奇怪的問題,比如說按鍵累加時按鍵一次,卻累加了多次。 可識別長擊和短擊按鍵程序(有限狀態機): 主函數文件: main.c 主文件里非常重要的有兩處 ...
實驗內容:實驗大致上就是說:按鍵不按的時候,燈一直亮,按鍵按下的時候,燈不亮,報警器響。現在給了匯編語言,要改成c語言,並在proteus里面仿真。 思考與總結:響應中斷請求的條件:1.總中斷允許開關EA=1。2.中斷源的中斷允許位為1。3.中斷源發出中斷請求。4.無同級或更高級中斷正在 ...
1 獨立按鍵的介紹 鍵盤分為編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實現,並產生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。而靠軟件編程來識別的鍵盤稱為非編碼鍵盤,在單片機組成的各種系統中,用的較多的是非編碼鍵盤。非編碼鍵盤又分為獨立鍵盤和行列式鍵盤(常說的矩陣鍵盤 ...
1 矩陣按鍵介紹 4*4矩陣按鍵,又稱行列式鍵盤,它用4條I/O線作為行線,它用4條I/O線作為列線組成鍵盤。在行線和列線的每一個交叉點上設置一個按鍵,這樣鍵盤按鍵就有4*4個,這種行列式鍵盤結構能夠有效的提高單片機系統的I/O口利用率。 2 功能要求:通過數碼管顯示矩陣按鍵 ...