鍵盤接口技術(shù)說課材料_第1頁
鍵盤接口技術(shù)說課材料_第2頁
鍵盤接口技術(shù)說課材料_第3頁
鍵盤接口技術(shù)說課材料_第4頁
鍵盤接口技術(shù)說課材料_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 鍵盤接口技術(shù)第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 鍵按下前沿抖動(dòng)鍵穩(wěn)定后沿抖動(dòng)圖8-2 鍵閉合及斷開時(shí)的電壓抖動(dòng)第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 綜上所述,對(duì)于非編碼鍵盤,按鍵處理程序應(yīng)具有如下四個(gè)功能: (1) 判斷鍵盤上有無鍵按下。 (2) 去除鍵的機(jī)械抖動(dòng)。 (3) 求按下鍵的鍵碼。 (4) 閉合一次,只進(jìn)行一次鍵功能操作。8.1.2 單片機(jī)對(duì)非編碼鍵盤的控制方式 1. 查詢方式 這種方式是指在單片機(jī)完成其它工作后的空余時(shí)間,調(diào)用鍵盤掃描子程序,來響應(yīng)

2、鍵盤輸入的要求,在執(zhí)行鍵功能程序時(shí),CPU不再響應(yīng)鍵輸入要求。 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 例8.1 用查詢法按圖8-1讀取行列鍵盤鍵碼,并將鍵碼存入內(nèi)部RAM 32H單元。 圖中P1.4P1.7用于控制行線,P1.0P1.3用于控制列線。行、列線通過上拉電阻接+5 V,沒有鍵按下時(shí),被鉗在高電平狀態(tài)。通過發(fā)送掃描字確定鍵碼,具體方法如下: (1) 由列線輸出0,然后讀入P1口的值存入內(nèi)部RAM 30H單元。第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) (2) 由行線輸出0,然后讀入P1口的值存入內(nèi)部RAM 31H單元。 (3)

3、 把30H的低4位與31H的高4位的值相加存入累加器A。 (4) 最后判斷累加器A的值,如果累加器A的數(shù)據(jù)全為1,說明無鍵按下,否則說明有鍵按下,且累加器A的數(shù)據(jù)就是被按下鍵的鍵值(程序中對(duì)累加器A取反,目的是用JNZ指令判斷是否有鍵按下)。如圖中圓圈所指鍵的鍵值為10111110B。第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 鍵掃描程序如下:BOAD:LCALL BOADD JNZ BOAD1 ;無鍵按下轉(zhuǎn)BOAD LCALL DELAY ;調(diào)延時(shí)子程序 AJMP BOAD ;繼續(xù)掃描鍵盤BOAD1:LCALL DELAY ;消除鍵抖動(dòng)(延時(shí)子程序略) LCALL

4、BOADD ;確認(rèn)是否有鍵按下 JNZ BOAD2 LCALL DELAY SJMP BOAD ;轉(zhuǎn)鍵掃描第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) BOAD2:CPL A MOV 32H,A ;取鍵值BOAD3:LCALL DELAY LCALL BOADD JNZ BOAD3 ;等待鍵松開 B2:RET ;返回 ;獲取鍵值子程序第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) BOADD:MOV P1,#0FH ;置行線為0 MOV A,P1 MOV 30H,A MOV P1,#0F0H ;置列線為0 MOV A,P1 MOV 31H,A AN

5、L 30H,#0FH ;取列值第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) MOV A,30H ANL 31H,#0F0H ;取行值 ADD A,31H ;行值加列值 CPL A ;A全0無鍵按下 RET 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 2. 定時(shí)掃描工作方式 定時(shí)掃描工作方式是利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生定時(shí)中斷,CPU響應(yīng)中斷后對(duì)鍵盤進(jìn)行掃描,當(dāng)有鍵按下時(shí),轉(zhuǎn)入鍵功能的處理程序。 定時(shí)掃描在本質(zhì)上是中斷方式,只不過是定時(shí)掃描鍵盤,以中斷的方式處理鍵盤,它的硬件電路與編程掃描工作方式相同。 3. 中斷工作方式 單片機(jī)應(yīng)用系統(tǒng)工作時(shí),并

6、不經(jīng)常需要鍵輸入。因此,無論是編程工作方式或是定時(shí)工作方式,CPU經(jīng)常處于空掃描狀態(tài)。 圖8-3是AT89C51利用中斷掃描方式實(shí)現(xiàn)的一個(gè)28矩陣式鍵盤的硬件接口電路。 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0AT89C510INT1INTS9S1S10S2S11S3S12S4S13S5S14S6S15S7S16S85 V圖8-3 利用中斷擴(kuò)展28鍵盤電路圖第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 通過前面的原理分析可知,完成鍵盤管理的程序主要有主程序和中斷服務(wù)程序,主程序

7、主要完成初始化和鍵值處理任務(wù),中斷服務(wù)程序主要完成鍵盤掃描和鍵值讀入任務(wù)。對(duì)應(yīng)的程序流程圖如圖8-4所示(INT1中斷流程圖與INT0類似,略)。 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 程序如下: ORG 0000H LJMP BEGIN ;轉(zhuǎn)主程序 ORG 0003H LJMP WZD0 ;轉(zhuǎn)外中斷0程序 ORG 0013H LJMP WZD1 ;轉(zhuǎn)外中斷1程序第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) BEGIN:ORG 0100H MOV SP,#60H ;設(shè)置堆棧 MOV R1,#00H ;R1存放鍵值 SETB IT1 ;設(shè)I

8、NT0、INT1為邊沿觸發(fā) SETB IT0 SETB EA ;開中斷 SETB EX0 SETB EX1MOV P1,#00H第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 鍵值處理程序(略)其它主程序(略) WZD0:PUSH PSW ;保護(hù)現(xiàn)場 PUSH A CLR EX0 ;關(guān)中斷INT0LCALL DELAY ;調(diào)延時(shí)程序去抖動(dòng) JNB P3.2,WZD01 ;再次確認(rèn)是INT0中斷嗎第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) SETB EX0 ;不是,則恢復(fù)現(xiàn)場退出中斷 POP A POP PSW RETIWZD01:MOV A,#0

9、1H ;置S1鍵的鍵值為1MOV P1,#0FEH ;掃描P1.0 JNB P3.2,KEYR1 ;是S1鍵則轉(zhuǎn)移第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) INC A ;不是S1鍵,鍵值加1 MOV P1,#0FDH ;掃描P1.1,以下同P1.0類似 JNB P3.2,KEYR1 INC A MOV P1,#0FBH JNB P3.2,KEYR1 INC A MOV P1,#0F7H JNB P3.2,KEYR1 INC A第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) MOV P1,#0EFH JNB P3.2,KEYR1 INC A MO

10、V P1,#0DFH JNB P3.2,KEYR1 INC A MOV P1,#0BFH JNB P3.2,KEYR1 INC A MOV P1,#7FH第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) JNB P3.2,KEYR1 LJMP KEYR2KEYR1:MOV R1,A ;將鍵值存入R1中KEYR2:CLR IE0 ;清中斷標(biāo)志(因掃描中可能使IE0置位)SETB EX0 ;開中斷INT0 POP A ;恢復(fù)現(xiàn)場 POP PSW RETI ;中斷返回WZD1:;外中斷1程序與中斷0相似(略) DELAY:;延時(shí)程序(略)第第8 8章章 AT89C51AT89C5

11、1系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 開 始設(shè)置堆棧SP為邊沿觸發(fā)設(shè)置 INT1 INT0、開中斷鍵值處理等待中斷中斷 INT0保護(hù)現(xiàn)場INT0關(guān)中斷? INT0中斷嗎是S1鍵嗎 ?是S2鍵嗎 ?讀入S1鍵值讀入S2鍵值是S8鍵嗎 ?讀入S8鍵值開中斷,恢復(fù)現(xiàn)場中斷返回(a)(b)YYYYNNNN圖8-4 中斷方式擴(kuò)展鍵盤流程圖(a) 主程序流程圖;(b) INT0中斷服務(wù)程序流程圖第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 8.2 LED顯示器接口技術(shù)顯示器接口技術(shù) 8.2.1 LED顯示器的結(jié)構(gòu)原理 LED顯示器用發(fā)光二極管顯示字段,分為共陰極和共陽極兩種。圖8-5給出了八

12、段LED數(shù)碼顯示器的結(jié)構(gòu)圖和原理圖。圖8-5(a)是八段共陰極LED顯示器,它將八個(gè)發(fā)光二極管陰極共地。當(dāng)某發(fā)光二極管要點(diǎn)亮?xí)r,只需在該發(fā)光二極管的陽極加高電平即可。圖8-5(b)是八段共陽極LED顯示器,它的操作與共陰極相反。LED顯示器也有七段的,它只比八段LED少一只發(fā)光二極管DP,其它結(jié)構(gòu)與八段LED完全相同。 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) dpcabdefgdpcabdefg5 Vadgfbceg fGND a bed GND c dp(a)(b)(c)圖8-5 七段LED顯示器(a) 共陰性;(b) 共陽性;(c) 管腳配置第第8 8章章 A

13、T89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) dpgfedcbaD7D6D5D4D3D2D1D0圖8-6 字形碼數(shù)據(jù)格式表8-1 共陰極LED數(shù)碼管字形碼表字形碼3F065B4F666D7D077F6F顯示字符0123456789第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 8.2.2 LED顯示器的顯示方式 1靜態(tài)顯示方式 在靜態(tài)顯示方式中,各位的共陰或共陽極連接在一起接地或接+5 V,每位的段選線(adp)與一個(gè)8位并行口相連。如圖8-7所示,它是一個(gè)4位的靜態(tài)顯示電路,之所以稱之為靜態(tài)顯示電路,是由于顯示器的各位相互獨(dú)立,而且各位的顯示字符一經(jīng)確定,相應(yīng)的輸

14、出將維持不變,直到顯示另一個(gè)字符為止。 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) I/O(1)badcfedpgI/O(2)badcfedpgI/O(3)badcfedpgI/O(4)G/VCCG/VCCG/VCCG/VCCGND/5 Vbadcfedpg圖8-7 4位LED靜態(tài)顯示電路圖第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 2. 動(dòng)態(tài)方式 為了克服靜態(tài)顯示方式的缺點(diǎn),節(jié)省I/O口線,人們常常使用動(dòng)態(tài)顯示方式。它將所有數(shù)碼管的a、b、c、d、e、f、g、sp引線并聯(lián)在一起,由一個(gè)8位I/O口控制,而公共端由另一個(gè)I/O口控制。應(yīng)用時(shí),

15、輪流送入每個(gè)LED的字形碼與位選碼,利用人的視覺暫留現(xiàn)象來顯示各位的字符。圖8-8是一個(gè)8位LED動(dòng)態(tài)顯示電路圖. 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) badcfedpgbadcfedpgbadcfedpgbadcfedpgbadcfedpgbadcfedpgbadcfedpgbadcfedpgD7D6D5D4D3D2D1D0I/O(2)I/O(1)圖8-8 8位LED動(dòng)態(tài)顯示電路圖第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 例8.2 根據(jù)圖8-9編寫程序顯示內(nèi)部RAM 50H57H單元中的數(shù)據(jù)。8255PB7PB6PB5PB4PB3

16、PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0WRRDD5D4D3D2D1D0D6D7Q7Q6Q5Q4Q3Q2Q1Q0D7D6D5D4D3D2D1D0OEWRRDP0.5P0.4P0.3P0.2P0.1P0.0P0.6P0.7ALEAT89C51888888888(a,b,c,d,e,f,g,dp)GA1A0CS74LS373圖8-9 AT89C51與動(dòng)態(tài)顯示LED接口連接圖第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) 圖8-9是用8255A對(duì)8位動(dòng)態(tài)顯示器的接口電路。圖中LED為八段共陰數(shù)碼管,A口輸出字形碼,B口輸出位選碼,片選端直接接地。根據(jù)圖

17、中連接可知,8255A的A口地址為FFFCH,B口地址為FFFDH,控制口地址為FFFFH,由于A、B口均為輸出,因此控制字為80H。下面是一個(gè)動(dòng)態(tài)顯示內(nèi)部RAM 50H57H單元數(shù)據(jù)的子程序。 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) DIR:MOV A,#10000000B ;設(shè)置8255的工作方式,A、B口為輸出MOV DPTR,#0FFFFH ;8255的命令口地址送DPTRMOVX DPTR,A MOV R0,#50H ;50H57H為顯示緩沖區(qū)MOV R3,#7FH ;第一位的位選碼MOV A,R3 第第8 8章章 AT89C51AT89C51系統(tǒng)接口技

18、術(shù)系統(tǒng)接口技術(shù) SCAN:MOV DPTR,#0FFFDH ;指向B口 MOVX DPTR,A ;位選碼送B口 MOV A,R0 ;取顯示數(shù)據(jù) MOV DPTR,#TAB ;取字形碼表首址 MOVC A,A+DPTR ;取字形碼 MOV DPTR,#0FFFCH ;指向A口第第8 8章章 AT89C51AT89C51系統(tǒng)接口技術(shù)系統(tǒng)接口技術(shù) MOVX DPTR,A ;字形碼送A口 ACALL DL1ms ;調(diào)延時(shí)1 ms子程序 INC R0 ;指向下一顯示數(shù)據(jù)單元 MOV A,R3 JNB ACC.0,ED ;8位顯示完,退出 RR A ;指向下一位 MOV R3,A AJMP SCAN ;繼續(xù)顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論