欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    字符液晶显示器.ppt

    • 资源ID:6224395       资源大小:1.61MB        全文页数:70页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    字符液晶显示器.ppt

    1/51,字符型液晶显示器,LCD1602,2/51,一、字符型点阵式LCD简介,字符型液晶显示器,字符型点阵LCD是专门用于显示数字09、大小写英文字符、图形符号及少量自定义符号的液晶显示器。其内部带有显示字符的字库,大多数还能由人工根据需要编码一些字符。,这里介绍的字符型液晶模块是一种用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端由高电平跳变成低电平时,液晶模块执行命令(下降沿触发)。,第714脚:DB0DB7,为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 RAM。1)CGROM:CGROM内存储着160个57点阵的字形,这些字形均已固定,例如将“A”写入LCD中,就是将“A”的ASCII码 41H 写入DDRAM中,控制芯片就会自动 至CGROM中将“A”的字形点阵数据找出来而显示在LCD上。,3、LCD内部的内存,2)DDRAM:用来存储写入LCD内部的字符。DDRAM的地址分布从00H67H,分别代表LCD的各列位置,例如我们要将“A”写入第2行的第l个位置,就先设置第二行第一列对应的DDRAM地址40H,而后写入41H至LCD即可。,3)CGRAM:此区域只有64字节,可将用户自行设计的字形写入LCD中,一个字的大小为57点阵,共可以存储8个字形,其显示码为00H07H。,13/51,14/51,1)指令寄存器(Instruction Register,IR)与数据寄存器(Data Register,DR):指令寄存器和数据寄存器都是8位 的寄存器,IR寄存器用来储存指令代码或地址;DR寄存器则是作为写入存储器或从存储器中读取数据的数据缓冲区。从外部要对LCD模块控制时,是由DI引脚来选择数据引脚D7D0的信号,用来对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”的字符码0 x41,这样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时,内容不移动。,指令格式:0407H常用:06,24/51,4)显示开关控制命令,功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。D 控制显示的开关:当D=1时显示,D=0时不显示。C 控制光标开关:当C=1时光标显示,C=0时光标不显示。B 控制字符是否闪烁:当B=1时字符闪烁,B=0时字符不闪烁。,指令格式:080FH常用:0C,25/51,5)光标画面移位置命令,功能:移动光标或整个显示字幕移位。,S/C R/L 设定情况 0 0 只光标左移1格,且AC值减1 0 1 只光标右移1格,且AC值加1 1 0 显示器上字符全部左移一格,但光标不动 1 1 显示器上字符全部右移一格,但光标不动,指令格式:101CH,26/51,6)功能设置命令,功能:设定数据总线位数、显示的行数及字型 设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。设置显示行数,当N=1时双行显示,N=0时单行显示。设置字形大小,当F=1时510点阵,F=0时为57点阵。,指令格式:203CH常用 38H,27/51,7)设置字库CGRAM地址命令,功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴063。,指令格式:407F常用:40H+CGRAM的地址,送地址的时候应该是0 x40+Address。,28/51,8)显示缓冲区DDRAM地址设置命令,功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴0127。,送地址的时候应该是0 x80+Address。,指令格式:80FF常用: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,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 输出:DB0DB7=状态字写指令 输入:D/I=L,RW=L,E=下降沿脉冲,DB0DB7=指令码 输出:无读数据 输入:D/I=H,RW=H,E=H 输出:DB0DB7=数据写数据输入:D/I=H,RW=L,E=下降沿脉冲,DB0DB7=数据 输出:无,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;,D/I,/写数据函数void lcd_wdat(unsigned char dat)while(lcd_bz();/判断LCD是否忙碌rs=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();/延时ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;,D/I,36/51,8、LCD显示器的初始化,LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下:1)清屏;2)功能设置;3)开/关显示设置;4)输入方式设置。液晶显示模块是一个慢显示器件,所以在执行每条指令之 前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效;,要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符;比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H),/设置光标位置函数void lcd_pos(unsigned char pos)lcd_wcmd(pos|0 x80);,39/51,显示内容:GOOD BYE显示要求:1)第1行第1列开始显示 GOOD2)第2行第6列开始显示 BYE3)使用8位数据,显示两行,使用5*7的字型4)显示器开,光标开,字符不闪烁5)字符不动,光标自动右移一格,9、例题,40/51,硬件连接,41/51,1)第1行第1列开始显示 GOOD2)第2行第6列开始显示 BYE,(0 x80+0 x00),(0 x80+0 x45),3)使用8位数据,显示两行,使用5*7的字型(0 x38),设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。设置显示行数,当N=1时双行显示,N=0时单行显示。设置字形大小,当F=1时510点阵,F=0时为57点阵。,43/51,4)显示器开,光标开,字符不闪烁(0 x0e),功能:D 控制显示的开关:当D=1时显示,D=0时不显示。C 控制光标开关:当C=1时光标显示,C=0时光标不显示。B 控制字符是否闪烁:当B=1时字符闪烁,B=0时字符不闪烁。,功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。当S=1时,内容移动,S=0时,内容不移动。,5)字符不动,光标自动右移一格(0 x06),45/51,9、程序编写,C语言编程:#include#include sbit rs=P20;sbit rw=P21;sbit ep=P22;unsigned char code dis1=Good;unsigned char code dis2=Bye!;,程序流程图,46/51,/主函数void main(void)unsigned char i;lcd_init();/初始化LCDdelay(10);lcd_pos(0 x00);/设置显示位置i=0;while(dis1i!=0)lcd_wdat(dis1i);/显示字符i+;lcd_pos(0 x45);/设置显示位置i=0;while(dis2i!=0)lcd_wdat(dis2i);/显示字符i+;,47/51,/初始化函数void lcd_init()lcd_wcmd(0 x38);/使用8位数据显示两行使用5*7的字型delay(1);lcd_wcmd(0 x0e);/显示器开,光标开,字符不闪烁delay(1);lcd_wcmd(0 x06);/字符不动,光标自动右移一格delay(1);lcd_wcmd(0 x01);/清屏delay(1);,48/51,/延时函数void delay(unsigned char ms)unsigned char i;while(ms-)for(i=0;i 250;i+)_nop_();_nop_();_nop_();_nop_();,LCD12864(KS0108),KS0108 控制器系列产品主要特性:1.8 位并行数据接口,适配M6800 系列时序。2.拥有64 64 位(512 字节)的显示存储器,其数据直接作为显示驱动信号。3.简单的操作指令。4.低功耗(具体参数见各款产品外形文件),原理简图,引脚功能(KS0108 时序),工作时序图,指令列表,KS0108 指令写入的流程图:,指令功能详解读状态字(read)1)BUSY=1 表示KS0108 正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除读状态字以外的任何操作。BUSY=0 表示 KS0108 接口控制电路已处于“准备 好”状态,等待计算机的访问。2)ON/OFF:表示当前的显示状态。ON/OFF=1 表示关显示状态ON/OFF=0 表示开显示状态。3)RESET 表示当前KS0108 的工作状态,即反映RST 端的电平状态。当RST 为低电平状态时KS0108 处于复位工作状态,RESET=1。当RST 为高电平状态时,KS0108 为正常工作状态,RESET=0。4)在进行设置和数据读写时要注意状态字中的BUSY 标志。只有在BUSY=0 时,计算机对KS0108 的操作才能有效。因此计算机在每次对KS0108 操作之前,都要读出状态 字判断BUSY 是否为“0”。若不为“0”,则计算机需要等待,直至BUSY=0 为止。,2.显示开关(display on/off)3E3FH 该指令设置显示开关/触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示上的显示状态。D 位为显示开/关的控制位。当 D=1 为显示设置,显示数据锁存器正常工作,显示屏上呈现所显示的效果。此时在状态字中ON/OFF=0。(3FH)当D=0 为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器 并没有被破坏,在状态组中ON/OFF=1。(3EH),3.显示起始行设置(Display start line)(C0H+行地址)该指令设置了显示起始行寄存器的内容。KS0108 有64 行显示的管理能力,该指令中L5L0 为显示起始行的地址,取值在03FH(164)范围内,它规定了显示屏上最顶 一行所对应的显示存储器的行地址。如果定时间隔地,等间距地修改(如加一或减一)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。,4.页面地址设置Set page(X address)(B8H+页地址)该指令设置了页面地址X 地址寄存器的内容。KS0108 将显示存储器分成了 8页,指令代码中 P2P0 就是要确定当前所要选择的页面地址,取值范围为 07H,代表第 18 页。该指令规定了以后的读/写操作将在哪一个页面上进行(每8行为一页)。,5.列地址设置(Set Y address)(40H+列地址)该指令设置了 Y 地址计数器的内容,C5C0=03FH(164)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y 地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y 地址计数器不必每 次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一地确定下来,为后来的显示数据的读/写作了地址的选通。,6.写显示数据(Write display data)该操作将8 位数据写入先前已确定的显示存储器的单元内,操作完成后列地址计数器自动加一。,7.读显示数据(Read display data)该操作将KS0108 接口部的输出寄存器内容读出,然后列地址计数器自动加一。,硬件连接电路,程序设计,#include#define uchar unsigned char#define uint unsigned int#define E P20#define RW P21#define DI P22#define CS2 P23#define CS1 P24#define LCD P0#define RS DIsbit P20=P20;sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit P24=P24;,unsigned char code tuxing2=0 x00,0 x00,0 x00,0 x00,0 xC0,0 x60,0 x30,0 x18,0 x0C,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x04,0 x0C,0 x08,0 x08,0 x10,0 x30,0 x60,0 xC0,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 xFF,0 x81,0 x00,0 x00,0 x00,0 x1C,0 x34,0 x22,0 x22,0 x36,0 x1C,0 x00,0 xC0,0 x40,0 x00,0 x00,0 x1E,0 x22,0 x22,0 x26,0 x1C,0 x00,0 x00,0 x01,0 x1E,0 xF0,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x1F,0 x70,0 xC0,0 x80,0 x00,0 x04,0 x1C,0 x30,0 x40,0 x80,0 x86,0 x07,0 x04,0 x04,0 x04,0 x00,0 x80,0 x80,0 xC0,0 x7C,0 x00,0 x00,0 x00,0 x80,0 xFF,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x01,0 x03,0 x06,0 x0C,0 x08,0 x18,0 x11,0 x11,0 x31,0 x21,0 x21,0 x21,0 x31,0 x10,0 x18,0 x08,0 x0C,0 x04,0 x06,0 x03,0 x00,0 x00,0 x00,0 x00/*未命名文件32*32,0*/;,延时程序void delay()uchar i,j,k;for(i=0;i255;i+)for(j=0;j255;j+)for(k=0;k1;k+);,bit lcd_bz()bit result;RS=0;RW=1;E=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(LCD,写指令程序,CS1片选void LCD_Command1(uchar ch)while(lcd_bz();/是否忙碌 CS1=0;CS2=0;RW=0;RS=0;LCD=ch;CS1=1;E=1;E=0;CS1=0;,CS2片选void LCD_Command2(uchar ch)while(lcd_bz();/是否忙碌 CS1=0;CS2=0;RW=0;RS=0;LCD=ch;CS2=1;E=1;E=0;CS2=0;,写数据程序,void LCD_Data1(uchar ch)while(lcd_bz();/是否忙碌 CS1=0;CS2=0;RW=0;RS=1;LCD=ch;CS1=1;E=1;E=0;CS1=0;,void LCD_Data2(uchar ch)while(lcd_bz();/是否忙碌 CS1=0;CS2=0;RW=0;RS=1;LCD=ch;CS2=1;E=1;E=0;CS2=0;,主函数程序,void main()uchar i,j,k;LCD_Command1(0 x3f);for(i=0;i4;i+)LCD_Command1(0 xB8+i);LCD_Command1(0 x40);/设定列的指令可以工作for(j=0;j32;j+)LCD_Data1(tuxing2j+i*32);for(i=0;i4;i+)LCD_Command2(0 xB8+i);LCD_Command2(0 x40+0 x10);/设定列的指令可以工作for(j=0;j32;j+)LCD_Data2(tuxing2j+i*32);while(1);,

    注意事项

    本文(字符液晶显示器.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开