摘要:LCMl2832ZK是一種具有8位/4位并行、2線/3線串行多種接口方式,內(nèi)帶8000多種GB2312簡體中文字庫的圖形點陣液晶顯示模塊。它具有體積小、功耗低、價格便宜、使用方便等特點,因而廣泛應用于許多領域。文中介紹了LCMl2832ZK的性能特點、引腳說明、操作指令以及接口方式,并以AT89C52單片機及2線串行接口方式為例,給出了相應的硬件電路及軟件程序代碼。
關鍵詞:串/并行接口; 單片機; 液晶顯示;LCMl2832ZK
引言
液晶顯示模塊(LCD Module,簡稱LCM)是一種將液晶顯示器件、連接件、集成電路、PCB線路板、背光源、結(jié)構(gòu)件裝配在一起的組件,由于其具有顯示內(nèi)容豐富、體積小、重量輕、壽命長、使用方便、安全省電、無輻射等優(yōu)點,因此廣泛應用于移動通訊、儀器儀表、電子設備、家用電器等各個領域。文中介紹了一種具有串/并多種接口方式,且內(nèi)部含有GB2312一級、二級簡體中文字庫的圖形點陣液晶模塊LCMl2832ZK,該模塊是由北京青云創(chuàng)新科技發(fā)展有限公司推出的。
1 性能特點
LCMl2832ZK是具有串/并行接口、內(nèi)部含有中文字庫的圖形點陣液晶顯示模塊,其內(nèi)置的控制/驅(qū)動器采用臺灣矽創(chuàng)電子公司生產(chǎn)的ST7920[2].因而具有較強的控制顯示功能。LCMl2832ZK的液晶顯不屏為128×32點陣,可顯示2行,每行8個漢字。該模塊具有2MB的中文字型ROM(CGROM),共提供8192個16×16點陣中文字型;同時,為了便于英文和其它常用字符的顯示,具有16KB半寬字型ROM(HCGROM),提供128個16×8點陣的字母符號字型;另外,繪圖顯示畫面還提供一個64×256點陣的繪圖區(qū)域(GDRAM)及240點的ICONRAM,可以和文字畫面混合顯示.且內(nèi)含CGRAM可提供4組軟件可編程的16×16點陣造字功能。
LCMl2832ZK模塊采用LED背光,工作電壓/電流分別為3V/1.2mA或5V/2mA,具有2.7~5.5V的寬工作電壓范圍,還具有睡眠、正常及低功耗工作模式,可滿足系統(tǒng)各種工作電壓及便攜式儀器低功耗的要求。為了適應多種微處理器和單片機接口的需要,模塊提供了4位/8位并行、2線/3線串行多種接口方式。另外,模塊還提供了畫面清除、光標顯示/隱藏、顯示打開/關閉、顯示字符閃爍、光標移位、顯示移位、反白顯示、睡眠模式等操作指令。該模塊可實現(xiàn)漢字、ASCII碼、點陣圖形的同屏顯示,廣泛用于各種儀器儀表、家用電器及通信產(chǎn)品中。
2 模塊引腳定義和用戶命令
為了更好地闡述L,CMl2832ZK的接口方式及控制方法,先介紹該模塊的引腳定義及用戶命令。
2.1模塊引腳定義
LCMl2832ZK模塊的引腳定義如表1所列。
表1 LCM12832ZK的引腳定義
引腳 | 名稱 | 方向 |
說 明 |
1 | V0 | - | LCD亮度調(diào)整,外接電阻端 |
2 | VR | - | LCD亮度調(diào)整,外接電阻端 |
3 | GND | - | 地 |
4 | VCC | - | 3V/5V |
5 | NC | - | 未用 |
6 | RS(CS) | I | 選擇寄存器(并行);0:指令寄存器;1:數(shù)據(jù)寄存器片選(串行);0:禁止;1:允許 |
7 | RW(SID) | I | 讀寫控制器(并行)0:寫入;1:讀輸入串行數(shù)據(jù)(串行) |
8 | E(SCLK) | I | 讀寫數(shù)據(jù)起始腳(并行);輸入串行脈沖(串行) |
9~16 | D0-D7 | I/O | 數(shù)據(jù)線0-7 |
17 | PSB | I/O | 控制界面;0:串行;1:并行8/4位 |
18 | RST | I/O | 復位信號,低有效 |
19 | LK | I | 背光源負極 |
20 | LA | I | 背光源正極 |
2.2用戶命令說明
LCMl2832ZK的指令集包括基本指令集(RE=0)和擴充指令集(RE=1)兩大類,用戶可以通過這些命令使模塊執(zhí)行相應的顯示或控制功能。下面簡要介紹部分常用的操作命令:
(1)設定DDRAM(I)isplay Data RAM)地址:
設定DDRAM地址到地址計數(shù)器(AC)。第一行
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
1 |
AC6 |
AC5 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
AC4 |
AC3 |
AC2 |
ACl |
AC0 |
AC范圍為:80H~8’7H;第二行AC范圍為90H。9’7H。
(2)設定CGRAM((]haracter Generator RAM)地址:
設定CGRAM地址到地址計數(shù)器(AC)。
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
0 |
1 |
AC5 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
AC4 |
AC3 |
AC2 |
ACl |
AC0 |
(3)進入點設定(Enter Mode Set)
在數(shù)據(jù)的讀取與寫入時,指定光標的移動方向
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
0 |
0 |
0 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
0 |
0 |
1 |
I/D |
S |
及顯示的位移。
I/D:位地上計數(shù)器遞增遞減選擇。
當I/D=1,光標右移,DDRAM的位地址計數(shù)器+1;
當I/D=0,光標左移,DDRAM的位地址計數(shù)器-1;
S:顯示畫面整體位移
S |
I/D |
DESCRIPTION |
H |
H |
畫面整體左移 |
H |
L |
畫面整體右移 |
(4)顯示狀態(tài)開/關
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
0 |
0 |
0 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
0 |
1 |
D |
C |
B |
控制整體顯示、光標、顯示、光標位置反白的ON/0FF。
D=1,整體顯示ON;D:0,整體顯示OFF
C=1,光標顯示ON;C=0,光標顯示OFF
B=1,光標位置顯示反白0N;B=0,光標位置顯示反白OFF
(5)清除顯示
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
0 |
0 |
0 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
0 |
0 |
0 |
0 |
1 |
將DDRAM添滿“20H”(space code),并設定DDRAM的地址計數(shù)器(AC)到“00H”。
(6)功能設定
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
0 |
0 |
1 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
DL |
X |
RE |
X |
X |
DL=l,為8_bit MPU控制界面;DL=O,為4一BITMPU控制界面;
RE=1,為擴充指令集;R:E=0,為基本指令集。
(7)光標或顯示移位控制
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
0 |
0 |
0 |
0 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
1 |
S/C |
R/L |
X |
X |
設定光標的移動與顯示的移位控制,該指令并不改變:DDRAM的內(nèi)容。
S/C |
R/L |
Description |
AC Value |
L |
L |
光標向左移動 |
AC=AC-1 |
L |
H |
光標向右移動 |
AC=AC+1 |
H |
L |
顯示向左移動,且光標跟著移動 |
AC=AC |
H |
H |
顯示向右移動,且光標跟著移動 |
AC=AC |
(8)讀取忙碌標志(BF)和位址計數(shù)器
RS |
RW |
DB7 |
DB6 |
DB5 |
0 |
1 |
BF |
AC6 |
AC5 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
AC4 |
AC3 |
AC2 |
AC1 |
AC0 |
讀取忙碌標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出位址計數(shù)器(AC)的值。
(9)寫入資料到RAM
RS |
RW |
DB7 |
DB6 |
DB5 |
1 |
0 |
D7 |
D6 |
D5 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
D4 |
D3 |
D2 |
D1 |
D0 |
寫入資料到內(nèi)部RAM,寫入后會使AC改變。
(10)讀取RAM的值
RS |
RW |
DB7 |
DB6 |
DB5 |
1 |
1 |
D7 |
D6 |
D5 |
DB4 |
DB3 |
DB2 |
DBl |
DB0 |
D4 |
D3 |
D2 |
D1 |
D0 |
從內(nèi)部RAM:讀取數(shù)據(jù),讀取后會使.AC改變。
3 接口方式與時序
LCMl2832ZK具有串/并行多種接口方式,易與各種型號單片機、微處理器連接。
3.1并行接口數(shù)據(jù)傳輸
當L,CMl2832ZK的PSB腳接高電平時(或模塊背面S/P的短路電阻在“P”側(cè)),模塊將進入并行傳輸模式。在并行傳輸模式下,可由指令位(DL FLAG)來選擇8位或4位接口方式,主控制系統(tǒng)將配合“RS”、“Rw”、“E”、D0~D7來完成指令/數(shù)據(jù)的傳送。
在4位傳輸模式中,每一個8位的指令或數(shù)據(jù)都將被分為兩組:較高4位(D7~D4)的數(shù)據(jù)會被放在第一組的D7~D4部分,而較低4位(D3。DO)的數(shù)據(jù)則會被放在第二組的D7~D4部分,在4位傳輸模式中,D3~。DO界面未使用。
3.2串行接口數(shù)據(jù)傳輸
當PSB腳接低電平時(或模塊背面S/P的短路電阻在“S”側(cè)),模塊將進入串行接口模式。在串行模式下將使用2條線作串行數(shù)據(jù)的傳輸,主控系統(tǒng)將配合傳輸同步時鐘線(SCLK)和接收串行數(shù)據(jù)線(SID)來完成串行傳輸?shù)膭幼鳌?BR>
從圖1可知,單片機與液晶模塊之間傳送1字節(jié)的數(shù)據(jù)共需24個時鐘脈沖。首先傳輸起始位元組,即模塊在起始位元組需先接收到5個連續(xù)的“1”(同步位元字串),此時傳輸計數(shù)將被重置并且串行傳輸將被同步.緊接著的2個位元字串分別指定數(shù)據(jù)傳輸方向(讀或?qū)?位元“RW”以及數(shù)據(jù)寄存器或指令寄存器選擇位元“RW”,最后的第8位固定為“0”。在接收到同步位元及“RW”和“RW”起始位元組后,每一個八位元指令將被分為2個位元組接收,其中較高4位(D7一D4)的指令會被放在第1個位元組的高4位,而較低4位(D3~D0)的指令則會被放在第2個位元組的高4位.至于相關其他4位則都為0,如此完成一個字節(jié)指令或數(shù)據(jù)的傳送。
4 字符顯示及模塊使用說明
4.1字符顯示
LCMl2832ZK按照每個中文字符16x16點陣將顯示屏分為2行8列.共16個區(qū),每個區(qū)可顯示1個中文字符或2個16x8點陣全高ASCII碼字符。LCMl2832ZK內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字型)的內(nèi)容。三種不同字符/字型的編碼選擇范圍為:0000~0006H顯示自定義字型.02H~7FH顯示半寬ASCII碼字符.A1AOH—F7FFH顯示8192種GB2312中文字庫字型。
4.2模塊使用說明
使用LCMl2832ZK顯示模塊時,應注意以下幾點。
①引腳RST和PSB可懸空,不接時,為并行接口方式:引腳VR和 V0之間必須接可變電阻(2.2kΩ~10kΩ),該可變電阻一端接VR,調(diào)整端接V0,另一端懸空。
②模塊在接收指令前,單片機必須先確認模塊內(nèi)部處于非忙狀態(tài),即讀取BF標志時BF為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和該指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。
③RE為基本指令集與擴充指令集的選擇控制位。當變更RE后,以后的指令集將維持在最后的狀態(tài),除非再次變更RE位,否則使用相同指令集時,無需每次均重設RE位。
④串行傳輸時,如果有多個數(shù)據(jù)或指令要傳送,必須要等到一個指令完成執(zhí)行完畢后再傳送下一個指令或數(shù)據(jù),否則會造成指令或數(shù)據(jù)的丟失。這是因為液晶模塊內(nèi)部沒有發(fā)送/接收緩沖區(qū)。
⑤若要在某一個位置顯示中文字符,應先設定顯示字符的位置,即先設定顯示地址,再寫入中文字符編碼。
圖2
5 LCMl2832ZK應用實例
將引腳PSB接地,片選CS固定接高電平。使用LCMl2832ZK的2線串行接口方式可大大簡化液晶顯示模塊與單片機之間的接口設計。同時,也使液晶顯示模塊顯示漢字變得極為容易,從而改變過去單片機系統(tǒng)人機界面不夠友好的弊端。AT89C52單片機與LCMl2832ZK模塊的2線串行接口電路如圖2所示,下面給出相應的軟件程序代碼。
;;口線定義
::CS一一一一將CS接固定高電平
SID EQU P1.0
SCLK EQU P1.1
:液晶模塊初始化子程序
_INIT_LCM:
;;延時>40ms
MOV R7,#00110000B ;使用8位控制界面
LCALL_WRITE_COMMAND
;;延時>100μs
MOV R7,#00110000B ;使用基本指令集
LCALL-WRIrI'E-COMMAND
;;延時>37μs
MOV R7,#00001 100B ;整體顯示ON
LCALL _WRITE-COMMAND
;;延時>100μs
MOV R7,#00000001B ;清屏
LCALL -WRITE-COMMAND
;;延時>10ms
MOV R7.加00001 10B :進入點設定
LCALL.WRITE COMMAND
RET
;;字符顯示子程序
MOV R7,#80H :設定DDRAM位址
MOV DPTR.#STRINGl
LCALL—PUT_STRING ;在第一行顯示字符串1
MOV R7。#90H :設定DDRAM位址
MOV DPTR.}}STRING2
LCALL_PUT_STRING ;在第二行顯示字符串2
_PUT_STRING:MOV A,R7
ORL A,#80H
MOV R7,A
LCALL_WRITE_COMMAND
DISP_STR_LOOP:MOV A,加
MOVC A.@A+DPTR
CJNE A,#o,CONT_STR_DISP
RET
CONT STR DISP:MOV R7,A
LCALL_WRITE_DATA
INC DPTR
SJMP DISP_STR_LOOP
STRINGl:D B ’海軍航空
工程學院’,0;;漢字代碼
STRING2:DB’中文圖形
液晶顯示’.0
;;串行字節(jié)數(shù)據(jù)發(fā)送子程序
_WRITE_DATA:MOV A,
R7
::發(fā)送起始位元組”
11111010"
;;發(fā)送第1個位元組的高4
位即串行指令的高4位
D7~D4
CLR SCLK
MOV C,ACC,7
MOV SID,C
SETB SCLK
CLR SCLK,
MOV C,ACC,6
MOV SID,C
SETB SCLK
CLR SCLK
MOV C,ACC,5
MOV SID,C
SETB SCLK
CLR SCLK
MOV C,ACC,4
MOV SID,C
SETB SCLK
;;發(fā)送第1個位元組的低4位”0 0 0 0”
;;發(fā)送第2個位元組的高4位即串行指令的低4位
D3~D0
CLR SCLK
MOV C,ACC,3
MOV SID,C
SETB SCLK
CLR SCLK
MOV C,ACC,2
MOV SID,C
SETB SCLK
CLR SCLK
MOV C,ACC,1
MOV SID,C
SETB SCLK
CIJR SCLK
MOV C,ACC,O
MOV SID,C
SETB SCLK
;;發(fā)送第2個位元組的低4位“0 0 0 0”
;;當有連續(xù)多個指令被執(zhí)行時,指令執(zhí)行時間必須被考慮
RET
6 結(jié)束語
分析了LCM12832ZK的性能特點、操作指令、接口方式以及使用注意事項等,并以AT89C52單片機及2線串行接口方式為例,給出了相應的硬件電路及軟件程序。由該模塊構(gòu)成的液晶顯示方案與同類型的液晶顯示模塊相比,不論是硬件電路結(jié)構(gòu)的設計還是軟件程序的編制都要簡潔得多,并且價格也略低于相同點陣的其它同類模塊。因此,該模塊將會在眾多領域得到更廣泛的應用。