<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 串行接口中文圖形點(diǎn)陣液晶顯示模塊的應用

串行接口中文圖形點(diǎn)陣液晶顯示模塊的應用

作者: 時(shí)間:2004-12-08 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:介紹一種具有4位/8位并行、2線(xiàn)/3線(xiàn)多種方式,內部含有國標一級、二極簡(jiǎn)體字庫的;利用該靈活的方式和簡(jiǎn)單、方便的操作指令,可構成全人機交互界面。介紹的性能特點(diǎn)、操作指令及方式;以AT89C2051單片機及2線(xiàn)接口方式為例,給出相應的硬件電路及顯示子程序。

關(guān)鍵詞:串/并接口 液晶模塊 字庫

引言

器件由于具有顯示信息豐富、功耗低、體積小、質(zhì)量小、無(wú)輻射等優(yōu)點(diǎn),得到了廣泛的;但模塊復雜的硬件接口和軟件編程卻令產(chǎn)品設計人員生畏,因而限制了該模塊在某些領(lǐng)域的。本文介紹一種具有串/并多種接口方式,且內部含有GB2312一級、二級簡(jiǎn)體中文字庫的液晶模塊,使用該模塊可構成具有全中文人機交互圖形界面的液晶顯示系統。

1 性能特點(diǎn)

OCM4X8C是具有串/并接口,具內部含有中文字庫的圖形液晶顯示模塊。該模塊的控制/驅動(dòng)器采用臺灣矽創(chuàng )電子公司的ST7920,因而具有較強的控制顯示功能。OCM4X8C的液晶顯示屏為12864點(diǎn)陣,可顯示4行、每行8個(gè)漢字。為了便于簡(jiǎn)單、方便地顯示漢字,該模塊具2Mb的中文字型CGROM,該字型ROM中含有8192個(gè)1616點(diǎn)陣中文字庫;同時(shí),為了便于英文和其它常用字符的顯示,具有16Kb的168點(diǎn)陣的ASCII字符庫;為便于構造用戶(hù)圖形,提供了一個(gè)64256點(diǎn)陣的GDRAM繪圖區域,且為了便于構造用戶(hù)所需字型,提供了4組1616點(diǎn)陣的造字空間。利用上述功能,OCM4X8C可實(shí)現漢字、ASCII碼、點(diǎn)陣圖形、自造字體的同屏顯示。為便了和多種微處理器、單片機接口,模塊提供了4位并行、8位并行、2線(xiàn)、3線(xiàn)串行多種接口方式。

該模塊具有2.7~5.5V的寬工作電壓范圍,且具有睡眠、正常及低功耗工作模式,可滿(mǎn)足系統各種工作電壓及便攜式儀器低功耗的要求。液晶模塊顯示負電壓,也由模塊提供,從而簡(jiǎn)化了系統電源設計。模塊同時(shí)還提供LED背光顯示功能。除此之外,模塊還提供了畫(huà)面清除、游標顯示/隱藏、游標歸位、顯示打開(kāi)/關(guān)閉、顯示字符閃爍、游標移位、顯示移位、垂直畫(huà)面旋轉、反白顯示、液晶睡眠/喚醒、關(guān)閉顯示等操作指令。

2 模塊引腳定義和用戶(hù)指令集

OCM4X8C的引腳說(shuō)明,如表1所列。

表1 OCM4X8C引腳說(shuō)明

引 腳名 稱(chēng)方 向說(shuō) 明
1VSS-GND(0V)
2VDD-邏輯電源(+5V)
3V0-LCD電源(懸空)
4RS(CS)OH:數據,L:指令
5R/W(SID)OH:讀,L:寫(xiě)
6E(SCLK)O使能
7DB0I數據0
8DB1I數據1
9DB2I數據2
10DB3I數據3
11DB4I數據4
12DB5I數據5
13DB6I數據6
14DB7I數據7
15PSBOH:并行,L:串行
16NC-空腳
17RSTO復位(低電平有效)
18NC-空腳
19LEDA-背光源正極(LED+5V)
20LEDK-背光源負極(LED-0V)

用戶(hù)使用液晶模塊時(shí)是通過(guò)用戶(hù)命令來(lái)執行相應的顯示或控制功能的。OCM4X8C的用戶(hù)命令分為基本命令集和擴充命令集,分別如表2、表3所列。

表2 OCM4X8 基本命令集

指 令指令碼說(shuō) 明執行時(shí)間/μs(540kHz)
RSRWDB7DB6DB5DB4DB3DB2DB1DB0
清除顯示0000000001將DDRAM填滿(mǎn)“20H”,并設定DDRAM的地址計數順(AC)到“00H”4.610 -3
地址歸位000000001X設定DDRAM的地址計數器(AC)到“00H”,并且將游標移到開(kāi)頭原點(diǎn)位置4.610 3
進(jìn)入點(diǎn)
設定
00000001I/OS指定在資料的讀取與寫(xiě)入時(shí),設定游標移動(dòng)方向及指定顯示的移位72
顯示狀態(tài)開(kāi)/關(guān)0000001DCBD=1:整體顯示ON;C=1:游標ON;
B=1:游標位置ON
72
游標或顯示移位
控制
000001S/CR/LXX設定游標的移動(dòng)與顯示的移位控制位元。這個(gè)指令并不改變DDRAM的內容72
功能設定00001DLX0REXXDL=1(必須設為1);RE=1:擴充指令集動(dòng)作;RE=0:基本指令集動(dòng)作72
設定CGRAM
地址
0001AC5AC4AC3AC2AC1AC0設定CGRAM地址到地址
計數器(AC)
72
設定DDRAM
地址
001AC6AC5AC4AC3AC2AC1AC0設定DDRAM地址到地址
計數器(AC)
72
讀取標志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標志(BF)可以確認內部動(dòng)作是否完成,同時(shí)可以讀出地址計數器(AC)的值0
寫(xiě)資料到RAM10D7D6D5D4D3D2D1D0寫(xiě)入資料到內部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72
讀出RAM的值11D7D6D5D4D3D2D1D0從內部RAM讀取資料(DDRAM/CGRAM/IRAM/GDRAM)72

表3 OCM4X8C 擴充指令集

指 令指 令 碼

說(shuō) 明

執行時(shí)間/μs(540kHz)
RSRWDB7DB6DB5DB4DB3DB2DB1DB0
待命模式0000000001將DDRAM填滿(mǎn)“20H”,并設定DDRAM的地址計數器(AC)到“00H”;72
卷動(dòng)地址或IRAM地址選擇000000001SRSR=1:允許輸入垂直卷動(dòng)地址;
SR=0:允許輸入IRAM地址
72
反白選擇00000001R1R0選擇4行中的任一行作反白顯示,并可決定反白與否72
睡眠模式0000001SLXXSL=1:脫離睡眠模式;
SL=0:進(jìn)科睡眠模式
72
擴充功能設定000011X1
RE
G0RE=1:擴充指令集動(dòng)作;RE=0基本指令集動(dòng)作;G=1:繪圖顯示ON;G=0:繪圖顯示OFF72
設定IRAM地址或卷動(dòng)地址0001AC5AC4AC3AC2AC1AC0SR=1:AC5AC0為垂直卷動(dòng)地址
SR=0:AC3AC0為ICONIRAM地址
72
設定繪圖RAM地址001AC6AC5AC4AC3AC2AC1AC0設定CGRAM地址到地址計數器(AC)72

3 字符顯示

OCM4X8C按照每個(gè)中文字符1616點(diǎn)陣將顯示屏分類(lèi)4行8列,共32個(gè)區。每個(gè)區可顯示1個(gè)中文字符或2個(gè)168點(diǎn)陣全高ASCII碼字符,即每屏最多可實(shí)現32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。OCM4X8C內部提供1282字節的字符顯示RAM緩沖區(DDRAM)。字符顯示是通過(guò)將字符顯示編碼寫(xiě)入該字符顯示RAM實(shí)現的。根據寫(xiě)入內容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內容。三種不同字符/字型的選擇編碼范圍為:0000~0006H顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個(gè)字符顯示區域有著(zhù)一一對應的關(guān)系,其對應關(guān)系如圖1所示。

4 說(shuō)明

用OCM4X8C顯示模塊時(shí)應注意以下幾點(diǎn):

①欲在某一個(gè)位置顯示中文字符時(shí),應先設定顯示字符位置,即先設定顯示地址,再寫(xiě)入中文字符編碼。

②顯示ASCII字符過(guò)程與顯示中文字符過(guò)程相同。不過(guò)在顯示連續字符時(shí),只須設定一次顯示地址,由模塊自動(dòng)對地址加1指向下一個(gè)字符位置,否則,顯示的字符中將會(huì )有一個(gè)空ASCII字符位置。

③當字符編碼為2字節時(shí),應先寫(xiě)入高位字節,再寫(xiě)入低位字節。

④模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態(tài),即讀取BF標志時(shí)BF需為“0”,方可接受新的指令。如果在送出一個(gè)指令前不檢查BF標志,則在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長(cháng)的時(shí)間,即等待前一個(gè)指令確定執行完成。指令執行的時(shí)間請參考指令表中的指令執行時(shí)間說(shuō)明。

⑤“RE”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時(shí),無(wú)需每次均重設“RE”位。

圖2 OCM4X8C的2線(xiàn)串行工作模式操作時(shí)序

5 接口方式與時(shí)序

OCM4X8C具有串/并多種接口方式,方便了模塊與各種單片機、微處理器的連接。

(1)4/8位并行接口方式

當模塊的PSB腳接高電平時(shí),模塊即進(jìn)入并行接口模式。在并行模式下可由功能設定指令的“DL”位來(lái)選擇8位或4接口方式,主控制系統將配合“RS”、“RW”、“E”DB0~DB7來(lái)完成指令/數據的傳送,其操作時(shí)序與其它并行接口液晶顯示模塊相同。

(2)2/3線(xiàn)串行接口方式

當模塊的PSB腳接低電平時(shí),模塊即進(jìn)入串行接口模式。串行模式使用串行數據線(xiàn)SID與串行時(shí)鐘線(xiàn)SCLK來(lái)傳送數據,即構成2線(xiàn)串行模式。

OCM4X8C還允許同時(shí)接入多個(gè)液晶顯示模塊以完成多路信息顯示功能。此時(shí),要利用片選端“CS”構成3線(xiàn)串行接口方式,當“CS”接高電位時(shí),模塊可正常接收并顯示數據,否則模塊顯示將被禁止。通常情況下,當系統僅使用一個(gè)液晶顯示模塊時(shí),“CS”可連接固定的高電平。

模塊2線(xiàn)串行工作操作時(shí)序如圖2所示。

由圖2可以看出,單片機與液晶模塊之間傳送1字節的數據共需24個(gè)時(shí)鐘脈沖。首先,單片機要給出數據傳輸起始位,這里是以5個(gè)連續的“1”作數據起始位,如模塊接收到連續的5個(gè)“1”,則內部傳輸被重置并且串行傳輸將被同步。緊接著(zhù),“RW”位用于選擇數據的傳輸方向(讀或寫(xiě)),“RS”位用于選擇內部數據寄存器或指令寄存器,最后的第8位固定為“0”。在接收到起始位及“RW”和“RW”的第1個(gè)字節后,下一個(gè)字節的數據或指令將被分為2個(gè)字節來(lái)串行傳送或接收。數據或指令的高4位,被放在第2個(gè)字節串行數據的高4位,其低4位則置為“0”;數據或指令的低4位被放在第3個(gè)字節的高4位,其低4位也置為“0”,如此完成一個(gè)字節指令或數據的傳送。需要注意的是,當有多個(gè)數據或指令要傳送時(shí),必須要等到一個(gè)指令完成執行完畢后再傳送下一個(gè)指令或數據,否則,會(huì )造成指令或數據的丟失。這是因為液晶模塊內部沒(méi)有發(fā)送/接收緩沖區。

圖3 AT89C2051與OCM4X8C的2線(xiàn)串行接口電路

6 OCM4X8C應用實(shí)例

使用OCM4X8C的2線(xiàn)串行接口方式可大大簡(jiǎn)化液晶顯示模塊與單片機之間的接口設計;同時(shí),也使液晶顯示模塊顯示漢字變得極為容易,從而改變過(guò)去單片機系統人機界面不夠友好的弊端。AT89C2051單片機與OCM4X8C的接口電路如圖3所示。下面給出相應顯示程序。

;位定義

SID BIT P1.0 ;串行數據線(xiàn)

SCLK BIT P1.1 ;串行時(shí)鐘線(xiàn)

;內存數據定義

START EQU 30H ;起始字節

COM EQU 31H ;命令/數據

HDATA EQU 32H ;命令/數據字節高位

LDATA EQU 33H ;命令/數據字節低位

ASC EQU 34H ;ASCII數據單元

初始化子程序:

INILCM:LCALL DL40MS ;延時(shí)等待內部復位

MOV COM,#30H ;使用8位控制界面

LCALL WRITE

MOV COM,#30H ;使用基本指令集

LCALL WRITE

MOV COM,#0CH

LCALL WRITE ;整體顯示ON

MOV DL1MS

MOV COM,#01H ;清屏

LCALL WRITE

LCALL DL40MS

MOV COM,#06H ;顯示右移

LCALL WRITE

LCALL DL1MS

RET

模塊寫(xiě)入子程序:

WRITE:MOV A,COM ;送待發(fā)數據命令A

MOV A,#0F0H ;屏蔽低4位

MOV HDATA,A ;將高4位送HDATA單元

MOV A,COM ;取低4位

SWAP A ;高低4位互換

MOV A,#0F0H

MOV LDATA,A ;將低4位送LDATA單元

MOV A,START ;取起始字節

LCALL SENDBYTE ;發(fā)送

LCALL DL1MS ;延時(shí)1ms

MOV A,HDATA

LCALL SENDBYTE

LCALL DL1MS

MOV A,LDATA

LCALL SENDBYTE

LCALL DL1MS

RET

顯示漢字子程序:

HZDISP:

MOV START,#0F08H 寫(xiě)入命令

MOV COM,#80H 設定顯示位置

LCALL WRITE

MOV DPTR,#TABLE 指向文字型代碼表

MOV A,#00H 取漢字代碼低位

LOOP2:MOVC A,A+@DPTR

CJNE A,#0,DISP ;遇“0”結束顯示

RET 寫(xiě)完一行則結束

DISP:MOV START,#0FAH ;寫(xiě)數據

MOV COM,A

LCALL WRITE ;寫(xiě)入顯示模塊

INC DPTR ;取漢字代碼高位

AJMP LOOP2 ;未顯示完則繼續

TABLE:DB“中文圖形點(diǎn)陣”,0;漢字代碼表

DB“液晶顯示模塊”,0;

串行字節數據發(fā)送子程序:

SENDBYTE:MOV R7,#08H ;發(fā)送8位

LOOP1:RLC A

MOV SID,C ;數據送數據線(xiàn)

CLR SCLK ;產(chǎn)生同步時(shí)鐘

SETB SCLK

DJNZ R7,LOOP1 ;未發(fā)送完8位繼續

RET

結語(yǔ)

由該模塊構成的液晶顯示方案與同類(lèi)型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>