内含标准字库的中文液晶模块OCMJ5X10
摘要:介绍一种内含GB2312国标一级简体汉字库的图形点阵液晶显示模块;对该模块的性能特点、接口协议、接口时序、用户命令作了详尽的描述,并给出与单片机的硬件接口电路及相应的显示程序。
关键词:图形液晶模块 中文字库 单片机
引 言
1 概 述
由于图形点阵液晶显示模块具有显示信息丰富(可显示汉字、字符、曲线、图形)、功耗低、体积小、质量轻、寿命长、不产生电磁辐射污染等优点,因而是单片机系统中理想的显示器件。近年来被广泛应用于单片机控制的智能仪器仪表、工业控制领域、通信器材和家用电器中。目前,国内在单片机系统中用于中文显示时,使用的液晶显示模块主要存在以下几方面的不足。
① 占用ROM空间大。以图形方式显示汉字,每个汉字将占用32字节的ROM空间,因此限制了显示汉字字符的数量。此点对内部Flash闪存数量较小的单片机,影响尤为严重。
② 与单片机的硬件接口电路复杂。该类型模块除使用8根数据线外,尚需使用片选、寄存器选择、读/写选择、使能控制等控制线,使得对单片机的硬件资源占用较为严重。
③ 接口时序复杂,软件编程繁复。
上述的几点内容限制了液晶显示技术在单片机系统中的应用。
这里介绍的OCMJ5X10是160×80点阵的中文图文液晶图形显示器模块。该模块的内部由于含有国标一级简体字库,使得汉字的显示异常方便;同时,该模块与单片机的硬件接口除数据总线外,仅使用了REQ/BUSY两根握手信号线,简化了与单片机的硬件接口电路设计。上述特点对软件、硬件资源均十分紧张的单片机系统来说是十分重要的。
图1 OCMJ5X10写汉字时序图
2 主要特点及引脚定义
以下是OCMJ5X10中文液晶显示模块的主要特性。
① OCMJ5X10中文液晶显示器模块内含 GB 2312 16×16点阵国标一级简体汉字和 ASCII 8×8(半高)及8×16(全高)点阵英文字库。用户输入区位码或 ASCII 码即可实现文本显示。
② OCMJ5X10中文液晶显示模块也可用作一般的点阵图形显示器,提供位点阵和字节点阵两种图形显示功能。用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的图形点阵模块。
③ OCMJ5X10中文液晶显示模块可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。
④ OCMJ5X10中文液晶显示模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令,一改传统的使用大量的设置命令进行初始化的方法。OCMJ5X10 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”;同时,保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。
⑤ OCMJ5X10中文液晶显示模块使用+5V单电源,同时由模块内部提供显示驱动负电压,简化了系统电源的设计。该模块还具有LED背光源。
OCMJ5X10中文图文液晶显示器的引脚说明如表1所列。
表1 OCMJ5X10引脚说明
引 脚 | 名 称 | 方 向 | 说 明 |
1 | VLED- | I | 背光源负极(LED-OV) |
2 | VLED+ | I | 背光源正极(LED+5V) |
3 | VSS | I | 地 |
4 | VDD | I | (+5V) |
5~12 | DB0~DB7 | I | 数据0~7 |
13 | BUSY | O | =1,已收到数据并正在处理中; =0,模块空闲,可接收数据 |
14 | REQ | I | 请求信号,高电平有效 |
15 | RES | I | 复位信号,低电平有效 |
16 | NC | ||
17 | RT1 | LCD灰度调整,外接电阻端 | |
18 | RT2 | LCD灰度调整,外接电阻端 |
3 硬件接口协议及接口时序
OCMJ5X10模块与CPU的接口除了使用DB0~DB7口8根数据线外,仅使用了REQ和BUSY两根控制线,构成请求/应答(REQ/BUSY)握手方式,省略了传统模块接口方式的片选、读写控制、指令/数据选择、使能控制等控制线,从而使硬件接口及软件时序变得非常简单。在硬件资源十分紧张的应用系统中,也可采用REQ单线延时控制方式,从而把硬件资源占用降至最低。接口协议如下:当BUSY线为高电平时(BUSY =1),表示模块忙于内部处理,不能接收用户命令;而BUSY为低电平时(BUSY =0),表示模块空闲,等待接收用户命令。CPU可在BUSY为低后的任意时刻开始发送命令。首先,把用户命令的当前字节放到数据线上,接着发送高电平REQ 信号,通知模块,请求处理当前数据线上的命令或数据。模块在收到外部的REQ高电平信号后,立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理。此时,用户对模块的写操作已经完成,可以撤消数据线上的信号并可做模块显示以外的其它工作,也可不断地查询BUSY是否为低。如果BUSY =0,说明模块对用户的写操作已经执行完毕,可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括显示坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后,才开始执行整个命令的内部操作;因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长。这里以写入汉字命令的时序为例,给出 图1所示的OCMJ5X10时序图,对应的具体时间参数说明如表2所列。
表2 OCMJ5X10模块时间参数
编 号 | 参数名称 | 最小值 | 最大值 | 说 明 |
1 | tr/μs | 0.4 | - | 数据线上数据稳定时间 |
2 | tb/μs | 2 | 20 | 最大模块响应时间 |
3 | trt/μs | 11 | - | 最小REQ保持时间 |
4 | ts1/μs | 20 | 45 | 最大数据接收时间 |
5 | ts2/ms | - | 30 | 最大命令指令处理时间 |
4 用户命令