片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀_第1頁
片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀_第2頁
片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀_第3頁
片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀_第4頁
片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鍵盤與顯示器接口片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀鍵盤可分為編碼式鍵盤和非編碼式鍵盤。編碼鍵盤能夠由硬件自動提供與被按鍵對應(yīng)的ASCII碼或其它編碼。但是它要求采用較多的硬件,價格昂貴。非編碼鍵盤則僅提供行和列的矩陣,其硬件邏輯與按鍵編碼不存在嚴(yán)格的對應(yīng)關(guān)系,而要由所用的程序來確定。非編碼鍵盤的硬件接口簡單,但是要占用較多的CPU時間。任何鍵盤接口均要解決三個主要問題:1、反彈跳2、串鍵保護3、按鍵識別片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀1、反彈跳當(dāng)按鍵開關(guān)的觸點閉合或斷開到其穩(wěn)定,會產(chǎn)生一個短暫的抖動和彈跳,如下圖所示,這是機械式開關(guān)的一個共同性問題。消除由于鍵抖動和彈跳產(chǎn)生的干擾可采用硬件方

2、法,也可采用軟件延遲的方法。 采用RS觸發(fā)器實現(xiàn)硬件反彈跳片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀當(dāng)鍵數(shù)較多時經(jīng)常用軟件延時的方法來反彈跳,如流程圖所示。當(dāng)檢出有鍵按下后,先執(zhí)行一個反顫延時20ms的子程序,待前沿彈跳消失后再轉(zhuǎn)入鍵閉合CLOSE子程序。然后再判斷此次按鍵是否松開,如果沒有,則進(jìn)行等待。若已松開,則又執(zhí)行一次延時20ms的子程序以消除后沿彈跳的影響,再去檢測下次按鍵的閉合。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀2、串鍵保護 由于操作不慎,可能會造成同時有幾個鍵被按下,這種情況稱為串鍵。有三種處理串鍵的技術(shù):兩鍵同時按下、n鍵同時按下和n鍵鎖定。 “兩鍵同時按下”技術(shù)是在兩個鍵同時按下時

3、產(chǎn)生保護作用。最簡單的辦法是當(dāng)只有一個鍵按下時才讀取鍵盤的輸出,最后仍被按下的鍵是有效的正確按鍵。當(dāng)用軟件掃描鍵盤時常采用這種方法。另一種方法是當(dāng)?shù)谝粋€按鍵未松開時,按第二個鍵不產(chǎn)生選通信號。這種方法常藉助硬件來實現(xiàn)。 “n鍵同時按下”技術(shù)或者不理會所有被按下的鍵,直至只剩下一鍵按下時為止,或者將所有按鍵的信息都存入內(nèi)部緩沖器中,然后逐個處理,這種方法成本較高。 “n鍵鎖定”技術(shù)只處理一個鍵,任何其它按下又松開的鍵不產(chǎn)生任何碼。通常第一個被按下或最后一個松開的鍵產(chǎn)生碼。這種方法最簡單也最常用。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀3、按鍵識別 決定是否有鍵被按下,如有則應(yīng)識別鍵盤矩陣中被按鍵對應(yīng)

4、的編碼。編碼鍵盤通過硬件直接提供按鍵與被按鍵對應(yīng)的ASCII碼或其它編碼。非編碼鍵盤則需要通過編程方式提供按鍵編碼。其優(yōu)點是結(jié)構(gòu)簡單、成本低廉片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀非編碼鍵盤接口技術(shù) 非編碼鍵盤接口技術(shù)主要是如何確定被按鍵的行、列位置,即鍵碼(值)。按鍵識別是接口技術(shù)的關(guān)鍵問題。 常用按鍵識別方法有行掃描法(Row-Scanning)和線反轉(zhuǎn)法(Line-Reverse) 。片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀典型非編碼鍵盤結(jié)構(gòu) 非編碼鍵盤大都采用按行、列排列的矩陣開關(guān)結(jié)構(gòu),這種結(jié)構(gòu)可以減少硬件和連線。 矩陣鍵盤接口片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀行掃描法識別按鍵 行掃描法是采用步

5、進(jìn)掃描方式,CPU通過輸出口把一個“步進(jìn)的0”逐行加至鍵盤的行線上,然后通過輸入口檢查列線的狀態(tài)。由行線列線電平狀態(tài)的組合來確定是否有鍵按下,并確定被按鍵所處的行、列位置。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀R1K13K14K15K16R2K9K10K11K12R3K5K6K7K8R4K1K2K3K4C1C2C3C4鍵位與行列線關(guān)系表 上表列出了識別按鍵位置與各行之間的關(guān)系。其中,R1、R2、R3、R4表示行,C1、C2、C3、C4表示列。當(dāng)掃描第一行時,R1=0, 若讀入的列值C1=0,則表明按鍵K13被壓下,如果C3=0,則表明按鍵K15被壓下。第一行掃描完畢后再掃描第二行,逐行掃描至最后

6、一行為止,即可識別出所有的按鍵。片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀線反轉(zhuǎn)法識別按鍵線反轉(zhuǎn)法是藉助程控并行接口實現(xiàn)的,比行掃描法的速度快。如圖所示為一個44鍵盤與并行接口的連接。并行接口有一個方向寄存器和一個數(shù)據(jù)寄存器,方向寄存器規(guī)定了接口總線的方向,寄存器的某位置“1”,規(guī)定該位口線為輸出。寄存器的某位置“0”,規(guī)定該位口線為輸入。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀線反轉(zhuǎn)法的具體操作分兩步 第一步:先把控制字0FH置入并行接口的方向寄存器,使4條行線(PB0PB3)作輸出,4條列線(PB4-PB7)作輸入。然后把控制字F0H寫入數(shù)據(jù)寄存器,PB0PB3將輸出“0”到鍵盤行線。這時若無鍵按下,

7、則4條列線均為“”;若有某鍵按下,則該鍵所在行線的“0”電平通過閉合鍵使相應(yīng)的列線變?yōu)椤?”,并經(jīng)與非門發(fā)出鍵盤中斷請求信號給單片機。圖4.6(a)是第2行第1列有鍵按下的情況。這時PB7PB4線的輸入為1011,其中0對應(yīng)于被按鍵所在的列。第二步:使接口總線的方向反轉(zhuǎn),把控制字F0H寫入方向寄存器,使PB0PB3作輸入,PB4PB7作輸出。這時PB7PB4線的輸出為1011,PB3PB0的輸入為1011,其中“0”對應(yīng)于被按鍵的行。單片機現(xiàn)在讀取數(shù)據(jù)寄存器的完整內(nèi)容為10111011,其中兩個0分別對應(yīng)于被按鍵所在的行列位置。根據(jù)此位置碼到ROM中去查表,就可識別是何鍵被按下。片機原理及應(yīng)用

8、鍵盤與顯示器接口優(yōu)秀單片機通過8155實現(xiàn)的鍵盤、顯示器接口 如圖所示為單片機8051與矩陣鍵盤及LED顯示器的一種接口電路,通過編程設(shè)定8155的PA口、PB口作為輸出口,PC口作為輸入口。PA口完成鍵盤的行掃描輸出,同時又對LED顯示器作字位掃描,PC口輸入鍵盤列線狀態(tài)。7407為同相驅(qū)動器,75452為反相驅(qū)動器。接口電路中采用8031的P2.7作為8155的片選線,P2.0作為8155的IO端口和片內(nèi)RAM選擇線,因此8155的命令寄存器地址為7F00H,PAPC口地址為7F01H7F03H。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀按鍵識別子程序KEY: MOV DPTR, #7F00H

9、;8155命令口地址 MOV A, #03H ;置PA、PB口為輸出, MOVX DPTR,A ;PC口為輸入MOV R4,00H ;0鍵號寄存器R4MOV R2,01H ;掃描模式01HR2KEY1:MOV DPTR,7F01HMOV A,R2MOVX DPTR,A ;掃描模式8155PA口INC DPTRINC DPTRMOVX A,DPTR ;讀8155PC口JB ACC.0,KEY2 ;0列無鍵閉合,轉(zhuǎn)判1列MOV A,00H ;0列有鍵閉合,0AAJMP KEY5KEY2:JB ACC.1,KEY3 ;1列無鍵閉合,轉(zhuǎn)判2列MOV A,01H ;1列有鍵閉合,列線號01HAAJMP

10、KEY5片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀KEY3:JB ACC.2,KEY4 ;2列無鍵閉合,轉(zhuǎn)判3列 MOV A,02H ;2列有鍵閉合,02HA AJMP KEY5KEY4:JB ACC.3,NEXT ;3列無鍵閉合,轉(zhuǎn)判下一行 MOV A,03H ;3列有鍵閉合,03HAKEY5:ADD A,R4 ;列線號+(R4)作為鍵值A(chǔ) MOV R4,A ;鍵值R4 RET ;返回NEXT:MOV A,R4; ADD A,04 ;鍵號寄存器加4 MOV R4,A MOV A,R2 JB ACC.3,NEXT1 ;判別是否已掃描到最后一行 RL A ;掃描模式左移一位 MOV R2,A AJMP

11、KEY1 ;重新開始掃描下一行NEXT1: MOV R4,88H ;掃描到最后一行仍無按鍵 RET ;置無鍵閉合標(biāo)志后返回 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀鍵值分析 單片機從鍵盤接口獲得鍵值后究竟執(zhí)行什么操作,完全取決于鍵盤解釋程序。 常用的方法: 1、查表法 根據(jù)得到的鍵值代碼,到固化在ROM里的表格中查找對應(yīng)該代碼的動作例行程序的首地址。這種方法適用于一個鍵就產(chǎn)生一個動作的單個命令鍵。 2.狀態(tài)分析法 根據(jù)鍵碼和當(dāng)前所處的狀態(tài)找出下一個應(yīng)進(jìn)入的狀態(tài)及動作例行程序。這種方法適用于多個鍵互相配合產(chǎn)生一個動作的多義鍵。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀查表法查表法的核心是一個固化在ROM中的

12、功能子程序入口地址轉(zhuǎn)移表。如下表所示。在轉(zhuǎn)移表內(nèi)存有各個功能子程序的入口地址,根據(jù)鍵值代碼查閱此表獲得相應(yīng)功能的子程序入口地址,從而可以轉(zhuǎn)移到相應(yīng)的命令處理子程序。功能子程序入口地址子程序1子程序2子程序3入口地址1入口地址2入口地址3功能子程轉(zhuǎn)移地址片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀例:鍵盤接口調(diào)用按鍵識別子程序所獲得的鍵值如下表所示 ,當(dāng)鍵值小于10H時代表數(shù)字鍵,鍵值大于等于10H時代表功能鍵。 鍵值表按鍵鍵值0F00H0FHRUN10HRET11HADRS12HSTORE13HREAD14HWRITE15H片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀處理功能鍵的程序: INPUT: LCALL

13、KEY ;調(diào)按鍵識別子程序,獲得鍵值在A中MOV R0,A ;鍵值暫存于R0 ANL A,10HJZ DATIN ;小于10H為數(shù)字鍵,轉(zhuǎn)入數(shù)字操作MOV A,R0 ;大于等于10H為命令鍵ANL A,0FH ;保留鍵值低4位MOV R0,A ;(A)3RL AADD A,R0MOV DPTR,TABEL ;取轉(zhuǎn)移表首地址JMP A+DPTR ;按不同鍵值散轉(zhuǎn)至子程序TABEL:LJMP RUN ;轉(zhuǎn)RUN命令子程序LJMP RET ;轉(zhuǎn)RET命令子程序LJMP ADRS ;轉(zhuǎn)ADRS命令子程序LJMP STORE ;轉(zhuǎn)STORE命令子程序LJMP READ ;轉(zhuǎn)READ命令子程序LJMP W

14、RITE ;轉(zhuǎn)WRITE命令子程序DATIN: ; 數(shù)字鍵操作程序,略;片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀LED顯示器接口技術(shù)LED數(shù)碼顯示器結(jié)構(gòu)與原理 LED數(shù)碼顯示器是由發(fā)光二極管顯示字段的顯示器件。在應(yīng)用系統(tǒng)中通常使用的是七段LED數(shù)碼顯示器。這種顯示塊有共陰極與共陽極兩種,如下圖所示。片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀 使用LED顯示器時,要注意區(qū)分共陰極和共陽極兩種不同的接法。 為了顯示數(shù)字或字符,必須對數(shù)字或字符進(jìn)行編碼,簡稱段碼。七段數(shù)碼管加上一個小數(shù)點,共計8段。因此為LED顯示器提供的段碼正好是一個字節(jié)。 實際使用中,通過單片機向LED顯示接口輸出不同段碼,即可顯示相應(yīng)的數(shù)字

15、。片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀LED數(shù)碼顯示器共陰極和共陽極段碼 存儲器地址顯示數(shù)字共陰極接法的七段狀態(tài)g f e d c b a共陰極接法段碼(十六進(jìn)制數(shù))共陽極接法段碼(十六進(jìn)制數(shù))SEG00 1 1 1 1 1 13F40SEG+110 0 0 0 1 1 00679SEG+221 0 1 1 0 1 15B24SEG+331 0 0 1 1 1 14F30SEG+441 1 0 0 1 1 06619SEG+551 1 0 1 1 0 16D12SEG+661 1 1 1 1 0 17D02SEG+770 0 0 0 1 1 1 0778SEG+881 1 1 1 1 1 17F

16、00SEG+991 1 0 0 1 1 16718SEG+10A1 1 1 0 1 1 17708SEG+11B1 1 1 1 1 0 07C03SEG+12C0 1 1 1 0 0 13946SEG+13D1 0 1 1 1 1 05E21SEG+14E1 1 1 1 0 0 17906SEG+15F1 1 1 0 0 0 1710E片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀 硬件譯碼LED顯示接口 如圖所示為采用硬件譯碼器的七段LED接口電路,顯示器是共陰極的。9368是硬件段譯碼器,它能自動將輸入的16進(jìn)制數(shù)轉(zhuǎn)換成段碼輸出,在+5V時能輸出約30mA的電流點亮顯示器的段。7475是4位鎖存器,4

17、個數(shù)據(jù)輸入端接到系統(tǒng)數(shù)據(jù)總線的D3D0。鎖存器的選通端E接到地址譯碼器,若該接口的地址為0088H,執(zhí)行以下指令即可在顯示器上顯示數(shù)字“0”。 MOV DPTR,0088H MOV A,00H MOVX DPTR,A片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀軟件譯碼LED顯示接口 設(shè)計思想: 先在內(nèi)存中存儲一張段碼表,根據(jù)要顯示的數(shù)字或字符去查表取得相應(yīng)的段碼,并輸出到LED顯示器。具體顯示時,采用逐位掃描的方法控制哪一位LED被點亮。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀程序清單:DISPB: MOV DPTR,7F00H ;8155命令口地址 MOV A,03H MOVX DPTR,A ;置PA口、

18、PB口為輸出 MOV R0,7AH ;置顯示緩沖器指針初值 MOV R3,01H ;置掃描模式初值 MOV A,R3DISPB1:MOV DPTR,7F01H ;8155 PA口地址 MOVX DPTR,A ;掃描模式8155 PA口 INC DPTR MOV A, R0 ;取顯示數(shù)據(jù) ADD A,0DH ;加偏移量 MOVC A, A+PC ;查表取段碼 MOVX DPTR,A ;段碼8155 PB口片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀 ACALL DELAY ;延時 INC R0 MOV A,R3 JB ACC.5,DISPB2 ;判6位LED顯示完否 RL A ;掃描模式左移1位 MOV

19、R3,A AJMP DISPB1DISPB2: RETSEGPT2: DB 3FH,06H,5BH,4FH,66H,6DH ;段碼表DELAY: MOV R5,02H ;延時子程序 DELAY1: MOV R4,0FFHDELAY2: DJNZ R4,DELAY2 DJNZ R5,DELAY1 RET片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀串行接口LED驅(qū)動器MAX7219 MAX7219是MAXIM公司生產(chǎn)的一種串行接口方式7段共陰極LED顯示驅(qū)動器,其片內(nèi)包含有一個BCD碼到B碼的譯碼器、多路復(fù)用掃描電路、字段和字位驅(qū)動器以及存儲每個數(shù)字的88 RAM,每位數(shù)字都可以被尋址和更新,允許對每一位數(shù)

20、字選擇B碼譯碼或不譯碼。采用三線串行方式與單片機接口,電路十分簡單,只需要一個10k左右的外接電阻來設(shè)置所有LED的段電流。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀MAX7219采用串行數(shù)據(jù)傳輸方式,由16位數(shù)據(jù)包發(fā)送到DIN引腳的串行數(shù)據(jù)在每個CLK的上升沿被移入到內(nèi)部16位移位寄存器中,然后在LOAD的上升沿將數(shù)據(jù)鎖存到數(shù)字或控制寄存器中。LOAD信號必須在第16個時鐘上升沿同時或之后,但在下一個時鐘上升沿之前變高,否則將會丟失數(shù)據(jù)。DIN端的數(shù)據(jù)通過移位寄存器傳送,并在16.5個時鐘周期后出現(xiàn)在DOUT端。DOUT端的數(shù)據(jù)在CLK的下降沿輸出。串行數(shù)據(jù)以16位為一幀,其中D15D12可以任意

21、,D11D8為內(nèi)部寄存器地 址,D7D0為寄存器數(shù)據(jù),工作時序如下:片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀寄存器地 址D15D12D11 D10 D9 D8十六進(jìn)制代碼NO-OP 0 0 0 00H數(shù)字0 0 0 0 11H數(shù)字1 0 0 1 02H數(shù)字2 0 0 1 13H數(shù)字3 0 1 0 04H數(shù)字4 0 1 0 15H數(shù)字5 0 1 1 06H數(shù)字6 0 1 1 17H數(shù)字7 1 0 0 08H譯碼方式 1 0 0 19H亮度 1 0 1 0AH掃描界限 1 0 1 1BH停機 1 1 0 0CH顯示測試 1 1 1 1FHMAX7219的內(nèi)部寄存器及其地址 片機原理及應(yīng)用鍵盤與顯示器接口

22、優(yōu)秀如圖所示為8051單片機與MAX7219的一種接口,8051的P1.0連到MAX7219的DIN端,P1.1連到LOAD端,P1.2連到CLK端,采用軟件模擬方式產(chǎn)生所需的工作時序。下面給出根據(jù)該圖設(shè)計的MAX7219顯示驅(qū)動程序例子,程序執(zhí)行后在LED上顯示8031字樣。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀主程序MAIN: MOV SP,#60H ;設(shè)置堆棧指針 MOV R7,#0AH ;亮度寄存器 MOV R5,#07H ;亮度值 LCALL DINPUT ;調(diào)用7219命令寫入子程序 MOV R7,#0BH ;掃描界限寄存器 MOV R5,#07H ;顯示7位數(shù)字 LCALL DIN

23、PUT MOV R7,#09H ;譯碼方式寄存器 MOV R5,#0FFH ;#FFH=7-0位均譯為B碼,#00=不譯碼 LCALL DINPUT MOV R7,#0CH ;停機寄存器 MOV R5,#01H ;正常工作 LCALL DINPUT MOV 30H,#08H ;顯示 8031 MOV 31H,#00H MOV 32H,#03H MOV 33H,#01H MOV R7,#30H LCALL DISPLY ;調(diào)用7219顯示子程序 SJMP $ 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀7219命令寫入子程序 DINPUT: MOV A,R7 ;傳遞來的第1個參數(shù)保存在R7中 MOV R2

24、,#08 ;作為MAX7219控制寄存器的8位地址值LOOP1: RLC A ;A的D7位移至P1.0,依次為D6D0 MOV P1.0, C ;8位地址輸入DIN CLR P1.2 ;P1.2輸出時鐘信號 SETB P1.2 DJNZ R2,LOOP1 MOV A,R5 ;傳遞來的第2個參數(shù)保存在R5中 MOV R2,#08 ;作為寫入控制寄存器的8位命令數(shù)據(jù)值LOOP2: RLC A ;A的D7位移至P1.0,依次為D6D0 MOV P1.0, C ;8位數(shù)據(jù)輸入DIN CLR P1.2 ;P1.2輸出時鐘信號 SETB P1.2 DJNZ R2,LOOP2 CLR P1.1 ;P1.1輸

25、出LOAD信號, SETB P1.1 RET片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀7219顯示子程序DISPLY: MOV A,R7 ;R7的內(nèi)容為7219顯示緩沖區(qū)入口地址 MOV R0,A ;R0指向顯示緩沖區(qū)首地址 MOV R1,#01 ;R1指向8字節(jié)顯示RAM首地址 MOV R3,#08LOOP3: MOV A,R0 ;取出顯示數(shù)據(jù)R5 MOV R5,A MOV A,R1 ;取出顯示RAM地址R7 MOV R7,A LCALL DINPUT ;調(diào)用7219命令寫入子程序 INC R0 INC R1 DJNZ R3,LOOP3 RET片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀8279可編程鍵盤/顯

26、示器接口技術(shù)8279的工作原理鍵盤部分 提供64按鍵陣列(可擴展為128)的掃描接口,也可以接傳感器陣列。鍵的按下可以是雙鍵鎖定或N鍵互鎖。鍵盤輸入經(jīng)過反彈跳電路自動消除前后沿按鍵抖動影響之后,被選通送入一個8字符的FIFO(先進(jìn)先出棧)存儲器。如果送入的字符多于8個,則溢出狀態(tài)置位。按鍵輸入后將中斷輸出線升到高電平向CPU發(fā)中斷申請。 顯示部分 對7段LED、白熾燈或其他器件提供顯示接口。8279有一個內(nèi)部的168顯示RAM,組成一對164存儲器。顯示RAM可由CPU寫入或讀出。顯示方式有從右進(jìn)入的計算器方式和從左進(jìn)入的電傳打字方式。顯示RAM每次讀寫之后,其地址自動加1。片機原理及應(yīng)用鍵盤

27、與顯示器接口優(yōu)秀8279內(nèi)部邏輯結(jié)構(gòu)框圖片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀I/O控制和數(shù)據(jù)緩沖 控制與定時寄器及定時控制掃描計數(shù)器 返回緩沖器和鍵盤消顫及控制 FIFO/傳感器RAM和狀態(tài) 顯示地址寄存器和顯示RAM 8279內(nèi)部主要組成模塊 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀8279功能命令一覽表片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀8279功能命令一覽表(續(xù)表)片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀8279與單片機的一般接口方法 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀 單片機在初始化8279后,把顯示字符送到8279內(nèi)部的一個16字節(jié)寄存器內(nèi),并將字符轉(zhuǎn)換成段碼,經(jīng)A0A3、B0B3線把段碼送到顯示器

28、,同時經(jīng)SL0SL3線發(fā)出4位數(shù)位選通碼。4-16譯碼器對選通碼進(jìn)行譯碼后輪流選通各位顯示器。SL0SL2線同時連到3-8譯碼器。該譯碼器的輸出用于掃描鍵盤8行。8279經(jīng)8根返回線(RL0RL7)讀取鍵盤的狀態(tài)。如果發(fā)現(xiàn)按鍵閉合則等待10ms,顫動過去后再檢驗按鍵是否閉合。若按鍵仍然閉合,則把被按鍵的鍵值選通輸入8279內(nèi)部的先進(jìn)先出(FIFO)存儲器,同時經(jīng)INT線發(fā)出一個高電平,指出FIFO內(nèi)已經(jīng)有一個字符。INT線連接到CPU的中斷請求輸入線。當(dāng)單片機接收到中斷請求后,若開中斷,則轉(zhuǎn)到鍵盤服務(wù)程序,從FIFO中讀取按鍵的鍵值。在這種接口中,單片機要做的事僅是初始化8279、送出要顯示的

29、字符、接到中斷請求后讀取按鍵的鍵值,其它工作均由8279自動完成。片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀單片機與8279的具體接口電路片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀8031的P2.7接到8279的片選端,最低位地址A0接到8279的C/D端,因此該接口對用戶來說只有二個口地址:命令口地址7FFFH和數(shù)據(jù)口地址7FFEH。 圖中8279外接48鍵盤和8位共陰極LED顯示器,采用編碼掃描方式,譯碼器74LS138對掃描線譯碼后一方面接鍵盤的列線,同時通過驅(qū)動器接到顯示器上。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀8279初始化程序:INI79: MOV DPTR,7FFFH ;清除命令8279 MOV

30、 A,0D1H MOVX DPTR,AWNDU: MOVX A,DPTR ;等8279清除結(jié)束 JB ACC.7,WNDU MOV A,0 ;方式命令8279 MOVX DPTR,A MOV A,34H ;掃描頻率設(shè)置命令8279 MOVX DPTR,A MOV IE,84H ;允許8279中斷 RET片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀顯示器更新程序:RDIR: MOV DPTR,7FFFH ;寫顯示RAM命令8279 MOV A,90H MOVX DPTR,A MOV R0,78H ;顯示緩沖器首地址R0 MOV R7,8 MOV DPTR,7FFEHRDLO: MOV A,R0 ;取顯示數(shù)

31、據(jù) ADD A,5 ;加偏移量 MOVC A,A+PC ;查表轉(zhuǎn)換為段碼數(shù)據(jù) MOVX DPTR,A INC R0 DJNZ R7,RDLO RETSEG: DB 3FH,06H,5BH,4FH ;根據(jù)硬件線路設(shè)計的段碼 DB 66H,6DH, 7DH,07H DB 7FH,6FH 77H,7CH片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀鍵輸入中斷服務(wù)程序:PKEYI:PUSH PSWPUSH DPLPUSH DPHPUSH ACCPUSH BSETB PSW.3 ;選工作寄存器1區(qū)MOV DPTR,7FFFH ;讀FIFO狀態(tài)字MOVX A,DPTRANL A,0FHJZ PKYR ;判FIFO中是

32、否有數(shù)據(jù)?MOV A,40H ;讀FIFO命令8279MOVX DPTR,AMOV DPTR,7FFEHMOVX A,DPTR ;讀數(shù)據(jù)MOV R2,AANL A,38H ;計算鍵值RR A片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀RR ARR AMOV B,04HMUL ABXCH A,R2ANL A,7ADD A,R2MOV R0,40 ;鍵值(40H)指出的環(huán)形緩沖器單元MOV R0,AINC R0MOV A,R0ANL A,3FH ;環(huán)形緩沖器指針處理ORL A,30HMOV 40H,ASETB 0 ;置標(biāo)志供主程序查詢處理PKYR:POP BPOP ACCPOP DPHPOP DPLPOP

33、PSWRETI片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀LCD顯示器接口LCD的基本結(jié)構(gòu)及工作原理LCD的特點是體積小、重量輕、功耗極低、抗干擾能力強。片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀LCD的驅(qū)動方式 LCD常采用交流驅(qū)動, 通常采用異或門把顯示控制信號和顯示頻率信號合并為交變的驅(qū)動信號, 如圖所示。當(dāng)顯示控制電極上的波形與公共電極上的方波相位相反時, 則為顯示狀態(tài)。顯示控制信號由C端輸入, 高電平為顯示狀態(tài)。顯示頻率信號是一個方波。當(dāng)異或門的C端為低電平時, 輸出端B的電位與A端相同, LCD兩端的電壓為0, LCD不顯示,當(dāng)異或門的C端為高電平時, B端的電位與A端相反, LCD兩端呈現(xiàn)交替變化

34、的電壓, LCD顯示。 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀段式LCD顯示器的驅(qū)動接口顯示器4N07,譯碼驅(qū)動器采用帶鎖存器的MC14543,可以將輸入的BCD碼轉(zhuǎn)換為7段顯示碼輸出。驅(qū)動方式由PH端控制, PH端輸入顯示方波信號。LD是內(nèi)部鎖存器選通端, LD為高電平時, 允許AD端輸入BCD碼數(shù)據(jù), LD為低電平時, 鎖存輸入數(shù)據(jù)。BI為高電平時為消隱。每塊MC14543各驅(qū)動一位LCD, BCD碼輸入端AD接到8051的P1.0P1.3, 鎖存器選通端LD分別接到P1.4P1.7, 分別控制4塊MC14543輸入BCD碼。MC14543的相位端PH接到8051的P3.7, 由P3.7端提供

35、一個顯示用的低頻方波信號,方波信號的產(chǎn)生由8031片內(nèi)定時器T1的定時中斷產(chǎn)生 片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀主程序DISB EQU 60H ;定義顯示緩沖區(qū) ORG 0000 HINIT: LJMP START ;主程序入口 ORG 001BH LJMP INTT1 ;定時器1中斷入口 ORG 0030HSTART: MOV TMOD, #10H ;置定時器T1為方式1 MOV TH1, #0ECH ;10ms定時,fosc=6MHz MOV TL1,#78H SETB TR1 ; 啟動T1 SETB EA ;開中斷 SETB ET1 ;其它工作 LCALL DISP ;調(diào)用顯示子程序

36、;其它工作片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀顯示子程序:DISP: MOV R0, #DISB ;R0指向顯示緩沖區(qū)首地址 MOV R2, #10H ;設(shè)定最高位鎖存控制標(biāo)志DISP1: MOV A, R0 ;取顯示數(shù)據(jù) ANL A, #0FH ;保留BCD碼 ORL A, R2 ;加上鎖存控制位 MOV P1, A ;送入MC14543 ANL P1, #0FH ;置所有MC14543為鎖存狀態(tài) INC R0 ;R0指向顯示緩沖區(qū)下一位 MOV A, R2 ;鎖存端控制標(biāo)志送A RL A MOV R2, A JNB ACC.0, DISP1 ;未完成4位則繼續(xù) RET ;已更新顯示, 返回片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀定時器1中斷服務(wù)程序:INTT: CPL P3.7 ;P3.7輸出電平取反 MOV TH1, #0ECH ;置定時器計數(shù)初值 MOV TL1, #78H RETI ;中斷返回片機原理及應(yīng)用鍵盤與顯示器接口優(yōu)秀點陣式液晶顯示模塊EPSON公司生產(chǎn)的EA-D系列點陣式液晶顯示模塊內(nèi)部結(jié)構(gòu)如圖所示。它由點陣式液晶

溫馨提示

  • 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

提交評論