曹旻罡
(北京農業職業學院 北京 102442)
淺析51單片機控制系統的按鍵設計
曹旻罡
(北京農業職業學院 北京 102442)
本文重點設計51單片機控制系統的按鍵子系統,以4×4矩陣鍵盤電路為例,以矩陣鍵盤電路基本原理為核心設計0~F的16進制按鍵的ASCII碼值輸出的設計流程,從而為按鍵與PC機連接奠定基礎。
51單片機;矩陣鍵盤;P1端口
以單片機為核心的嵌入式控制系統使得人們生產生活自動化成為可能,通過單片機的程序化控制流程、智能化識別和人性化的人機交互,從而按照人們的意愿來實現地對生活、生產中的各個方面的自動化控制。其中,51的單片機作為最簡單的控制系統核心,在自動化實現方面起到非常重要的作用,其按鍵子系統實現的人機交互功能在各個控制系統中起到非常重要的作用。
在51單片機的控制系統中,其中矩陣鍵盤電路是常見的人機交互的輸入設備,如圖1所示,為常見的4×4矩陣鍵盤的硬件電路示意圖。

圖1 4×4矩陣鍵盤硬件電路示意圖
4×4矩陣鍵盤在默認情況下,都是未被按下的狀態,即按照上述電路中所示,P10~P13與P14~P17之間都是呈短路狀態,如果有按鍵按下,連接該案件的兩條線路就會聯通,對應的兩個端口則會呈現出相同的電壓值,對于單片機而言,為0或者1的數據值。由于4×4矩陣鍵盤電路沒有外部電源提供電源控制,所以,在實現連接4×4矩陣鍵盤接口數據識別時,可以通過單片機的P10~P13某個端口作為輸出狀態,同時將其置于高電壓或低電壓的值,而后檢測P14~P17四個端口,如果相應某個端口出現同樣的電壓值,則說明有對應的鍵按下,依次類推即可實現四個端口的16個按鍵的檢測,從而在51單片機內通過程序控制來識別相應按鍵在當前控制系統的實際功能,而后進行相應的操作。
為了適應51單片機的自身特性,此處設計采用輸出電壓為低電壓,即0值,作為采樣判斷的指標。在單片機系統啟動后,調用配置信息初始化之后,即可對P10~P13某個端口輸出低電壓,假設P11為低電壓,另外三個端口為高電壓,而后檢測P1口數據,如果此時P14~P17四端口均為高電壓,則無按鍵按下,如果S7被按下,則P17呈現低電壓,如果此時單片機讀取P1口數據,則會得到01111101,如果S5被按下,單片機讀取P1口數據,則會得到11011101的數據,依次可推斷出其他按鍵對應的二進制數值。
在實際的51單片機控制系統中,由于人為的鍵盤操作,如按下鍵盤按鍵或松開鍵盤按鍵,實際上是實現兩條線路的連接,實現按鍵兩段的電壓值相同的聯通。但是由于人們操作會有一定的延遲或者抖動,對于單片機來說,產生的一種前期波動比較大的并非理想的矩形數據信號,所以需要相應的算法來將其進行處理,方便單片機對其進行識別,這部分代碼被稱為延時防抖動程序。同時為了滿足我們的特殊需求,在識別到按鍵后通過串口輸出對應的ASCII碼值,所以在程序設計時,自需要在判斷到對應按鍵按下即可調用串口,串行輸出對應ASCII碼值即可。
在程序流程設計之前,首先設計對應二進制與ASCII碼值的映射表,假設4×4矩陣鍵盤為16進制的外部輸入設備,S0~S15按鍵分別代表0~F的16進制數值,所以在判斷對應按鍵的二進制數值時,可以設計出相應的映射表,這這里實現,可以通過三個數組來實現。
第一個數組為二進制數組,存儲了每個按鍵對應的二進制,如S0鍵對應的二進制值為11101110,依次可得到其他按鍵對應二進制值。
第二個數組為按鍵實際含義數組,存儲每個按鍵的實際含義,如S0按鍵對應的為0鍵,依次可得到其他按鍵對應的實際含義。
第三個數字為ASCII碼值數組,存儲0~F的實際的ASCII碼值,如0的ASCII碼16進制值為30。
程序設計流程如下:
(1)單片機初始化。
(2)P1口初始化(設定為輸出狀態)。
(3)向P1口輸出初P10~P14口的判斷數據,順序為11111110,11111 101,11111011,11110111,而后不斷循環循環。
(4)改變P1口配置狀態,讀取P1口數據。
(5)判斷是否P14~P17是否有低電平。
(6)如果沒有,則跳轉到步驟(3)。如果有則讀取延時防抖動程度,并獲取相應二進制值。
(7)根據系統預定義二進制與按鍵定義的映射表來判斷鍵盤按鍵的實際含義,查詢對應的ASCII碼值。
(8)設定串口通訊的配置數據。
(9)將ASCII碼值放置到串口通信數據區域,進行串口通信。
51單片機的按鍵子系統設計,實際上是利用51的單片機自身的數據I/O端口,通過改變I/O端口的功能屬性,結合對應硬件電路,設計相應的流程即可實現對外部輸入的判斷,從而輸出對應ASCII碼值,做出相應的操作。
[1]羅國.基于單片機的溫度控制系統[J].中山大學研究生學刊(自然科學.醫學版),2015(04).
[2]黃軍輝,林樹琪.基于89C52單片機的智能家居多功能飲水機的設計與實現[J].廣東輕工職業技術學院學報,2015(04).
TP274
A
1004-7344(2016)29-0259-01
2016-9-28