字符型液晶LCD模块原理及设计学习Word文档格式.docx
《字符型液晶LCD模块原理及设计学习Word文档格式.docx》由会员分享,可在线阅读,更多相关《字符型液晶LCD模块原理及设计学习Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
5.字符发生器CGROM有160个5*7点阵字型。
6.字符发生器CGRAM可由使用者自行定义8个5*7的点阵字型。
17.316*2字符型液晶显示模块(LCM)引脚及功能
1脚(Vdd/Vss):
电源5V±
10%或接地。
2脚(Vss/Vdd):
接地或电源5V±
10%。
3脚(VO):
反视度调整。
使用可变电阻调整,通常接地。
4脚(RS):
寄存器选择。
1:
选择数据寄存器;
0:
选择指令寄存器。
5脚(R/W):
读/写选择。
读;
写。
6脚(E):
使能操作。
LCM可做读写操作;
LCM不能做读写操作。
7脚(DB0):
双向数据总线的第0位。
8脚(DB1):
双向数据总线的第1位。
9脚(DB2):
双向数据总线的第2位。
11脚(DB3):
双向数据总线的第3位。
11脚(DB4):
双向数据总线的第4位。
12脚(DB5):
双向数据总线的第5位。
13脚(DB6):
双向数据总线的第6位。
14脚(DB7):
双向数据总线的第7位。
15脚(Vdd):
背光显示器电源+5V。
16脚(Vss):
背光显示器接地。
说明:
由于生产LCM厂商众多,使用时应注意电源引脚1、2的不同。
LCM数据读写方式可以分为8位及4位2种,以8位数据进行读写则DB7~DB0都有效,若以4位方式进行读写,则只用到DB7~DB4。
17.416*2字符型液晶显示模块(LCM)的内部结构
LCM的内部结构可分为三个部分:
LCD控制器,LCD驱动器,LCD显示装置,如图17-1所示。
图17-1LCM的内部结构
LCM与单片机(MCU)之间是利用LCM的控制器进行通信。
HD44780是集驱动器与控制器于一体,专用于字符显示的液晶显示控制驱动集成电路。
HD44780是字符型液晶显示控制器的代表电路,了解熟知HD44780,将可通晓字符型液晶显示控制器的工作原理。
17.5液晶显示控制驱动集成电路HD44780特点
l.HD44780不仅作为控制器而且还具有驱动40*16点阵液晶像素的能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。
2.HD44780的显示缓冲区及用户自定义的字符发生器CGRAM全部内藏在芯片内。
3.HD44780具有适用于M6800系列MCU的接口,并且接口数据传输可为8位数据传输和4位数据传输两种方式。
4.HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。
图17-2为HD44780的内部组成结构。
图17-2HD44780的内部组成结构
由于HD44780的DDRAM容量所限,HD44780可控制的字符为每行80个字。
也就是5*80=400点。
HD44780内藏有16路行驱动器和40路列驱动器,所以HD44780本身就具有驱动16*40点阵LCD的能力,(即单行16个字符或两行8个字符)。
如果在外部加一个HD44100外扩展多40路/列驱动,则可驱动16*2LCD(图17-3)。
图17-3HD44780加HD44100外扩展
当MCU写入指令设置了显示字符体的形式和字符行数后,驱动器的液晶显示驱动的占空比系数就确定了下来,驱动器在时序发生器的作用下,产生帧扫描信号和扫描时序,同时把由字符代码确定的字符数据通过并/串转换电路串行输出给外部列驱动器和内部列驱动,数据的传输顺序总是起始于显示缓冲区所对应一行显示字符的最高地址的数据。
当全部一行数据到位后,锁存时钟CL1将数据锁存在列驱动器的锁存器内,最后传输的40位数据,也就是说各显示行的前8个字符位总是被锁存在HD44780的内部列驱动器的锁存器中。
CL1同时也是行驱动器的移位脉冲,使得扫描行更新。
如此循环,使得屏上呈现字符的组合。
17.6HD44780工作原理
HD44780的引脚图如图17-4所示。
图17-4HD44780引脚图
17.6.1DDRAM—数据显示用RAM
DDRAM--数据显示用RAM(DatadisplayRAM,简称DDRAM)
DDRAM用来存放我们要LCD显示的数据,只要将标准的ASCII码送入DDRAM,内部控制电路会自动将数据传送到显示器上,例如要LCD显示字符A,则我们只须将ASCII码41H存入DDRAM即可。
DDRAM有80bytes(字节)空间,共可显示80个字(每个字为1个bytes),其存储器地址与实际显示位置的排列顺序与LCM的型号有关,请参阅图17-5。
图17-5DDRAM地址与显示位置映射图
图17-5(A)为16字*1行的LCM,它的地址从00H到0FH;
图17-5(B)为20字*2行的LCM,第一行的地址从00H到13H,第二行的地址从40H到53H;
图17-5(C)为20字*4行的LCM,第一行的地址从00H到13H,第二行的地址从40H到53H,第三行的地址从14H到27H,第四行的地址从54H到67H。
17.6.2CGROM—字符产生器ROM
CGROM--字符产生器ROM(CharacterGenerator的ROM,简称CGROM)
CGROM储存了192个5*7的点矩阵字型,CGROM的字型要经过内部电路的转换才会传到显示器上,仅能读出不可写入。
字型或字符的排列方式与标准的ASCII码相同,例如字符码31H为l字符,字符码41H为A字符。
如我们要在LCD中显示A,就是将A的ASCII代码41H写入DDRAM中,同时电路到CGROM中将A的字型点阵数据找出来显示在LCD上。
字符与字符码对照表如表17-1所示。
表17-1字符与字符码对照表
17.6.3CGRAM—字型、字符产生器RAM
CGRAM--字型、字符产生器RAM(CharacterGeneratorRAM,简称CGRAM)
CGRAM是供使用者储存自行设计的特殊造型的造型码RAM,CGRAM共有512bits(64字节)。
一个5*7点矩阵字型占用8*8bit,所以CGRAM最多可存8个造型。
17.6.4IR—指令寄存器
IR--指令寄存器(InstructionRegister,简称IR)
IR寄存器负责储存MCU要写给LCM的指令码。
当MCU要发送一个命令到IR寄存器时,必须要控制LCM的RS、R/W及E这三个引脚,当RS及R/W引脚信号为0,E引脚信号由1变为0时,就会把在DB0~DB7引脚上的数据送入IR寄存器。
17.6.5DR—数据寄存器
DR--数据寄存器(DataRegister,简称DR)
DR寄存器负责储存MCU要写到CGRAM或DDRAM的数据,或储存MCU要从CGRAM或DDRAM读出的数据,因此DR寄存器可视为一个数据缓冲区,它也是由LCM的RS、R/W及E等三个引脚来控制。
当RS及R/W引脚信号为l,E接脚信号由1变为0时,LCM会将DR寄存器内的数据由DB0~DB7输出以供MCU读取;
当RS接脚信号为l,R/W接脚信号为0,E接脚信号由1变为0时,就会把在DB0~DB7引脚上的数据存入DR寄存器。
17.6.6BF—忙碌标志信号
BF--忙碌标志信号(BusyFlag,简称BF)
BF的功能是告诉MCU,LCM内部是否正忙着处理数据。
当BF=1时,表示LCM内部正在处理数据,不能接受MCU送来的指令或数据。
LCM设置BF的原因为MCU处理一个指令的时间很短,只需几微秒左右,而LCM得花上40微秒~1.64亳秒的时间,所以MCU要写数据或指令到LCM之前,必须先查看BF是否为0。
17.6.7AC—地址计数器
AC--地址计数器(AddressCounter,简称AC)
AC的工作是负责计数写到CGRAM、DDRAM数据的地址,或从DDRAM、CGRAM读出数据的地址。
使用地址设定指令写到IR寄存器后,则地址数据会经过指令解码器(InstructionDecoder),再存入AC。
当MCU从DDRAM或CGRAM存取资料时,AC依照MCU对LCM的操作而自动的修改它的地址计数值。
17.7LCD控制器的指令
用MCU来控制LCD模块,方式十分简单,LCD模块其内部可以看成两组寄存器,一个为指令寄存器,一个为数据寄存器,由RS引脚来控制。
所有对指令寄存器或数据寄存器的存取均需检查LCD内部的忙碌标志BF,此标志用来告知LCD内部正在工作,并不允许接收任何的控制命令。
而此位的检查可以令RS=0,用读取DB7来加以判断,当此DB7为0时,才可以写入指令或数据寄存器。
LCD控制器的指令共有11组,以下分别介绍。
17.7.1清除显示器
RS
R/W
E
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
指令代码为01H,将DDRAM数据全部填入“空白”的ASCII代码20H,执行此指令将清除显示器的内容,同时光标移到左上角。
17.7.2光标归位设定
*
指令代码为02H,地址计数器被清0,DDRAM数据不变,光标移到左上角。
*表示可以为0或1。
17.7.3设定字符进入模式
I/D
S
I/D
工作情形
光标左移一格,AC值减一,字符全部不动
光标不动,AC值减一,字符全部右移一格
光标右移一格,AC值加一,字符全部不动
光标不动,AC值加一,字符全部左移一格
17.7.4显示器开关
D
C
B
D:
显示屏开启或关闭控制位,D=1时,显示屏开启;
D=0时,则显示屏关闭,但显示数据仍保存于DDRAM中。
C:
光标出现控制位,C=1时,则光标会出现在地址计数器所指的位置;
C=0则光标不出现。
B:
光标闪烁控制位,B=1光标出现后会闪烁;
B=0,光标不闪烁。
17.7.5显示光标移位
S/C
R/L
光标左移一格,AC值减一
光标右移一格,AC值加一
字符和光标同时左移一格
字符和光标同时右移一格
17.7.6功能设定
DL
N
F
DL:
数据长度选择位。
DL=1时为8位(DB7~DB0)数据转移;
DL=0时则为4位数据转移,使用DB7~DB4位,分2次送入一个完整的字符数据。
N:
显示屏为单行或双行选择。
N=1为双行显示;
N=0则为单行显示。
F:
大小字符显示选择。
当F=1时,为5*10字形(有的产品无此功能);
当F=0时,则为5*7字型。
17.7.7CGRAM地址设定
A5
A4
A3
A2
A1
A0
设定下一个要读写数据的CGRAM地址(A5~A0)。
17.7.8DDRAM地址设定
A6
设定下一个要读写数据的DDRAM地址(A6~A0)。
17.7.9忙碌标志BF或AC地址读取
BF
LCD的忙碌标志BF用以指示LCD目前的工作情况,当BF=1时,表示正在做内部数据的处理,不接受MCU送来的指令或数据。
当BF=0时,则表示已准备接收命令或数据。
当程序读取此数据的内容时,DB7表示忙碌标志,而另外DB6~DB0的值表示CGRAM或DDRAM中的地址,至于是指向那一地址则根据最后写入的地址设定指令而定。
17.7.10写数据到CGRAM或DDRAM中
先设定CGRAM或DDRAM地址,再将数据写入DB7~DB0中,以使LCD显示出字形。
也可将使用者自创的图形存入CGRAM。
17.7.11从CGRAM或DDRAM中读取数据
先设定CGRAM或DDRAM地址,再读取其中的数据。
17.8LCM工作时序
控制LCD所使用的芯片HD44780其读写周期约为1μS左右,这与8051MCU的读写周期相当,所以很容易与MCU相互配合使用。
1.读取时序(如图17-6所示)。
图17-6读取时序图
2.写入时序(如图17-7所示)。
图17-7写入时序图
时序参数见表17-2。
表17-2时序参数表
17.9单片机驱动LCM的电路
用配套实验器材中的LED数码管输出试验板(MCU为89C51或89S51)与LCM连接的电路见图17-8。
图17-8单片机驱动LCM电路