
字符液晶显示器.ppt
70页1/51,,字符型液晶显示器,LCD1602,2/51,一、字符型点阵式LCD简介,字符型液晶显示器,字符型点阵LCD是专门用于显示数字0~9 、大小写英文字符、图形符号及少量自定义符号的液晶显示器其内部带有显示字符的字库,大多数还能由人工根据需要编码一些字符这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器将以16*2字符型液晶显示模块RT-1602C为例,详细介绍字符型晶显示模块的应用技术液晶显示点阵块示意,每一个点阵字符位都可以显示一个字符点阵字符位之间有一空点距的间隔起到了字符间距和行距的作用4/51,根据显示的容量可以分为16字1行(161)、16字2行(162)、20字2行(202)和16字4行(164)等的字符液晶显示器这些LCD虽然显示字数各不相同,但是都具有相同的输入输出界面二、字符型LCD1602的外观与引脚,1602采用标准的16脚接口,各引脚情况如下:,第1脚:VSS,电源地 第2脚:VDD,+5V电源 第3脚:VL,液晶驱动电压,0.2V左右,一般加电位器调整 第4脚:D/I,寄存器选择信号(数据/指令选择端),高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作6/51,第6脚:E,I/O选通端(使能端),当E端由高电平跳变成低电平时,液晶模块执行命令(下降沿触发)第7~14脚:DB0~DB7,为8位双向数据线第15脚:VA,背光源正极第16脚:VK,背光源负极,D/I,7/51,三、字符型LCD1602的时序图,D/I,记住:在将E置高电平前,先设置好D/I和R/W信号,在E下降沿到来之前,准备好写入的命令字或数据只需在适当的地方加上延时,就可以满足要求了触发选通信号E高电平有效,在其下降沿触发锁存数据由时序图可见,在E下降沿时刻,必须是数据已经稳定在数据线上,且正处于有效阶段D/I,触发选通信号E高电平有效,在其下降沿触发锁存数据由时序图可见,在E下降沿时刻,必须是数据已经稳定在数据线上,且正处于有效阶段9/51,四、字符型LCD1602的应用,1、接线图,LCD的显示清晰度调节引脚VE通过一个分压电阻得到,约为0.2V时,可以有满意的显示效果10/51,HD44780的显示缓冲区及用户自定义的字符发生器CGRAM全部内藏在芯片内HD44780内藏的字符发生存储器CGROM已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码。
比如数字“1”的代码是00110001B (31H),又如大写的英文字母“A”的代码是01000001B(41H)目前大多数的LCD液晶显示器的控制器都有采用一颗型号为HD44780的集成电路作控制器HD44780是集控制器,驱动器于一体,专用于字符显示控制驱动集成电路是字符型液晶显示控制器的代表电路2、HD44780驱动器,11/51,LCD内部存储器共分为3种:固定字形ROM,称为CG (Character Generator) ROM;数据显示RAM,称为DD (Data Display ) RAM;用户自定义字形RAM,称为CG RAM1)CGROM:CGROM内存储着160个5×7点阵的字形,这些字形均已固定,例如将“A”写入LCD中,就是将“A”的ASCII码 41H 写入DDRAM中,控制芯片就会自动 至CGROM中将“A”的字形点阵数据找出来而显示在LCD上3、LCD内部的内存,2)DDRAM:用来存储写入LCD内部的字符DDRAM的地址分布从00H~67H,分别代表LCD的各列位置,例如我们要将“A”写入第2行的第l个位置,就先设置第二行第一列对应的DDRAM地址40H,而后写入41H至LCD即可。
3)CGRAM:此区域只有64字节,可将用户自行设计的字形写入LCD中,一个字的大小为5×7点阵,共可以存储8个字形,其显示码为00H~07H13/51,14/51,1)指令寄存器(Instruction Register,IR)与数据寄存器 (Data Register,DR): 指令寄存器和数据寄存器都是8位 的寄存器,IR寄存器用来储存指令代码或地址;DR寄存器则是作为写入存储器或从存储器中读取数据的数据缓冲区从外部要对LCD模块控制时,是由DI引脚来选择数据引脚D7~D0的信号,用来对IR寄存器或DR寄存器做写入或读取4、LCD内部寄存器,2)忙碌标志(Busy Flag,BF)当LCD模块内部处于忙碌状态,不能接收或处理外部信号时,这个标志就会被设定为1因此在对LCD模块控制时,一定要先检查这个忙碌标志,当BF=0时,才可以对LCD模块进行控制3)地址计数器(Address Count,AC)LCD模块显示的每一个字符位置都会有一个地址,地址计数器记录了这个地址,在数据写入或读取的动作完成后,AC的值会递减或递增1,可以在LCD初始化时设定16/51,通过CPU来控制LCD模块,方式十分简单,LCD模块其内部可以看成有两组寄存器,一个为指令寄存器,一个为数据寄存器,由DI引脚来控制。
所有对指令寄存器或数据寄存器的存取均需检查LCD内部的忙碌标志(Busy Flag),此标志用来告知LCD内部正在工作,不允许接收任何的控制命令而此位的检查可以令DI=0时,读取D7来加以判断,当此位为0时,才可以写入指令寄存器或数据寄存器5、控制方式,17/51,希望在LCD的某一特定位置显示某一特定字符,一般要遵循“先指定地址,后写入内容”的原则;假设要在第1行第2列写入字符“A”,这时先写入第1行第2列对应的DDRAM的地址:01H,然后再往DDRAM中写入“A”的字符码0x41,这样LCD的第1行第2列就会出现字符A了即 DDRAM的内容对应于要显示的字符地址,而DDRAM的地址就对应于显示字符的位置6、显示方法,18/51,如果希望在LCD上显示一串连续的字符(如单词等),并不需要每次写字符码之前都指定一次地址,这是因为液晶控制模块中有一个计数器叫地址计数器AC(Address Counter)地址计数器的作用是负责记录写入DDRAM数据的地址,或从DDRAM读出数据的地址计数器的作用不仅仅是“写入”和“读出”地址,还能根据用户的设定自动进行修改比如,如果规定地址计数器在“写入DDRAM内容”这一操作完成后自动加1,则在第1行第1列写入一个字符后,如果不对字符显示位置(DDRAM地址)重新设置,再写入一个字符,则这个新的字符会出现在第1行第2列。
19/51,7、指令格式与指令功能,LCD控制器HD44780内有多个寄存器,通过D/I和R/W引脚共同决定选择哪一个寄存器(操作方式)1602控制指令表,21/51,1).清屏指令格式:01H,功能:清除液晶显示屏,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)显示空白光标复位,回到液晶显示屏的左上角地址计数器AC清零22/51,2).光标复位命令(归位),指令格式:02H,功能:光标回到原点(左上角) 把地址计数器(AC)的值设置为0; 保持DDRAM的内容不变23/51,3).输入方式设置格式:,功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动 当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动 当S=1时,内容移动,S=0时,内容不移动指令格式:04~07H常用:06,24/51,4).显示开关控制命令,功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁 D 控制显示的开关:当D=1时显示,D=0时不显示C 控制光标开关:当C=1时光标显示,C=0时光标不显示B 控制字符是否闪烁:当B=1时字符闪烁,B=0时字符不闪烁。
指令格式:08~0FH常用: 0C,25/51,5).光标画面移位置命令,功能:移动光标或整个显示字幕移位S/C R/L 设定情况 0 0 只光标左移1格,且AC值减1 0 1 只光标右移1格,且AC值加1 1 0 显示器上字符全部左移一格,但光标不动 1 1 显示器上字符全部右移一格,但光标不动,指令格式:10~1CH,26/51,6).功能设置命令,功能:设定数据总线位数、显示的行数及字型 设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位设置显示行数,当N=1时双行显示,N=0时单行显示设置字形大小,当F=1时5×10点阵,F=0时为5×7点阵指令格式:20~3CH常用 38H,27/51,7).设置字库CGRAM地址命令,功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴0~63指令格式:40~7F常用:40H+ CGRAM的地址,送地址的时候应该是0x40+Address。
28/51,8).显示缓冲区DDRAM地址设置命令,功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴0~127送地址的时候应该是0x80+Address指令格式:80~FF常用:80H+ DDRAM的地址,9).读忙标志及地址计数器AC命令,功能:读忙标志及地址计数器AC 当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙 低7位为读出的AC的地址,值为0-127//检查忙函数bit lcd_bz(){ bit result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P0 & 0x80); ep = 0; return result; },D/I,31/51,10).写DDRAM或CGRAM命令,功能:向DDRAM或CGRAM当前位置中写入数据 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符; 将使用者自己设计的图形存入CGRAM对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。
32/51,11).读DDRAM或CGRAM命令,功能:从DDRAM或CGRAM当前位置中读出数据当DDRAM或CGRAM读出数据时,先须设定DDRAM或CGRAM的地址读状态 输入: D/I=L,RW=H,E=H 输出:DB0~DB7=状态字写指令 输入: D/I=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码 输出:无读数据 输入: D/I=H,RW=H,E=H 输出: DB0~DB7=数据写数据 输入: D/I=H,RW=L,E=下降沿脉冲,DB0~DB7=数据 输出:无,34/51,//写命令函数void lcd_wcmd(unsigned char cmd){ while(lcd_bz());//判断LCD是否忙碌 rs = 0; rw = 0; ep = 0; _nop_();_nop_(); P0 = cmd; _nop_();_nop_(); _nop_();_nop_(); ep = 1; _nop_();_nop_();_nop_();_nop_(); ep = 0;},。












