44矩陣鍵盤(pán)工作原理_第1頁(yè)
44矩陣鍵盤(pán)工作原理_第2頁(yè)
44矩陣鍵盤(pán)工作原理_第3頁(yè)
44矩陣鍵盤(pán)工作原理_第4頁(yè)
44矩陣鍵盤(pán)工作原理_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

4*4矩陣鍵盤(pán)工作原理 在單片機(jī)按鍵使用過(guò)程中,當(dāng)鍵盤(pán)中按鍵數(shù)量較多時(shí)為了減少端口的占用通常將按鍵排列成矩陣形式如下圖所示,在矩陣式鍵盤(pán)中每條水平線和垂直線在交叉處不直接連通而是通過(guò)一個(gè)按鍵加以連接,到底這樣做是出意何種目的呢?大家看下面電路圖,單片機(jī)的整一個(gè)8位端口可以構(gòu)成4*4=16個(gè)矩陣式按鍵,相比獨(dú)立式按鍵接法多出了一倍,而且線數(shù)越多區(qū)別就越明顯,假如再多加一條線就可以構(gòu)成20個(gè)按鍵的鍵盤(pán),但是獨(dú)立式按鍵接法只能多出1個(gè)按鍵。由此可見(jiàn),在需要的按鍵數(shù)量比較多時(shí),采用矩陣法來(lái)連接鍵盤(pán)是非常合理的,矩陣式結(jié)構(gòu)的鍵盤(pán)顯然比獨(dú)立式鍵盤(pán)復(fù)雜一些,單片機(jī)對(duì)其進(jìn)行識(shí)別也要復(fù)雜一些。確定矩陣式鍵盤(pán)上任何一個(gè)鍵被按下通常采用行掃描法。行掃描法又稱為逐行查詢法它是一種最常用的多按鍵識(shí)別方法。因此,我們就以行掃描法為例介紹矩陣式鍵盤(pán)的工作原理。圖5-4(4*4矩陣式按鍵的接法)首先,不斷循環(huán)地給低四位獨(dú)立的低電平,然后判斷鍵盤(pán)中有無(wú)鍵按下。將低位中其中一列線(P1.0~P1.3中其中一列)置低電平然后檢測(cè)行線的狀態(tài)(高4位,即P1.4~P1.7,由于線與關(guān)系,只要與低電平列線接通,即跳變成低電平),只要有一行的電平為低就延時(shí)一段時(shí)間以消除抖動(dòng),然后再次判斷,假如依然為低電平,則表示鍵盤(pán)中真的有鍵被按下而且閉合的鍵位于低電平的4個(gè)按鍵之中任其一,若所有行線均為高電平則表示鍵盤(pán)中無(wú)鍵按下。再其次,判斷閉合鍵所在的具體位置。在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將列線置為低電平,即在置某一根列線為低電平時(shí),其它列線為高電平。同時(shí)再逐行檢測(cè)各行線的電平狀態(tài);若某行為低,則該行線與置為低電平的列線交叉處的按鍵就是閉合的按鍵。下面圖5-5是4*4矩陣式按鍵接法的軟件算法操作流程。下面程序按照上述算法流程去編寫(xiě)的,其電路如圖5-6,只是在圖5-5的基礎(chǔ)上多加了P0端口的8只LED燈。從鍵盤(pán)中檢測(cè)到一個(gè)鍵值,然后將這個(gè)值寫(xiě)到LED數(shù)碼管上顯示。另外一種工作原理:1、4×4矩陣鍵盤(pán)的工作原理矩陣鍵盤(pán)又稱為行列式鍵盤(pán),它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤(pán)。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤(pán)中按鍵的個(gè)數(shù)是4×4個(gè)。這種行列式鍵盤(pán)結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。圖1為ME300B矩陣鍵盤(pán)電路圖,行線接P1.4-P1.7,列線接P1.0-P1.3。圖1矩陣鍵盤(pán)電路圖2按鍵排列2、數(shù)碼管動(dòng)態(tài)掃描顯示電路在ME300B開(kāi)發(fā)系統(tǒng)中,采用了8位數(shù)碼管動(dòng)態(tài)掃描顯示。它將所有數(shù)碼管的8個(gè)段線相應(yīng)地并接在一起,并接到AT89S51的P0口,由P0口控制字段輸出。而各位數(shù)碼管的共陽(yáng)極由AT89S51的P2口控制Q20-Q27來(lái)實(shí)現(xiàn)8位數(shù)碼管的位輸出控制。這樣,對(duì)于一組數(shù)碼管動(dòng)態(tài)掃描顯示需要由兩組信號(hào)來(lái)控制:一組是字段輸出口輸出的字形代碼,用來(lái)控制顯示的字形,稱為段碼;另一組是位輸出口輸出的控制信號(hào),用來(lái)選擇第幾位數(shù)碼管工作,稱為位碼。由于各位數(shù)碼管的段線并聯(lián),段碼的輸出對(duì)各位數(shù)碼管來(lái)說(shuō)都是相同的。因此,同一時(shí)刻如果各位數(shù)碼管的位選線都處于選通狀態(tài)的話,8位數(shù)碼管將顯示相同的字符。若要各位數(shù)碼管能夠顯示出與本位相應(yīng)的字符,就必須采用掃描顯示方式。即在某一時(shí)刻,只讓某一位的位選線處于導(dǎo)通狀態(tài),而其它各位的位選線處于關(guān)閉狀態(tài)。同時(shí),段線上輸出相應(yīng)位要顯示字符的字型碼。這樣同一時(shí)刻,只有選通的那一位顯示出字符,而其它各位則是熄滅的,如此循環(huán)下去,就可以使各位數(shù)碼管顯示出將要顯示的字符。雖然這些字符是在不同時(shí)刻出現(xiàn)的,而且同一時(shí)刻,只有一位顯示,其它各位熄滅,但由于數(shù)碼管具有余輝特性和人眼有視覺(jué)暫留現(xiàn)象,只要每位數(shù)碼管顯示間隔足夠短,給人眼的視覺(jué)印象就會(huì)是連續(xù)穩(wěn)定地顯示。圖3數(shù)碼管電路數(shù)碼管不同位顯示的時(shí)間間隔可以通過(guò)調(diào)整延時(shí)程序的延時(shí)長(zhǎng)短來(lái)完成。數(shù)碼管顯示的時(shí)間間隔也能夠確定數(shù)碼管顯示時(shí)的亮度,若顯示的時(shí)間間隔長(zhǎng),顯示時(shí)數(shù)碼管的亮度將亮些,若顯示的時(shí)間間隔短,顯示時(shí)數(shù)碼管的亮度將暗些。若顯示的時(shí)間間隔過(guò)長(zhǎng)的話,數(shù)碼管顯示時(shí)將產(chǎn)生閃爍現(xiàn)象。所以,在調(diào)整顯示的時(shí)間間隔時(shí),即要考慮到顯示時(shí)數(shù)碼管的亮度,又要數(shù)碼管顯示時(shí)不產(chǎn)生閃爍現(xiàn)象。在ME300B單片機(jī)開(kāi)發(fā)系統(tǒng)中使用數(shù)碼管來(lái)顯示信息時(shí),要將JP2的2、3端短接。見(jiàn)圖3二、演示程序的編程方法1、4×4矩陣鍵盤(pán)的編程方法:1.1、先讀取鍵盤(pán)的狀態(tài),得到按鍵的特征編碼。先從P1口的高四位輸出低電平,低四位輸出高電平,從P1口的低四位讀取鍵盤(pán)狀態(tài)。再?gòu)腜1口的低四位輸出低電平,高四位輸出高電平,從P1口的高四位讀取鍵盤(pán)狀態(tài)。將兩次讀取結(jié)果組合起來(lái)就可以得到當(dāng)前按鍵的特征編碼。使用上述方法我們得到16個(gè)鍵的特征編碼。舉例說(shuō)明如何得到按鍵的特征編碼:假設(shè)“1”鍵被按下,找其按鍵的特征編碼。從P1口的高四位輸出低電平,即P1.4-P1.7為輸出口。低四位輸出高電平,即P1.0-P1.3為輸入口。讀P1口的低四位狀態(tài)為“1101”,其值為“0DH”。再?gòu)腜1口的高四位輸出高電平,即P1.4-P1.7為輸入口。低四位輸出低電平,即P10-P13為輸出口,讀P1口的高四位狀態(tài)為“1110”,其值為“E0H”。將兩次讀出的P0口狀態(tài)值進(jìn)行邏輯或運(yùn)算就得到其按鍵的特征編碼為“EDH”。用同樣的方法可以得到其它15個(gè)按鍵的特征編碼。1.2、根據(jù)按鍵的特征編碼,查表得到按鍵的順序編碼。將用上述方法得到的16個(gè)按鍵的特征編碼按圖2按鍵排列的順序排成一張?zhí)卣骶幋a與順序編碼的對(duì)應(yīng)關(guān)系表,然后用當(dāng)前讀得的特征編碼來(lái)查表,當(dāng)表中有該特征編碼時(shí),它所在的位置就是對(duì)應(yīng)的順序編碼。 ? ?51單片機(jī)4X4按鍵(0~15)數(shù)碼管顯示、并通過(guò)串口通信發(fā)送相應(yīng)數(shù)字(Proteus仿真)? ?求用C51狀態(tài)機(jī)實(shí)線4*4鍵盤(pán)動(dòng)態(tài)移位顯示4位一體公陽(yáng)數(shù)碼管? ?8051單片機(jī)的4X4矩陣鍵盤(pán)兩位數(shù)碼管顯示含源碼和仿真!? ?4X4鍵盤(pán)掃描兩位數(shù)碼管顯示含源碼!? ?DS1302實(shí)時(shí)時(shí)鐘的問(wèn)題,如何用4個(gè)按鍵調(diào)時(shí)呢?? ?單片機(jī)和8255擴(kuò)展16矩形鍵盤(pán)仿真與源程序? ?單片機(jī)-矩陣鍵盤(pán)掃描函數(shù)方便大家直接調(diào)用? ?矩陣鍵盤(pán)+液晶制作的簡(jiǎn)易單片機(jī)計(jì)算器? ?單片機(jī)12864圖形溫度計(jì)仿真ds1302ds18b20矩陣鍵盤(pán)? ?半導(dǎo)體制冷片實(shí)現(xiàn)溫度控制求大神

矩陣鍵盤(pán)的編程方法——讀取鍵值矩陣鍵盤(pán)的使用在單品機(jī)的學(xué)習(xí)當(dāng)中十分廣泛,可是對(duì)于許多新手,包括本人有時(shí)也是搞不明白,昨天晚上和今天早上的思考和同行們的討論,終于有了點(diǎn)頭緒,所以想記錄下讀取鍵盤(pán)的思路。在單片機(jī)的學(xué)習(xí)版中,矩陣鍵盤(pán)通常如下圖設(shè)計(jì):下面就以按下S16鍵來(lái)講解其思路:首先:P3的高位P3.4~P3.7輸出為0,低位P3.0~P3.3輸出為1;即P3=0x0F,當(dāng)按下S16鍵后(有消抖動(dòng)過(guò)程),P3.3的值為0,則P3的值更新為0x07;其次:P3的高位P3.4~P3.7輸出為1,低位P3.0~P3.3輸出為0;即P3=0xF0,當(dāng)按下S16鍵后(有消抖動(dòng)過(guò)程),P3.4的值為0,則P3的值更新為0xE0;最后將兩個(gè)值相加得P3=0xE7;在keyscan()函數(shù)(假設(shè)我們的鍵盤(pán)掃描程序?yàn)閡nsignedcharkeyscan())返回其鍵盤(pán)的值供后續(xù)的程序調(diào)用,通常會(huì)有一個(gè)switch塊根據(jù)其返回值來(lái)確定輸出的是哪一個(gè)數(shù)值。下面提供一段KeilC51語(yǔ)言的代碼來(lái)解釋一下:1. /*------------------------------------------------2. 鍵盤(pán)掃描程序3. ------------------------------------------------*/4. ucharkeyscan(void)//鍵盤(pán)掃描函數(shù),使用行列反轉(zhuǎn)掃描法5. {6. ucharcord_h,cord_l;//行列值中間變量7. P3=0x0f;//行線輸出全為08. cord_h=P3&0x0f;//讀入列線值9. if(cord_h!=0x0f)//先檢測(cè)有無(wú)按鍵按下10. {11. delay(100);//去抖12. if(cord_h!=0x0f)13. {14. cord_h=P3&0x0f;//讀入列線值15. P3=cord_h|0xf0;//輸出當(dāng)前列線值16. cord_l=P3&0xf0;//讀入行線值17. return(cord_h+cord_l);//鍵盤(pán)最后組合碼值18. }19. }20. return(0xff);//返回該值21. }首先把P3的口賦值為0x0f,同時(shí)把P3和0x0f賦值給cord_h(行的數(shù)值),倘若有按鍵按下,那么P3的值就會(huì)改變,隨后cord_h的只也會(huì)隨之變化,經(jīng)過(guò)消抖之后記錄cord_h的值,即cord_h=P3&0x0f;(若以S16為例,那么P3.3的值變?yōu)?,所以cord_h的值就會(huì)變?yōu)?x07;)接下來(lái):P3

溫馨提示

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

評(píng)論

0/150

提交評(píng)論