跟我學(xué)51單片機(jī)(四):獨立-矩陣鍵盤應(yīng)用與設(shè)計
程序說明:
(1)定義矩陣鍵盤管腳。
(2)將掃描時用到的管腳四種輸出電平狀態(tài)定義成一個數(shù)組。
?。?)按鍵掃描程序。
?。?)定義兩個臨時變量key,i。
?。?)讓鍵盤管腳的高四位輸出高電平,第四位為低電平,為掃描按鍵準(zhǔn)備。
?。?)如果此時管腳狀態(tài)電平發(fā)生變化。
?。?)將之前定義的數(shù)組中的值賦予管腳,開始逐次掃描。
?。?)延時一段時間,去抖。
?。?)輸出掃描按鍵的電平。
?。?0)再延時一段時間。
?。?1)如果此時按鍵管腳電平依舊不是輸出的默認(rèn)電平,表示有鍵按下。
?。?2)延時一段時間,讓電平穩(wěn)定。
?。?3)讀取當(dāng)前按鍵管腳電平,即鍵值。
?。?4)等待按鍵抬起,死循環(huán),如果按鍵一直按下則一直等待。
?。?5)返回鍵值。
四、調(diào)試要點與實驗現(xiàn)象
接好硬件,通過冷啟動方式將程序所生成的。hex文件下載到單片機(jī)運行后,打開串口調(diào)試助手軟件,設(shè)置好波特率9600,復(fù)位單片機(jī),然后按下板上的4×4按鍵中的任意一個,并注意觀串口調(diào)試助手上的顯示。(見圖3),可以觀察到在接收窗口有按鍵的數(shù)據(jù)顯示。
圖3 按鍵通過串口調(diào)試助手顯示界面
此外,在本文所附的實驗程序中,其中與串口通信中調(diào)用了發(fā)送字符函數(shù)與發(fā)送字符串函數(shù)。在沒有仿真器和遇到需要顯示一些提示信息的時候,可以采用串口打印的方式,這樣不僅直觀方便而且不增加其他成本。
五、總結(jié)
本文介紹了單片機(jī)外接鍵盤的工作原理并給出了實例,通過該文,我們可以知道一個完善的鍵盤控制程序應(yīng)具備以下功能:
?。?) 檢測有無按鍵按下,并采取硬件或軟件措施,消除鍵盤按鍵機(jī)械觸點抖動的影響。
?。?) 有可靠的邏輯處理辦法。每次只處理一個按鍵,其間對任何按鍵的操作對系統(tǒng)不產(chǎn)生影響,且無論一次按鍵時間有多長,系統(tǒng)僅執(zhí)行一次按鍵功能程序。
?。?) 準(zhǔn)確輸出按鍵值(或鍵號),以滿足按鍵功能要求。對于矩陣鍵盤而言,必須將行線、列線信號配合起來作適當(dāng)處理,才能確定閉合鍵的位置。
此外,按鍵的掃描方式有多種,本文中所述的是程序掃描方式,另外常見的還有定時掃描方式和中斷掃描方式,這些方式均可以在本學(xué)習(xí)板上實現(xiàn),因此希望讀者結(jié)合前幾講的知識,自行進(jìn)行程序的編寫與調(diào)試。下講將講述單片機(jī)動態(tài)驅(qū)動數(shù)碼管原理與實例,敬請期待。
萬能遙控器相關(guān)文章:萬能遙控器代碼
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評論