鍵盤、顯示接口技術(shù)_第1頁
鍵盤、顯示接口技術(shù)_第2頁
鍵盤、顯示接口技術(shù)_第3頁
鍵盤、顯示接口技術(shù)_第4頁
鍵盤、顯示接口技術(shù)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鍵盤、顯示接口技術(shù)鍵盤與計算機接口鍵盤是人向機器輸入數(shù)據(jù)和對系統(tǒng)進行干預(yù)的基本設(shè)備,用于輸入數(shù)據(jù)和命令,顯示計算機的運行狀態(tài)、命令和計算結(jié)果。微機鍵盤有兩種:一種是全編碼鍵盤,其鍵碼全由硬件提供,但是這種方式硬件結(jié)構(gòu)復(fù)雜,成本高;另一種是非編碼鍵盤,這種鍵盤多采用矩陣方式,利用軟件識別鍵碼及完成各種鍵功能處理。考慮到簡化結(jié)構(gòu),降低成本,單片機系統(tǒng)中多采用非編碼鍵盤。鍵盤可以分為獨立式連接方式和矩陣式兩類,每一類按其譯碼方式又可以分為編碼式和非編碼式。下面我們將介紹非編碼鍵盤的幾種常用硬件電路。獨立式按鍵接口設(shè)計在單片機控制系統(tǒng)中,常常只需要用到功能鍵。少量的功能鍵一般采用獨立式結(jié)構(gòu),獨立式按鍵

2、是各按鍵相互獨立的接通一條輸入數(shù)據(jù)線,每個鍵的工作不會影響其它的I/0口,如圖7-1所示。這是較簡單的鍵盤結(jié)構(gòu),該電路采用查詢方式。圖7-1所示,當某一個鍵閉合時,相應(yīng)的IO口線變?yōu)榈碗娖?。當程序查詢到低電平的IO口線時,就可以確定處于閉合狀態(tài)的鍵。這種鍵盤的優(yōu)點是電路簡單;缺點是當鍵數(shù)較多時,要占用較多的I/O線。對圖7-1采用查詢方式鍵盤的處理程序比較簡單。程序只包括鍵查詢、鍵功能程序轉(zhuǎn)移。P0FP7F為功能程序入口地址標號,其地址間隔應(yīng)能容納JMP指令,其中PL0PL7分別為每個按鍵的功能程序。START: MOV   A, #0FFH  ;輸入時

3、先置口為全1MOV   P1, AMOV   A, P1  ;鍵狀態(tài)輸入JNB    ACC.0, P0F ;0號鍵按下轉(zhuǎn)P0F標號地址JNB    ACC.1, P1F ;1號鍵按下轉(zhuǎn)P1F標號地址JNB    ACC.2, P2F ;2號鍵按下轉(zhuǎn)P2F標號地址JNB    ACC.3, P3F ;3號鍵按下轉(zhuǎn)P3F標號地址JNB    ACC.

4、4, P4F ;4號鍵按下轉(zhuǎn)P4F標號地址JNB    ACC.5, P5F ;5號鍵按下轉(zhuǎn)P5F標號地址JNB    ACC.6, P6F ;6號鍵按下轉(zhuǎn)P6F標號地址JNB    ACC.7, P7F ;7號鍵按下轉(zhuǎn)P7F標號地址JNP    START  ;無鍵按下就返回POF: LJMP    PL0P1F: LJMP    PL

5、1:          :P7F:  LJMP    PL7   ;入口地址表PL0:        ;0號鍵功能程序LJMP   START  ;0號鍵執(zhí)行返回PL1:   LJMP   START:PL7:    LJMP   STAR

6、T由以上程序可知,各個按鍵由軟件設(shè)置了優(yōu)先級,優(yōu)先順序為07矩陣式鍵盤接口設(shè)計矩陣式鍵盤工作原理 將I/O口線的一部分作為行線,另一部分作為列線,按鍵設(shè)置在行線和列線的交叉點上,這就構(gòu)成了矩陣式鍵盤。矩陣式鍵盤中按鍵的數(shù)量可達行線數(shù)n乘以列線數(shù)m,如4行、4列的矩陣鍵盤的按鍵數(shù)可以達到4×4=16個。由此可見矩陣式鍵盤在按鍵較多時,可以節(jié)省IO口線。8位單片機系統(tǒng)常用鍵盤大小有4×4、4×8、8×8等。下面以4×4矩陣式鍵盤為例說明矩陣式鍵盤的工作原理,電路原理圖如圖7-2所示。從圖7-2可見,8條IO口線分為4條行線和4條列線,按鍵設(shè)置在行線

7、和列線交點上,即按鍵開關(guān)的兩端分別接在行線和列線上。行線通過一個電阻接到+5V電源上,在沒有鍵按下時,行線處于高電平狀態(tài)。判斷是否有鍵按下的方法分下面幾步:(1) 向所有的列線IO口輸出低電平后,將行線的電平狀態(tài)讀人累加器A中。若無鍵下,行線仍保持高電平狀態(tài),若有鍵按下,行線至少應(yīng)有一條為低電平。(2) 確定有鍵按下后,求鍵碼。求鍵碼的方法是:依次從一條列線上輸出低電平,然后檢查各行線的狀態(tài),若全為高電平,說明該閉合鍵不在該列,若不全為1,則說明閉合鍵在該列,且在變?yōu)榈碗娖降男械慕稽c上。值得注意的是,在鍵盤處理程序中,每個鍵都被賦予了一個鍵號,由從列線IO口輸出的數(shù)據(jù)和從行線IO口讀入的數(shù)據(jù)可

8、以求出閉合鍵的鍵號。矩陣式鍵盤工作方式在單片機應(yīng)用系統(tǒng)中,非編碼鍵盤由CPU通過鍵盤處理程序完成整個工作過程。相對CPU來說,按鍵閉合是隨機發(fā)生的,鍵盤處理程序必須能夠及時捕捉到閉合的鍵,并求出其鍵碼。按照這一過程的不同,非編碼鍵盤的工作方式可分為程序掃描方式和中斷掃描方式。1程序掃描方式一般情況下,在單片機應(yīng)用系統(tǒng)中,鍵盤處理只是CPU工作的一部分。為了能及時發(fā)現(xiàn)有鍵按下CPU必須不斷調(diào)用鍵盤處理程序,對鍵盤進行掃描,因此稱為程序掃描方式。圖7-3是由8051與一種矩陣式鍵盤構(gòu)成的接口電路。由8155擴展的I/O口作為行線和列線,構(gòu)成具有32鍵的4×8的矩陣式鍵盤。行線與8l55的

9、PC0PC3相連,列線與PA口的8條線相連,鍵碼如圖7-3所示。鍵盤工作過程如下:    判斷鍵盤中有無鍵按下。如PA 口輸出00H,再將PC口的狀態(tài)讀入,若PC0PC3全為1,說明無鍵按下,若不全1,則有鍵按下。    消除抖動。當發(fā)現(xiàn)有鍵按下時,延時一段時間后再判斷鍵盤的狀態(tài),若仍有鍵保持按下狀態(tài),則可斷定有鍵按下,否則認為是抖動。 求鍵號與鍵值。鍵號是鍵盤上各鍵的編號如1、2、3、31。鍵值是根據(jù)掃描原理,各鍵所對應(yīng)的16進制數(shù)碼。結(jié)合圖7-3,鍵號與鍵值對應(yīng)關(guān)系如下:鍵號按照行首鍵號與列號相加的方法排列列號0、1、2、3、4、

10、5、6、7行首號是0、8、16、24,如108(行首號)+2(列號) 鍵值為列值加行值“0”號鍵對應(yīng)列線PA00,其它全為“1”列值為FE;行線中PC00,其它的全為“1”,高4位沒有用,以“X”表示。行值為XE,故“0”號鍵對應(yīng)鍵值為“FEXE”,如此類推。 等待閉合鍵釋放。為了避免一次閉合多次求其鍵,等待閉合鍵釋放后再將鍵碼送入A。鍵盤處理程序流程圖如圖7-4所示,程序如下:設(shè)主程序已把8155初始化PA口基本輸出口,PC口為基本輸入口。KEY:    LCALL  KS       

11、60; ;判別有無鍵按下    JNZ    K1      ;有鍵按下轉(zhuǎn)K1     LCALL  DELAY     ;無鍵按調(diào)用延時子程序    AJMP   KEY     ;返回重新查詢K1:     LCALL  DELAY  

12、   ;加長延時,消除鍵抖動    LCALL  DELAY    LCALL  KS       ;再次查詢有無鍵按下    JNZ    K2      ;有鍵按下,轉(zhuǎn)逐列掃描    AJMP   KEY     ;誤讀鍵,返回K2: 

13、   MOV    R2, #0FEH ;首列掃描字送R2   MOV    R4, #00H   ;首列號送R4K3:    MOV    DPTR, #PA  ;A口地址送DPTR   MOV    A, R2   MOVX    DPTR, A  ;列掃描字送8155A口  

14、; INC    DPTR   INC    DPTR   MOVX   A, DPTR ;讀取行掃描值   JB     ACC.0, L1 ;第0行無鍵按下,轉(zhuǎn)查第1行   MOV    A, #00H  ;第0行有鍵按下,行首鍵號送A   AJMP   LK  &

15、#160;;轉(zhuǎn)求鍵號L1:    JB     ACC.1, L2 ;第1行無鍵按下,轉(zhuǎn)查第2行   MOV    A, #08H  ;第1行有鍵按下,行首鍵號送A   AJMP   LK   ;轉(zhuǎn)求鍵號L2:    JB     ACC.2, L3 ;第2行無鍵按下,轉(zhuǎn)查第3行 

16、0; MOV    A, #20H  ;第2行有鍵按下,行首鍵號送A   AJMP   LK   ;轉(zhuǎn)求鍵號L3:    JB    ACC.3, NEXT  ;第3行無鍵按下,改查下一列   MOV   A, #18H  ;第3行有鍵按下,行首鍵號送ALK:    ADD   A, R4 

17、; ;形成鍵碼送A   PUSH  ACC   ;鍵碼K4:    LCALL DELAYLCALL KS     ;等待鍵釋放    JZ   K4     ;未釋放,等待    POP   A     ;鍵釋放,彈出鍵碼  &

18、#160; RETNEXT:   INC   R4     ;修改列號    MOV   A, R2    JNB   ACC.7, KEY   ;8列掃描完返回KEY    RL    A     ;未掃描完掃描字左移一位    MOV&

19、#160;  R2, A    ;掃描字存R2    AJMP  K3KS:     MOV   DPTR, #PA   ;A口地址送入DPTRMOV   A, #00H   ;全掃描字送AMOVX  DPTR, A   ;全掃描字PA口INC   DPTR     ;

20、指向C口INC   DPTRMOVC  A, DPTR   ;讀入PC口狀態(tài)CPL   A     ;變正邏輯、高電平表示有鍵按下ANL   A, #0FH   ;屏蔽高4位RETDELAY:  MOV  R7, #0FFHLP0:    MOV  R6, #0FFHLP:     NOP  

21、60;      DJNZ  R6, LP   DJNZ  R7, LP0   ;延時子程序   RET在程序中KS為查詢有無鍵按下的子程序;DELAY為延時子程序。2中斷掃描方式采用掃描方式,無論有無鍵按下CPU都要定時掃描,特別是在那些按鍵次數(shù)不多的系統(tǒng),反復(fù)空掃描,浪費了CPU的大量時間。為了提高CPU的效率,常采用中斷方式。所謂中斷方式就是當有按鍵按下時發(fā)出中斷請求信號,中斷響應(yīng)后轉(zhuǎn)入中斷服務(wù)子程序,再去抖動、求鍵碼和處理按鍵等工作。圖7-5所示為

22、中斷掃描方式的接口電路圖。矩陣式鍵盤與8051單片機的P1口直接相連,其中P1.7P1.4經(jīng)二極管與行線連接,P1.3P1.0與列線連接,另一端經(jīng)電阻與+5V電源相連。列線與一個與門的輸入端相連,與門輸出端接8051的 。當P1.7P1.4全為0狀態(tài)時,若無鍵閉合, 保持高電平,若有鍵閉合時, 變?yōu)榈碗娖?,CPU開中斷時,就會響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序。由于中斷方式鍵盤處理過程和程序掃描方式大致相同,這里不再作詳細介紹。LED顯示器及接口設(shè)計LED顯示器結(jié)構(gòu) LED顯示器內(nèi)部由發(fā)光二極管組成,其外形如圖7-6(a)所示。根據(jù)內(nèi)部二極管連接方式,數(shù)碼管結(jié)構(gòu)又分為共陽極型和共陰極型。在數(shù)碼管中,若

23、將二級管的陽極連在一起,則稱為共陽極型;若將二極管的陰極連在一起,則稱為共陰極型,如圖7-6(b)所示。    由圖7-6(a)可見,ag分別為8個發(fā)光二極管,h為小數(shù)點。在實際應(yīng)用中,數(shù)碼管的各個管腳要接限流電阻,而且外接電阻阻值只要保證管子正常發(fā)光即可,一般各管電流在10mA較合適。電流太大,耗電量大,電流太小,發(fā)光度不夠。顯示字型和字段碼關(guān)系當發(fā)光二極管導(dǎo)通時,它就會發(fā)光。每個二極管就是一個筆劃。若干個二極管發(fā)光時,就構(gòu)成了一個顯示字符,不同的發(fā)光段亮,可組成不同字型。輸入到數(shù)碼管h、a、b、c、d、e、f、g的二進制碼稱為字形碼,數(shù)碼管顯示的結(jié)構(gòu)為字形。表

24、7-1為顯示字形與共陽極和共陰極兩種接法的字形碼對應(yīng)關(guān)系。LED與單片機接口LED顯示器有兩種工作方式,即靜態(tài)顯示方式和動態(tài)顯示方式。1.靜態(tài)顯示方式及其接口電路在靜態(tài)顯示方式下,每位數(shù)碼管的ah端與一個8位的IO口相連。當要在某一位數(shù)碼管上顯示字符時,只要從對應(yīng)的IO口輸出并鎖存其顯示代碼即可。靜態(tài)顯示方式的特點為:數(shù)碼管中的ah端LED恒定導(dǎo)通或截止,直到顯示字符改變。圖7-7為由MCSl449與8051構(gòu)成的多位數(shù)碼管靜態(tài)顯示器接口電路。MC14495是一個BCD七段鎖存譯碼驅(qū)動器,其輸出不需外接電阻可直接和LED數(shù)碼管相連。MC14495的輸人鎖存選通信號 0時,允許數(shù)據(jù)輸入到其內(nèi)部鎖

25、存器中; 1時,輸人數(shù)據(jù)被鎖存。由圖7-7可見,被顯示的數(shù)據(jù)直接由P1口的低4位輸出,P1.4P1.6接74LS138譯碼器的輸入端,用來選擇數(shù)碼管,譯碼輸出端Y0Y7控制各MC14495的選通端 , 為低電平則輸出數(shù)據(jù)顯示。P1.7用來控制多位顯示器數(shù)據(jù)字符的改寫和鎖存。當P1.7為高電平時,允許改寫各位的顯示字符。下面是將顯示緩沖區(qū)78H7FH中的BCD碼送數(shù)碼管顯示的程序。DIR :  MOV   R0, #78H  ;置首地址       MOV   R2,

26、 #00H  ;初始化位計數(shù)器       MOV   R7, #08H  ;置循環(huán)次數(shù)       SETB   P1.7LOOP : MOV   A, R2       SWAP   A       ADD   A,

27、 R0  ;顯示數(shù)據(jù)送低4位       MOV   P1, A  ;輸出顯示數(shù)據(jù)和位地址       INC   R0   ;指向下一位      INC   R2   ;指向下一個數(shù)       DJNZ

28、 R7, LOOP       CLR   P1.7       RET2動態(tài)顯示方式及其接口電路所謂動態(tài)顯示方式就是一位一位輪流的點亮各位數(shù)碼管,其特點為:每一時刻只能有1位數(shù)碼管被點亮,并各位依次輪流被點亮;對于每一位來說,每隔一段時間點亮一次。數(shù)碼管的點亮既跟點亮?xí)r的電流有關(guān),也跟點亮?xí)r間和間隔時間的比例有關(guān),通過調(diào)整電流和時間參數(shù),可實現(xiàn)亮度較高較穩(wěn)定的顯示。如圖7-8是8051單片機通過8155擴展的6位動態(tài)數(shù)碼管接口電路。由圖可見,8

29、155的A口作為位選口,經(jīng)反相器7545N接數(shù)碼管公共極,B口作為數(shù)據(jù)口,經(jīng)同相驅(qū)動器7407接數(shù)碼管的各段。程序流程圖如圖7-9所示,設(shè)顯示數(shù)據(jù)的緩沖區(qū)為79H7EH。程序如下:DIR: MOV  R0, #79H  ;顯示數(shù)據(jù)緩沖區(qū)首地址R0MOV  R3, #01H  ;使數(shù)碼管最右邊位亮 MOV  A, R3 LD0:     MOV  DPTR,#0101H ;掃描值送PA口(0101H為   &

30、#160;                    PA口地址)MOVX  DPTR, AINC   DPTR  ;數(shù)據(jù)指針指向PB口MOV  A, R0  ;取顯示數(shù)據(jù)ADD  A, 12H  ;加上偏移量MOVC  A, A+PC ;取出字形MOVX  DPTR, A

31、 ;送出顯示ACALL DLL   ;調(diào)用延時子程序INC   R0   ;數(shù)據(jù)緩沖區(qū)地址加1MOV   A, R3JB    ACC.5, LD1 ;掃描到第六位數(shù)碼嗎?RL    A   ;沒有MOV   R3, A      ;R3左移,掃描下一個數(shù)碼AJMP  LD0LD1:  &

32、#160;  RETDSEG:    DB   3FH, 06H, 5BH, 4FH, 66H, 6DH DSEG1:   DB   7DH, 07H, 67H, 77H, 7CHDSEG2:   DB   39H, 5EH, 79H, 71H,73H,3EHDSEG3:   DB   31H, 6EH,1CH, 23H,40H,03HDSEG4:   DB   18H, 00

33、H, 00H, 00HDL1:     MOV  R7, #02H              ;延時子程序DL:      MOV  R6, #0FFHDL6:     DJNZ R6, DL6          

34、60;   DJNZ R7, DL              RETLCD液晶顯示器液晶顯示器是一種功耗極低的顯示器件。隨著液晶顯示技術(shù)的發(fā)展,LCD顯示器的規(guī)格眾多,其專用驅(qū)動芯片也相互配套,使LCD在控制和儀表系統(tǒng)中廣泛應(yīng)用提供了極大的方便。 LCD的原理    LCD是一種被動顯示器,具有功耗低,顯示信息大,壽命長和抗干擾能力強等優(yōu)點,在低功耗的單片機系統(tǒng)中得到大量使用。LCD本身不發(fā)光只是調(diào)節(jié)光的亮度,目前市

35、面上的LCD顯示器都是利用液晶的扭曲向列效應(yīng)制成,這是一種電場效應(yīng),夾在兩片導(dǎo)電玻璃電極間的液晶經(jīng)過一定處理,它內(nèi)部的分子呈90°的扭曲,當線性偏振光透過其偏振面便會旋轉(zhuǎn)90°。當在玻璃電極上加上電壓后,在電場作用下,液晶的扭曲結(jié)構(gòu)消失,其旋光作用也消失,偏振光便可以直接通過。當去掉電場后液晶分子又恢復(fù)其扭曲結(jié)構(gòu)。把這樣的液晶置于兩個偏振片之間,改變偏振片相對位置就可得到白底黑字或黑底白字的顯示形式。LCD顯示器的分類1按排列形式分類可分為筆段型、字符型和點陣圖形型。(1) 筆段型:以長條狀顯示像素組成一位顯示,主要用于數(shù)字顯示,也可用于顯示西文字母或某些字符,通常有六段、

36、七段、八段、九段、十四段和十六段等,在形狀上總是圍繞數(shù)字“8”的結(jié)構(gòu)變化。(2) 字符型:專門用來顯示字母、數(shù)字、符號等的點陣型液晶顯示模塊。在電極圖形設(shè)計上它是由若干個5×7或5×11點陣組成,每一個點陣顯示一個字符。(3) 點陣圖形型:在一平板上排列多行和多列,形成矩陣形式的晶格點,點的大小可根據(jù)顯示的清晰度來設(shè)計。2按采光方法分類由于液晶顯示自己不發(fā)光,完全借助外部光源來顯示。因此按采光方式可分為:(1) 自然采光:利用周圍環(huán)境光為顯示光源,靠LCD背面的反射膜將射入的自然光從正面反射出來顯示。(2) 背光源采光:在液晶顯示器件上增加背光源,用以增加顯示器件的清晰度和

37、穩(wěn)定性。背光背光源的安裝方式分為邊光式和背光式。邊光式即在顯示器的側(cè)面,將光源按線型配置,還要在顯示器的背面配以特殊設(shè)計的散射板或反射板,以使得背景光源均勻一致;背光式即在顯示器的背面配置一個面光源。3按LCD的顯示驅(qū)動方式分類(1) 靜態(tài)驅(qū)動法:振蕩器的脈沖信號分頻后直接施加在背電極BP上,段電極脈沖直接加在某一段上。(2) 動態(tài)驅(qū)動法:在多個顯示像素驅(qū)動時,將像素排列成矩陣結(jié)構(gòu),分別稱為行電極和列電極。采用類似于CRT光柵動態(tài)掃描的方法。循環(huán)地給行電極施加選擇脈沖并同時給需要顯示數(shù)據(jù)的列電極相應(yīng)的選擇脈沖,進行逐行順序掃描。(3) 雙頻驅(qū)動法:利用液晶介電常數(shù)與驅(qū)動電壓頻率的相互關(guān)系,使用

38、兩種不同的驅(qū)動電壓頻率來改變液晶顯示器件上各像素分子的取向使其達到良好的顯示效果。4按控制器的安裝方式分類(1) 內(nèi)藏式:把控制器和驅(qū)動都用厚膜電路做在液晶顯示模塊印制底板上,只需外部接口的數(shù)字信號或模擬信號即可驅(qū)動顯示器。(2) 不含控制器方式:這種LCD需要另外選配相應(yīng)的驅(qū)動控制器才能工作。LCD字符型液晶顯示接口技術(shù)1字符型液晶顯示模塊接口電路DMC系列字符型液晶顯示應(yīng)用很廣泛,其控制器均采用HD44780或其可替換集成電路。由單片機輸出直接控制HD44780及其時序。字符型液晶顯示與兩個控制器連接方框圖如圖7-10所示。單片機與字符型LCD顯示模塊的連接方法分為直接訪問和間接訪問兩種。

39、(1) 直接訪問方式:把字符型液晶顯示模塊作為存儲器或IO接口設(shè)備直接連到單片機總線上,這是采用8位數(shù)據(jù)傳輸形式,數(shù)據(jù)端DB0DB7直接與單片機的數(shù)據(jù)線相連,RS信號和 信號利用單片機的地址線控制。E信號則由MPU的 和 信號共同控制,以實現(xiàn)HD44780所需的接口時序。圖7-11給出了以存儲器訪問方式對液晶顯示驅(qū)動的控制電路。圖7-11是最簡單的連接電路,可作為初步使用字符型液晶顯示模塊的人們調(diào)試、了解LCD顯示器性能的電路。圖中,首先P0接口產(chǎn)生的地址信號被鎖存在74LS373內(nèi),其輸出給出了RS的控制信號, 和 經(jīng)過與非門打開了E信號的控制門。接著 、 和P0接口的數(shù)據(jù)傳輸將實現(xiàn)對字符型

40、LCD顯示模塊的每一次訪問。在寫操作過程中,HD44780要求E信號結(jié)束后,數(shù)據(jù)線上的數(shù)據(jù)要保持10ns以上的時間,而單片機8051的P0接口在 信號失效后將有116ns(以6MHz晶振計算)的數(shù)據(jù)保持時間,足以滿足該項控制時間的要求。在讀操作過程中,HD44780在E信號為高電平時就將所需數(shù)據(jù)送到數(shù)據(jù)線上,E信號結(jié)束后,數(shù)據(jù)可保持20ns,這滿足了8051對該時序的要求。2. 字符型液晶顯示模塊操作程序單片機對字符型LCD顯示模塊的操作是通過軟件實現(xiàn)的。每一次訪問都要先對忙標志BF進行識別,當BF0時,HTD44780允許單片機訪問時,再進行下一步操作。例1 HD44780初始化程序PR4

41、:    MOV   R0, #INSADD           MOV   R2, #03H   ;循環(huán)量P41 :    MOV   A,  #30H           MOVX  R0, A  

42、0;        ACALL T     ;調(diào)用延時子程序DJNZ  R2, P41MOV   A, #00H   ;功能設(shè)置指令代碼MOVX  R0, AMOV   R2, #01H   ;清屏指令代碼ACALL PR1    ;調(diào)寫指令子程序MOV   R2, #06H  

43、     ;輸入方式指令代碼ACALL PR1MOV   R2, #0EH       ;顯示方式指令代碼ACALL PR1RET例2 讀忙標志BF和地址計數(shù)器AC值子程序A存儲當前BF及AC值,ACC.7BF,ACC.6ACC.0=AC,程序為:PRO:    MOV  R0, #INSADD    ;指令入口地址       

44、0;        MOVX A, R0          ;讀BF及AC值                RET例3 PR1寫指令代碼子程序,PR2寫入數(shù)據(jù)子程序,PR3讀數(shù)據(jù)子程序。PR1:    MOV  R0, #INSADD  &

45、#160;;寫指令代碼子程序,R2存儲指令代碼                MOVX A, R0                JB   ACC.7, PR1    ;判BF值     &

46、#160;          MOV  A, R2MOVX R0, A     ;寫入指令代碼RETPR2:    MOV  R0, #INSADD   ;寫入數(shù)據(jù)子程序,R2存儲輸入數(shù)據(jù)                MOVX

47、A, R0                JB   ACC.7, PR2                MOV  R0, #DATADD       ;數(shù)據(jù)口地址    

48、            MOV  A, R2                MOVX R0, A              RETPR3:    MOV  R0

49、, #INSADD   ;讀數(shù)據(jù)子程序, A存儲器讀出數(shù)據(jù)                MOVX A,R0                JB   ACC.7, PR3      

50、0;         MOV  R0, #DATADDMOVX A, R0RET (2) 間接控制方式:把字符型液晶顯示模塊作為終端設(shè)備連接到單片機的并行口上或使用擴展并行接口電路來連接。通過對并行口的訪問,間接控制顯示模塊,如圖7-12所示。設(shè)電路選用HD44780的4位數(shù)據(jù)傳輸方式,并對輸出信號相應(yīng)位設(shè)置電平及順序來實現(xiàn)對顯示模塊讀寫操作的時序控制。HD44780在4位數(shù)據(jù)傳輸方式下,數(shù)據(jù)線高4位DB4DB7作為數(shù)據(jù)總線,低4位DB0DB3沒用。在圖7-12中該液晶模塊占用單片機P1接口的7

51、位,P1.4P1.7作為數(shù)據(jù)線,P1.3為E信號線,P1.2為 信號線,Pl.1為RS信號線,P1.O沒用。接口電路非常簡單,但軟件編程要復(fù)雜一些,編程時不僅要把數(shù)據(jù)和指令代碼的傳輸分兩次進行,而且把RS、 和E的時序關(guān)系表現(xiàn)出來。時序關(guān)系是先設(shè)置RS和 狀態(tài),然后設(shè)置E信號,結(jié)束時先復(fù)位E,然后復(fù)位R和 。其主要子程序如下。例4 讀忙標志BF和地址計數(shù)器AC值子程序設(shè)A存儲器BF及AC值,ACC.7=BF,ACC.6ACC.0=ACPR0:  ANL  P1, #00H        ;P1接口初始化

52、P01:  ORL  P1, 04H           ; ORL   P1, #0F8H    ;數(shù)據(jù)口為輸入狀態(tài)E=1MOV  A, P1    ;第一次讀              ANL  P1, #07H   

53、; ;E=0ANL  A, #0F0H        ;取數(shù)MOV  R3, A        ;保存ORL  P1, #0F8H   ;E=1MOV  A, P1        ;第二次讀ANL  P1,#00HANL  A, #0F0H    &

54、#160;   ;取數(shù)SWAP A         ;整理ORL  A , R3        ;合成RET例5 寫指令代碼子程序設(shè)R2存儲器指令代碼PR1:  ACALL PR0              JB    ACC.7, PR1 

55、;      ;判斷BF值P11:  MOV  A, R2        ;取指令代碼              ANL  A, #0F0H        ;保留高4位       

56、;       ORL  P1,#08H         ;               ORL  P1, A        ;第一次讀寫         &#

57、160;    ANL  P1, #0F7H       ;E=0              ANL  P1, #07H        ;數(shù)據(jù)線復(fù)位            

58、;  MOV  A, R2              SWAP A          ;保留低4位P12:  ANL  A, #0F0H               ORL  R1, #08H 

59、60;      ;E=1              ORL  P1, A        ;第二次讀寫              ANL  P1, #0F7H    &#

60、160;   ;E=0              ANL  P1, #00H              RET例6 寫數(shù)據(jù)子程序R2存儲輸入數(shù)據(jù)PR2 : ACALL PR0           &#

61、160;  JB    ACC.7, PR2              ORL   P1, #02H    ;              SJMP  P11     ;轉(zhuǎn)入PR1子程序P11入口例7

62、讀數(shù)據(jù)子程序PR3: ACALL PR0              JB    ACC.7, PR3ORL   P1, #02H   ; SJMP  P01    ;轉(zhuǎn)入PR1子程序P10入口例8 初始化程序PR4:  ANL   P1, #00HMOV   R2, #03H &

63、#160; ;循環(huán)量P41:  MOV   A, #30H        ;功能設(shè)置指令代碼              ACALL P12    ;按8位寫入              AC

64、ALL T     ;調(diào)用延時子程序              DJNZ  R2 ,P41              MOV   A,#20H          

65、;    ACALL P12    ;調(diào)PR1中子程序P12              MOV   R2, #00101000B    ;功能設(shè)置代碼              ACALL PR1  

66、            MOV   R2, #06H    ;輸入方式指令代碼              ACALL PR1              MOV  

67、; R2,#0EH        ;顯示方式指令代碼              ACALL PR1               RET內(nèi)置式T6963C液晶顯示驅(qū)動控制器本節(jié)將以液晶顯示模塊MGLS240128T為實例,說明內(nèi)置T6963C控制器型液晶顯示模塊的應(yīng)用。1

68、. T6963C的特征內(nèi)置T6963C控制器型液晶顯示模塊的驅(qū)動控制系統(tǒng)是由液晶顯示控制器T6963C及其周邊電路、行驅(qū)動器組、列驅(qū)動器組以及液晶驅(qū)動偏壓電路組成。    T6963C的最大特點是具有獨特的硬件初始值設(shè)置功能,顯示驅(qū)動所需的參數(shù)如占空比系數(shù),驅(qū)動傳輸?shù)淖止?jié)數(shù)行及字符的字體選擇等均由引腳電平設(shè)置,使 T6963C的初始化在上電時就設(shè)置完成。2. T6963C的軟件說明T6963C使用硬件初始化設(shè)置,指令功能集中于顯示功能的設(shè)置上,加強顯示控制。T6963C指令參數(shù)的輸入是在指令代碼寫入之前,指令寫入的流程圖如圖7-13所示。T6963C的指令表如表7

69、-2,T6963C指令的詳細說明如下。(1)讀狀態(tài)字(STATUS READ)各個標志位獨立使用,并非同時都有效。每一次對T6963C的軟件操作之前都要進行判“忙”。只有其在不“忙”時操作才有效。    (2)地址指針設(shè)置( REGISTER SET) 格式   D1   D2 0 0 1 0 0 N2 N1 N0  該指令為雙參數(shù)(D1,D2)指令。指令代碼中的N2,N1,NO取值“1”為有效,“0”為無效,而且不能同時為“

70、1”,根據(jù)N的取值,該指令有三種含義,如下表所示。 D1 D2 指令代碼 功能    水平位置(低7位有效) 垂直位置(低5位有效) 21H(N0=1) 光標地址設(shè)置    偏置地址(低5位有效) 00H 22H(N1=1) CGRAM偏置地址設(shè)置    低字節(jié) 高字節(jié) 24H(N2=1) 顯示地址設(shè)置  1) 光標地址設(shè)置D1D221HT6963C專門有一個光標指針

71、寄存器存放當前的光標地址。光標地址不會自動改變,由該指令設(shè)置或修改光標在顯示屏上的位置。光標的地址以二維坐標形式,以字符為單位設(shè)置。水平方向的位置由D1參數(shù)確定,取值范圍在00H4FH(180字符位),表示顯示屏左起第幾個字符位;垂直方向由D2參數(shù)確定,取值范圍在00H1FH(132字符行),表示顯示屏上起第幾個字符行。光標在雙屏結(jié)構(gòu)的顯示屏上的垂直方向位置的規(guī)定為上半屏為00HOFH,下半屏為10H1FH。    2) CGRAM偏置地址設(shè)置D1D222HT6963C可管理 2K的 CGRAM。在顯示存儲器內(nèi)要劃出2K的區(qū)域作 CGRAM使用,只需確定16位地址

72、的高5位(ad15adll)即可。CGRAM偏置地址寄存器就是用來存儲這個地址值的。用戶可以通過將這個寄存器的內(nèi)容與自定義字符代碼值組合出顯示存儲器中該字符字模數(shù)組所在的首地址:    adl5 adl4 adl3 ad12 adll ad10 ad9 ad8 ad7 ad6 ad5 ad4 ad3 ad2 adl ad0    |一偏置地址值(5位) 字符代碼值(8位)|   O   0   0    ad2ad0從 0至 7指向?qū)⒃撟址?8個

73、字節(jié)的字模。    偏置地址由參數(shù)D1的低5位值設(shè)置,D2為00H。如指令03H00H22H設(shè)置字符代碼為80H,則該字符字模組在顯示存儲器首址為1C00H,字模存放在1C00H1C07H單元。    3) 顯示地址設(shè)置D1D224H    該指令將計算機所要訪問的顯示存儲器的地址寫入 T6963C的地址指針計數(shù)器中。該地址指針計數(shù)器為16位字長,需要兩個字節(jié)。D1為低8位地址,D2為高8位地址。(3)顯示區(qū)域設(shè)置(CONTROL  WORD  SET) 格式 D1 D2&#

74、160;0 1 0 0 0 0 N1 N0      該指令是雙參數(shù)指令,它將在顯示存儲器內(nèi)劃分出各顯示區(qū)域的范圍。它是由設(shè)定顯示區(qū)域的首地址和寬度來確定該顯示區(qū)域的范圍,同時也確定了顯示存儲器單元與顯示屏上各點像素的對應(yīng)關(guān)系。該指令中N1,NO有四種組合,每個組合的含義如下表所示。 N1      N2 D1 D2 指令代碼 功能    0 &#

75、160;    0 低字節(jié) 高字節(jié) 40H 文本顯示區(qū)首地址    0      1 字節(jié)數(shù) 00H 41H 文本顯示區(qū)寬度    1      0 低字節(jié) 高字節(jié) 42H 圖形顯示區(qū)首地址    1     

76、 1 字節(jié)數(shù) 00H 43H 圖形顯示區(qū)寬度  1) 文本顯示區(qū)首地址設(shè)置D1D240H該指令設(shè)置了文本顯示區(qū)在顯示存儲器中的起始地址。該地址對應(yīng)顯示屏上左上角的第一個字符位(home)。定時間定間隔地修改這個地址將會產(chǎn)生顯示畫面的平滑滾動。參數(shù)D1,D2為該地址的低8位、高8位。2) 文本顯示區(qū)寬度設(shè)置D100H41H該指令規(guī)定了在文本顯示區(qū)中作為一行顯示所占的單元(字節(jié))數(shù)。該數(shù)據(jù)與文本顯示首地址一起確定了顯示單元與顯示屏上各點像素的對應(yīng)關(guān)系。    3) 圖形顯示區(qū)首地址設(shè)置D1D242H 

77、0;  該指令設(shè)置了圖形顯示區(qū)在顯示存儲器中的起始地址。該地址對應(yīng)顯示屏上左上角的第一個8點列像素(home)。一個水平8點像素作為一個像素組由一個字節(jié)表示。定時地修改這個地址將會產(chǎn)生顯示畫面的平滑滾動。參數(shù)D1,D2為該地址的低8位、高8位。    4) 圖形顯示區(qū)寬度設(shè)置D100H43H該指令規(guī)定了在圖形顯示區(qū)中作為一行顯示所占的單元(字節(jié))數(shù)。該數(shù)據(jù)與圖形顯示首地址一起確定了顯示單元與顯示屏上各像素組(字節(jié))的對應(yīng)關(guān)系。(4)顯示方式設(shè)置( MODE SET) 格式 1 0 0 0 CG&

78、#160;N2 N1 N0      該指令無參數(shù),它的幾個設(shè)置位功能如下:1) CG位:字符發(fā)生器選擇位。CG0:啟用內(nèi)部字符發(fā)生器CGROM,該字符庫有128種字符,其代碼為 00H7FH;同時可以建立128種8×8點陣的自定義CGRAM,其字符代碼規(guī)定在80HFFH范圍內(nèi);CGl:禁止內(nèi)部 CGROM,字符顯示完全取自自定義字符發(fā)生器CGRAM,該字符庫為2K字節(jié)容量,字符代碼為00HFFH。2) N2,N1,NO位:顯示方式設(shè)置位。下表為它們組合所產(chǎn)生的顯示方式。 N2   

79、N1    N0 顯示方式 說明    0     0     0 邏輯“或” 文本與圖形以邏輯“或”的關(guān)系合成顯示    0     0     1 邏輯“異或” 文本與圖形以邏輯“異或”的關(guān)系合成顯示    0    

80、; 1     1 邏輯“與” 文本與圖形以邏輯“與”的關(guān)系合成顯示    1     0     0 文本屬性 文本顯示特征以雙字節(jié)表示  注:在設(shè)置了文本屬性顯示方式后,圖形顯示區(qū)將轉(zhuǎn)換成文本屬性區(qū),用于存儲字符的屬性代碼,其地址與顯示屏上的對應(yīng)關(guān)系與文本顯示區(qū)相同。(5)顯示狀態(tài)設(shè)置( D1SPLAY MODE)設(shè)置當前顯示狀態(tài),有4個設(shè)置開關(guān)位N0-N3,=1:啟動,=0:禁止,無參數(shù),每

81、一位都代表一種顯示狀態(tài)的設(shè)置,它們可以同時有效,也可以部分有效,也可以都無效。 在文本顯示與圖形顯示合成顯示時,文本顯示開關(guān)與圖形顯示開關(guān)應(yīng)同時啟用,在文本屬性顯示方式下,圖形顯示開關(guān)也應(yīng)啟用,只是特性不同。光標顯示及光標閃爍功能的啟用要在文本顯示啟用時進行,否則無效。(6)光標形狀設(shè)置( CURSOR PATTERN SELECT) 格式 1 0 1 0 0 N2 N1 N0  用于設(shè)置光標的顯示形狀,無參數(shù),指令的三個設(shè)置位設(shè)置了光標點數(shù)。光標是以8點列×N行,行的取值由設(shè)置位N2,N1,NO組合完成。(7)數(shù)據(jù)自動讀寫設(shè)置( DATA AU

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論