摘要:在应用实践的基础上,总结性地介绍了点阵液晶显示模块SG12864-01D的控制原理与应用技巧,给出了在模拟时序下的汇编驱动程序,最后提出了具有节约空间资源的应用方案。
关键词:液晶显示;模拟时序[1] ;汇编程序
中图分类号:TN141.9 文献标识码:B
The Using Practice for SG12864-01D Lattice Liquid
Crystal Display Monitor
ZHANG Zhi-ke,ZHAO Yu-jian
(Xin Zhou Teachers College,Xinzhou Shanxi 034000,China)
Abstract:On the basis of using practice, this paper gives some summary introduction for the
control principles and application skills of SG12864-01D lattice liquid crystal display monitor, basic assembly driver in simulates under the succession as well. Finally, this paper proposes a application plan which can save the spatial resources.
Keywords:liquid crystal display;simulation succession;assembly program
引 言
液晶显示模块可归结为字符型和点阵型两大类,点阵型又分为单色屏和彩色屏。字符型模块通常包含相应的字符库,点阵型模块包含有液晶显示控制器,显示内容没有任何限制,文字图片均可。液晶彩屏的技术含量最高,但在一般控制系统设计中,点阵单色屏已完全能够满足信息显示的需要。
1 SG12864-01D模块应用参数与显示方式
从模块的型号可以看出,它在水平方向有128个点阵,竖直方向有64个点阵。通常汉字取模方式为16&×16,显然模块汉字显示的个数为8&×4;字符取模方式为8&×16,因此字符显示的个数为16&×4。
模块的信息显示采用了分屏显示的方式进行,分为左半屏和右半屏,它是通过口线CS1和CS2进行控制的,高电平有效,如图1所示。
单屏信息的输入过程包括8个页进行写操作。自上而下为0~7页,通过设置第X页地址实现对该页信息的输入操作,如图1所示。
由上可见,4行汉字需要8次输入操作,因此,每页信息仅仅是一行汉字的一半内容(上部或下部),如图1中的字符3。水平点阵地址用Y表示,数值在0~63之间。
每页信息的输入可连续一次完成,取模方式为自上而下,从左到右,如图1所示。
2 SG12864-01D模块接口说明与外围限定电路
模块外围有20个引脚,其中有4个引脚可以合二为一,1脚和20脚接地,2脚和19脚接5V电压。如表1所示。
3脚和18脚与外围限定电路有关,它是用来调整背光亮度的,如图2所示。3脚VO正常电位为负值,数值应该在7.2~7.5之间(实测),若数值过小,屏幕不会显示任何信息,若数值过大将会产生底灰,负电位是从模块18脚VOUT送出的,实测为-9.53V。
7~14引脚为8根数据线,17为开机复位引脚,15、16为左右半屏选通引脚。
4、5、6为时序控制引脚,也是实施有效控制的关键部位。
3 显示控制指令集[1]
D/I与R/W对应的电平值是指令条件,DB7~DB0为8位数据线,既可以是数据,也可以是命令参数。DB0与开关显示有关,1开0关,设置起始线命令数据参数通常为0C0H,即从左上角开始显示,如表2所示。
&“读状态&”在程序设计中具有特殊的地位。DB7为BUSY[B],若为1,系统不接收任何操作命令,意为系统忙,只有当判断为0时,才可以进行其它操作。DB5为显示ON/OFF[O],它判断是否开启了显示,如果已开则为0,否则为1,因此在程序的前端必须增加开显示操作,否则屏幕上不会有字符显示。DB4[R]为复位情况指示,系统要求在上电后必须有一下复位操作,即当VDD为5V时,/RST必须有一个延迟低电平的过程,如果有,该位则为0,意指系统处于正常工作状态。
读、写数据指令每执行完一次,列地址就自动增1。注意,在进行读操作之前,必须有一个空读操作,接着再读才会读出所要读的单元中的数据[2]。另外,任何一个操作之间都必须增加一个读忙信号,DB7是否为0,若为0再进入下一步。
需要注意的是在SG12864-01D系列模块说明书中,有多处出现过RS的字样,只要将其改为D/I即可。
4 AT89C51与SG12864-01D电路连接设定
电路连接方式决定了程序编写的细节,表3为AT89C51与模块具体连接情况,电路晶振频率为12MHz。
5 SG12864-01D模拟时序
SG12864-01D模拟时序如图3所示。
E使能信号具有一定的特点,读数据时为高电平,如图3中的Check Busy,读完需再变为低电平;送指令(或数据)时为低电平,然后必须变高,再回到低电平,至此才算完成整个操作过程。D/I只有在写数据时为高电平,在上述其它情形下皆为低电平。
6 字模提取
字模提取采用PCtoLCD2002软件非常方便,点阵格式为&“阴码&”,取模方式为&“列行式&”,取模走向为&“逆向&”即可。
7 汇编程序
在屏幕的左上角显示一个&“张&”字,基本设定见以下程序。
ORG 0000H
D1: CLR P1.6 ;/RST复位操作
NOP
NOP
NOP
SETB P1.6 ;/RST复位完成
SETB P1.0 ;选左屏,=1
SETB P1.1 ;选右屏,=1
LCALL D5;读状态:DB7.4
MOV R7,#0C0H ;设置起始线
LCALL D8;起始线操作
MOV R7,#3FH;开显示
LCALL D8;开显示操作
CLR P1.1;关右半屏
MOV DPTR,#TABLE1
CLR 7EH
CLR 7FH
MOV R7,#40H;设置Y地址
LCALL D8
MOV R7,#0B8H ;设置X地址
LCALL D8
CLR A
D2: MOV A,7EH
MOVC A,@A+DPTR
MOV R7,A
LCALL D4
INC 7EH
MOV A,7EH
CJNE A,#0FH,D2
MOV DPTR,#TABLE2
MOV R7,#40H;设置Y地址
LCALL D8
MOV R7,#0B9H ;设置X地址
LCALL D8
CLR A
D3: MOV A,7FH
MOVC A,@A+DPTR
MOV R7,A
LCALL D4
INC 7FH
MOV A,7FH
CJNE A,#0FH,D3
JMP D9 ;数据仅写一次
D4: LCALL D6;读忙信号
CLR P1.5
SETB P1.3
NOP
MOV P2,R7
SETB P1.4
NOP
CLR P1.4
CLR P1.3
RET
D5: CLR P1.3;读状态DB4、7
SETB P1.5
SETB P1.4
MOV C,P2.7;读BUSY
MOV 20H.0,C
MOV C,P2.4;读RESET
MOV 20H.1,C
NOP
CLR P1.4
JB 20H.0,D5
JB 20H.1,D5
RET
D6: CLR P1.3 ;读忙信号
SETB P1.5
SETB P1.4
MOV C,P2.7
MOV 20H.0,C
NOP
CLR P1.4
JNB 20H.0,D7
NOP
NOP
SJMP D6
D7: RET
D8: LCALL D6;读忙信号
CLR P1.5
CLR P1.3
NOP
MOV P2,R7
SETB P1.4
NOP
CLR P1.4
RET
TABLE1:;&“张&”上半部分
DB 02H, 0F2H, 12H, 12H, 1EH, 00H,
DB 80H, 80H, 0FFH, 0A0H, 90H, 88H,
DB 86H, 84H, 80H, 00H
TABLE2:;&“张&”下半部分
DB 01H, 03H, 41H, 81H, 7FH, 00H,
DB 00H, 40H, 0FFH, 40H, 23H, 0CH,
DB 10H, 60H, 20H, 00H
D9: NOP
END
上述程序是在屏幕左上方显示了一个&“张&”字,数据仅传送了一次,结果发现,该显示屏具有信息&“保持&”功能。因此在实际应用中,对画面中的固定内容处理十分方便,只要考虑如何处理更改的内容即可,这样可以有效地节约系统空间资源。
参考文献
[1] SG1864-01D系列模块说明书[S]. 北京集粹电子设备制造有限公司,http://www.sch-lcd.cn/chanpin.asp.
[2] 孙 鹏.12864点阵型液晶显示篇 [J]. 电子制作,2008年第2期.
作者简介:张志科(1962-),山西翼城人,忻州师范学院电子系副教授,院骨干教师,电子实践教学团队带头人,院模拟电子技术重点课程负责人,E-mail:zzk223@sina.com。