串行接口中文图形点阵液晶显示模块的应用
摘要:介绍一种具有4位/8位并行、2线/3线串行多种接口方式,内部含有国标一级、二极简体中文字库的图形点阵液晶显示模块;利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。介绍模块的性能特点、操作指令及接口方式;以AT89C2051单片机及2线串行接口方式为例,给出相应的硬件电路及显示子程序。
关键词:串/并接口 液晶模块 中文字库
引言
液晶显示器件由于具有显示信息丰富、功耗低、体积小、质量小、无辐射等优点,得到了广泛的应用;但液晶显示模块复杂的硬件接口和软件编程却令产品设计人员生畏,因而限制了该模块在某些领域的应用。本文介绍一种具有串/并多种接口方式,且内部含有GB2312一级、二级简体中文字库的图形点阵液晶模块,使用该模块可构成具有全中文人机交互图形界面的液晶显示系统。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 性能特点
OCM4X8C是具有串/并接口,具内部含有中文字库的图形点阵液晶显示模块。该模块的控制/驱动器采用台湾矽创电子公司的ST7920,因而具有较强的控制显示功能。OCM4X8C的液晶显示屏为128×64点阵,可显示4行、每行8个汉字。为了便于简单、方便地显示汉字,该模块具2Mb的中文字型CGROM,该字型ROM中含有8192个16×16点阵中文字库;同时,为了便于英文和其它常用字符的显示,具有16Kb的16×8点阵的ASCII字符库;为便于构造用户图形,提供了一个64×256点阵的GDRAM绘图区域,且为了便于构造用户所需字型,提供了4组16×16点阵的造字空间。利用上述功能,OCM4X8C可实现汉字、ASCII码、点阵图形、自造字体的同屏显示。为便了和多种微处理器、单片机接口,模块提供了4位并行、8位并行、2线串行、3线串行多种接口方式。
该模块具有2.7~5.5V的宽工作电压范围,且具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。液晶模块显示负电压,也由模块提供,从而简化了系统电源设计。模块同时还提供LED背光显示功能。除此之外,模块还提供了画面清除、游标显示/隐藏、游标归位、显示打开/关闭、显示字符闪烁、游标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示等操作指令。
2 模块引脚定义和用户指令集
OCM4X8C的引脚说明,如表1所列。
表1 OCM4X8C引脚说明
引 脚 | 名 称 | 方 向 | 说 明 |
1 | VSS | - | GND(0V) |
2 | VDD | - | 逻辑电源(+5V) |
3 | V0 | - | LCD电源(悬空) |
4 | RS(CS) | O | H:数据,L:指令 |
5 | R/W(SID) | O | H:读,L:写 |
6 | E(SCLK) | O | 使能 |
7 | DB0 | I | 数据0 |
8 | DB1 | I | 数据1 |
9 | DB2 | I | 数据2 |
10 | DB3 | I | 数据3 |
11 | DB4 | I | 数据4 |
12 | DB5 | I | 数据5 |
13 | DB6 | I | 数据6 |
14 | DB7 | I | 数据7 |
15 | PSB | O | H:并行,L:串行 |
16 | NC | - | 空脚 |
17 | RST | O | 复位(低电平有效) |
18 | NC | - | 空脚 |
19 | LEDA | - | 背光源正极(LED+5V) |
20 | LEDK | - | 背光源负极(LED-0V) |
用户使用液晶模块时是通过用户命令来执行相应的显示或控制功能的。OCM4X8C的用户命令分为基本命令集和扩充命令集,分别如表2、表3所列。
表2 OCM4X8 基本命令集
指 令 | 指令码 | 说 明 | 执行时间/μs(540kHz) | |||||||||
RS | RW | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | |||
清除显示 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 将DDRAM填满“20H”,并设定DDRAM的地址计数顺(AC)到“00H” | 4.610 -3 |
地址归位 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X | 设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置 | 4.610 3 |
进入点 设定 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/O | S | 指定在资料的读取与写入时,设定游标移动方向及指定显示的移位 | 72 |
显示状态开/关 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | D=1:整体显示ON;C=1:游标ON; B=1:游标位置ON | 72 |
游标或显示移位 控制 | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | X | X | 设定游标的移动与显示的移位控制位元。这个指令并不改变DDRAM的内容 | 72 |
功能设定 | 0 | 0 | 0 | 0 | 1 | DL | X | 0RE | X | X | DL=1(必须设为1);RE=1:扩充指令集动作;RE=0:基本指令集动作 | 72 |
设定CGRAM 地址 | 0 | 0 | 0 | 1 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 设定CGRAM地址到地址 计数器(AC) | 72 |
设定DDRAM 地址 | 0 | 0 | 1 | AC6 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 设定DDRAM地址到地址 计数器(AC) | 72 |
读取标志(BF)和地址 | 0 | 1 | BF | AC6 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值 | 0 |
写资料到RAM | 1 | 0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM) | 72 |
读出RAM的值 | 1 | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM) | 72 |
表3 OCM4X8C 扩充指令集
指 令 | 指 令 码 | 说 明 | 执行时间/μs(540kHz) | |||||||||
RS | RW | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | |||
待命模式 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 将DDRAM填满“20H”,并设定DDRAM的地址计数器(AC)到“00H”; | 72 |
卷动地址或IRAM地址选择 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | SR | SR=1:允许输入垂直卷动地址; SR=0:允许输入IRAM地址 | 72 |
反白选择 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | R1 | R0 | 选择4行中的任一行作反白显示,并可决定反白与否 | 72 |
睡眠模式 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | SL | X | X | SL=1:脱离睡眠模式; SL=0:进科睡眠模式 | 72 |
扩充功能设定 | 0 | 0 | 0 | 0 | 1 | 1 | X | 1 RE | G | 0 | RE=1:扩充指令集动作;RE=0基本指令集动作;G=1:绘图显示ON;G=0:绘图显示OFF | 72 |
设定IRAM地址或卷动地址 | 0 | 0 | 0 | 1 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | SR=1:AC5AC0为垂直卷动地址 SR=0:AC3AC0为ICONIRAM地址 | 72 |
设定绘图RAM地址 | 0 | 0 | 1 | AC6 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 设定CGRAM地址到地址计数器(AC) | 72 |
3 字符显示
OCM4X8C按照每个中文字符16×16点阵将显示屏分类4行8列,共32个区