内置SED1520控制驱动器的图形液晶显示模块MGLS-12032在智能测试仪中的应用
2006-05-07 来源:国外电子元器件
摘要:文章介绍了内置SED1520图形液晶显示模块MGLS-12032的特点和工作原理,给出了MGLS-12032与8031单片机的接口电路,介绍了SED1520的指令集,并结合具体实例给出了显示模块的相关程序。
关键词:图形显示 液晶 单片机 SED1520 MGLS-12032
1 SED1520功能特点
SED1520是集行、列驱动器和控制器于一体的液晶显示控制驱动器,可广泛用于小规模液晶显示模块,例如香港精电公司的MGLS-12032、MGLS10032等。
SED1520液晶显示驱动器具有以下特性:
●内置显示RAM区,RAM容量为2560位。RAM中的1位数据控制液晶屏上一个点的亮灭状态:“1表示亮”,“0”表示不亮。
●具有16个行驱动口和61个列驱动口。
●可直接与80系列或68系列微处理器相连。
●驱动占空比为1/16或1/32。
●可以与SED1520配合使用,以便扩展列驱动口数目。
1.1 SED1520主要参数
SED1500的主要电参数如表1所列。
表1 SED1520的主要参数
参 数 | 符 号 | 范 围 | 单 位 |
电源电压1 | Vss | -8.0~0.3 | V |
电源电压2 | V5 | 16.5~0.3 | V |
电源电压3 | V1-V4 | V5-0.3 | V |
输入电压 | VI | Vss-0.3~0.3 | V |
输出电压 | Vo | Vss-0.3~0.3 | V |
功力耗 | PD | 250 | mW |
表2 SED1520的时序特性参数
参 数 | 符 号 | 最小值 | 最大值 |
地址保持时间 | TAH8 | 10 | - |
地址建立时间 | TAW8 | 20 | - |
系统周期时间 | TCYC8 | 1000 | - |
控制脉冲宽度 | TCC | 200 | - |
数据建立时间(R) | TDS8 | 80 | - |
数据保持时间(R) | TDH8 | 10 | - |
数据建立时间(W) | TACC8 | - | 90 |
数据保持时间(W) | TOH8 | 10 | 60 |
1.2 SED1500的读/写操作时序
SED1520有两种读/写操作时序,分别对应于6800系列和8080系列MPU。图1给出了8080系列MPU的读/写操作时序。其数据的写入或读出是在WR或RD的下降沿进行。表2所列是SEWD1520的时序特性参数。表中参数的单位为ns。
1.3 SED1520的指令系统
●读状态字
当SED1520处于“忙”状态时,除了读状态指令外,其它指令均不起作用,因此在访问SED1520时,都要先读状态,判断是否“忙”。读状态的格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 0 | BUSY | ADC | OFF/ON | REST | 0 | 0 | 0 | 0 |
●复位
该指令为软件复位指令,执行该指令后,显示起始行置为第0行,列地址置为0,页地址置为3。其复位格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
●显示起始行设置
该指令设置了对应显示屏上首行的显示RAM中的行号。有规律的修改该行号,可实现滚屏功能。
格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 1 | 0 | 显示起始行 | (0~31) |
●ADC选择指令
该指令用来设置列驱动输出端与液晶显示屏的列驱动线的连接方式。一般设置为ADC=0。该指令的格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1/0 |
●显示开/关指令
下面是显示开/关指令的格式:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1/0 |
其中D0=1为开显示;D0=1为关显示。
该指令不影响RAM的内容显示。
●设置页地址
页地址的设置格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 页地址(0~3) |
●设置列地址
一般情况下,显示RAM被分成四页,每页80个字节,当设置了页地址和列地址后即可确定显示RAM中的唯一单元,该单元由低到高的各个数据位对应于显示屏上某一列的8行数据位。列地址的设置格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 列地址(0~79) |
●占空比选择
在选择占空比时,如果D0=0,则选择的占空比为1/16,D0=1为1/32。当驱动32行液晶显示时,应使D0=1;驱动16行时,应使D0为0。
●写数据
写数据格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 1 | 显 示 数 据 |
●读数据
读数据格式如下:
R/W | A0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 1 | 显 示 数 据 |
2 液晶显示模块的结构特点
MGLS12032是一个120×32的点阵模块,由SED1520来驱动,两个SED1520都使用60个列驱动口(SEG0-SEG59)。表3所列是MGLS12032的接口端口与和管脚。图2所示是MGLS12032的内部逻辑电路图。
表3 MGLS12032接口端口号和管脚
序 号 | 管 脚 名 | 序 号 | 管 脚 名 |
1 | GND | 9 | DB0 |
2 | VCC | 10 | DB1 |
3 | V0 | 11 | DB2 |
4 | A0 | 12 | DB3 |
5 | R/W | 13 | DB4 |
6 | E1 | 14 | DB5 |
7 | E2 | 15 | DB6 |
8 | NC | 16 | DB7 |
3 MGLS12032接口电路设计
本系统采用MGLS-12032液晶显示器模块和SED1520液晶显示驱动器直接与8位微处理器相连,使用简单方便。液晶显示模块MGLS12032与单片机的接口电路如图3所示。其中D0~D7与单片机的数据线相连,液晶显示器通过A15和A14来选中,A14和A15是由单片机通过74LS138译码器来连接的。RD和WR与单片机的RD和WR相连接。
4 字符显示
SED1520是显示RAM是以一行八列的形式写入的,它所需的字库数据格式如图4所示,构成“6”字的字模为如下8个字节:00H 00H 00H 0FFH 91H 91H 91H 0F3H。
以上的八个字节均是以每到最下面一位作为MSB,最上面一位作为LSB,这是SED1520建立字模所要求的。
SED1520中的RAM共有32行,分为4页,每页8行,这样每页可以写一行字符,总共可以写4行字符。RAM一页有80个字节,而MGLS12032使用了60个字节。如果按8×8点阵字符划分显示屏区域,则可把MGLS12032的显示屏分成15×4个字符块,其中每行第八个字符在SED1520(1)和SED1520(2)上各占四个字节,并由程序来控制两个芯片RAM区的转换。
本测试仪采用16×16点阵汉字,液晶显示器显示一个16×16点阵需要送进32个字节,因此必须将其送入两缓冲区中的相对列中。该系统将汉字显示设置成两页,每一页的字符块写入字模数为16,当16个字模写完后,再转入下一页写入剩下的16个字模。汉字显示也存在中间结合部的处理问题,其处理方法与字符型的基本相同。即把MGLS12032屏分成7×2个汉字块。
图5所示是MGLS12032液晶显示屏的结构分布示意图。其中每行第四个汉字在SED1520(1)占12个字节,在SED1520(2)占四个字节,在编程时要转换两个芯片的RAM区。
5 汉字字模提取和显示程序
通过编制简单C程序(程序略),可以从计算机汉字字库内提取的汉字数组格式正好与SED1520的RAM格式相差90度。所以在提取汉字字模时要先旋转90度,才能在显示器上显示出正常格式。由于MGLS12032显示屏分为两页SED1520(1)和SED1520(2),所以显示程序应有两种,这两种程序除相关的地址不同外,其余均相同。SED1520(1)的显示子程序如下:
(1)写指令代码子程序
PRO:PUSH DPL
PUSH DPH
MOV DPTR,#SRADD1 ;设置读状态字地址
PR01:MOVX A,@DPTR ;读状态字
JB ACC.7,PR01 ;判忙标志为0否?
MOV DPTR,#SWADD1 ;设置写指令代码地址
MOV A,COM ;取指令地址
MOVX @DPTR,A ;写指令地址
POP DPH
POP DPL
RET
(2)写显示数据子程序
PR1:PUSH DPL
PUSH DPH
MOV DPTR,#CRADD1:设置读状态地址
PR11:MOVX A,@DPTR ;读状态字
JB ACC.7,PR11 ;判忙标志为0否?
MOV DPTR,#DWADD1 ;设置写显示数据地址
MOV A,DAT ;取数据
MOVX @DPTR,A ;写数据
POP DPH
POP DPL
RET
(3)读显示数据子程序
PR2:PUSH DPL
PUSH DPH
MOV DPTR,#SRADD1 ;设置读状态字地址
PR21:MOVX A,@DPTR ;读状态字
JB ACC.7,PR21 ;判忙标志为0否?
MOV DPTR,#DRADD1 ;设置读显示数据地址
MOVX A,@DPTR ;读数据
MOV A,DAT ;存数据
POP DPH
POP DPL
RET
(4)初始化程序
INT:MOV COM,#0E2H ;复位
LCALL PR0
LCALL PR3 ;SED1520(2)的写指令代码
MOV COM,#0A4H ;关闭等待状态
LCALL PR0
LCALL PR3
MOV COM,#0A9H ;设置1/32占空比
LCALL PR0
LCALL PR3
MOV COM,#0A0H ;正向排序设置
LCALL PR0
LCALL PR3
MOV COM,#0C0H ;设置显示起始行为第一行
LCALL PR0
LCALL PR3
MOV COM,#0AFH ;开显示设置
LCALL PR0
LCALL PR3
6 应用实例
MGLS12032可以广泛应用于各种测试仪表和仪器中,图6是用于雷达角跟踪幅频测试仪中的框图。其主要目的是对测试步骤起一个引导作用,并可实时地显示雷达的工作状态及最终测试结果。