矩陣鍵盤的應(yīng)用_第1頁
矩陣鍵盤的應(yīng)用_第2頁
矩陣鍵盤的應(yīng)用_第3頁
矩陣鍵盤的應(yīng)用_第4頁
矩陣鍵盤的應(yīng)用_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)技術(shù)應(yīng)用

《矩陣鍵盤的應(yīng)用》講課人:袁建強(qiáng)

機(jī)班電17CONTENTSABC掌握矩陣式鍵盤與51單片機(jī)接口的編程方法。掌握矩陣式鍵盤的電路結(jié)構(gòu)。理解矩陣式鍵盤掃描原理。

矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上,其結(jié)構(gòu)如下圖所示。由圖可知,一個(gè)4×4的行、列結(jié)構(gòu)可以構(gòu)成一個(gè)含有16個(gè)按鍵的鍵盤,顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省很多I/O口。一、矩陣鍵盤定義二、使用矩陣鍵盤特點(diǎn)電路連接復(fù)雜,但提高了I/O口利用率,軟件編程較復(fù)雜。適用于需使用大量按鍵的場合。在按鍵數(shù)量較多時(shí),減少I/O口資源的占用,通常采用矩陣鍵盤。三、按鍵識別方法1.行掃描法:即逐行或逐列掃描查詢法。行線列線

依次從第一至最末行線上發(fā)出低電平信號,如果該行線所連接的鍵沒有按下的話,則列線所接的編口得到的是全"1"信號,如果有鍵按下的話,則得到非全“1”信號。

高→低電平翻轉(zhuǎn)法也是識別閉合鍵的一種常用方法,該法比行掃描速度快,但在硬件上要求行線與列線外接上拉電阻。2.行掃描法鍵盤掃描過程(高→低電平翻轉(zhuǎn)法)

高→低電平翻轉(zhuǎn)法的方法:先將行線作為輸出線,列線作為輸入線,行線輸出全“0”信號,讀入列線的值,那么在閉合鍵所在的列線上的值必為0;然后從列線輸出全“0”信號,再讀取行線的輸入值,閉合鍵所在的行線值必為0。這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可讀到一

對唯一的行列值。再由這一對行列值可以求出閉合鍵所在的位置。三、按鍵識別方法a、【列檢測】

判斷鍵盤中有無鍵按下及按下鍵所在列的位置:將全部行線Y0-Y3置低電平,列線Y4-Y7置高電平,然后檢測列線的狀態(tài)。若所有列線(Y4-Y7)均為高電平,則鍵盤中無鍵按下。只要有一列的電平為低,則表示鍵盤該列有一個(gè)或多個(gè)鍵被按下。000011110列值:10110000三、按鍵識別方法2.行掃描法鍵盤掃描過程(高→低電平翻轉(zhuǎn)法)b、【行檢測】

判斷閉合鍵所在行的位置:在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的位置在哪行。其方法是:將全部列線Y4-Y7置低電平、行線Y0-Y3置高電平,然后檢測行線的狀態(tài),只要有一行的電平為低,則表示鍵盤該行有一個(gè)或多個(gè)鍵被按下。000011110行值:000011102.行掃描法鍵盤掃描過程(高→低電平翻轉(zhuǎn)法)三、按鍵識別方法c、【行列值組合】列值:10110000

行值:00001110對行列值進(jìn)行位或運(yùn)算,得到行列值【鍵值】

列值:10110000

行值:00001110EB行列值:10111110得到2號按鍵的鍵值:key=0xBE

再查找鍵值表便可以確定按下按鍵的序號。16進(jìn)制數(shù)三、按鍵識別方法2.行掃描法鍵盤掃描過程(高→低電平翻轉(zhuǎn)法)1101110110111011111001110鍵值:0xee;1鍵值:0xde;2鍵值:0xbe;3鍵值:0x7e;4鍵值:0xed;5鍵值:0xdd;6鍵值:0xbd;7鍵值:0x7d;8鍵值:0xeb;9鍵值:0xdb;A鍵值:0xbb;B鍵值:0x7b;C鍵值:0xe7;D鍵值:0xd7;E鍵值:0xb7;F鍵值:0x77;

ucharcodeKEY_TABLE[]={//鍵值表 0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};請大家把實(shí)訓(xùn)報(bào)告拿出來完成任務(wù)1。三、按鍵識別方法2.行掃描法鍵盤掃描過程(高→低電平翻轉(zhuǎn)法)

設(shè)計(jì)一個(gè)4×4矩陣鍵盤,其鍵值為0---F,按下按鍵,數(shù)碼管顯示相應(yīng)鍵值,要求用行掃描法識別鍵盤,且鍵盤要有去抖動功能。分別用軟件和硬件演示實(shí)際效果。四、教學(xué)任務(wù)五、硬件電路開始掃描鍵盤有鍵按下?延時(shí)去抖動掃描鍵盤識別閉合鍵計(jì)算鍵值輸出顯示根據(jù)鍵值找對應(yīng)的段碼NY有鍵按下?NY六、程序設(shè)計(jì)流程P3=0xf0;//置行為低電平0,列為高電平1,讀列值。if(P3!=0xf0)//判斷有,無鍵盤按下

{ delayms(1);//去抖延遲if(P3!=0xf0)//如果if的值為真,這時(shí)可以確定有鍵盤按下{temp=P3;//存儲列讀入的值 P3=0x0f;//置列為0,行為1,讀行值。 key=temp|P3; //位或運(yùn)算,求鍵值,賦給key for(i=0;i<16;i++)//查找鍵值表,確定所按鍵的序號 {if(key==KEY_TABLE[i]) {num=i;

P2=TABLE[num];//根據(jù)按鍵的序號,找到顯示段碼點(diǎn)亮數(shù)碼管,顯示按鍵值。 delayms(1);}}}}七、鍵盤掃描程序代碼

本任務(wù)采用共陽極數(shù)碼管,如何顯示相應(yīng)鍵值呢?矩陣鍵盤數(shù)碼管鍵號鍵值pgfedcba16進(jìn)制顯示0123CdEF11011110111110010xf9110111110101001000xa4201111110101100000xb0311100111110001100xc6C110101111010

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論