随着科技的发展,液晶显示模块的应用前景更加广阔,目前已广泛应用于电子表、计算器、液晶电视机、便携式电脑、掌上型电子玩具、复印机、传真机等许多方面。
液晶显示(LCD)大体分为笔段型、字符型、点阵图形型等几大类,字符型液晶显示模块是一类专门用于显示字母、数字、符号等的点阵型液晶显示模块,它是由若干个5×7或5×11等点阵字符组成。每一个点阵字符位都可以显示一个字符,点阵字符位之间的一个点距的间隔起字符间距和行距的作用。目前市面上常用的有16字×1行、16字×2行、20字×2行和40字×2行等字符模型,这些LCD虽然显示的字数各不相同,但是都具有相同的输入输出界面。本文介绍的TC1602A是一种16字×2行的字符型液晶显示模块,其显示面积为64.5×13.8mm2。
1 TC1602A的引脚功能和内部结构
1.1 TC1602A的引脚功能
TC1602A的引脚排列如图1所示,它有16个引脚可与外界相连,各引脚功能如下:
1脚VSS:接地;
2脚Vdd:接+5V电源;
3脚VO:对比度调整端,LCD驱动电压范围为Vdd~VO。当VO接地时,对比度最强;
4脚RS:寄存器选择端,RS为0时,选择命令寄存器IR;RS为1时,选择数据寄存器DR;
5脚:读写控制端,为1时,选择读出;为0时,则选择写入;
6脚Enable:使能控制端,Enable为1时,使能;Enable为0,禁止;
7脚~14脚D0~D7:数据总线;
15脚LED+:背景光源,接+5V;
16脚LED-:背景光源,接地。
1.2 TC1602A的内部结构
TC1602A的内部结构如图2所示,它主要由DDRAM、CGROM、CGRAM、IR、DR、BF、AC等大规模集成电路组成。
DDRAM为数据显示用的RAM(Data DisplayRAM,简称DDRAM),用以存放要LCD显示的数据,只要将标准的ASCII码放入DDRAM,内部控制线路就会自动将数据传送到显示器上,并显示出该ASCII码对应的字符;
CGROM为字符产生器ROM(Character GeneratorROM,简称CGORM),它存储了192个5×7的点阵字型,但只能读出不能写入;
CGRAM为字型、字符产生器的RAM(CharacterGenerator RAM,简称CGRAM),可供使用者存储特殊造型的造型码,CGRAM最多可存8个造型;
IR为指令寄存器(Instruction Register,简称IR),负责存储MCU要写给LCD的指令码,当RS及R/W引脚信号为0且Enable引脚信号由1变为0时,D0~D7引脚上的数据便会存入到IR寄存器中;
DR为数据寄存器(Data Register,简称DR),它们负责存储微机要写到CGRAM或DDRAM的数据,或者存储MCU要从CGRAM或DDRAM读出的数据。因此,可将DR视为一个数据缓冲区,当RS及R/W引脚信号为1且Enable引脚信号由1变为0时,读取数据;当RS引脚信号为1,R/W引脚信号为0且Enable引脚信号由1变为0时,存入数据;
BF为忙碌信号(Busy Flag,简称BF),当BF为1时,不接收微机送来的数据或指令;当BR为0时,接收外部数据或指令,所以,在写数据或指令到LCD之前,必须查看BF是否为0;
AC为地址计数器(Address Counter,简称AC),负责计数写入/读出CGRAM或DDRAM的数据地址,AC依照MCU对LCD的设置值而自动修改它本身的内容。
TC1602A可分2行共显示32个字符,每行显示16个字符。
2 TC1602A的控制指令
TC1602A的控制指令共11条,其中9条是针对命令寄存器IR的,另外2条是针对数据寄存器DR的,具体指令如表1所列。需要说明的是:表中*表示可以为0或1,表中的相关命令字设置如下:
3 TC1602A相关的子程序
TC1602A与单片机AT89C51的接口电路如图3所示,下面是TC1602A相关的子程序:
(1)查看忙碌信号子程序
(4)清TC1604A显示器子程序
LCR:
MOVA,#00000001B
CALLWtoiR
RET
(5)启动TC1602A子程序
当供电电源符合一定要求时,TC1602A通电后能自启动,并进入默认置。TC1602A自启动后,单片机(MCU)只要依照系统所需的功能重新对其下达功能设定指令、显示器开/关控制指令及进入模式设定指令即可。通过下面的子程序可以让TC1602A5×7的字型显示器显示2行8bit数据,同时显示光标但不闪烁,且可在每一次资料输入DDRAM后光标向右移动一格。
4实用实例
下面的应用程序实例可在TC1602A的液晶显示屏上显示2行字符,它们分别是“Testing TC1602A.”和“Easy Learning it”。另外,该程序还能使AT89C51的P0口所控制的8个发光二极管每隔1秒钟从左至右点亮一个,在任一时刻只有一个发光二极管是被点亮的。具体应用程序如下: