單片機_09(10)-第九章MCS-51單片機顯示鍵盤接口._第1頁
單片機_09(10)-第九章MCS-51單片機顯示鍵盤接口._第2頁
單片機_09(10)-第九章MCS-51單片機顯示鍵盤接口._第3頁
單片機_09(10)-第九章MCS-51單片機顯示鍵盤接口._第4頁
單片機_09(10)-第九章MCS-51單片機顯示鍵盤接口._第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、編碼鍵盤:編碼鍵盤: 鍵盤上閉合鍵的識別由專用硬件實現(xiàn)。鍵盤上閉合鍵的識別由專用硬件實現(xiàn)。非編碼鍵盤:鍵盤上閉合鍵的識別由軟件實現(xiàn)。非編碼鍵盤:鍵盤上閉合鍵的識別由軟件實現(xiàn)。 編碼鍵盤是鍵盤電路在某個鍵被按下后,能提供該鍵所代表的信息代碼,并以并行或串行信號輸給CPU。 非編碼鍵盤是一種便宜而廣泛用于微機系統(tǒng)的輸入設(shè)備。這種鍵盤內(nèi)部有一個掃描電路,不斷地掃描鍵盤是否有鍵被按下。此鍵所代表的鍵盤信息代碼,則由鍵盤接口及鍵盤處理軟件根據(jù)鍵盤送來的位置信息產(chǎn)生,然后再送給CPU。 在設(shè)計鍵盤接口時,解決以下幾個問題: 開關(guān)狀態(tài)的可靠輸入可設(shè)計硬件去抖動電路或設(shè)計去抖動軟件。 鍵盤狀態(tài)的監(jiān)測方法中斷方

2、式還是查詢方式。 鍵盤編碼方法。一、鍵盤工作原理 鍵盤結(jié)構(gòu) 按鍵設(shè)置在行列式交點上,行列線分別連接到按鍵開關(guān)的兩端。當(dāng)行線通過上拉電阻接+5V時,被鉗位在高電平狀態(tài)。 X3X2X1 X0Y3Y2Y1Y0輸輸 入入 口口輸出口輸出口圖9-1 行列式44鍵盤原理電路 當(dāng)鍵盤沒鍵閉合時,所有的行線和列線斷開。行線X0-X3呈高電平。當(dāng)某鍵閉合時,則該鍵所對應(yīng)的行線與列線短路。 例:6號鍵閉合,則行線X1和列線Y2短路,X1的電平由Y2決定,若把行線接到微機的輸入口,列線接微機的輸出口。則通過控制列線,使Y0=0,Y1=Y2=Y3=1時,微機通過輸入口讀行線的狀態(tài),可判斷是否有鍵合上。 鍵盤中有無按鍵

3、按下是由列線送入全掃描字、行線讀入行線狀態(tài)來判斷的。鍵盤中哪一個鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷。 逐行逐列地檢查鍵盤狀態(tài)的過程稱為對鍵盤的一次掃描。 鍵閉合時行線電壓波形:抖動時間長短和開關(guān)的機械特性有關(guān),一般為5-10ms。 為了保證CPU對鍵的閉合作一次僅一次處理,在軟件中必須設(shè)置去除抖動,在鍵的穩(wěn)定閉合或斷開時讀鍵的狀態(tài),并判斷出鍵由閉合到釋放時,在作鍵輸入處理。硬件去除抖動的方法:單穩(wěn)延時電路。二、單片機對非編碼鍵盤的控制方式 編程掃描方式:當(dāng)單片機空閑時,才調(diào)用鍵盤掃 描子程序,響應(yīng)鍵盤的輸入要求。v定時掃描方式:每隔一定時間對鍵盤掃描一次 。v通常利用單片機內(nèi)的

4、定時器,產(chǎn)生10MS的定時中v斷,CPU響應(yīng)定時器溢出中斷請求,對鍵盤掃描。缺點:對鍵盤掃描是隨機的。優(yōu)點:優(yōu)點:及時響應(yīng)鍵入的命令或數(shù)據(jù),便于用戶對正在執(zhí)行的程序進行干預(yù)。缺點:缺點:不管鍵盤上有無鍵閉合,CPU總是定時的關(guān)心鍵盤狀態(tài),由于用戶可能對正在運行的系統(tǒng)很少甚至不干預(yù),所以大多數(shù)情況下都是空掃描空掃描。 中斷掃描方式:當(dāng)鍵盤上有鍵閉合時產(chǎn)生中斷請求,CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序,判別鍵號,并作相應(yīng)的處理。 優(yōu)點:優(yōu)點: CPU CPU 效率較高。效率較高。 鍵盤工作方式的選取應(yīng)該根據(jù)實際應(yīng)用系統(tǒng)中cpu工作的忙、閑情況而定。其原則是既要保證能及時相應(yīng)按鍵操作,又不要過多占用cp

5、u的工作時間。圖9-2 8155擴展I/O口組成的行列式鍵盤 鍵盤掃描方式 掃描法:在判定有鍵按下后逐列(或逐在判定有鍵按下后逐列(或逐行)置低電平,同時讀入行(或列)的狀行)置低電平,同時讀入行(或列)的狀態(tài),如果行(或列)的狀態(tài)出現(xiàn)非全態(tài),如果行(或列)的狀態(tài)出現(xiàn)非全1 1狀態(tài),狀態(tài),這時這時0 0狀態(tài)的行、列交點的鍵就是所按下的狀態(tài)的行、列交點的鍵就是所按下的鍵。特點是逐列(或逐行)掃描查詢。這鍵。特點是逐列(或逐行)掃描查詢。這時相應(yīng)行(或列)應(yīng)有上拉電阻接高電平。時相應(yīng)行(或列)應(yīng)有上拉電阻接高電平。 線反轉(zhuǎn)法:讓行線編程為輸入線,列線編程為輸出線,并使輸出線輸出為全低電平,則行線中

6、電平由高變低的所在行為按鍵所在行。讓行線編程為輸出線,列線編程為輸出線,并使輸出線輸出為全低電平,則列線中電平由高變低的所在行為按鍵所在列。第二節(jié)第二節(jié) MCS-51MCS-51系列單片機顯示的系列單片機顯示的 擴展擴展一、LED顯示器接口原理 1 1 LED顯示器結(jié)構(gòu) LED顯示器是單片機應(yīng)用系統(tǒng)中常用的輸出器件。它是由若干個發(fā)光二極管組成的。原理:當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點或一個筆畫發(fā)亮??刂撇煌M合的二極管導(dǎo)通,就能顯示出各種字符。 7段LED結(jié)構(gòu) (a)共陰極 (b)共陽極 (c)管腳配置 圖9-3 七段LED顯示塊 共陰極共陰極LEDLED顯示器的發(fā)光二極管的陽極為高電平顯示器

7、的發(fā)光二極管的陽極為高電平時時, ,二極管被點亮。二極管被點亮。 共陽極共陽極LEDLED顯示器的發(fā)光二極管的陰極為低電平顯示器的發(fā)光二極管的陰極為低電平時時, ,二極管被點亮。二極管被點亮。a, b, c, d, e, fa, b, c, d, e, f被點亮被點亮共陰極段選碼共陰極段選碼( (高電平點亮):高電平點亮):3FH Dp g f e d c b a 0 0 1 1 1 1 1 1共陽極段選碼(低點平點亮)共陽極段選碼(低點平點亮): C0H Dp g f e d c b a 1 1 0 0 0 0 0 0 7段LED字型碼 “米”字段結(jié)構(gòu)及外型圖 “米”字段LED字型碼2 LE

8、D顯示器原理 LED顯示器有兩種方式: (1)LED靜態(tài)顯示方式(如圖9-4所示) (2)LED動態(tài)顯示方式(如圖9-5所示)靜態(tài)顯示:顯示器顯示某一個字符時,相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截至。動態(tài)顯示:顯示器的各位輪流被點亮,對于顯示器的每一位來說,每隔一段時間點亮一次。a b c d e f Rdpa b c d e f Rdpa b c d e f Rdpa b c d e f Rdpa b c d e f Rdp3.83.83.83.83.8 I/O口位選控制 I/O口段選控制圖9-4 N位LED顯示器 GND/+5VGND/+5VGND/+5VGND/+5VGND/+5VI/O(1)

9、I/O(2)I/O(3)I/O(4)圖9-5 四位靜態(tài)LED顯示器電路PAPA口、口、PBPB口、口、PCPC口分別控制一位口分別控制一位LEDLED 靜態(tài)顯示時,較小的電流就能得到較高的亮度且字符不閃爍。缺點:每一位都需要一個8位輸出口控制。當(dāng)顯示器位數(shù)比較少時,采用靜態(tài)顯示的方法是合適的。 I/O(1)DDDDDDDDI/O(2)75643210圖9-6 八位LED動態(tài)顯示器電路 動態(tài)顯示利用了LED顯示器的余暉和人眼的視覺暫留功能可以達到各位同時顯示的效果,但是必須保證掃描的速度足夠快,否則字符會閃爍。顯示器的亮度相關(guān)的兩個因素:導(dǎo)通電流。點亮?xí)r間和間隔時間的比例。 動態(tài)顯示的位數(shù)增多,

10、將會占用大量cpu時間,因此動態(tài)顯示的實質(zhì)是以犧牲cpu時間來換取器件的減少。 參考p230 8位led動態(tài)顯示2003.10.10的過程。二、LED顯示器接口段數(shù)據(jù)口:段碼掃描口:掃描口:位碼位碼圖9-7通過8155擴展I/O口控制8位LED動態(tài)顯示接口圖9-8動態(tài)顯示子程序流程圖顯示程序:顯示程序:DIS: MOV R0,#7AH ;指向顯示緩沖區(qū)起始單元MOV R3,#01H ;字位碼初值R3MOV A,R3 ;取字位碼DLP:MOV DPTR,#PAAR;指向字位口 (PA口) MOVX DPTR,A ;輸出字位碼,顯示其中1位MOV A,R0 ;取一個顯示數(shù)據(jù)ADD A,#0CH ;

11、查表偏移量MOVC A,A+PC ;取出字形碼INC DPTR ;指向字段口(PB口)MOVX DPTR,A ;輸出字形碼ACALL DLY1MS ;延時1msINC R0 ;指向顯緩區(qū)下一單元MOV A,R3 ;修改字位碼RL A ;顯示下一位MOV R3,AJNB ACC.6,DLP ;未顯示到最右邊LED,繼續(xù)顯示RET ;全部掃描一遍,結(jié)束DTAB:DB 0C0H,0F9H,0A4H ;字形表 DB 0B0H,99H,DLY1MS: ;延時1ms子程序8031單片機和擴展I/O接口芯片8155H實現(xiàn)的6位LED顯示和32鍵的鍵盤/顯示器接口 1. 8031外擴了一片8155H,其RAM

12、的地址和I/O地址的范圍是多少?RAM: 7E00H-7EFFHI/O: 7F00H-7F05H2. PA口,PB口,PC口的作用?PA口:輸出口,控制列線的電位,作為鍵的 掃描口同時又是6位顯示器的掃描口。PB口:段數(shù)據(jù)口PC口:鍵輸入口,接行線。顯示子程序 DIR: MOV RO,#79H MOV RO,#01H MOV A,R3 LD0: MOV DPTR,#7F01H MOV DPTR,A INC DPTR MOV A,R0 ADD A,#0DH MOVC A,A+PCDIR1:MOVXDPTR,AACALLDL11INCR0MOVA,R3JBA.5,LD1;顯示到 第六位嗎?RLAM

13、OVR3,AAJMPLD0LD1:RETDSEG:DB 3FH,06H,5BH,4FH,66H,6DHDB 7DH,07H,7FH,6FH,77H,7CHDB 39H,5EH,79H,71H,73H,3EHDB 31H,6EH,1CH,23H,40H,03HDB 18H,00,00,00DL11: MOV R7,#02HDL: MOV R6,#0FFHDL6: DJNZ R6,DL6 DJNZ R7,DL RET圖9-9 動態(tài)顯示子程序流程圖鍵盤掃描子程序q在鍵盤掃描子程序中完成下述幾個功能。方法:方法:PA0-PA7PA0-PA7輸出全為輸出全為“0”0”,讀,讀PCPC口的狀口的狀態(tài),若態(tài)

14、,若PC0-PC3 PC0-PC3 為全為全“1”1”,則無鍵閉合,若,則無鍵閉合,若PC0-PC3PC0-PC3不全為不全為“1”1”,則有鍵合上。,則有鍵合上。(1)判斷鍵盤上有無鍵按下(2)去鍵的機械抖動影響 (3)求按下鍵的鍵號(4)鍵閉合一次僅進行一次鍵功能操作判別有鍵閉合后,延遲一段時間,再判別鍵盤判別有鍵閉合后,延遲一段時間,再判別鍵盤的狀態(tài),若仍有鍵閉合,則認(rèn)為鍵盤有一鍵處的狀態(tài),若仍有鍵閉合,則認(rèn)為鍵盤有一鍵處于閉合期,否則為抖動。于閉合期,否則為抖動。方法:等閉合鍵釋放后再作處理。方法:等閉合鍵釋放后再作處理。方法為對鍵盤的列線進行掃描方法為對鍵盤的列線進行掃描掃描口掃描口

15、PA0-PA7PA0-PA7依次輸出:依次輸出:PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1相應(yīng)的依次讀相應(yīng)的依次讀PCPC口狀態(tài),若為全口狀態(tài),若為全“1”1”,則列線為,則列線為“0”0”的這一列上沒有的這一列上沒有鍵閉合,閉合鍵號等于為低電平的列號鍵閉合,閉合鍵號等于為低電平的列號加上低電平的行的首鍵號。加上低電平的行的首鍵號。 返回例:例:PAPA口輸出為口輸出為1111110111111101時,讀時,讀出出

16、PC0-PC3PC0-PC3為為11011101 N= N=行首鍵號行首鍵號+ +列號列號 =8+1=9=8+1=9調(diào)用子程序延時6ms調(diào)用子程序延時12ms開始有鍵閉合否?有鍵閉合否?判斷閉合鍵鍵號棧 閉合鍵釋放否?輸入鍵號A返回YNNYNYKEYI: ACALL KS1 JNZ LK1NI: ACALL DIR AJMP KEYILK1: ACALL DIR ACALL DIR ACALL KS1 JNZ LK2 ACALL DIR AJMP KEYILK2:MOVR2,#0FEH;掃描模式R2MOVR4,#00HLK4:MOVDPTR,#7F01HMOVA,R2MOVXDPTR,INCD

17、PTRINCDPTRMOVXA,DPTRJBA.0,LONEMOVA,#00HAJMPLKPLONE:JB A.1,LTW0 MOV A,#80H AJMP LKPLTW0:JB A.2,LTHR MOV A,#10H AJMP LKPLTHR:JB A.3,NEXT MOV A,#18HLKP: ADD A,R4 PUSH ALK3: ACALL DIR ACALL KS1 JNZ LK3 POP A RETNEXT:INC R4 MOV A,R2 JNB A.7,KND RL A MOV R2,A AJMP LK4KND: AJMP KEYIKS1:MOVDPTR,#7F01HMOVA,#

18、00HMOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTRCPLAANLA,#0FHRET利用8031的串行口實現(xiàn)鍵盤/顯示器接口 應(yīng)用8031的串行口方式0的輸出方式,在串行口外接74LS164構(gòu)成鍵盤顯示器接口。 此為靜態(tài)顯示方式,主程序可不必掃描顯示器。8 8個個74LS16474LS164作為作為8 8位七段輸出口。位七段輸出口。80318031的的P3.4P3.4、P3.5P3.5作為鍵輸入線。作為鍵輸入線。P3.3P3.3作為同步脈沖輸出控制線。作為同步脈沖輸出控制線。顯示子程序:DIR: SETB P3.3; 開放顯示輸出 MOV R7,#08H MOV R0,#7FH; 7FH78H為顯示緩沖區(qū)DL0: MOV A,R0 ADD A,#0DH MOVC A,A+PC MOV SBUF,ADL1: JNB TI,DL1 CLR TI DEC R0 DJNZ R7,DL0 CLR P3.3 RETSEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,90H DB 88H,83H,0C6H,0A1H,86H DB 8FH,0BFH,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論