《應(yīng)用系統(tǒng)配置及接口技術(shù).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《應(yīng)用系統(tǒng)配置及接口技術(shù).ppt(46頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第9章 應(yīng)用系統(tǒng)配置及接口技術(shù),鍵盤:一組按鍵開關(guān)的集合。,行線電壓信號(hào)通過(guò)鍵盤開關(guān)機(jī)械觸點(diǎn)的斷開、閉合, 輸出波形如圖10-6。,9.1 鍵盤接口及處理程序,2. 按鍵的確認(rèn),檢測(cè)行線電平,便可確認(rèn)按鍵按下與否。 高電平:斷開;低電平:閉合,,常用硬件和軟件來(lái)消除按鍵抖動(dòng)。,基本思想:檢測(cè)到有鍵按下,鍵對(duì)應(yīng)的行線為低,軟 件延時(shí)10ms后,行線如仍為低,則確認(rèn)該行有鍵按下。,3.如何消除按鍵的抖動(dòng),當(dāng)鍵松開時(shí),行線變高,軟件延時(shí)10ms后,行線仍為 高,說(shuō)明按鍵已松開。,采取以上措施,躲開了兩個(gè)抖動(dòng)期t1和t3的影響。,鍵盤接口的工作原理,獨(dú)立式按鍵接口和行列式鍵盤接口。,1.獨(dú)立式鍵盤接
2、口,各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過(guò)檢 測(cè)輸入線的電平狀態(tài)可很容易判斷那個(gè)鍵被按下。,此種接口適于鍵數(shù)較少或操作速度較高的場(chǎng)合。,圖10-7(a)為中斷方式的獨(dú)立式鍵盤工作電路,圖10-7(b)為查詢方式的獨(dú)立式鍵盤工作電路。,,圖10-9用三態(tài)緩沖器擴(kuò)展的I/O口的按鍵接口電路。,對(duì)圖10-9獨(dú)立式鍵盤編程,軟件消抖,查詢方式檢測(cè)鍵的狀態(tài)。僅有一鍵按下時(shí)才有效才處理。,KEYIN:MOV DPTR,#0BFFFH;鍵盤端口地址BFFFH MOVX A,DPTR;讀鍵盤狀態(tài) ANL A,#1FH;屏蔽高三位,MOV R3,A;保存鍵盤狀態(tài)值 LCALL DELAY10;延時(shí)10ms去
3、鍵盤抖動(dòng) MOVX A,DPTR;再讀鍵盤狀態(tài),ANL A,#1FH;屏蔽高三位,CJNE A,R3,RETURN ;兩次不同,抖動(dòng)引起轉(zhuǎn)RETURN,CJNE A,#1EH,KEY2 ;相等,有鍵按下,不等轉(zhuǎn)KEY2,LJMP PKEY1;是S1鍵按下,轉(zhuǎn)K1鍵處理 ;子程序PKEY1 KEY2: CJNE A,#1DH,KEY3 ;S2鍵未按下,轉(zhuǎn)KEY3 LJMP PKEY2 ;S2鍵按下,轉(zhuǎn)PKEY2處理 KEY3:CJNE A,#1BH,KEY4;S3未按下,轉(zhuǎn)KEY4 LJMP PKEY3 ;S3按下,轉(zhuǎn)PKEY3處理 KEY4: CJNE A,#17H,KEY5 ;S4鍵未按
4、下,轉(zhuǎn)KEY5 LJMP PKEY4 ;S4按下,轉(zhuǎn)PKEY4處理 KEY5:CJNE A,#0FH,PASS ;S5未按下,轉(zhuǎn)RETURN LJMP PKEY5 ;S5按下,轉(zhuǎn)PKEY5處理 RETURN:RET ;重鍵或無(wú)鍵按下,從子程序返回,識(shí)別和編程簡(jiǎn)單,用在按鍵數(shù)較少的場(chǎng)合。,2. 行列式(矩陣式)鍵盤接口,用于按鍵數(shù)目較多的場(chǎng)合,由行線和列線組成, 按鍵位于行、列的交叉點(diǎn)上。如圖所示。,按鍵數(shù)目較多的場(chǎng)合,行列式鍵盤與獨(dú)立式鍵盤 相比,要節(jié)省很多的I/O口線。,(1)行列式鍵盤工作原理,無(wú)鍵按下,該行線為高電平,當(dāng)有鍵按下時(shí),行線電平由列線的電平來(lái)決定。,由于行、列線為多
5、鍵共用,各按鍵彼此將相互發(fā) 生影響,必須將行、列線信號(hào)配合起來(lái)并作適當(dāng)?shù)奶?理,才能確定閉合鍵的位置。,(2)按鍵的識(shí)別方法,掃描法,圖10-10(b)中3號(hào)鍵被按下為例,來(lái)說(shuō)明此鍵 時(shí)如何被識(shí)別出來(lái)的。,識(shí)別鍵盤有無(wú)鍵被按下的方法,分兩步進(jìn)行:,第1步:識(shí)別鍵盤有無(wú)鍵按下;,第2步:如有鍵被按下,識(shí)別出具體的按鍵。,把所有列線置0,檢查各行線電平是否有變化,如有變化,說(shuō)明有鍵按下,如無(wú)變化,則無(wú)鍵按下。,上述方法稱為掃描法,即先把某一列置低電平, 其余各列為高電平,檢查各行線電平的變化,如果某 行線電平為低,可確定此行列交叉點(diǎn)處的按鍵被按 下。,鍵盤的工作方式,單片機(jī)在忙于各項(xiàng)工作任務(wù)時(shí),如
6、何兼顧鍵盤的輸 入,取決于鍵盤的工作方式。,原則:即要保證能及時(shí)響應(yīng)按鍵操作,又不要過(guò)多占 用CPU的工作時(shí)間。,通常,鍵盤工作方式有3種,即編程掃描、定時(shí)掃 描和中斷掃描。,1. 編程掃描方式,只有當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤掃描子程序, 掃描鍵盤。,工作過(guò)程:,(1)在鍵盤掃描子程序中,先判斷有無(wú)鍵按下。,方法:PA口8位輸出全0,讀PC口低4位狀態(tài),若PC0 PC3為全1,則說(shuō)明鍵盤無(wú)鍵按下;若不全為1,則說(shuō)明 鍵盤可能有鍵按下。,(2)用軟件來(lái)消除按鍵抖動(dòng)的影響。如有鍵按下,則 進(jìn)行下一步。,(3)求按下鍵的鍵號(hào)。,(4)等待按鍵釋放后,再進(jìn)行按鍵功能的處理操作。,2. 定時(shí)掃描工作方式
7、,利用單片機(jī)內(nèi)的定時(shí)器,產(chǎn)生定時(shí)中斷,對(duì)鍵盤進(jìn)行掃描。,3.中斷工作方式,只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描程序,如 無(wú)鍵按下,單片機(jī)將不理睬鍵盤。,,,,,,,,LED顯示器接口原理,LED(Light Emitting Diode):發(fā)光二極管的縮寫。 顯示器前面冠以“LED”。,LED顯示器的結(jié)構(gòu),常用的LED顯示器為8段(或7段,8段比7段多了一 個(gè)小數(shù)點(diǎn)“dp”段)。,有共陽(yáng)極和共陰極兩種。如圖10-1所示。,為使LED顯示不同的符號(hào)或數(shù)字,要為L(zhǎng)ED提供段碼 (或稱字型碼)。,提供給LED顯示器的段碼(字型碼)正好是一個(gè)字 節(jié)(8段)。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下:,按上述格式,
8、8段LED的段碼如表10-1所示。,表10-1 LED段碼(8段),表10-1只列出了部分段碼,可根據(jù)實(shí)際情況選用。,另外,段碼是相對(duì)的,它由各字段在字節(jié)中所處的 位決定。例如表10-1中8段LED段碼是按格式:,而形成的, “0”的段碼為3FH(共陰)。反之,如 將格式改為下列格式:,則 “0”的段碼為7EH(共陰)。,字型及段碼由設(shè)計(jì)者自行設(shè)定,習(xí)慣上還是以“a” 段對(duì)應(yīng)段碼的最低位。,N個(gè)LED顯示塊有N位位選線和8N根段碼線。,LED顯示器工作原理,圖10-2是4位 LED顯示器的結(jié)構(gòu)原理圖。,段碼線控制顯示的字型,,位選線控制該顯示位的亮或暗。,靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。,1.
9、 靜態(tài)顯示方式,各位的公共端連接在一起(接地或+5V)。,每位的段碼線(adp)分別與一個(gè)8位的鎖存器 輸出相連。,顯示字符一確定,相應(yīng)鎖存器的段碼輸出將維持 不變,直到送入另一個(gè)段碼為止。顯示的亮度高。,圖10-3: 4位靜態(tài)LED顯示器電路。該電路各位可獨(dú)立顯示。,2. 動(dòng)態(tài)顯示方式,所有位的段碼線相應(yīng)段并在一起,由一個(gè)8位I/O 口控制,形成段碼線的多路復(fù)用,各位的公共端分別由相應(yīng)的I/O線控制,形成各位的分時(shí)選通。,圖10-4:4位8段LED動(dòng)態(tài)顯示電路。其中段碼線占用一個(gè)8位I/O口,而位選線占用一個(gè)4位I/O口。,圖10-5為8位LED動(dòng)態(tài)顯示2003.10.10的過(guò)程。,圖(a)
10、是顯示過(guò)程,某一時(shí)刻,只有一位LED被選通 顯示,其余位則是熄滅的;,圖(b)是實(shí)際顯示結(jié)果,人眼看到的是8位穩(wěn)定的 同時(shí)顯示的字符。,程序清單如下: DISPLAY:MOV R0,#30H ;顯示緩沖區(qū)首地址送R0 MOV R2,#20H ;位選碼指向P0.5 DISPLAYl:MOV A,R0 ;取出要顯示的數(shù) MOV DPTR,#SEGTAB ;指向換碼表首址 MOVC A,A+DPTR ;取出顯示碼 MOV DPTR,#0FD01H;PA口地址送DPTR MOVX DPTR,A ;輸出顯示碼到8155A口 MOV A,R2 ;位選碼送A INC DPTR ;81
11、55 PB口寄存器地址 MOVX DPTR,A ;從8155B口輸出位選碼 LCALL DEL ;延時(shí)1ms MOV A,R2 JNB ACC.0,DSPLAY2 ;6位全顯示完了嗎?末完,則繼續(xù)顯示 RET,DISPLAY2:INC RO ;計(jì)算下一位要顯示的數(shù)的地址 MOV A,R2 ;求下一個(gè)位選碼 RR A MOV R2,A AJMP DISPLAY1 DELL :MOV R3,#7DH DELLl:NOP NOP DJNZ R3,DELL1 RET SEGTAB:DB 3FH,06H,5BH,4FH,66H;對(duì)應(yīng)字符0,1,2,3,4 DB 6DH,7D
12、H,07H,7FH,67H;對(duì)應(yīng)字符5,6,7,8,9,,,,,,,利用并行I/O芯片實(shí)現(xiàn)鍵盤/顯示器接口,一般把鍵盤和顯示器放在一起考慮,,,,,,圖10-14:8031用擴(kuò)展I/O接口芯片8155H實(shí)現(xiàn)的 6位LED顯示和32鍵的鍵盤/顯示器接口電路。圖中的 8155H也可用8255A來(lái)替代。,8031外擴(kuò)一片8155H。RAM地址為7E00H7EFFH。 I/O口地址為7F00H7F05H。,PA口為輸出口,控制鍵盤列線的掃描,同時(shí)又是6位共陰極顯示器的位掃描口。,PB口作為顯示器段碼輸出口,PC口作為鍵盤的行線狀態(tài)的輸入口。,75452:反相驅(qū)動(dòng)器,7407:同相驅(qū)動(dòng)器。,1動(dòng)態(tài)顯示程
13、序設(shè)計(jì),8031內(nèi)部RAM設(shè)置6個(gè)顯示緩沖單元79H7EH,存 放要顯示的6位數(shù)據(jù)。,8155H的PB口輸出相應(yīng)位的段碼,依次的改變PA口 輸出為高的位使某一位顯示某一字符,其它位為暗。 動(dòng)態(tài)地顯示出由緩沖區(qū)中顯示數(shù)據(jù)所確定的字符。 程序流程如圖10-15 。,參考程序如下:,DIR: MOV R0,79H;置緩沖器指針初值,MOV R3,01H;位選碼的初值送R3,MOV A,R3,LD0: MOV DPTR,7F01H;位選碼PA口(PA.0位),;最左邊LED亮,MOV DPTR,A,INC DPTR ;數(shù)據(jù)指針指向PB口,MOV A,R0 ;顯示數(shù)據(jù)A,ADD A,0DH ;加偏移
14、量(下條指令到表首間 ;所有指令占的單元數(shù)),MOVC A,APC ;根據(jù)顯示數(shù)據(jù)來(lái)查表取段碼,DIR1: MOVX DPTR,A ;段碼8155HPB口,ACALL DL1ms ;該位顯示1ms,INC R0 ;指針指向下一個(gè)數(shù)據(jù)單元,MOV A,R3 ;位選碼送入A中,JB Acc.5,LD1 ;判斷是否掃描到最右邊的 ; LED,如到最右邊則返回,RL A ;位選碼向左移一位,準(zhǔn)備讓 ; 右邊的下一位LED亮位選碼,MOV R3,A ;送R3中保存,AJMP LD0 ;,LD1: RET ;,DSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;共陰極段碼表 DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH,