4.5.2矩陣按鍵控制_第1頁
4.5.2矩陣按鍵控制_第2頁
4.5.2矩陣按鍵控制_第3頁
4.5.2矩陣按鍵控制_第4頁
4.5.2矩陣按鍵控制_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

矩陣按鍵控制主講教師:呂世林《汽車單片機應(yīng)用技術(shù)》汽車智能技術(shù)專業(yè)教學(xué)資源庫1、會使用單片機讀取矩陣按鍵狀態(tài)的方法;2、會消除按鍵的抖動;3、會能檢測按鍵的狀態(tài)。知識目標(biāo)1、能根據(jù)項目要求,進(jìn)行編程算法設(shè)計;2、能設(shè)計出矩陣按鍵與單片機連接的硬件電路;3、能完成矩陣按鍵檢測的程序設(shè)計。能力目標(biāo)學(xué)習(xí)目標(biāo)任務(wù)初步訓(xùn)練了解4×4矩陣式鍵盤的識別原理和編程方法。強化訓(xùn)練

4×4矩陣鍵盤計算器設(shè)計。學(xué)習(xí)任務(wù)任務(wù)相關(guān)知識1、認(rèn)識矩陣式鍵盤任務(wù)相關(guān)知識1、矩陣式鍵盤矩陣式鍵盤,I/O端線分為行線和列線,按鍵跨接在行線和列線上,按鍵按下時,行線與列線發(fā)生短路。特點:①占用I/O端線較少;②軟件結(jié)構(gòu)教復(fù)雜;③適用于按鍵較多的場合。任務(wù)相關(guān)知識(1)行掃描法掃描按鍵所謂行掃描法,就是通過行線發(fā)出低電平信號,如果該行線所連接的鍵沒有按下的話,則列線所連接的輸出端口得到的是全“1”信號;如果有鍵按下的話,則得到的是非全“1”信號。仿真效果如圖所示。掃描第1行,第1行無鍵按下

掃描第1行,第1行有鍵按下任務(wù)相關(guān)知識掃描第2行,第2行無鍵按下

掃描第2行,第2行有鍵按下掃描第3行,第3行無鍵按下

掃描第3行,第3行有鍵按下任務(wù)相關(guān)知識掃描第4行,第4行無鍵按下

掃描第4行,第4行有鍵按下具體過程如下:首先,為了提高效率,一般先快速檢查整個鍵盤中是否有鍵按下;然后,再確定按下的是哪一個鍵。其次,再用逐行掃描的方法來確定閉合鍵的具體位置。方法是:先掃描第0行,即輸出1110(第0行為“0”,其余3行為“1”),然后讀入列信號,判斷是否為全“1”。任務(wù)相關(guān)知識(2)線反轉(zhuǎn)法具體過程:先將行線作為輸出線,列線作為輸入線,行線輸出全“0”信號,讀入列線的值,然后將行線和列線的輸入輸出關(guān)系互換,即列線全部輸出“0”信號,行線作為輸入線,那么在閉合鍵所在的行線上值必為0。這樣,當(dāng)一個鍵被按下時,必定可讀到一對唯一的行列值。線反轉(zhuǎn)法也是識別閉合鍵的一種常用方法。該方法比行掃描法速度快,但在硬件電路上要求行線與列線均需有上拉電阻,故比行掃描法稍復(fù)雜些。注意:因此矩陣鍵盤接在沒有接上拉電阻的P0口上面時,此方法失效。任務(wù)相關(guān)知識行鍵全0,讀取列鍵列鍵全0,讀取行鍵以此便可判斷出是第幾行第幾列的鍵按下,可以計算鍵值。鍵盤編碼為第一行開始0,1,2,3,第二行4,5,6,7,第三行8,9,10,11,第四行12,13,14,15?,F(xiàn)在第二行第二列的按鍵按下,LED燈顯示結(jié)果為5。

任務(wù)相關(guān)知識測試結(jié)果第2行第2列的按鍵按下時proteus仿真圖初步訓(xùn)練初步訓(xùn)練了解4×4矩陣式鍵盤的識別原理和編程方法。任務(wù)分析:1.每個按鍵都有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)置高電平,另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表查出該鍵的功能。2.按鍵按下時,在數(shù)碼管相應(yīng)的值0~F。根據(jù)以上分析,畫出電路圖。初步訓(xùn)練矩陣式鍵盤識別電路原理圖初步訓(xùn)練程序流程圖初步訓(xùn)練操作步驟1、把動態(tài)顯示區(qū)左邊的8P插槽連到最小單片機系統(tǒng)區(qū)P0端口的8P插槽,右邊的8P插槽連到P2端口的8P插槽,單片機的EA腳接+5V;2、矩陣式鍵盤區(qū)8P插槽連到最小單片機系統(tǒng)P3端口的8P插槽;3、運行KeilC51軟件,新建一個工程,新建一個文件。將文件添加到工程中并編譯,如有錯,請更改直到編譯成功,如有錯,請更改直到編譯成功;4、用編程器將生成的HEX文件燒寫到單片機中,或用仿真器來執(zhí)行程序,將程序下載到仿真器中,用編程器將生成的HEX文件燒寫到單片機中;5、運行實驗程序,任意按下一個按鍵,觀察數(shù)碼管的顯示情況。初步訓(xùn)練KEYBUFEQU30HORG00HSTART:MOVKEYBUF,#2 CLRP2.0 MOVP0,#03H MOVKEYBUF,#WAIT:MOVP3,#0FFHCLRP3.4MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY1LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY1MOVA,P3ANLA,#0FHCJNEA,#0EH,NK1MOVKEYBUF,#0LJMPDK1NK1:CJNEA,#0DH,NK2MOVKEYBUF,#1LJMPDK1NK2:CJNEA,#0BH,NK3MOVKEYBUF,#2LJMPDK1NK3:CJNEA,#07H,NK4MOVKEYBUF,#3LJMPDK1NK4:NOPDK1:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,A

DK1A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK1ANOKEY1:MOVP3,#0FFHCLRP3.5MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY2LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY2MOVA,P3LJMPDK2NK5:CJNEA,#0DH,NK6MOVKEYBUF,#5LJMPDK2ANLA,#0FHCJNEA,#0EH,NK5MOVKEYBUF,#4NK6:CJNEA,#0BH,NK7MOVKEYBUF,#6LJMPDK2NK7:CJNEA,#07H,NK8MOVKEYBUF,#7LJMPDK2NK8:NOPDK2:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,A

DK2A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK2AXRLA,#0FHJZNOKEY3LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHANLA,#0FHJZNOKEY3MOVA,P3ANLA,#0FHCJNEA,#0EH,NK9MOVKEYBUF,#8LJMPDK3NK9:CJNEA,#0DH,NK10NOKEY2:MOVP3,#0FFHCLRP3.6MOVA,P3MOVKEYBUF,#9LJMPDK3NK10:CJNEA,#0BH,NK11MOVKEYBUF,#10LJMPDK3NK11:CJNEA,#07H,NK12MOVKEYBUF,#11LJMPDK3NK12:NOPDK3:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,A

DK3A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK3ALCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY4MOVA,P3ANLA,#0FHCJNEA,#0EH,NK13MOVKEYBUF,#12LJMPDK4NOKEY3:MOVP3,#0FFHCLRP3.7MOVA,P3

ANLA,#0FHXRLA,#0FHJZNOKEY4NK13:CJNEA,#0DH,NK14MOVKEYBUF,#13LJMPDK4NK14:CJNEA,#0BH,NK15MOVKEYBUF,#14LJMPDK4NK15:CJNEA,#07H,NK16MOVKEYBUF,#15LJMPDK4NK16:NOPDK4:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,A

DK4A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK4ANOKEY4:LJMPWAITDELY10MS:MOVR6,#10D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETTABLE:DB0E5H,85H,61H,71HDB01H,09H,11H,0C1HDB99H,49H,41H,1FHDB03H,9FH,25H,0DHEND

強化訓(xùn)練強化訓(xùn)練4×4矩陣鍵盤計算器設(shè)計,具體要求:(1)分別識別16個鍵盤值;(2)設(shè)定前10個為0到9,后面鍵值分別是A、B、C、D,—,最后一個鍵值為確認(rèn)鍵;(3)利用數(shù)碼管實現(xiàn)255內(nèi)的減法運算;(4)對4×4矩陣鍵盤先進(jìn)行全掃描,再進(jìn)行行掃描;(5)在LED數(shù)碼管里面動態(tài)顯示掃描的內(nèi)容。任務(wù)分析:利用AT89C51進(jìn)行數(shù)據(jù)處理,利用4×4矩陣鍵盤的按鍵掃描,利用LED數(shù)碼管的動態(tài)顯示。該設(shè)計首先是運用矩陣鍵盤的按鍵掃描,然后把掃描得到的鍵值進(jìn)行譯碼,其次把譯碼所得的數(shù)值進(jìn)行處理,最后將處理后的值進(jìn)行動態(tài)顯示。矩陣鍵盤和數(shù)碼管分別接在P1和P0,這樣大大的節(jié)約了單片機的I/O端口。強化訓(xùn)練1、硬件原理圖設(shè)計。參考思路:利用proteus仿真電路,晶振接在XTAL1、XTAL2口上,復(fù)位電路接在REST口上,矩陣鍵盤的四列接在P1口的低四位,矩陣鍵盤的四行接在P1口的高四位,LED數(shù)碼管的段選碼接口于P0口相連,LED數(shù)碼管的位選碼接口于P2.5-P2.7相連。proteus仿真電路圖強化訓(xùn)練2、軟件設(shè)計。初始化后,程序開始進(jìn)入主程序,1、進(jìn)行按鍵判斷,如果有鍵按下,繼續(xù)往下執(zhí)行,否則重新掃描;2、如果有鍵按下,延時5MS;3、再次按鍵判斷,如果有鍵按下,繼續(xù)往下執(zhí)行,否則重新掃描;4、如果有鍵按下,確定按鍵位置;5、再次進(jìn)行按鍵判斷,如果有鍵按下,繼續(xù)往下執(zhí)行,否則,表示出錯,重新掃面;6、如果有鍵按下,對按鍵譯碼;7、判斷是否按鍵釋放,如果釋放,繼續(xù)往下執(zhí)行,否則等待;8、對送來的譯碼值進(jìn)行數(shù)據(jù)處理;9、把處理的數(shù)據(jù),放到LED數(shù)碼管中動態(tài)顯示。強化訓(xùn)練程序流程圖強化訓(xùn)練操作步驟1、按照原理圖要求,在斷電狀態(tài)下,連接硬件電路;2、運行KeilC51軟件,新建一個工程,新建一個文件。按照程序流程圖編寫源程序;3、將文件添加到工程中并編譯,如有錯,并更改直到編譯成功,如有錯,請更改直到編譯成功;4、用編程器將生成的HEX文件燒寫到單片機中,或用仿真器來執(zhí)行程序,將程序下載到仿真器中,或用編程器將生成的HE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論