基于MC9S12XS128的單片機(jī)開(kāi)發(fā)板的設(shè)計(jì)
1.5 矩陣鍵盤(pán)按鍵識(shí)別
在MC9S12XS128單片機(jī)的I/O口設(shè)計(jì)4×4行列式鍵盤(pán),采用程序掃描識(shí)別鍵號(hào),當(dāng)有按鍵按下時(shí),其鍵號(hào)顯示在共陰極LED數(shù)碼管上。其電路如圖7所示。在鍵盤(pán)的按鍵識(shí)別中通常采用“行掃描法”(逐行或列)掃描查詢法。判斷鍵盤(pán)中有無(wú)鍵按下時(shí),將列線PT0~PT3置為輸出,將其中一條線置低電平其余3條線輸出高電平,然后檢測(cè)行線的狀態(tài)。只要有一行的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵為被拉低的低電平行線與4根列線中低電平線相交叉的對(duì)應(yīng)按鍵。若判斷所有行線均為高電平,則鍵盤(pán)中無(wú)鍵按下(具體可用查表的方法)。
但是此種方法單片機(jī)需要通過(guò)不停的掃描查詢,方可準(zhǔn)確的檢測(cè)到按鍵值。考慮到PP口有中斷功能所以可將這4個(gè)口設(shè)置成中斷的模式來(lái)獲得按鍵值,本設(shè)計(jì)中是將拉高的4位通過(guò)一個(gè)與門(mén)接到單片機(jī)的帶中斷的引腳上,這樣當(dāng)任意鍵按下時(shí)就會(huì)產(chǎn)生低電平發(fā)生中斷,這時(shí)單片機(jī)再進(jìn)行按鍵判斷,從而無(wú)需一直查詢,減少了MCU的負(fù)荷量。
數(shù)碼管顯示電路采用共陰極使用兩個(gè)鎖存器74HC573分別接到PORTA口和PORTB口來(lái)實(shí)現(xiàn)。也可應(yīng)用液晶顯示接口:1602和12864接口顯示。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用C語(yǔ)言編寫(xiě),由于存在鍵盤(pán)陣列、數(shù)碼管顯示和液晶顯示,它可以完成較多的常規(guī)實(shí)驗(yàn)項(xiàng)目。如LED流水燈實(shí)驗(yàn)、基于PWM控制的蜂鳴器實(shí)驗(yàn)、數(shù)碼管驅(qū)動(dòng)、鍵盤(pán)驅(qū)動(dòng)、1602液晶驅(qū)動(dòng)、ATD轉(zhuǎn)換等多個(gè)實(shí)驗(yàn);還可以進(jìn)行目前工業(yè)控制所常用的通信試驗(yàn),如串口,IIC,CAN,LIN,485總線實(shí)驗(yàn),基本具備單片機(jī)開(kāi)發(fā)工業(yè)控制系統(tǒng)的能力。下面以電子鐘為例來(lái)介紹其軟件設(shè)計(jì)思想。
在電子鐘設(shè)計(jì)中對(duì)于時(shí)間的產(chǎn)生,選擇PIT0,即對(duì)周期中斷定時(shí)器0做初始化,使其每隔1 ms產(chǎn)生1次中斷,定義4個(gè)變量分別為:毫秒,秒,分,時(shí),然后在中斷服務(wù)程序中根據(jù)這4個(gè)變量在實(shí)際中的關(guān)系更新這4個(gè)變量。在主程序中判斷鍵盤(pán)按鍵值和進(jìn)行時(shí)間顯示,這里定義3個(gè)鍵值:1,2,3。軟件程序流程圖如圖8所示。本文引用地址:http://butianyuan.cn/article/172560.htm
3 結(jié)語(yǔ)
本套單片機(jī)開(kāi)發(fā)板為即將參加“飛思卡爾”競(jìng)賽的學(xué)生提供了一個(gè)靈活高效的學(xué)習(xí)平臺(tái),同時(shí)可為大學(xué)本科學(xué)生學(xué)習(xí)嵌入式開(kāi)發(fā)系統(tǒng)以及為汽車電子行業(yè)工程師提供良好的開(kāi)發(fā)平臺(tái),具有較高的實(shí)用性和推廣價(jià)值。
評(píng)論