新聞中心

EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 內(nèi)含標(biāo)準(zhǔn)字庫(kù)的中文液晶模塊OCMJ5X10

內(nèi)含標(biāo)準(zhǔn)字庫(kù)的中文液晶模塊OCMJ5X10

作者: 時(shí)間:2004-12-08 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:介紹一種GB2312國(guó)標(biāo)一級(jí)簡(jiǎn)體漢的圖形點(diǎn)陣顯示;對(duì)該的性能特點(diǎn)、接口協(xié)議、接口時(shí)序、用戶命令作了詳盡的描述,并給出與單片機(jī)的硬件接口電路及相應(yīng)的顯示程序。

關(guān)鍵詞:圖形 單片機(jī)

引 言

1 概 述

  由于圖形點(diǎn)陣顯示模塊具有顯示信息豐富(可顯示漢字、字符、曲線、圖形)、功耗低、體積小、質(zhì)量輕、壽命長(zhǎng)、不產(chǎn)生電磁輻射污染等優(yōu)點(diǎn),因而是單片機(jī)系統(tǒng)中理想的顯示器件。近年來(lái)被廣泛應(yīng)用于單片機(jī)控制的智能儀器儀表、工業(yè)控制領(lǐng)域、通信器材和家用電器中。目前,國(guó)內(nèi)在單片機(jī)系統(tǒng)中用于顯示時(shí),使用的液晶顯示模塊主要存在以下幾方面的不足。

 ?、?占用ROM空間大。以圖形方式顯示漢字,每個(gè)漢字將占用32字節(jié)的ROM空間,因此限制了顯示漢字字符的數(shù)量。此點(diǎn)對(duì)內(nèi)部Flash閃存數(shù)量較小的單片機(jī),影響尤為嚴(yán)重。

 ?、?與單片機(jī)的硬件接口電路復(fù)雜。該類型模塊除使用8根數(shù)據(jù)線外,尚需使用片選、寄存器選擇、讀/寫選擇、使能控制等控制線,使得對(duì)單片機(jī)的硬件資源占用較為嚴(yán)重。

 ?、?接口時(shí)序復(fù)雜,軟件編程繁復(fù)。

  上述的幾點(diǎn)內(nèi)容限制了液晶顯示技術(shù)在單片機(jī)系統(tǒng)中的應(yīng)用。

  這里介紹的是16080點(diǎn)陣的圖文液晶圖形顯示器模塊。該模塊的內(nèi)部由于含有國(guó)標(biāo)一級(jí)簡(jiǎn)體,使得漢字的顯示異常方便;同時(shí),該模塊與單片機(jī)的硬件接口除數(shù)據(jù)總線外,僅使用了REQ/BUSY兩根握手信號(hào)線,簡(jiǎn)化了與單片機(jī)的硬件接口電路設(shè)計(jì)。上述特點(diǎn)對(duì)軟件、硬件資源均十分緊張的單片機(jī)系統(tǒng)來(lái)說(shuō)是十分重要的。

圖1 寫漢字時(shí)序圖

2 主要特點(diǎn)及引腳定義

  以下是中文液晶顯示模塊的主要特性。

① OCMJ5X10中文液晶顯示器模塊 GB 2312 1616點(diǎn)陣國(guó)標(biāo)一級(jí)簡(jiǎn)體漢字和 ASCII 88(半高)及816(全高)點(diǎn)陣英文字庫(kù)。用戶輸入?yún)^(qū)位碼或 ASCII 碼即可實(shí)現(xiàn)文本顯示。

② OCMJ5X10中文液晶顯示模塊也可用作一般的點(diǎn)陣圖形顯示器,提供位點(diǎn)陣和字節(jié)點(diǎn)陣兩種圖形顯示功能。用戶可在指定的屏幕位置上以點(diǎn)為單位或以字節(jié)為單位進(jìn)行圖形顯示。完全兼容一般的圖形點(diǎn)陣模塊。

③ OCMJ5X10中文液晶顯示模塊可以實(shí)現(xiàn)漢字、ASCII 碼、點(diǎn)陣圖形和變化曲線的同屏顯示,并可通過(guò)字節(jié)點(diǎn)陣圖形方式造字。

④ OCMJ5X10中文液晶顯示模塊具有上/下/左/右移動(dòng)當(dāng)前顯示屏幕及清除屏幕的命令,一改傳統(tǒng)的使用大量的設(shè)置命令進(jìn)行初始化的方法。OCMJ5X10 中文模塊所有的設(shè)置初始化工作都是在上電時(shí)自動(dòng)完成的,實(shí)現(xiàn)了“即插即用”;同時(shí),保留了一條專用的復(fù)位線供用戶選擇使用,可對(duì)工作中的模塊進(jìn)行軟件或硬件強(qiáng)制復(fù)位。規(guī)劃整齊的10個(gè)用戶接口命令代碼,非常容易記憶。用戶硬件接口采用REQ/BUSY 握手協(xié)議,簡(jiǎn)單可靠。

⑤ OCMJ5X10中文液晶顯示模塊使用+5V單電源,同時(shí)由模塊內(nèi)部提供顯示驅(qū)動(dòng)負(fù)電壓,簡(jiǎn)化了系統(tǒng)電源的設(shè)計(jì)。該模塊還具有LED背光源。

  OCMJ5X10中文圖文液晶顯示器的引腳說(shuō)明如表1所列。

表1 OCMJ5X10引腳說(shuō)明

引 腳名 稱方 向

說(shuō) 明

1VLED-I背光源負(fù)極(LED-OV)
2VLED+I背光源正極(LED+5V)
3VSSI
4VDDI(+5V)
5~12DB0~DB7I數(shù)據(jù)0~7
13BUSYO=1,已收到數(shù)據(jù)并正在處理中;
=0,模塊空閑,可接收數(shù)據(jù)
14REQI請(qǐng)求信號(hào),高電平有效
15RESI復(fù)位信號(hào),低電平有效
16NC  
17RT1 LCD灰度調(diào)整,外接電阻端
18RT2 LCD灰度調(diào)整,外接電阻端

3 硬件接口協(xié)議及接口時(shí)序

  OCMJ5X10模塊與CPU的接口除了使用DB0~DB7口8根數(shù)據(jù)線外,僅使用了REQ和BUSY兩根控制線,構(gòu)成請(qǐng)求/應(yīng)答(REQ/BUSY)握手方式,省略了傳統(tǒng)模塊接口方式的片選、讀寫控制、指令/數(shù)據(jù)選擇、使能控制等控制線,從而使硬件接口及軟件時(shí)序變得非常簡(jiǎn)單。在硬件資源十分緊張的應(yīng)用系統(tǒng)中,也可采用REQ單線延時(shí)控制方式,從而把硬件資源占用降至最低。接口協(xié)議如下:當(dāng)BUSY線為高電平時(shí)(BUSY =1),表示模塊忙于內(nèi)部處理,不能接收用戶命令;而B(niǎo)USY為低電平時(shí)(BUSY =0),表示模塊空閑,等待接收用戶命令。CPU可在BUSY為低后的任意時(shí)刻開(kāi)始發(fā)送命令。首先,把用戶命令的當(dāng)前字節(jié)放到數(shù)據(jù)線上,接著發(fā)送高電平REQ 信號(hào),通知模塊,請(qǐng)求處理當(dāng)前數(shù)據(jù)線上的命令或數(shù)據(jù)。模塊在收到外部的REQ高電平信號(hào)后,立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時(shí)將應(yīng)答線BUSY變?yōu)楦唠娖剑砻髂K已收到數(shù)據(jù)并正在忙于對(duì)此數(shù)據(jù)的內(nèi)部處理。此時(shí),用戶對(duì)模塊的寫操作已經(jīng)完成,可以撤消數(shù)據(jù)線上的信號(hào)并可做模塊顯示以外的其它工作,也可不斷地查詢BUSY是否為低。如果BUSY =0,說(shuō)明模塊對(duì)用戶的寫操作已經(jīng)執(zhí)行完畢,可以再送下一個(gè)數(shù)據(jù)。如向模塊發(fā)出一個(gè)完整的顯示漢字的命令,包括顯示坐標(biāo)及漢字代碼在內(nèi)共需5個(gè)字節(jié),模塊在接收到最后一個(gè)字節(jié)后,才開(kāi)始執(zhí)行整個(gè)命令的內(nèi)部操作;因此,最后一個(gè)字節(jié)的應(yīng)答B(yǎng)USY 高電平(BUSY =1)持續(xù)時(shí)間較長(zhǎng)。這里以寫入漢字命令的時(shí)序?yàn)槔?,給出 圖1所示的OCMJ5X10時(shí)序圖,對(duì)應(yīng)的具體時(shí)間參數(shù)說(shuō)明如表2所列。

表2 OCMJ5X10模塊時(shí)間參數(shù)

編 號(hào)參數(shù)名稱最小值最大值

說(shuō) 明

1tr/μs0.4-數(shù)據(jù)線上數(shù)據(jù)穩(wěn)定時(shí)間
2tb/μs220最大模塊響應(yīng)時(shí)間
3trt/μs11-最小REQ保持時(shí)間
4ts1/μs2045最大數(shù)據(jù)接收時(shí)間
5ts2/ms-30最大命令指令處理時(shí)間

4 用戶命令

  OCMJ5X10模塊共有3類10條命令,每條命令分為操作碼和操作數(shù)兩部分,操作數(shù)為十六進(jìn)制數(shù)。下面介紹該模塊的用戶命令。

(1)顯示國(guó)標(biāo)漢字

命令格式 F0 XX YY QQ WW

XX:以漢字為單位的屏幕行坐標(biāo)值。

YY:以漢字為單位的屏幕列坐標(biāo)值。

QQ WW:坐標(biāo)位置上要顯示的GB 2312漢字區(qū)位碼。

OCMJ5X10模塊由于內(nèi)部含有中文字庫(kù),因此中文字符的顯示非常簡(jiǎn)單,只需給出該漢字的區(qū)位碼即可顯示該字。區(qū)位碼表可參見(jiàn)GB2312字符集。

(2)顯示88 ASCII字符

命令格式 F1 XX YY AS

該命令為4字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為0.8ms,ts2= 0.8ms)。

XX:以ASCII碼為單位的屏幕行坐標(biāo)值。

YY:以ASCII碼為單位的屏幕列坐標(biāo)值。

AS:坐標(biāo)位置上要顯示的ASCII 字符碼。

(3)顯示816 ASCII字符

命令格式 F9 XX YY AS

操作數(shù)意義同上。

(4)顯示位點(diǎn)陣

命令格式 F2 XX YY

該命令為3字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為0.1ms,ts2= 0.1ms)。

(5)顯示字節(jié)點(diǎn)陣

命令格式 F3 XX YY BT

該命令為4字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為0.1ms,ts2= 0.1ms)。

(6)清 屏

命令格式 F4

該命令為單字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為11ms,ts2=11ms),其功能為將屏幕清空。

(7)上 移

命令格式 F5

該命令為單字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為25ms,ts2=25ms),其功能為將屏幕向上移動(dòng)一個(gè)點(diǎn)陣行。

(8)下 移

命令格式 F6

該命令為單字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為30ms,ts2=30ms),其功能為將屏幕向下移動(dòng)一個(gè)點(diǎn)陣行。

(9)左 移

命令格式 F7

該命令為單字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為12ms,ts2=12ms),其功能為將屏幕向左移動(dòng)一個(gè)點(diǎn)陣行。

(10)右 移

命令格式 F8

該命令為單字節(jié)命令(最長(zhǎng)執(zhí)行時(shí)間為12ms,ts2=12ms),其功能為將屏幕向右移動(dòng)一個(gè)點(diǎn)陣行。

圖2 OCMJ5X10液晶顯示模塊與AT89C52單片機(jī)的接口電路

5 具體應(yīng)用

  由于OCMJ5X10內(nèi)部具有中文字庫(kù),且使用了簡(jiǎn)單的兩線握手協(xié)議,因而將其應(yīng)用在嵌入式系統(tǒng)中,可簡(jiǎn)化顯示電路的硬件接口設(shè)計(jì)及軟件編程。雖然模塊與單片機(jī)之間數(shù)據(jù)的傳輸采用并行模式,占用單片機(jī)系統(tǒng)的硬件資源相對(duì)較多,但是相應(yīng)顯示軟件的編制卻要比采用串行接口模式的中文字庫(kù)液晶模塊相對(duì)簡(jiǎn)單。尤其是圖形顯示界面設(shè)計(jì),利用OCMJ5X10提供的顯示字節(jié)點(diǎn)陣命令(線繪圖),可方便、快捷地繪制出顯示圖形。此點(diǎn)在繪圖速度、ROM空間占用等方面優(yōu)于串行接口模式的液晶模塊。下面給出OCMJ5X10在嵌入式系統(tǒng)中的具體應(yīng)用,包括硬件接口電路及軟件編程。

5.1 硬件接口電路

   這里以AT89C52單片機(jī)為例,給出OCMJ5X10液晶顯示模塊與單片機(jī)的接口電路。單片機(jī)與模塊采用間接控制方式和REQ/BUSY握手方式。AT89C52的P1.0~P1.7口與模塊的DB0~DB7數(shù)據(jù)線相連,P3.4與模塊BUSY線相連,P3.5與模塊REQ線相連;晶振為12MHz,模塊采用上電自動(dòng)復(fù)位。AT89C52與OCMJ5X10的接口電路如圖2所示。

5.2 顯示軟件

下面給出與上述硬件電路配套的顯示子程序。其包括初始化、顯示漢字、顯示816點(diǎn)陣ASCII字符、點(diǎn)繪圖及線繪圖子程序??筛鶕?jù)顯示需要在主程序的相應(yīng)位置調(diào)用,即可實(shí)現(xiàn)相應(yīng)的顯示功能。OCMJ5X10內(nèi)部含有GB 2312一級(jí)字庫(kù),可滿足絕大部分應(yīng)用系統(tǒng)漢字顯示的需要。對(duì)于一級(jí)國(guó)標(biāo)字庫(kù)內(nèi)所沒(méi)有的漢字或需要顯示復(fù)雜圖形時(shí),可通過(guò)調(diào)用繪點(diǎn)及繪線子程序來(lái)實(shí)現(xiàn)任意復(fù)雜漢字或圖形的顯示。

;位定義

BUSY BIT P3.4

REQ BIT P3.5

;數(shù)據(jù)定義

X DATA 30H ;屏幕行坐標(biāo)緩沖區(qū)

Y DATA 31H ;屏幕列坐標(biāo)緩沖區(qū)

DATAH DATA 32H ;顯示值高位

DATAL DATA 33H ;顯示值低位

;初始化子程序

INT: MOV SP,#60H ;設(shè)堆棧

CLR REQ ;請(qǐng)求線清0

SETB BUSY ;將P3.4設(shè)為輸入口

RET

;寫模塊子程序

SUB1: JB BUSY ,SUB1 ;確信模塊空閑

MOV P1 , A ;向總線送數(shù)椐

NOP ;等待數(shù)據(jù)總線穩(wěn)定

SETB REQ ;向模塊發(fā)請(qǐng)求命令

WAIT: JNB BUSY,WAIT ;等待模塊響應(yīng)

CLR REQ ;清REQ

RET ;返回

;寫漢字程序

HZ: MOV A , #0F0H ;寫顯示漢字命令

ACALL SUB1

MOV A , X

ACALL SUB1 ;寫屏幕行坐標(biāo)值

MOV A , Y

ACALL SUB1 ;寫屏幕列坐標(biāo)值

MOV A , DATAH

ACALL SUB1 ;寫區(qū)位碼高位

MOV A , DATAL

ACALL SUB1 ;寫區(qū)位碼低位

RET

;寫816 ASCII碼程序

ASC2:MOV A , #0F9H ;寫顯示816 ASCII

ACALL SUB1 ;字符命令

MOV A , X

ACALL SUB1 ;寫屏幕行坐標(biāo)值

MOV A , Y

ACALL SUB1 ;寫屏幕列坐標(biāo)值

MOV A , DATAL

ACALL SUB1 ;寫字符ASCII碼

RET

;點(diǎn)繪圖子程序

HD: MOV A , #0F2H;寫顯示位點(diǎn)陣命令

ACALL SUB1

MOV A , X ;寫點(diǎn)屏幕行坐標(biāo)值

ACALL SUB1

MOV A , Y ;寫點(diǎn)屏幕列坐標(biāo)值

ACALL SUB1

RET

;線繪圖子程序

HX: MOV A , #0F3H;寫顯示位點(diǎn)陣命令

ACALL SUB1

MOV A , X ;寫點(diǎn)屏幕行坐標(biāo)值

ACALL SUB1

MOV A , Y ;寫點(diǎn)屏幕列坐標(biāo)值

ACALL SUB1

MOV A , DATAL

RET

;清屏程序

CLR: MOV A , #0F4H ;寫清屏命令

ACALL SUB1

RET

結(jié) 語(yǔ)

  利用OCMJ5X10中文圖文液晶模塊相對(duì)簡(jiǎn)單的硬件接口及簡(jiǎn)單的用戶命令,可為嵌入式系統(tǒng)設(shè)計(jì)出顯示信息量大且顯示信息豐富的全中文人機(jī)界面,避免了傳統(tǒng)液晶模塊中文圖形顯示界面復(fù)雜的硬件接口設(shè)計(jì)及軟件編程。該模塊為嵌入式系統(tǒng)人機(jī)界面設(shè)計(jì)提供了一種較好的解決方案。



評(píng)論


相關(guān)推薦

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

關(guān)閉