![單片機(jī)原理與接口技術(shù):第8章 鍵盤接口_第1頁](http://file4.renrendoc.com/view12/M0B/0F/07/wKhkGWX1qGqALVoiAAEJ90EC8kU431.jpg)
![單片機(jī)原理與接口技術(shù):第8章 鍵盤接口_第2頁](http://file4.renrendoc.com/view12/M0B/0F/07/wKhkGWX1qGqALVoiAAEJ90EC8kU4312.jpg)
![單片機(jī)原理與接口技術(shù):第8章 鍵盤接口_第3頁](http://file4.renrendoc.com/view12/M0B/0F/07/wKhkGWX1qGqALVoiAAEJ90EC8kU4313.jpg)
![單片機(jī)原理與接口技術(shù):第8章 鍵盤接口_第4頁](http://file4.renrendoc.com/view12/M0B/0F/07/wKhkGWX1qGqALVoiAAEJ90EC8kU4314.jpg)
![單片機(jī)原理與接口技術(shù):第8章 鍵盤接口_第5頁](http://file4.renrendoc.com/view12/M0B/0F/07/wKhkGWX1qGqALVoiAAEJ90EC8kU4315.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第8章數(shù)碼顯示和鍵盤接口8.1數(shù)碼顯示8.2鍵盤接口8.2鍵盤接口鍵盤是計(jì)算機(jī)不可缺少的輸入設(shè)備,用戶可通過鍵盤向單片機(jī)系統(tǒng)輸入指令和數(shù)據(jù)等,是實(shí)現(xiàn)人機(jī)對話的樞紐。8.2.1鍵盤的工作原理1.按鍵輸入的特點(diǎn)
鍵盤實(shí)質(zhì)上是一組按鍵開關(guān)的組合。通常使用的是機(jī)械彈性開關(guān),利用機(jī)械觸電的通斷,實(shí)現(xiàn)按下時(shí)開關(guān)導(dǎo)通,釋放時(shí)開關(guān)斷開的功能。按鍵觸點(diǎn)的一端和單片機(jī)的I/O端口引腳連接,另一端與電壓信號相連,觸點(diǎn)的通斷即可引起端口引腳上的電壓變化,單片機(jī)通過程序讀入I/O端口引腳電平信號便可判斷按鍵的狀態(tài)。如圖1所示。圖1.按鍵當(dāng)開關(guān)S未被按下時(shí),P1.7輸入為高電平,S閉合后,P1.7輸入為低電平。但由于機(jī)械觸點(diǎn)的彈性作用及電壓突跳等原因,在觸點(diǎn)閉合與斷開的瞬間,會出現(xiàn)電壓抖動,如圖2所示波形。圖2.
按鍵閉合和斷開時(shí)的抖動
抖動時(shí)間長短與開關(guān)的機(jī)械特性有關(guān),一般為5~10ms。這種抖動對于人來說是感覺不到的,但對計(jì)算機(jī)來說,則是完全可以感應(yīng)到的,因?yàn)閱纹瑱C(jī)處理的速度是在微秒級。在實(shí)際工作中,按鍵有時(shí)靈,有時(shí)不靈,實(shí)際上可能是這個(gè)因素引起的,你只按了一次按鍵,可是計(jì)算機(jī)卻已執(zhí)行了好幾次任務(wù)。按鍵的穩(wěn)定閉合期,由操作人員的按鍵動作所決定,一般為十分之幾秒到幾秒不等。2.按鍵抖動的處理措施(去抖動處理)為了能夠使CPU能正確地讀出與按鍵相連的I/O端口的狀態(tài),并對每一次按鍵只作一次鍵輸入處理,就必須去除抖動影響。常用的去抖動方法有兩種:硬件方法和軟件方法。1)濾波消除抖動這種電路是利用RC電路的充放電特性,通過調(diào)整RC的值選擇合適的時(shí)間常數(shù),將按鍵抖動信號消除。適用于按鍵數(shù)目較少的情況下。2).軟件消抖
在按鍵數(shù)目較多的情況下一般采用軟件延時(shí)的方法,即在單片機(jī)獲得某I/O端口為低的信息后,不是立即認(rèn)定按鍵已被按下,而是延時(shí)10~20ms時(shí)間后再次檢測該端口,如果仍為低,說明按鍵的確按下了,避開了按鍵按下時(shí)的抖動時(shí)間。并且在檢測到按鍵釋放后(I/O端口為高)再延時(shí)10~20ms,消除后沿的抖動,然后再對鍵值處理。
當(dāng)然,實(shí)際應(yīng)用中,對按鍵的要求也是千差萬別,要根據(jù)不同的需要來編制處理程序。8.2.2獨(dú)立式鍵盤及其接口程序1.獨(dú)立式鍵盤接口獨(dú)立式按鍵是指直接用I/O口線構(gòu)成的單個(gè)按鍵電路。每個(gè)獨(dú)立式按鍵單獨(dú)占有一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會影響其他I/O口線上的工作狀態(tài)。最簡單的獨(dú)立式鍵盤結(jié)構(gòu)如圖3(a)所示,每個(gè)按鍵的輸出連接到單片機(jī)的某個(gè)端口引腳上,當(dāng)某個(gè)按鍵按下時(shí),對應(yīng)的輸出為0,斷開時(shí)輸出為1.按鍵可以采用循環(huán)或定時(shí)查詢的方式進(jìn)行檢測,也可以采用中斷方式檢測。(a)查詢方式(b).中斷方式圖3.獨(dú)立式鍵盤接口電路圖3中(a)為查詢方式的獨(dú)立式按鍵電路,通過I/O口連接,將每個(gè)按鍵的一端接到單片機(jī)的I/O口,另一端接地,這是最簡單的方法。圖中3個(gè)按鍵分別與P1.2~P1.0相連。對于這種按鍵程序可以采用不斷查詢的方法,功能就是:檢測是否有鍵閉合,如有鍵閉合,則P1.2~P1.0有一只引腳為低電平,否則全為高電平;然后延時(shí)去抖動,判斷鍵號并轉(zhuǎn)入相應(yīng)的鍵處理程序。圖中(b)為采用中斷方式的獨(dú)立式按鍵電路。各個(gè)按鍵都接到一個(gè)與門上,當(dāng)有任何一個(gè)按鍵按下時(shí),都會使與門輸出為低電平,從而引起單片機(jī)的中斷,它的優(yōu)點(diǎn)在于不用在主程序中反復(fù)查詢按鍵,而等到有鍵按下,單片機(jī)才去執(zhí)行相應(yīng)的鍵處理程序。通常按鍵輸入都采用低電平有效,圖中上拉電阻保證了按鍵斷開時(shí),I/O口有確定的高電平。如I/O口內(nèi)部有上拉電阻時(shí),外電路可以不配置上拉電阻。2.獨(dú)立式按鍵的軟件實(shí)現(xiàn)我們以查詢方式(a)為例介紹其軟件實(shí)現(xiàn)方法,為簡便說明起見,我們暫不考慮軟件去抖動措施,其程序?qū)崿F(xiàn)清單如下:
START:MOV A,#07H ;置輸入方式
MOVP1,ALOOP:MOVA,P1 ;讀入鍵盤狀態(tài)
ANLA,#07H CJNEA,#07H,L0 ;是否有鍵按下?
SJMPLOOP ;無鍵按下等待L0: …
;延時(shí)去抖動(省略),確實(shí)有鍵按下
MOVDPTR,#TAB ;送跳轉(zhuǎn)表首地址
CPLA ;輸入取反
RLA ;乘2,得表偏移量L1: …
;調(diào)用延時(shí)程序,鍵釋放(省略)
JMP @A+DPTRTAB:AJMP PRO0 ;入口地址表
AJMP PRO1 AJMP PRO2
PRO0:… LJMP START ;0號鍵執(zhí)行完返回
PRO1:…
LJMP START ;1號鍵執(zhí)行完返回
PRO2:… LJMP START ;2號鍵執(zhí)行完返回獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時(shí),浪費(fèi)較大,此一般適用于按鍵數(shù)量不多的情況。8.2.3行列式鍵盤(也稱矩陣式鍵盤)接口設(shè)計(jì)1.行列式鍵盤工作原理
在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖4所示行列式鍵盤,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,本來一個(gè)端口(如P1口)最多只有8個(gè)按鍵,現(xiàn)在就可以構(gòu)成4×4=16個(gè)按鍵,比它直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯。由此可見,在需要的鍵數(shù)比較多時(shí),可采用行列式法來做鍵盤。圖4.行列式鍵盤接口入出行行列式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,圖4所示接口電路由8051的P1口高、低4位構(gòu)成4×4行列矩陣鍵盤。鍵盤的列線一端通過電阻接正電源,另一端接單片機(jī)的輸入口線;行線的一端接單片機(jī)的輸出口線,另一端懸空。故P1.7~P1.4作為鍵盤掃描輸入口線;P1.3~P1.0為鍵盤的輸出口線。只有某按鍵被按下時(shí)的相應(yīng)行線和列線才會接通。2.按鍵識別方法(列掃描法)先判定是否有鍵按下,所有的輸出口向列線輸出低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。結(jié)合圖4所示,檢測的方法是P1.0~P1.3輸出全“0”,讀取P1.4~P1.7的狀態(tài),若P1.4~P1.7為全“1”,則無鍵閉合,否則有鍵閉合。然后判斷按鍵的位置,如果有鍵按下,被按鍵處的行線和列線被接通,使穿過閉合鍵的那條行線變?yōu)榈碗娖健7椒ㄊ菍︽I盤的列線進(jìn)行掃描。P1.0~P1.3按下述4種組合依次輸出:P1.31110P1.21101P1.11011P1.00111然后測試行線狀態(tài)中是否有低電平。在每組列輸出時(shí)讀取P1.4~P1.7,若全為“1”,則表示這一列沒有鍵閉合,否則有鍵閉合,再查詢具體是哪一行為“0”。由此得到閉合鍵的行值和列值,然后可采用計(jì)算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值。根據(jù)得到的行值,可以知道該行的行首鍵號,則可求閉合鍵的鍵號:
閉合鍵的鍵號=行首鍵號+列值求得鍵號后,就可以利用查表指令求得閉合鍵的鍵值了,則就轉(zhuǎn)入相應(yīng)的處理程序。4×4鍵盤的行首鍵號分別為:00H、04H、08H、12H
列值為00H、01H、02H、03H輸出口線輸入口線按鍵識別程序由判斷有無按鍵按下程序段、按鍵掃描程序段及求鍵值程序段等三部分組成。其流程圖如圖5所示。若無鍵按下,則返回主程序;若有鍵按下,則CPU通過列掃描獲得被按鍵的行首鍵號和列值,并經(jīng)過查鍵值表得到被按鍵的鍵值,最后返回主程序。在行列式鍵盤中,也要考慮去抖動問題。圖5例:4×8鍵盤,結(jié)合數(shù)碼顯示,當(dāng)按下某個(gè)按鍵時(shí),在數(shù)碼管上顯示出該被按鍵的鍵號。其列線控制口地址為:0FFDDH;行線控制口地址:0FFDEH程序如下:ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOVA,#00HMOV30H,AMOVA,#00HMOV31H,AMOVA,#10HMOV32H,AMOVA,#10HMOV33H,A
MOVA,#10HMOV34H,AMOVA,#10HMOV35H,A;數(shù)據(jù)緩沖區(qū)30H-35H中先存放0、0、-、-、-
MOVR0,#30H;無按鍵按下時(shí),數(shù)碼管顯示0、0、-、-、-MOVR1,#01HMOVR2,#06HLOOP:LCALLAJLCALLXSLJMPLOOPAJ:MOVA,#00HMOVDPTR,#0FFDDHMOVX@DPTR,AMOVDPTR,#0FFDEHMOVXA,@DPTRCJNEA,#0FH,KEYSCANSJMPAJOUTKEYSCAN:MOVR5,#0FEHMOVR6,#00HAJKS:MOVA,R5MOVDPTR,#0FFDDHMOVX@DPTR,AMOVDPTR,#0FFDEHMOVXA,@DPTRANLA,#00001111BCJNEA,#OFH,AJCLMOVA,R5RLAMOVR5,AINCR6LJMPAJKSAJCL:CJNEA,#00000001B,AJNEMOVA,#00HADDA,R6LJMPAJNE3AJNE:CJNEA,#00000010B,AJNE1MOVA,#08HADDA,R6LJMPAJNE3AJNE1:CJNEA,#00000100B,AJNE2MOVA,#10HADDA,R6LJMPAJNE3AJNE2:CJNEA,#00001000B,AJNE3MOVA,#18HADDA,R6AJNE3:MOVB,#10DDIVABMOV31H,AMOVA,BMOV30H,ALJMPAJOUTAJOUT:RETXS:MOVDPTR,#TAB;顯示鍵號
MOVA,@R0MOVCA,@A+DPTRMOVDPTR,#0FFDCHMOVX@DPTR,AMOVA,R1MOVDPTR,#0FFDDHMOVX@DPTR,AINCR0
MOVA,R1RLAMOVR1,ALCALLDELAYDJNZR2,XSOUTMOVR0,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年人居住的小戶型公寓設(shè)計(jì)要點(diǎn)
- DB35T 2240-2024公共數(shù)據(jù)清洗技術(shù)要求
- 二手房轉(zhuǎn)讓合同樣本大全
- 中外雙向投資合同
- 專業(yè)派遣人員勞務(wù)合同范本
- 上海市設(shè)備采購合同模版
- 不動產(chǎn)附條件贈與合同協(xié)議書
- 個(gè)人借款延期還款合同模板
- 個(gè)人房產(chǎn)互換合同
- 乳制品購銷合同-牛奶供應(yīng)合同-奶粉銷售協(xié)議
- SWITCH暗黑破壞神3超級金手指修改 版本號:2.7.6.90885
- 2023高考語文全國甲卷詩歌閱讀題晁補(bǔ)之《臨江仙 身外閑愁空滿眼》講評課件
- 數(shù)字營銷廣告技術(shù)行業(yè)rta巨量引擎實(shí)時(shí)接口
- 化工企業(yè)靜電安全檢查規(guī)程
- 線性系統(tǒng)理論鄭大鐘第二版
- 寧騷公共政策學(xué)完整版筆記
- 項(xiàng)目負(fù)責(zé)人考試題庫含答案
- GB/T 7251.5-2017低壓成套開關(guān)設(shè)備和控制設(shè)備第5部分:公用電網(wǎng)電力配電成套設(shè)備
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- 勇者斗惡龍9(DQ9)全任務(wù)攻略
- 經(jīng)顱磁刺激的基礎(chǔ)知識及臨床應(yīng)用參考教學(xué)課件
評論
0/150
提交評論