![第九章MCS-以及鍵盤顯示器接口_第1頁](http://file4.renrendoc.com/view/e53bb5e1ca56fda404a5a3b2f295f137/e53bb5e1ca56fda404a5a3b2f295f1371.gif)
![第九章MCS-以及鍵盤顯示器接口_第2頁](http://file4.renrendoc.com/view/e53bb5e1ca56fda404a5a3b2f295f137/e53bb5e1ca56fda404a5a3b2f295f1372.gif)
![第九章MCS-以及鍵盤顯示器接口_第3頁](http://file4.renrendoc.com/view/e53bb5e1ca56fda404a5a3b2f295f137/e53bb5e1ca56fda404a5a3b2f295f1373.gif)
![第九章MCS-以及鍵盤顯示器接口_第4頁](http://file4.renrendoc.com/view/e53bb5e1ca56fda404a5a3b2f295f137/e53bb5e1ca56fda404a5a3b2f295f1374.gif)
![第九章MCS-以及鍵盤顯示器接口_第5頁](http://file4.renrendoc.com/view/e53bb5e1ca56fda404a5a3b2f295f137/e53bb5e1ca56fda404a5a3b2f295f1375.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第九章MCS-以及鍵盤顯示器接口第9章
MCS-51單片機的人機交互通道(顯示、鍵盤)配置與接口主要內(nèi)容:從工程應(yīng)用角度介紹了MCS-51單片機的交互通道配置與接口,主要包括人機界面中的鍵盤、顯示器等。介紹了多種實用方案和設(shè)計技巧。重點在于系統(tǒng)概念的形成、各種接口設(shè)計方案和設(shè)計技巧的掌握,熟悉各種交互設(shè)備。難點在于使用動態(tài)方法進行鍵盤和顯示的硬件及軟件設(shè)計。
人機界面:是指人與計算機系統(tǒng)進行信息交互的接口,包括信息的輸入和輸出。
9.1MCS-51單片機與鍵盤的接口技術(shù)鍵盤:單片機系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,是人工干預(yù)系統(tǒng)的重要手段。鍵盤的分類:按編碼方式可分為編碼鍵盤與非編碼鍵盤。按鍵組連接方式可分為獨立連接式鍵盤與矩陣連接式鍵盤。
9.1.1概述
鍵盤輸入的主要對象:各種按鍵或開關(guān)。
1.獨立連接式鍵盤
每鍵相互獨立,各自與一條I/O線相連,CPU可直接讀取該I/O線的高/低電平狀態(tài)。其優(yōu)點是硬件、軟件結(jié)構(gòu)簡單,判鍵速度快,使用方便;缺點是占I/O口線多。適用場合:多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)較少的場合。
獨立連接式鍵盤連接圖如右圖所示。當(dāng)沒有鍵被按下時,所有的數(shù)據(jù)輸入線都為高電平;當(dāng)有任意一個鍵被按下時,與之相連的數(shù)據(jù)輸入線將變?yōu)榈碗娖?;通過相應(yīng)指令,可以判斷是否有鍵按下。2.矩陣連接式鍵盤
鍵按矩陣排列,各鍵處于矩陣行/列的結(jié)點處,CPU通過對連在行(列)的I/O線送已知電平的信號,然后讀取列(行)線的狀態(tài)信息。逐線掃描,得出鍵碼。其特點是鍵多時占用I/O口線少,硬件資源利用合理,但判鍵速度慢。適用場合:多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場合。
4行4列矩陣式鍵盤連接圖如右圖所示。這種鍵盤適合采取動態(tài)掃描的方式進行識別。掃描方式:低電平掃描(回送線必須被上拉為高電平)、高電平掃描(回送線需被下拉為低電平)。右圖中給出了低電平掃描的電路。3.薄膜開關(guān)特點:不需要進行導(dǎo)線與開關(guān)間的焊接,結(jié)構(gòu)簡單、體積小、防塵、防水、防有害氣體侵蝕、壽命長、可靠性高。應(yīng)用:與按鍵式鍵盤類似,多個薄膜開關(guān)也可按照獨立式或矩陣式設(shè)計內(nèi)部電路,其原理與普通鍵盤相同。
(1)開關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動??梢圆捎糜布蛙浖煞N方法,硬件方法就是在按鍵輸入通道上添加去抖動電路;軟件方法則采用延遲10~20ms
(2)鍵盤狀態(tài)的監(jiān)測方法——中斷方式還是查詢方式。
(3)鍵盤編碼方法。
(4)鍵盤控制程序的編制。。
9.1.3鍵盤接口
功能:對鍵盤上所按下的鍵進行識別。分類:
(1)編碼鍵盤:采用專用的編碼/譯碼器件,被按下的鍵由該器件譯碼輸出相應(yīng)的鍵碼/鍵值。其特點是增加了硬件開銷,編碼固定,但編程簡單。適用于規(guī)模大的鍵盤。9.1.2使用鍵盤時必須解決的問題
(2)非編碼鍵盤:采用軟件編/譯碼的方式,通過掃描,對每個被按下的鍵判別輸出相應(yīng)的鍵碼/鍵值。其特點是不增加硬件開銷,編碼靈活,但編程較復(fù)雜,占CPU時間。適用于小規(guī)模的鍵盤,特別是單片機系統(tǒng)。鍵盤。
1.鍵盤接口的工作原理
對于矩陣式鍵盤,如上頁圖所示,鍵盤的行線X0~X3通過電阻接+5V,當(dāng)鍵盤上沒有鍵閉合時,所有的掃描線和回送線都斷開,無論掃描線處于何種狀態(tài),回送線都呈高電平。當(dāng)鍵盤上某一鍵閉合時,則該鍵所對應(yīng)的掃描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的鍵閉合。
CPU對鍵盤掃描的方式:程序控制的隨機方式(CPU空閑時掃描鍵盤)、定時控制方式(定時掃描鍵盤)、中斷方式。
CPU對鍵盤上閉合鍵的鍵號確定方法:根據(jù)掃描線和回送線的狀態(tài)計算求得,或根據(jù)行線和列線的狀態(tài)查表求得。
2.鍵輸入程序的設(shè)計方法
(1)判斷鍵盤上是否有鍵閉合;(2)消除鍵的機械抖動;(3)確定閉合鍵的物理位置;(4)得到閉合鍵的編號;(5)確保CPU對鍵的一次閉合只做一次處理3.鍵盤接口方式(1)獨立式鍵盤接口(靜態(tài)方式)特點:結(jié)構(gòu)簡單,每個按鍵接單片機的一條I/O線,通過對輸入線的查詢,可以識別每個按鍵的狀態(tài)。[例題]
在MCS-51單片機系統(tǒng)中,設(shè)計一個含8個按鍵的獨立式鍵盤。解:在MCS-51中,含8個按鍵的獨立式鍵盤的線路連接如下頁圖所示,8個按鍵經(jīng)上拉電阻拉高后分別接到MCS-51單片機P1口的8條I/O線上(P1.0~P1.7)。
在無鍵按下的情況下,P1.0~P1.7線上輸入均為高電平。當(dāng)有鍵按下時,與被按鍵相連的I/O線將得到低電平輸入,其他位按鍵的輸入線上仍維持高電平輸入。
P1口8條I/O線經(jīng)與非門74LS30實現(xiàn)邏輯與非后,再經(jīng)過1個非門74LS04進行信號變換,然后接至MCS-51的INT0引腳上,可通過中斷的方式處理鍵盤。在中斷服務(wù)程序中,先延時20ms消除鍵抖動,再對各鍵進行查詢,找到所按鍵,并轉(zhuǎn)到相應(yīng)的處理程序中去。
主程序如下:
ORG 0000H LJMPMAIN ORG 0003H ;外部中斷0中斷服務(wù)入口地址
LJMP INT ;轉(zhuǎn)中斷服務(wù)
ORG 0100H MAIN: SETB EA ;開總中斷允許
SETB EX0 ;開INT0中斷
SETB IT0 ;下降沿有效
……中斷服務(wù)程序清單如下:
INT: LCALLD20ms ;延時去抖動
MOV P1,#0FFH ;P1口送全1值
MOV A,P1 ;讀P1口各引腳
CJNE A,#0FFH,CLOSE ;驗證是否確實有鍵閉合
AJMP OUT ;無鍵按下
CLOSE:JNB ACC.7,KEY7 ;查詢7號鍵
JNB ACC.6,KEY6 ;查詢6號鍵
JNB ACC.5,KEY5 ;查詢5號鍵
JNB ACC.4,KEY4 ;查詢4號鍵
JNB ACC.3,KEY3 ;查詢3號鍵
JNB ACC.2,KEY2 ;查詢2號鍵
JNB ACC.1,KEY1 ;查詢1號鍵
JNB ACC.0,KEY0 ;查詢0號鍵
OUT: LJMPINTRETKEY7: …… ;7號鍵處理程序
KEY71: MOV A,P1 ;再讀P1口各引腳
JNBACC.7,KEY71 ;確認(rèn)鍵是否釋放
LJMPINTRETKEY6: …… ;其他鍵處理程序
…… KEY0:……..……..INTRET:RETID20ms: 略…… ;20ms延時子程序
…… END
(2)矩陣式鍵盤接口——行反轉(zhuǎn)法
矩陣式鍵盤按鍵識別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個雙向I/O口分別接行、列線。步驟如下:(1)由行線輸出全“1”,讀入列線,判有無鍵按下。(2)若有鍵按下,再將讀入的列線值輸出,讀入行線的值。(3)第一步讀進的列線值與第二步讀進的行線值運算,從而得到代表此鍵的唯一的特征值。行反轉(zhuǎn)法因輸入與輸出線反過來用而得名。優(yōu)點是判鍵速度快,兩次即可。[例題]請為8051微處理器設(shè)計一個由4行4列鍵陣構(gòu)成的鍵盤。解:4×4矩陣鍵盤的線路連接如下頁圖所示。其中P2口的低4位作為輸出線。P1口的低4位作為輸入線,輸入線通過74LS21進行邏輯相與后作為8051的一個外部中斷源輸入。當(dāng)有鍵按下時就將引起中斷。中斷服務(wù)程序要對所按的鍵進行判別。(1)查詢閉合鍵的位置子程序KEYR
KEYR子程序用以確定每組線中哪一位為0,是否有多個0。在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器A中。KEYR子程序返回時,某組線中0的位置(0~3)保存在R3中。按鍵閉合引起中斷后,執(zhí)行中斷服務(wù)程序。KEYR子程序如下:
KEYR: CJNE A,#0EH,TESTP11 ;測試P1.0 MOV R3,#0 ;P1.0=0,說明被按鍵的輸入線為P1.0 LJMP FINISH ;返回
TESTP11: CJNE A,#0DH,TESTP12 ;測試P1.1 MOV R3,#1 LJMP FINISHTESTP12: CJNE A,#0BH,TESTP13 ;測試P1.2 MOV R3,#2 LJMP FINISHTESTP13: CJNE A,#07H,FINISH ;測試P1.3 MOV R3,#3FINISH: RET
(2)中斷服務(wù)程序
中斷服務(wù)程序開始部分應(yīng)利用軟件延時消除鍵抖動,然后再對所按的鍵做出處理。中斷服務(wù)程序如下:
ORG1000H INT11:LCALLDELAY;延時去抖動
MOV A,P1 ;讀輸入線
ANL A,#0FH;判斷是否有鍵閉合
CJNE A,#0FH,TEST ;有鍵閉合,轉(zhuǎn)判斷按鍵程序
LJMPINTRET ;無鍵閉合,返回
TEST:MOV B,A ;暫存
LCALLKEYR;調(diào)用讀取子程序,得到按下的行號
MOV40H,R3 ;行號暫存在40H單元
MOVP2,#0FFH ;輸出線寫1 MOVP1,B ;輸入線寫入數(shù)據(jù)
MOVA,P2 ;讀輸出線
LCALLKEYR ;調(diào)用讀取子程序,得按下的列號
XCH A,R3;列號交換到A中 SWAPA;列號交換到A的高4位 ORL40H,A ;得按鍵特征值高4位是列號,低4位是行號
INTRET:RETI (3)去抖動的延時子程序DELAY
利用CPU的空閑方式,通過定時器T1實現(xiàn)延時,T1必須預(yù)先置初值,以得到需要的延遲時間。設(shè)晶振頻率為6MHz,欲延時20ms,定時時間為:(216-TC)×12/6=20×103μs,初值:TC=55536=D8F0H。程序如下:
DELAY: MOV TOMD,#11H ;方式1定時
MOV TL1,#0F0H ;定時器1定時初值
MOV TH1,#0D8H SETB ET1 ;開定時器1中斷
SETB PT1 ;定時器1為高級中斷(因被鍵盤中斷調(diào)用)
SETB EA ;開中斷SETB TR1 ;啟動定時器ORL PCON,#1 ;啟動空閑方式,實際CPU在此處等待
CLR TR1;以下四條指令只有在延時后,定時器喚醒,才能執(zhí)行
CLR PT1 CLR ET1 RET END
行反轉(zhuǎn)法適用于擴展鍵陣。而動態(tài)掃描法不僅可以掃描鍵陣,也可以實現(xiàn)顯示,應(yīng)用較廣泛。動態(tài)掃描法原理:采用輸出“移動”信號,輪流對各行按鍵進行檢測來實現(xiàn)的。設(shè)置行線為輸出,列線為輸入,當(dāng)無按鍵按下時,列輸入全為“1”。設(shè)計時,將某一行輸出為“0”,讀取列線值,若其中某一位為“0”,則表明行、列交叉點處的按鍵被按下,否則無按鍵按下;繼續(xù)掃描下一行(將下一行輸出為“0”),直至全掃描完為止。
[例題]
用8155實現(xiàn)4行8列的32鍵鍵盤接口。解:電路如下頁圖所示,8155的PA設(shè)定為輸出口,稱其為掃描線。PC3~PC0設(shè)定為輸入口,稱其為回送線。8155與MCS-51單片機的接口略,設(shè)PA口的端口地址為7F00H,PC口的端口地址為7F02H。
(3)矩陣式鍵盤接口動態(tài)掃描法鍵值編碼形式:回送線PC0,PC1,PC2,PC3上的鍵值(每條回送線上有8個鍵,順序從左到右)分別為00H+(00H~07H)、08H+(00H~07H)、10H+(00H~07H)、18H+(00H~07H)。其中,(00H~07H)的具體內(nèi)容由掃描線決定,存放在R4中。(1)掃描是否有鍵按下子程序KEY1,回掃線的值存放在A中。程序如下:
ORG1000HKEY1:MOVDPTR,#7F00H;將PA口地址送DPTR,PA口作為掃描線
MOVA,#00H ;所有掃描線均為低電平
MOVX@DPTR,A ;PA口向列線輸出00H INCDPTR INCDPTR ;指向PC口
MOVXA,@DPTR ;取回送線狀態(tài)
CPLA ;行線狀態(tài)取反
ANLA,#0FH ;屏蔽A的高半字節(jié)
RET ;返回(2)判斷是否有鍵按下子程序KEY,如果有,識別按鍵的鍵碼。其中DELAY1是延時子程序。程序如下:
KEY:ACALLKEY1 ;檢查有鍵閉合否
JNZLKEY1 ;A非0說明有鍵按下
ACALLDELAY1 ;執(zhí)行一次延時子程序(延時6ms)
AJMPKEY LKEY1:ACALLDELAY1 ACALLDELAY1 ;有鍵閉合延時2×6ms=12ms以去抖動
ACALLKEY1 ;延時以后再檢查是否有鍵閉合
JNZLKEY2 ;有鍵閉合,轉(zhuǎn)LKEY2 ACALLDELAY1 ;無鍵閉合,說明是干擾信號,不作處理
AJMPKEY ;延時6ms后轉(zhuǎn)KEY繼續(xù)等待鍵入
LKEY2:MOVR2,#0FEH ;掃描初值送R2,設(shè)定PA0為當(dāng)前掃描線
MOVR4,#00H ;回送初值送R4LKEY4:MOVDPTR,#7F00H ;指向PA口
MOVA,R2 MOVX@DPTR,A ;掃描初值送PA口
INCDPTR INCDPTR ;指向PC口
MOVA,@DPTR ;取回送線狀態(tài)
JBACC.0,LONE ;ACC.0=1,第0行無鍵閉合,轉(zhuǎn)LONE MOVA,#00H ;裝第0行行值
AJMPLKEYP ;轉(zhuǎn)計算鍵碼
LONE:JBACC.1,LTWO ;ACC.1=1,第1行無鍵閉合,轉(zhuǎn)LTWO
MOVA,#08H ;裝第1行行值
AJMPLKEYP ;轉(zhuǎn)計算鍵碼
LTWO:JBACC.2,LTHR ;ACC.2=1,第2行無鍵閉合,轉(zhuǎn)LTHR MOVA,#10H ;裝第2行行值
AJMPLKEYP LTHR:JBACC.3,NEXT ;ACC.3=1,第3行無鍵閉合,轉(zhuǎn)NEXT MOVA,#18H ;裝第3行行值
LKEYP:ADDA,R4 ;計算鍵碼
PUSHACC ;保存鍵碼
LKEY3:ACALLDELAY1 ;延時6ms ACALLKEY1 ;判斷鍵是否繼續(xù)閉合,若閉合再延時
JNZLKEY3 POPACC ;若鍵釋放,則鍵碼送A RET NEXT:INCR4 ;列號加1 MOVA,R2 JNBACC.7,KND ;第7位為0,已掃描到最高列,轉(zhuǎn)KND RLA ;循環(huán)右移一位
MOVR2,A AJMPLKEY4 ;進行下一列掃描
KND:AJMPKEY ;掃描完畢,開始新的一輪
DELAY1: ······ ;延時子程序,略
END
其中,P1.0和P1.1作為行線。鍵盤的編碼為:P1.0線上的8個鍵分別為00H+(00H~07H),P1.1線上的8個鍵分別為08H+(00H~07H)。掃描線(00H~07H)的具體值存放在R4中。程序采取查詢方式讀取鍵號,并且考慮了鍵的抖動問題。DLY1是延時子程序。
程序如下:
ORG1000H SERKEY:MOVSCON,#00H ;設(shè)置串行口
MOVA,#00H ;鍵盤初始化,送00H到列線上
LCALLVARTO ;發(fā)送數(shù)據(jù)
CHK:JNBP1.0,CHK0 ;檢查是否有鍵按下
JNBP1.1,CHK0 ;檢查是否有鍵按下
AJMPCHK ;無鍵按下,繼續(xù)查找
CHK0:LCALLDLY1 ;調(diào)用10ms延時子程序,去抖
JNBP1.0,CHEN ;確實有鍵按下,轉(zhuǎn)CHEN JNBP1.1,CHEN AJMPCHK
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 進口委托代理合同
- 設(shè)計師聘用合同書
- 美容師聘用標(biāo)準(zhǔn)合同年
- 種苗采購的合同范本
- 互動儀式鏈視角下輪崗教師專業(yè)引領(lǐng)的困境與破解
- 青春期父母預(yù)備手冊-隨筆
- 2025年湘教新版必修1物理下冊月考試卷含答案
- 2025年外研版三年級起點九年級歷史下冊階段測試試卷含答案
- 智能客服系統(tǒng)合作開發(fā)合同(2篇)
- 2025年外研版三年級起點九年級地理上冊階段測試試卷
- 四年級四年級下冊閱讀理解20篇(附帶答案解析)經(jīng)典
- 大連高新區(qū)整體發(fā)展戰(zhàn)略規(guī)劃(產(chǎn)業(yè)及功能布局)
- 國有資產(chǎn)管理法律責(zé)任與風(fēng)險防控
- 未婚生子的分手協(xié)議書
- 變更監(jiān)事章程修正案范例
- 北京小客車指標(biāo)租賃協(xié)議五篇
- 輸液室運用PDCA降低靜脈輸液患者外滲的發(fā)生率品管圈(QCC)活動成果
- YY/T 0681.2-2010無菌醫(yī)療器械包裝試驗方法第2部分:軟性屏障材料的密封強度
- 煙氣管道阻力計算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務(wù)迎接重大節(jié)日、活動的保障措施
- 醫(yī)院-9S管理共88張課件
評論
0/150
提交評論