1 模塊簡介
液晶顯示模塊是一種將液晶顯示器件、連接件、集成電路、PCB線路板、背光源、結構件裝配在一起的組件。英文名稱叫“LCD Module”,簡稱“LCM”,中文一般稱為“液晶顯示模塊”。實際上它是一種商品化的部件。根據我國有關國家標準的規定:只有不可拆分的一體化部件才稱為“模塊”,可拆分的叫作“組件”。所以規范的叫法應稱為“液晶顯示組件”。但是由于長期以來人們都已習慣稱其為“模塊”。
圖形點陣式液晶顯示模塊具有尺寸小、功耗小、可靠性高、成本低等優點,可顯示各種圖像與文本信息,因此在電子儀器中得到廣泛的應用。
LCD240128A是熱致液晶STN型圖形點陣式顯示模塊,它由STN型液晶板、液晶顯示控制器、液晶驅動器、背光板等組成,圖1所示是LCD240128A模塊的結構框圖。它的整屏尺寸為114×104mm,有240×128點,可顯示16點陣漢字15×8個,亦可顯示各種圖形。因此,在智能式電子儀器中,LCD240128A可用來作為顯示器,以顯示各種圖形和文本信息。LCD240128A液晶模塊內有T6963A液晶驅動控制器,該模塊的外部接口引腳定義如表1所列。
表1 LCD240128A的引腳定義
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來調整液晶的顯示效果。
點陣圖形液晶模塊的特點是點陣像素連續排列,行和列在排布中均沒有空隔。因此可以顯示了連續、完整的圖形。由于它也是有X-Y矩陣像素構成的,所以除顯示圖形外,也可以顯示字符。
2 控制命令
為了更好地闡述LCD240128A的控制方法,這里先介紹T6963A的指令。
T6963A的指令格式為:數據1+數據2+指令字節,但是,有的指令只含有一個數據或根本就沒有數據。而LCD240128A模塊選擇的是單屏結構、每行最大為80個字節、總行數為16的顯示模式。
為了確保每條指令的正確執行,有必要在執行指令前,先分析一下模塊的狀態字:
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 合成顯示方式選擇
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!”為例:
3.3 圖形方式下顯示漢字
可以很方便地從計算機中提取點陣式的漢字字模,并按左上,左下,右上,右下的順序,把字模保存在程序ROM中,下面以占用32個字節的漢字16點陣“交”字為例如以說明:
下面這個子程序,可以顯示一個漢字“交”,通過調用該子程序,即可顯示一組語句,具體說明如下:
;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液晶模塊可以增加系統的可讀性。本文就其基本的控制軟件與電路作為分析。當然,液晶模塊的控制集成電路有很多種,各套指令也有一定的差異,但其基本思想都有很多相似的地址。
-
集成電路
+關注
關注
5381文章
11389瀏覽量
360893 -
pcb
+關注
關注
4317文章
23010瀏覽量
396353 -
液晶顯示
+關注
關注
6文章
584瀏覽量
40264
發布評論請先 登錄
相關推薦
評論