51單片機(jī)矩陣鍵盤的軟硬件設(shè)計
下面以51單片機(jī)綜合學(xué)習(xí)系統(tǒng)為硬件平臺,介紹矩陣式鍵盤的編程方法。具體功能為:按下其鍵后,在一位數(shù)碼管上顯示出鍵值。0到16個鍵分別對應(yīng)顯示0到F。
1、硬件原理
本實驗可以直接在配套開發(fā)板上完成,電路圖如下圖所示。
根據(jù)電路原理圖,鍵盤掃描方法是:行線P1O~P13為輸出線,列線P14~P17為輸入線。一開始單片機(jī)將行線(P1O-P13)全部輸出低電平,此時讀入列線數(shù)據(jù),若列線全為高電平說明沒有鍵接下,若有列線為低電平則調(diào)用延時程序來去除按鍵抖動。延時后再讀入列線看是否有低電平,如果列線數(shù)據(jù)還是有低電平,說明確實有鍵接下,接下來便是確定鍵值。下面以第二行的S5鍵為例,看接下S5后我們應(yīng)該怎么得到這個鍵值。當(dāng)判定確實有鍵接下之后,將行線輪流置為低電平,根據(jù)讀入列線的數(shù)據(jù)可以確定鍵值。首先,單片機(jī)將P1O置為低電平,P11~P13置為高電平,此時讀出的列線數(shù)據(jù)全為高電平,說明第一行沒有鍵接下;接著單片機(jī)將P11輸出低電平,P1O、P12、P13置為高電平,再讀列線數(shù)據(jù),此時的列線數(shù)值為1011(OxOB),即P11與P15交叉點上的按鍵S5被接下,而OxOB就代表S5的鍵值了。轉(zhuǎn)到S5鍵功能處理子程序就可以達(dá)到目的。
2.程序流程
軟件流程圖如下圖所示。51單片機(jī)綜合學(xué)習(xí)系統(tǒng)資源豐富,板內(nèi)有:8位LED數(shù)碼管、32路LED、4x4矩陣鍵盤、4個直控按鍵盤、蜂鳴器喇叭、繼電器試驗、I2C總線接口、SPI總線接口、l60x液晶、l28x64液晶、紅外接收頭接口、支持PS/2接口的104鍵標(biāo)準(zhǔn)鍵盤、步進(jìn)電機(jī)驅(qū)動接口、ADCO832模/數(shù)轉(zhuǎn)換接口、PC817光電耦合器、串行時鐘芯片DSl302、溫度傳感器DSl8B2O按口、RS232串口通訊、外擴(kuò)展接口等,可以方便地接更多的實驗資源。
3. 軟件代碼
相關(guān)的軟件代碼如下:
/* 矩陣鍵盤測試程序*/