内含标准字库的中文液晶模块OCMJ5X10
(1)显示国标汉字
命令格式 F0 XX YY QQ WW
XX:以汉字为单位的屏幕行坐标值。
YY:以汉字为单位的屏幕列坐标值。
QQ WW:坐标位置上要显示的GB 2312汉字区位码。
OCMJ5X10模块由于内部含有中文字库,因此中文字符的显示非常简单,只需给出该汉字的区位码即可显示该字。区位码表可参见GB2312字符集。
(2)显示8×8 ASCII字符
命令格式 F1 XX YY AS
该命令为4字节命令(最长执行时间为0.8ms,ts2= 0.8ms)。
XX:以ASCII码为单位的屏幕行坐标值。
YY:以ASCII码为单位的屏幕列坐标值。
AS:坐标位置上要显示的ASCII 字符码。
(3)显示8×16 ASCII字符
命令格式 F9 XX YY AS
操作数意义同上。
(4)显示位点阵
命令格式 F2 XX YY
该命令为3字节命令(最长执行时间为0.1ms,ts2= 0.1ms)。
(5)显示字节点阵
命令格式 F3 XX YY BT
该命令为4字节命令(最长执行时间为0.1ms,ts2= 0.1ms)。
(6)清 屏
命令格式 F4
该命令为单字节命令(最长执行时间为11ms,ts2=11ms),其功能为将屏幕清空。
(7)上 移
命令格式 F5
该命令为单字节命令(最长执行时间为25ms,ts2=25ms),其功能为将屏幕向上移动一个点阵行。
(8)下 移
命令格式 F6
该命令为单字节命令(最长执行时间为30ms,ts2=30ms),其功能为将屏幕向下移动一个点阵行。
(9)左 移
命令格式 F7
该命令为单字节命令(最长执行时间为12ms,ts2=12ms),其功能为将屏幕向左移动一个点阵行。
(10)右 移
命令格式 F8
该命令为单字节命令(最长执行时间为12ms,ts2=12ms),其功能为将屏幕向右移动一个点阵行。
图2 OCMJ5X10液晶显示模块与AT89C52单片机的接口电路
5 具体应用
由于OCMJ5X10内部具有中文字库,且使用了简单的两线握手协议,因而将其应用在嵌入式系统中,可简化显示电路的硬件接口设计及软件编程。虽然模块与单片机之间数据的传输采用并行模式,占用单片机系统的硬件资源相对较多,但是相应显示软件的编制却要比采用串行接口模式的中文字库液晶模块相对简单。尤其是图形显示界面设计,利用OCMJ5X10提供的显示字节点阵命令(线绘图),可方便、快捷地绘制出显示图形。此点在绘图速度、ROM空间占用等方面优于串行接口模式的液晶模块。下面给出OCMJ5X10在嵌入式系统中的具体应用,包括硬件接口电路及软件编程。
5.1 硬件接口电路
这里以AT89C52单片机为例,给出OCMJ5X10液晶显示模块与单片机的接口电路。单片机与模块采用间接控制方式和REQ/BUSY握手方式。AT89C52的P1.0~P1.7口与模块的DB0~DB7数据线相连,P3.4与模块BUSY线相连,P3.5与模块REQ线相连;晶振为12MHz,模块采用上电自动复位。AT89C52与OCMJ5X10的接口电路如图2所示。
5.2 显示软件
下面给出与上述硬件电路配套的显示子程序。其包括初始化、显示汉字、显示8×16点阵ASCII字符、点绘图及线绘图子程序。可根据显示需要在主程序的相应位置调用,即可实现相应的显示功能。OCMJ5X10内部含有GB 2312一级字库,可满足绝大部分应用系统汉字显示的需要。对于一级国标字库内所没有的汉字或需要显示复杂图形时,可通过调用绘点及绘线子程序来实现任意复杂汉字或图形的显示。
;位定义
BUSY BIT P3.4
REQ BIT P3.5
;数据定义
X DATA 30H ;屏幕行坐标缓冲区
Y DATA 31H ;屏幕列坐标缓冲区
DATAH DATA 32H ;显示值高位
DATAL DATA 33H ;显示值低位
;初始化子程序
INT: MOV SP,#60H ;设堆栈
CLR REQ ;请求线清0
SETB BUSY ;将P3.4设为输入口
RET
;写模块子程序
SUB1: JB BUSY ,SUB1 ;确信模块空闲
MOV P1 , A ;向总线送数椐
NOP ;等待数据总线稳定
SETB REQ ;向模块发请求命令
WAIT: JNB BUSY,WAIT ;等待模块响应
CLR REQ ;清REQ
RET ;返回
;写汉字程序
HZ: MOV A , #0F0H ;写显示汉字命令
ACALL SUB1
MOV A , X
ACALL SUB1 ;写屏幕行坐标值
MOV A , Y
ACALL SUB1 ;写屏幕列坐标值
MOV A , DATAH
ACALL SUB1 ;写区位码高位
MOV A , DATAL
ACALL SUB1 ;写区位码低位
RET
;写8×16 ASCII码程序
ASC2:MOV A , #0F9H ;写显示8×16 ASCII
ACALL SUB1 ;字符命令
MOV A , X
ACALL SUB1 ;写屏幕行坐标值
MOV A , Y
ACALL SUB1 ;写屏幕列坐标值
MOV A , DATAL
ACALL SUB1 ;写字符ASCII码
RET
;点绘图子程序
HD: MOV A , #0F2H;写显示位点阵命令
ACALL SUB1
MOV A , X ;写点屏幕行坐标值
ACALL SUB1
MOV A , Y ;写点屏幕列坐标值
ACALL SUB1
RET
;线绘图子程序
HX: MOV A , #0F3H;写显示位点阵命令
ACALL SUB1
MOV A , X ;写点屏幕行坐标值
ACALL SUB1
MOV A , Y ;写点屏幕列坐标值
ACALL SUB1
MOV A , DATAL
RET
;清屏程序
CLR: MOV A , #0F4H ;写清屏命令
ACALL SUB1
RET
结 语
利用OCMJ5X10中文图文液晶模块相对简单的硬件接口及简单的用户命令,可为嵌入式系统设计出显示信息量大且显示信息丰富的全中文人机界面,避免了传统液晶模块中文图形显示界面复杂的硬件接口设计及软件编程。该模块为嵌入式系统人机界面设计提供了一种较好的解决方案。