新聞中心

EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 圖形點(diǎn)陣式液晶顯示模塊的控制技術(shù)

圖形點(diǎn)陣式液晶顯示模塊的控制技術(shù)

作者: 時(shí)間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

摘要:分析了圖形點(diǎn)陣式液晶顯示模塊LCD240128A的內(nèi)部結(jié)構(gòu)及工作原理,結(jié)合AT89S58單片機(jī)給出了MPU與液晶顯示模塊LCD240128的接口電路,并根據(jù)LCD240128A模塊中T6963A液晶驅(qū)動(dòng)器的文本與圖形兩種模式的指令特性,給出了相應(yīng)的控制軟件。

本文引用地址:http://butianyuan.cn/article/225766.htm

關(guān)鍵詞:液晶 微控制器 顯示器 LCD240128A AT89S58 T6963A

1 模塊簡介

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

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

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

根據(jù)T6963A的特性設(shè)計(jì)出的LCD240128A模塊與AT89S58單片機(jī)的接口電路如圖2所示。

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

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

2 控制命令

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

表1 LCD240128A的引腳定義

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

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

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

STATE:MOV DPTR,#40001H

MOVX A,@DPTR

RET

此時(shí),累加器A中的每位所代表的內(nèi)容如下:

ACC.0:指令讀寫狀態(tài),1表示已準(zhǔn)備好,0表示忙

ACC.1:指令讀寫狀態(tài),1表示已準(zhǔn)備好,0表示忙

ACC.2:數(shù)據(jù)自動(dòng)讀狀態(tài),1表示已準(zhǔn)備好,0表示忙

ACC.3:數(shù)據(jù)自動(dòng)寫狀態(tài),1表示已準(zhǔn)備好,0表示忙

ACC.4:未用

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

ACC.6:屏讀/拷貝狀態(tài),1表示出錯(cuò),0表示正確;

ACC.7:閃爍狀態(tài),1表示正常,0表示不正常;

2.1 地址指令設(shè)置命令

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

(1)設(shè)置光標(biāo)位置:D1+D2+21H;

其中D1為光標(biāo)離液晶屏左上角的橫向字符數(shù);D2為光標(biāo)離液晶屏左上角的縱向字符數(shù)。

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

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

(3)設(shè)置當(dāng)前要操作的單元:D1+D2+24H

其中D1為地址的低字節(jié),D2為高字節(jié)。

2.2 顯示區(qū)域設(shè)置命令

顯示區(qū)域設(shè)置命令主要是對文本區(qū)首址和每行字符數(shù)以及圖形區(qū)的首址和每行字符數(shù)進(jìn)行設(shè)置。

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

其中D1為低字節(jié),D2為高字節(jié),地址對應(yīng)于顯示屏左上角的字符位。

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

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

其中D1為地址的低字節(jié),D2為高字節(jié)。

(4)設(shè)置圖形區(qū)每行字符數(shù):D1+00H+43H

2.3 設(shè)置顯示方式

設(shè)置顯示方式的格式為:

1 0 0 0 N3 N2 N1 N0

各位的意義如下:

N3-字符發(fā)生器選擇位,當(dāng)N3=1時(shí),選擇CGRAM,字符代碼為00H~FFH,字節(jié)空間為2k;當(dāng)N3=0時(shí),選擇CGROM,字符代碼為00H~7FH。

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

表2 合成顯示方式選擇

N2 N1 N0

合成顯示方式

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

2.4 設(shè)置顯示狀態(tài)

顯示狀態(tài)指令模式為:

1 0 0 1 N3 N2 N1 N0

其中:N0為光標(biāo)閃爍位,1為可以,0為禁止;

N1為為光標(biāo)顯示,1為可以,0為禁止;

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

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

2.5 光標(biāo)形狀選擇

光標(biāo)形狀選擇指令格式為:

1 0 1 0 0 N2 N1 N0

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

2.6 設(shè)置數(shù)據(jù)自動(dòng)讀/寫方式

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

B0H表示自動(dòng)寫;B1H表示自動(dòng)讀;B2H為結(jié)束自動(dòng)方式。

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

D1+C0H:表示數(shù)據(jù)寫,地址加1;

C1H:表示數(shù)據(jù)讀,地址加1;

D1+C2H:表示數(shù)據(jù)寫,地址減1;

C3H:表示數(shù)據(jù)讀,地址減1;

D1+C4H:表示數(shù)據(jù)寫,地址不變;

C5H:表示數(shù)據(jù)讀,地址不變。

有了上述指令,我們就可開始下一步的軟件設(shè)計(jì),至于T6963A的更詳細(xì)說明,請參考文獻(xiàn)[1]。

3 控制軟件

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

3.1 初始化與準(zhǔn)備工作

以下為狀態(tài)檢測程序:

STA1:LCALL STATE

JNB ACC.0,STA1 ;指令讀寫狀態(tài)

JNB ACC.1,STA1 ;數(shù)據(jù)讀寫狀態(tài)

RET

STA2:LCALL STATE

JNB ACC.2,STA2 ;數(shù)據(jù)自動(dòng)讀狀態(tài)

RET

STA3:LCALL STATE

JNB ACC.3,STA3 ;數(shù)據(jù)自動(dòng)寫狀態(tài)

RET

STA6:LCALL STATE

JB ACC.6,ERR ;屏讀/拷貝狀態(tài)

RET

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

ERR_;LJMP ERR ;出錯(cuò)處理程序

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

;

STATE:MOV DPTR,#4001H

MOVX A,@DPTR

RET

在下面的寫指令與數(shù)據(jù)程序中,R2為數(shù)據(jù)D1,R3為數(shù)據(jù)D2,R4為指令字節(jié);

;

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

;

以下是讀數(shù)程序:

RD_:LCALL STA1

MOV DPTR,#4000H

MOVX A,@DPTR

RET

;

有關(guān)硬件的初始化,LCD240128A在模塊制造時(shí)就已做了如下選擇:

FS=0,用于選擇8×8點(diǎn)陣;

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

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

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

INITATION:LCALL CLR_

MOV R2,#0 ;建立文本區(qū)首址

MOV R3,#0 ;為00H

MOV R4,#40H

LCALL WR2

MOV R2,#1EH ;設(shè)置文本區(qū)寬度

MOV R3,#0 ;為30

MOV R4,#41H

LCALL WR2

;

MOV R2,#00H ;設(shè)置圖形區(qū)首址

MOV R3,#00H

MOV R4,#42H

LCALL WR2

MOV R2,#1EH ;設(shè)置圖形區(qū)寬度

MOV R3,#0

MOV R4,#43H

LCALL WR2

MOV R4,#0A0H

LCALL WR0 ;設(shè)置光標(biāo)形狀

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 ;設(shè)置自動(dòng)寫

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 ;結(jié)束自動(dòng)寫

LCALL WR0

RET

;

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

MOV R3,#0

MOV R4,#24H

LCALL WR2

MOV R4,#0B0H ;設(shè)置自動(dòng)寫

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 ;結(jié)束自動(dòng)寫

LCALL WR0

RET

;

3.2 CGROM中的字符顯示

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

DISPI:MOV R3,#00h ;設(shè)置指針地址

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 圖形方式下顯示漢字

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

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

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

;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的控制指令中,有一個(gè)位操作指令,格式為:

1 1 1 1 D3 D2 D1 D0

格式中的D2D1D0用于確定要操作的是0~7位某一位,D3確定該位為1或0.該指令可對當(dāng)前顯示地址指針?biāo)傅娘@示單元中的數(shù)據(jù)的任一位寫“0”或?qū)憽?”。有了這個(gè)指令,欠就可以很方便地設(shè)置點(diǎn)或清除點(diǎn),從而達(dá)到顯示任意曲線或圖案的目的。

4 結(jié)束語

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



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉