LCD与单片机的4种常用接口电路
Four Kinds of Common Interface Circuits Between Chinese Fonts LCD and SCM
TIAN Jun-xia,LU Ping
(Ordnance Engineering College,Shijiazhuang 050003,China)
Abstract:Three kinds of ordinary operation timing diagrams of Chinese fonts LCD moduleswere firstly introduced.Then four kinds
of different interface circuits were presented for different agreements and control modes,with some reference program.In practice,can
select different interface circuits for design rules.
Key Words:Display Interface Circiut;SCM;Chinese Fonts LCD Module
摘要:介绍了中文液晶显示模块3种常见的操作时序,并针对不同的协议和控制模式,提供了其与
单片机4种不同的接口电路,同时列出了相应的参考程序。实际使用时,可以根据电路设计要求,选择
不同的显示接口电路。
关键词:显示接口电路;单片机;中文液晶显示模块
1 引言
液晶显示模块具有显示信息量丰富、功耗低、体积小、质量轻、无辐射等优点[1]。而针对不同型号的液晶
显示模块,其硬件接口电路和软件编程原理不同。以LG128321和OCMJ5X10B为例,介绍了中文液晶显示模
块与单片机的4种常用接口电路。其中LG128321接口协议采用的是状态查询方式,可分为并行和串行;而
OCMJ5X10B接口协议则为请求/应答(REQ/BUSY)握手方式,可分为一般连接模式和外部数据存储器模式。
2 两种中文LCD的简介
LG128321显示屏按照每个中文字符16×16点阵分为2行8列,共32个区。每个区可显示1个中文字
符或2个16×8点阵全高ASCⅡ码字符。内部的中文字型点矩阵LCD控制/驱动器为ST7920-0B。为便于
和多种微处理器、单片机接口,模块提供了4位并行、8位并行(常用)、2线串行(常用)、3线串行(通过控制
4脚CS信号的电平)多种接口模式[1]。OCMJ5X10B显示屏按照每个中文字符16×16点
阵分为5行10列,共50个区。提供了10个用户接口命令代码,降低了编程难度,避免了用户和控制/驱动器8310指令的直接接触。模块还提供一条专用的复位线,可对工作中的模块进行软件或硬件强制复位。
3 中文LCD 3种常见的操作时序
3.1 8位并行模式(LG128321)的操作时序(状态查询)
8位并行模式下,模块的操作时序如图1所示。
图1 8位并行(LG128321)操作时序 RS=0,R/W=0,单片机在E信号下降沿写指令到模块的指令寄存器IR;RS=0,R/W=1,单片机在E信号下降沿从模块读出忙标志位BF及地址计数器AC的值;RS=1,R/W=0,单片机在E信号下降沿写数据到模块的数据寄存器DR;RS=1,R/W=1,单片机在E信号下降沿通过DR
读出模块内部RAM的数据。3.2 2线串行模式(LG128321)的操作时序(状态查
询)串行模式下,模块的操作时序如图2所示[4]。
图2 串行(LG128321)操作时序由图2可知,单片机与模块之间传送1字节的指令或者数据共需24个时钟脉冲。首先,单片机要给出5个连续的“1”作为同步位元组,显示模块接收到连续的5个“1”,则内部传输计数被重置,串行传输被同步。而后,由RW和RS位决定内部数据寄存器或指令寄存器的读写,最后的第8位固定为“0”。在接
收到第1个字节后,下一个字节的数据或指令将被分为2个字节来传送或接收。数据或指令的高4位被放在第2个字节串行数据的高4位,其低4位为“0”;数据或指令的低4位被放在第3个字节的高4位,其低4位也为“0”,如此完成一个字节指令或数据的传送。需要注意的是,当有多个数据或指令要传送时,必须确认一个指令完成执行完毕后再传送下一个指令或数据,否则,会造成指令或数据的丢失。3.3 请求应答方式(OCMJ5X10B)的操作时序
请求应答方式的操作时序如图3所示[2]。
图3 OCMJ5X10B的操作时序
BUSY=1表示模块忙于内部处理,不能接收用户命令;BUSY=0表示模块空闲,可以接收用户命令。
发送命令到模块可在BUSY=0后的任意时刻开始,用户先把命令或数据放到数据线上,接着使REQ=1,启动模块处理当前数据线上的命令或数据。模块在收到外部的REQ高电平信号后,立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于数据的内部处理。用户得知BUSY又为高电平后,就可以撤消数据线上的信号并可作模块显示以外的其它工作。当然,用户也可不断地查询BUSY是否为“0”,如果BUSY=0,表明模块的内部操作已经执行完毕。可以再送下一个数据。
4 中文LCD与单片机的4种常用接口电路
4.1 LG128321与单片机的接口电路(8位并行模式)
8位并行模式下,模块与单片机的接口电路如图4所示。模块的数据线可与单片机数据线直接相连,
但因读写信号共用一根信号线R/W,故不能与单片机的读信号及写信号连接。从操作时序可以看出,模块
的读写操作实际上是用E信号下降沿完成的。因此,设计接口电路的关键是让单片机向模块提供合适的
R/W、RS、E信号。可以利用RD和WR与CS的配合来实现对E信号的代替。使用A0和A1作为RS和R/W
信号。当P2.0(低电平有效,因为上电时P2.0为高电平)作为寻址线时,写指令寄存器地址为FE00H,读B及AC值地址为FE02H,写数据寄存器地址为FE01H,
读数据寄存器地址为FE03H。程序举例如下:
图4 8位并行模式的接口电路
MOV 70H,#30H;设定8位并行方式
LCALL WRITE ORDER
MOV 70H,#0CH;整体显示
LCALL WRITE ORDER
MOV 70H,#01H;屏幕清除
LCALL WRITE ORDER
MOV 70H,#80H;显示位置为第一行行首
LCALL WRITE ORDER
MOV 71H,#4FH
LCALL WRITE DATA
MOV 71H,#4BH
LCALL WRITE DATA;显示OK。
写指令代码子程序:
WRITE ORDER:MOV DPTR,#0FE02H
ORDER1:MOVX A,@DPTR
JB ACC.7,ORDER1
MOV DPTR,#0FE00H
MOVA,70H;指令存放在70H中
MOVX @DPTR,A
RET
写显示地址和数据子程序:
WRITE DATA:MOV DPTR,#0FE02H
DATA1:MOVX A,@DPTR
JB ACC.7,DATA1
MOV DPTR,#0FE01H
MOVA,71H;数据存放于71H中
MOVX @DPTR,A
RET
4.2 LG128321与单片机的接口电路(2线串行模式)2线串行模式下,只要将模块PSB引脚接低电平,
CS(RS)引脚接高电平,SID(R/W)引脚接P1.0,SCLK(E)接P1.1即可。其中,SCLK时钟是通过P1.1口的
CLR和SETB命令实现的,SCLK上升沿有效。程序举例如下:
写指令寄存器WRITE ORDER:396