• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 光電顯示 > 設計應用 > 圖形點陣式液晶顯示模塊的控制技術

    圖形點陣式液晶顯示模塊的控制技術

    作者: 時間:2006-05-07 來源:網絡 收藏

    摘要:分析了圖形點陣式液晶顯示模塊LCD240128A的內部結構及工作原理,結合AT89S58單片機給出了MPU與液晶顯示模塊LCD240128的接口電路,并根據LCD240128A模塊中T6963A液晶驅動器的文本與圖形兩種模式的指令特性,給出了相應的控制軟件。

    本文引用地址:http://www.czjhyjcfj.com/article/225766.htm

    關鍵詞:液晶 微控制器 顯示器 LCD240128A AT89S58 T6963A

    1 模塊簡介

    圖形點陣式液晶顯示模塊具有尺寸小、功耗小、可靠性高、成本低等優點,可顯示各種圖像與文本信息,因此在電子儀器中得到廣泛的應用。

    LCD240128A是熱致液晶STN型圖形點陣式顯示模塊,它由STN型液晶板、液晶顯示控制器、液晶驅動器、背光板等組成,圖1怕示是LCD240128A模塊的結構框圖。它的整屏尺寸為114×104mm,有240×128點,可顯示16點陣漢字15×8個,亦可顯示各種圖形。因此,在智能式電子儀器中,LCD240128A可用來作為顯示器,以顯示各種圖形和文本信息。LCD240128A液晶模塊內有T6963A液晶驅動控制器,該模塊的外部接口引腳定義如表1所列。

    T6863A內部含有共128字節的字符發生器CGROM,可外接8k(最大為128k)字節的RAM作為外部的顯示緩沖區及字符發生器CGRAM,并允許MPU訪問顯示緩沖區,甚至還可進行位操作。

    根據T6963A的特性設計出的LCD240128A模塊與AT89S58單片機的接口電路如圖2所示。

    在圖2中,AT89S58單片機作為控制液晶模塊MPU,擴展在16k字節EPROM27128用于存放16點陣漢字的字模數據,AT89S58與外部數據及指令的效換采和8255作為I/O通道。

    從圖2可以看出,液晶模塊的控制指令端口為4FFFH,數據端口為4FFEH,可通過電位器P1來調整液晶的顯示效果。

    2 控制命令

    為了更好地闡述LCD240128A的控制方法,這里先介紹T6963A的指令。

    表1 LCD240128A的引腳定義

    引腳號 信 號 意 義
    1 FG 框架地。
    2 VSS 信號地,為0V。
    3 VDD 模塊電源輸入端,為+5V±10%
    4 VEE LCD工作電壓輸入端。
    5 WR 寫信號。
    6 RD 讀信號。
    7 CE 片選信號。
    8 C/D “1”為指令碼,“0”為數據碼。
    9 N.C 懸空腳
    10 RESET 復位信號
    11~18 DB0~DB7 數據位18
    19 F.S 點陣模式選擇?!?”選擇5×8點陣,“0”選擇8×8點陣。
    20 VOUT -10V LCD驅動電壓輸出端。

    T6963A的指令格式為:數據1+數據2+指令字節,但是,有的指令只含有一個數據或根本就沒有數據。而LCD240128A模塊選擇的是單屏結構、每行最大為80個字節、總行數為16的顯示模式。

    為了確保每條指令的正確執行,有必要在執行指令前,先分析一下模塊的狀態字:

    STATE:MOV DPTR,#40001H

    MOVX A,@DPTR

    RET

    此時,累加器A中的每位所代表的內容如下:

    ACC.0:指令讀寫狀態,1表示已準備好,0表示忙

    ACC.1:指令讀寫狀態,1表示已準備好,0表示忙

    ACC.2:數據自動讀狀態,1表示已準備好,0表示忙

    ACC.3:數據自動寫狀態,1表示已準備好,0表示忙

    ACC.4:未用

    ACC.5:控制器運行特性檢測,1表示可以,0表示不可;

    ACC.6:屏讀/拷貝狀態,1表示出錯,0表示正確;

    ACC.7:閃爍狀態,1表示正常,0表示不正常;

    2.1 地址指令設置命令

    地址指令設置命令主要包括如下三種設置:

    (1)設置光標位置:D1+D2+21H;

    其中D1為光標離液晶屏左上角的橫向字符數;D2為光標離液晶屏左上角的縱向字符數。

    (2_設置CGRAM的位置:D1+00H+22H;

    此指令中D1的有效位為低5位,用于設置2kCGRAM在8k顯示RAM中的高5位地址,中間8位為字符代碼,低3位為字符8×8點陣行計數值。

    (3)設置當前要操作的單元:D1+D2+24H

    其中D1為地址的低字節,D2為高字節。

    2.2 顯示區域設置命令

    顯示區域設置命令主要是對文本區首址和每行字符數以及圖形區的首址和每行字符數進行設置。

    (1)設置文本顯示區的首址:D1+D2+40H

    其中D1為低字節,D2為高字節,地址對應于顯示屏左上角的字符位。

    (2)設置文本區的每行字符數:D1+00H+41H

    (3)設置圖形區首址:D1+D2+42H

    其中D1為地址的低字節,D2為高字節。

    (4)設置圖形區每行字符數:D1+00H+43H

    2.3 設置顯示方式

    設置顯示方式的格式為:

    1 0 0 0 N3 N2 N1 N0

    各位的意義如下:

    N3-字符發生器選擇位,當N3=1時,選擇CGRAM,字符代碼為00H~FFH,字節空間為2k;當N3=0時,選擇CGROM,字符代碼為00H~7FH。

    通過N2、N1和N0的不同組合可對合成顯示方式進行選擇,選擇方式如表2所列。只有當文本方式和圖形方式均打開時,上述合成顯示方式的設置才有效。

    表2 合成顯示方式選擇

    N2 N1 N0

    合成顯示方式

    0 0 0 文本與圖形以邏輯“或”
    0 0 1 文本與圖形以邏輯“異或”
    0 1 1 文本與圖形以邏輯“與”
    1 0 0 文本特征方式

    2.4 設置顯示狀態

    顯示狀態指令模式為:

    1 0 0 1 N3 N2 N1 N0

    其中:N0為光標閃爍位,1為可以,0為禁止;

    N1為為光標顯示,1為可以,0為禁止;

    N2為文本顯示,1為可以,0為禁止;

    N3為圖形顯示,1為可以,0為禁止。

    2.5 光標形狀選擇

    光標形狀選擇指令格式為:

    1 0 1 0 0 N2 N1 N0

    光標形狀為8點(列)×N點(行),其中N的值由N0~N2決定。

    2.6 設置數據自動讀/寫方式

    該指令包括B0H,B1H和B2H(B3H)等。其中:

    B0H表示自動寫;B1H表示自動讀;B2H為結束自動方式。

    該指令的格式為:D1+指令字節,意義如下:

    D1+C0H:表示數據寫,地址加1;

    C1H:表示數據讀,地址加1;

    D1+C2H:表示數據寫,地址減1;

    C3H:表示數據讀,地址減1;

    D1+C4H:表示數據寫,地址不變;

    C5H:表示數據讀,地址不變。

    有了上述指令,我們就可開始下一步的軟件設計,至于T6963A的更詳細說明,請參考文獻[1]。

    3 控制軟件

    該控制軟件主要討論液晶模塊的初始化、CGROM中字符的顯示、CGRAM的設置以及漢字與圖形的顯示等。

    3.1 初始化與準備工作

    以下為狀態檢測程序:

    STA1:LCALL STATE

    JNB ACC.0,STA1 ;指令讀寫狀態

    JNB ACC.1,STA1 ;數據讀寫狀態

    RET

    STA2:LCALL STATE

    JNB ACC.2,STA2 ;數據自動讀狀態

    RET

    STA3:LCALL STATE

    JNB ACC.3,STA3 ;數據自動寫狀態

    RET

    STA6:LCALL STATE

    JB ACC.6,ERR ;屏讀/拷貝狀態

    RET

    ;- - - - - - - - - - - - - - - - - - - - - -

    ERR_;LJMP ERR ;出錯處理程序

    ;- - - - - - - - - - - - - - - - - - - - - -

    ;

    STATE:MOV DPTR,#4001H

    MOVX A,@DPTR

    RET

    在下面的寫指令與數據程序中,R2為數據D1,R3為數據D2,R4為指令字節;

    ;

    WR2:LCALL STA1 ;有D1與D2

    MOV A,R2

    LCALL WRD

    WR1:LCALL STA1 ;無D1,

    MOV A,R3

    LCALL WRD

    WR0:LCALL STA1 ;無D1與D2,

    MOV A,R4

    AJMP WR00

    WRD:MOV DPTR,#4000H

    WR00:MOVX @DPTR,A

    RET

    ;

    以下是讀數程序:

    RD_:LCALL STA1

    MOV DPTR,#4000H

    MOVX A,@DPTR

    RET

    有關硬件的初始化,LCD240128A在模塊制造時就已做了如下選擇:

    FS=0,用于選擇8×8點陣;

    MD2=0,MD3=0確定了每行最大字符數為80;

    MDS=1,MD0=0,MD1=0,確定了總行數為16;

    下面為軟件的初始化程序:

    INITATION:LCALL CLR_

    MOV R2,#0 ;建立文本區首址

    MOV R3,#0 ;為00H

    MOV R4,#40H

    LCALL WR2

    MOV R2,#1EH ;設置文本區寬度

    MOV R3,#0 ;為30

    MOV R4,#41H

    LCALL WR2

    ;

    MOV R2,#00H ;設置圖形區首址

    MOV R3,#00H

    MOV R4,#42H

    LCALL WR2

    MOV R2,#1EH ;設置圖形區寬度

    MOV R3,#0

    MOV R4,#43H

    LCALL WR2

    MOV R4,#0A0H

    LCALL WR0 ;設置光標形狀

    MOV R4,#98H ;打開文本與圖形方式

    LCALL WR0

    MOV R4,#80H ;采用邏輯“或”

    LCALL WR0

    RET

    CLR_; MOV R2,#0 ;清RAM單元

    MOV R3,#0

    MOV R4,#24H

    LCALL WR2

    MOV R4,#0B0H ;設置自動寫

    LCALL WR0

    MOV R2,#1FH

    CLR1: MOV R3,#0FFH

    CLR2: LCALL STA3

    CLR A ;寫入0

    LCALL WRD

    DJNZ R3,CLR2

    DJNZ R2,CLR1

    MOV R4,#0B3H ;結束自動寫

    LCALL WR0

    RET

    CLR_:MOV R2,#0 ;清RAM單元

    MOV R3,#0

    MOV R4,#24H

    LCALL WR2

    MOV R4,#0B0H ;設置自動寫

    LCALL WR0

    MOV R2,#1FH

    ;

    CLR1: MOV R3,#0FFH

    CLR2: LCALL STA3

    CLR A ;寫入0

    LCALL WRD

    DJNZ R3,CLR2

    DJNZ R2,CLR1

    MOV R4,#0B3H ;結束自動寫

    LCALL WR0

    RET

    ;

    3.2 CGROM中的字符顯示

    在1k字節的CGROM中,含有以下00H~7FH為字符代碼的常用字母與符號。并于它們的顯示程序可以描述如下,這里以顯示:“OK!”為例:

    DISPI:MOV R3,#00h ;設置指針地址

    MOV R2,#0

    MOV R4,#24H

    LCALL WR2

    MOV R2,#0

    DISP10:MOV DPTR,#TAB1

    MOV A,R2

    MOVC A,@A+DPTR

    MOV R3,A ;取字符

    MOV R4,#0C0H

    LCALL WR1 ;寫入模塊

    INC R2

    CJNE R2,#03H,DISP10

    RET

    TAB1: DB 2FH,2BH,01H

    3.3 圖形方式下顯示漢字

    可以很方便地從計算機中提取點陣式的漢字字模,并按左上,左下,右上,右下的順序,把字模保存在程序ROM中,下面以占用32個字節的漢字16點陣“交”字為例如以說明:

    HK0:DB 02H,01H,01H,0FFH,08H,08H,10H,28H

    DB 44H,02H,01H,02H,04H,08H,30H,0C0H

    DB 00H,10H,0A0H,48H,0FCH,48H,48H,0F8H

    DB 48H,0FCH,20H,20H,20H,24H,0FEH,00H

    下面這個子程序,可以顯示一個漢字“交”,通過調用該子程序,即可顯示一組語句,具體說明如下:

    ;R2,R3,R4,R5,A

    HZDISP:MOV DPTR,#HK0

    MOV B,#20H

    MUL AB

    ADD A,DPL

    MOV DPL,A

    MOV A,B

    MDDC A,DPH

    MOV DPH,A

    push dph

    push dp1

    MOV R2,#10H

    MOV A,#00H ;指向字模的左半部地址

    HZD1:pop dp1

    Pop dph

    MOV R5,A

    MOVC A,@A+DPTR

    Push dph

    Push dp1

    MOV R3,A

    MOV R4,#0C0H

    LCALL WR1

    pop dp1

    pop dph

    MOV A,R5

    ADD,A,#10H ;指向字模的右半部地址

    MOVC A,@A+DPTR

    PUSH DPH

    PUSH DPL

    ;

    MOV R3,A

    LCALL WR1

    MOV A,R2

    MOV R3,A

    ;改變顯示指針,

    MOV R2,#1CH

    MOV R4,#0C1H

    HZD2:LCALL WR0

    DJNZ R2,HZD2

    MOV A,R3

    MOV R2,A

    MOV A,R5

    INC A

    DJNZ R2,HZD1

    pop dp1

    pop dph

    RET

    在TA6963A的控制指令中,有一個位操作指令,格式為:

    1 1 1 1 D3 D2 D1 D0

    格式中的D2D1D0用于確定要操作的是0~7位某一位,D3確定該位為1或0.該指令可對當前顯示地址指針所指的顯示單元中的數據的任一位寫“0”或寫“1”。有了這個指令,欠就可以很方便地設置點或清除點,從而達到顯示任意曲線或圖案的目的。

    4 結束語

    利用LCD240128A液晶模塊可以增加系統的可讀性。本文就其基本的控制軟件與電路作為分析。當然,液晶模塊的控制集成電路有很多種,各套指令也有一定的差異,但其基本思想都有很多相似的地址。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 镇远县| 苏尼特右旗| 牙克石市| 深圳市| 武平县| 田阳县| 南平市| 永定县| 易门县| 临桂县| 泽普县| 房产| 繁峙县| 广元市| 延寿县| 靖边县| 同江市| 宜黄县| 县级市| 宜春市| 大埔区| 资兴市| 云霄县| 桃源县| 珠海市| 南华县| 喜德县| 南溪县| 太和县| 沁源县| 疏附县| 嘉兴市| 陕西省| 宽甸| 建德市| 桃源县| 聂荣县| 天柱县| 三亚市| 南郑县| 新昌县|