第九章LCD显示器原理及应用课件

上传人:2127513****773577... 文档编号:242594484 上传时间:2024-08-28 格式:PPT 页数:49 大小:3.37MB
返回 下载 相关 举报
第九章LCD显示器原理及应用课件_第1页
第1页 / 共49页
第九章LCD显示器原理及应用课件_第2页
第2页 / 共49页
第九章LCD显示器原理及应用课件_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第九章LCD显示器原理及应用,*,第九章LCD显示器原理及应用,2024/8/28,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用2023/9/3第九章LCD显示,1,液晶显示器,(LCD)具有体积小、重量轻、功耗低、可以显示图形图像、便于用集成电路直接驱动、易于实现全彩色等特点,因此在仪器仪表、便携工具、监控系统及消费电子等领域有着广泛的应用。,液晶显示器分为,段式、字符式、点阵式,等。段式只能显示固定的一些符号或字符,价格低廉;,字符式,可以显示数字和字符,驱动方便,但无法显示汉字。,点阵式,可以显示汉字,但价格较高。汉字液晶显示器又分为,带字库和不带字库,的两种。,第九章LCD显示器原理及应用,液晶显示器(LCD)具有体积小、重量轻、功耗低、可以显示图形,2,9.1 液晶显示模块的原理,图9-1是字符型液晶显示器(不能显示汉字)原理,字框中显示了字码ABC;我们现在看到的图形和实际见到的有些相似,但是有很大的差别,这些字码的显示是通过在方格中依次连接所得,拼凑成一个个字符;液晶显示屏的原理和数码管的相同,即,这些方格在这里的作用相当于一个个LED灯相互拥簇在一起,;在这里可以称方格为“数码管”;通过控制“数码管”的通断就可以显示出不同的字符或数字。每个字符占据,8个方格的宽度,,,11个方格的高度,即11行8列,,但并不是显示一个字符一定要用11行8列,也可以是7行5列等。当然,数字液晶屏不能够显示汉字,因为所占据的位数不同。,图9-1 字符液晶显示器原理,第九章LCD显示器原理及应用,9.1 液晶显示模块的原理图9-1是字符型液晶显示器(不能,3,汉字液晶屏的显示原理也是如此,如图9-2的“大”字所示。大部分汉字液晶屏的驱动芯片是与液晶屏集成在一起的,统称为液晶模块,无须外加驱动,但不同的驱动芯片,其驱动方式和程序也不同,所以在使用液晶模块之前首先要了解其驱动模式。,通常汉字显示屏要比数字显示屏占据的空间大,每个汉字的显示由,16行16列组成,。以汉字液晶显示器为例,描述一个汉字的点阵数据需要32个字节,因为一个字节占8个位,所以一个位正好描述液晶屏上一个点是否点亮。例如,,假设“1”表示某个点是亮的,“0”表示某个点是不亮的,,那么下图中“大”字的第一行可以用二进制表示为:0000,0001,0000,0000,即0x01和0x00两个字节。同理,可以推出“大”字其他行的二进制表示。明显,如果显示一个汉字,则需要用32个字节的数据来描述。,第九章LCD显示器原理及应用,汉字液晶屏的显示原理也是如此,如图9-2的“大”字所示。大部,4,汉字液晶又分为,点阵型和字库型,,点阵型既可以显示汉字、又可以显示图形,而字库型只能显示汉字及字符,无法显示图形,但驱动方便。液晶屏的大小也有很大差异,典型的汉字液晶一般有,12232、12864、19264和240128,等。在实际应用中,要根据所要显示的内容、成本及信息的多少来选择液晶显示器。,图9-2 汉字液晶屏显示原理,第九章LCD显示器原理及应用,汉字液晶又分为点阵型和字库型,点阵型既可以显示汉字、又可以显,5,9.2 字符型液晶显示器RT1602C,字符型液晶显示器是一种用57点阵图形来显示字符的液晶显示器,根据显示的容量可以分为,1行16个字、2行16个字、2行20个字等,最常用的为2行16个字,,RT1602C液晶模块就属于此类型。,第九章LCD显示器原理及应用,9.2 字符型液晶显示器RT1602C字符型液晶显示器是一,6,9.1 液晶显示器模块的原理,一字符型液晶显示模块RT-1602C的外观与引脚,第九章LCD显示器原理及应用,9.1 液晶显示器模块的原理一字符型液晶显示模块RT-16,7,显示容量:162个,字符,;工作电流2.0mA(5.0V);字符尺寸:2.954.35mm。,RT-1602C采用标准的16脚接口,各引脚情况如下:,第1脚:VSS为电源地,第2脚:VDD为+5V电源,第3脚:VL为液晶显示偏压信号,第4脚:RS为数据/命令选择端,,高电平,时选择,数据寄存器,、,低电平,时选择,指令寄存器,。,第5脚: 为读/写选择端,,高电平,时进行,读操作,,,低电平,时进行,写操作,。当,RS,和,共同为低电平,时可以,写入指令【或者显示地址,】,,当RS为低电平,,为高电平时可以读忙信号,当RS为高电平, 为低电平时可以写入数据。,第九章LCD显示器原理及应用,显示容量:162个字符;工作电流2.0mA(5.0V);字,8,第6脚:,E端为使能端,,当E端由高电平跳变成低电平时(负跳变),液晶模块执行命令。,第714脚:D0D7,为8位双向数据总线,与单片机的数据总线相连,三态。,第15脚:BLA,背光电源,通常为5V,并联一个电位器,调节背光亮度。,第16脚:BLK,背光电源地。,RS,寄存器及操作,0,0,指令寄存器,写入,0,1,忙信号和地址计数器,读出,1,0,数据寄存器,写入,1,1,数据寄存器,读出,第九章LCD显示器原理及应用,第6脚:E端为使能端,当E端由高电平跳变成低电平时(负跳变),9,二字符型液晶显示模块RT-1602C的内部结构,液晶显示模块RT-C1602C的内部结构可以分成三部分:一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示:,第九章LCD显示器原理及应用,二字符型液晶显示模块RT-1602C的内部结构第九章LCD,10,控制器采用HD44780,驱动器采用HD44100。HD44780是,集控制器,驱动器于一体,,专用于字符显示控制驱动集成电路。HD44100是作,扩展显示字符位,的。,HD44780是字符型液晶显示控制器,的代表电路。,HD44780集成电路的特点:,1、可选择57或510点字符。,2、HD44780不仅作为控制器而且还具有驱动4016点阵液晶像素的能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。,HD44780可控制的字符高达每行80个字,也就是5X80=400点,HD44780内藏有16路行驱动器和40路列驱动器,所以HD44780本身就具驱动有1640点阵LCD的能力(,即单行16个字符或两行8个字符,)。如果在外部加一HD44100外扩展多40路/列驱动,则可驱动162LCD,第九章LCD显示器原理及应用,控制器采用HD44780,驱动器采用H,11,3、HD44780的显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM全部内藏在芯片内。,HD44780有80个字节的显示缓冲区,分两行,地址分别为,00H27H,40H67H,,它下实际显示位置的排列顺序跟LCD的型号有关,液晶显示模块RT-1602C的显示地址与实际显示位置的关系如图所示。,4、HD44780具有,8位数据和4位数据,传输两种方式,可与4/8位CPU相连。,5、HD44780具有简单而功能较强的指令集,可实现字符移动,闪烁等显示功能。,第九章LCD显示器原理及应用,3、HD44780的显示缓冲区DDRAM、字符发生存储器(R,12,HD44780内部的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形,如图所示:,这些,字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,,每一个字符都有一个固定的代码。比如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),可以看出英文字母的代码与ASCII编码相同。要显示“1”时,只需将ASCII码31H存入DDRAM指定位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,,就可以看到数字“1,”。,第九章LCD显示器原理及应用,HD44780内部的字符发生存储器(ROM)已经存储了160,13,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,14,三指令格式与指令功能,LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器,选择情况如表:,RS,寄存器及操作,0,0,指令寄存器写入,0,1,忙标志和地址计数器读出,1,0,数据寄存器写入,1,1,数据寄存器读出,总共有11条指令,它们的格式和功能如下:,RS和 引脚上的电平决定对寄存器的选择和读/写,DB7DB0决定命令功能。,第九章LCD显示器原理及应用,三指令格式与指令功能RS寄存器及操作00指令寄存器写入01,15,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,16,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,17,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,18,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,19,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,20,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,21,9.2.3 RT1602C与单片机接口及程序,图9-3是RT1602C与单片机接口的具体连接方式,RT1602C液晶连接插槽位JP4。在使用液晶时,在第三引脚连接了一个10K的电位器用来调整对比度,若程序运行后液晶无显示,则可调整此电位器。,图9-3 1602与单片机接口,第九章LCD显示器原理及应用,9.2.3 RT1602C与单片机接口及程序图9-3是RT,22,1602液晶模块的驱动程序编制如下:(功能为:用定时器实现一个时钟,并用1602液晶模块显示时间及提示信息,从中读者可以体会液晶驱动程序的编制方法).,#include,#define uchar unsigned char,#define uint unsigned int,sbit rs = P36 ; /定义寄存器选择位,sbit rw = P37 ; /定义读写控制线,sbit ep = P27 ; /定义使能端,code uchar mayuan =0,1,2,3,4,5,6,7,8,9;,code uchar aa =The total times is: ;,uchar i,hour,minute,second,k=0;,void putchar(uchar weizhi,uchar da);/显示一个字符的函数,void delay(uchar) ; /延时函数,void lcd_wcmd(uchar) ; / 写入指令数据到LCD,bit lcd_bz(void) ; / 测试LCD忙碌状态,第九章LCD显示器原理及应用,1602液晶模块的驱动程序编制如下,23,void lcd_pos(uchar) ; /设定显示位置,void lcd_wdat(uchar) ; /写入字符显示数据到LCD,void display(uchar,uchar *) ; /显示一个字符串的函数,void lcd_init(void); /液晶初始化函数,void showtime(uchar,uchar,uchar);/显示时间函数,void time_init(void); /定时时间初始化函数,main(),delay(10) ;,lcd_init() ; / 初始化LCD,time_init(); /定时器初始化,display(0x00,aa); /第一行显示The total times is: ,while(1),if(k!=second) /控制每一秒显示一次,k=second;,showtime(hour,minute,second);,第九章LCD显示器原理及应用,void lcd_pos(uchar) ;,24,void delay(uchar ms) / 延时子程序, uchar i ;,while(ms-),for(i = 0 ; i250;i+) ;,bit lcd_bz() / 测试LCD忙碌状态,bit result ;,rs = 0 ;,rw = 1 ;,ep = 1 ;,result = (bit)(P0 ,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,25,ep = 0 ;,return result ;,void lcd_wcmd(uchar cmd) / 写入指令数据到LCD,while(lcd_bz() ; /等待液晶空闲,rs = 0 ;,rw = 0 ;,ep = 0 ;,P0 = cmd ;,ep = 1 ;,ep = 0 ;,void lcd_pos(uchar pos) /设定显示位置,lcd_wcmd(pos | 0x80) ;,void lcd_wdat(uchar dat) /写入字符显示数据到LCD,while(lcd_bz() ; /等待液晶空闲,第九章LCD显示器原理及应用,ep = 0 ;第九章LCD显示器原理及应用,26,rs = 1 ;,rw = 0 ;,ep = 0 ;,P0 = dat ;,ep = 1 ;,ep = 0 ;,void lcd_init() /LCD初始化设定,lcd_wcmd(0x38) ; /功能设置:4位总线,双行显示,5x7的点阵字符(参指令6),delay(1) ;,lcd_wcmd(0x01) ; /清除LCD的显示内容(参指令1),delay(1) ;,lcd_wcmd(0x06) ; /入口模式设置:光标右移,文字不移(参指令3),delay(1) ;,lcd_wcmd(0x0c) ; /入口模式设置:开显示,无光标,光标不闪烁(参指令4),delay(1) ;,第九章LCD显示器原理及应用,rs = 1 ;第九章LCD显示器原理及应用,27,/*以下是在LCD上显示数组数据的函数。先写显示地址,后写显示数据。其中pos 为写入的位置,q指向要写入的数据所在的数组*/,void display(uchar pos, uchar *q),uchar i ;,lcd_pos(pos) ;,for(i=0 ;i16;i+),lcd_wdat(*q) ;,q+ ;,void putchar(uchar weizhi,uchar da) /在weizhi处显示字符da,delay(1);,lcd_pos(weizhi);,lcd_wdat(da);,第九章LCD显示器原理及应用,/*以下是在LCD上显示数组数据的函数。先写显示地址,后写显,28,void showtime(uchar h,uchar m,uchar s)/显示时间(h:小时,m:分,s:秒),putchar(0x40,mayuanh/10); /在位置0x40显示小时的高位,putchar(0x41,mayuanh%10); /在位置0x41显示小时的低位,putchar(0x42,:); /在位置0x42显示“:”,putchar(0x43,mayuanm/10); /在位置0x43显示分的高位,putchar(0x44,mayuanm%10); /在位置0x44显示分的低位,putchar(0x45,:); /在位置0x45显示“:”,putchar(0x46,mayuans/10); /在位置0x46显示秒的高位,putchar(0x47,mayuans%10); /在位置0x47显示秒的低位,void time_init(void) /定时器初始化函数,i=0;,hour=12;,minute=34;,second=56; /时间初值为12时34分56秒,TMOD=0x01;,TL0=0xb0; /赋初值,定时50ms,第九章LCD显示器原理及应用,void showtime(uchar h,uchar m,29,TH0=0x3c;,TR0=1; /启动定时器,EA=1;,ET0=1; /相关开中断,void time0() interrupt 1 using 2 /定时器0中断函数,实现定时1秒及时间的计算,TL0=0xb0; /重新赋初值,TH0=0x3c;,i+;,if(i=20) /1秒钟到,second+;,i=0;,if(second=60),second=0;,minute+;,第九章LCD显示器原理及应用,TH0=0x3c;第九章LCD显示器原理及应用,30,if(minute=60),minute=0;,hour+;,if(hour=24),hour=0;,第九章LCD显示器原理及应用, 第九章LCD显示器原理及应用,31,9.1.2 LCD显示器与单片机的接口与应用,下图是LCD显示器与8051单片机的接口图,图中RT-1602C的数据线与8051的P1口相连,RS与8051的P2.0相连,与8051的P2.1相连,E端与8051的P2.2相连。编程在LCD显示器的第一行、第一列开始显示“GOOD”,第二行、第6列开始显示“BYE”。,第九章LCD显示器原理及应用,9.1.2 LCD显示器与单片机的接口与应用,32,#include ,sbit RS=P20;,sbit RW=P21;,sbit E=P22;,void delay(void);,void init(void);,void wcmd(unsigned char);,void wdat(unsigned char);,void fbusy(void);,第九章LCD显示器原理及应用,#include 第九章LCD显示器原理,33,void main( ) /主函数,SP=0x50;,init( );,wcmd(0x80); /写入显示缓冲区起始地址为第1行第1列,wdta(0x44); /第1行第1列显示字母“G”,wdat(0x4f); /第1行第2列显示字母“O”,wdat(0x4f); /第1行第3列显示字母“O”,wdat(0x47); /第1行第4列显示字母“D”,【80H45HC5H】,wcmd(0xc5); /写入显示缓冲区起始地址为第2行第6列,wdat (0x42); /第2行第6列显示字母“B”,wdat (0x59); /第2行第7列显示字母“Y”,wdat (0x45); /第2行第8列显示字母“E”,while(1);,第九章LCD显示器原理及应用,void main( ) /主函数第九章LCD显示器原,34,void init() / 初始化函数,主要写命令,wcmd(0x01); /01H=0000 0001,清屏,wcmd(0x38); /38H=0011 1000,使用8位,显示两行,用5*7的字型,wcmd(0x0e); /0eH0000 1110,显示器开,光标开,字符不闪烁,wcmd(0x06); /06H0000 0110,字符不动,光标自动右移一格,RS,寄存器及操作,0,0,指令寄存器,写入,0,1,忙信号和地址计数器,读出,1,0,数据寄存器,写入,1,1,数据寄存器,读出,第九章LCD显示器原理及应用,void init() / 初始化函数,主要写命令RS,35,void fbusy( ) /检查忙函数,RS=0;RW=1; /RS=0,RW=1,读忙信号,E=1;E=0; / E端由高电平到低电平跳变,液晶模块执行命令,while (P1&0x80); /如果忙,则等待。参见忙指令格式,delay( ); / 延时大约2ms,由于LCD是一慢速显示器件,所以在执行每条指令之前一定要确认LCD的忙标志为0,即非忙状态,否则该命令将失效。,void wcmd(unsigned char cmd) /写命令函数, RS=0;RW=0,fbusy( ); / 写命令前,先检查设备是否忙?,E=0;RS=0;RW=0; / 指令寄存器写入,E=1; / E由高电平到低电平跳变,液晶模块执行命令,P1=cmd; / 命令由P1口送入LCD,E=0;,delay( );,第九章LCD显示器原理及应用,void fbusy( ) /检查忙函,36,void wdat(unsigned char dat) /写数据函数,RS=1;RW=0,fbusy( ); / 写数据前,先检查设备是否忙?,E=0;RS=1;RW=0;,E=1; / E由高电平到低电平跳变,液晶模块执行命令,P1=dat; / 数据由P1口送入LCD,E=0;,delay( ); / 延时大约2ms,void delay( ) /延时函数,unsigned char y;,for (y=0;y255;y+); / 【大约2ms多一点】,第九章LCD显示器原理及应用,void wdat(unsigned char dat),37,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,38,#include ,#include ,#define uchar unsigned char,#define uint unsigned int,sbit RS = P20;,sbit RW = P21;,sbit EN = P22;,void Delayms(uint ms) / 延时“ms”毫秒,unsigned char i;,while(ms-),for(i=0;i120;i+);,第九章LCD显示器原理及应用,#include 第九章LCD显示器原理及,39,uchar Busy_Check(),unsigned char LCD_Status;,RS = 0;RW = 1; /,读忙状态, RS=0;RW=1,EN = 1;,Delayms(1); / 延时1ms,LCD_Status = P0;,EN = 0; / EN由高电平到低电平跳变,液晶模块执行命令,return LCD_Status;,void Write_LCD_Command(uchar cmd),while(Busy_Check(),RS = 0; RW = 0;,/写命令,RS=0;RW=0,EN = 0;,P0 = cmd;,EN = 1;,Delayms(1);,EN = 0;,第九章LCD显示器原理及应用,uchar Busy_Check()第九章LCD显示器原理及,40,void Write_LCD_Data(uchar dat),while(Busy_Check(),RS = 1;RW = 0;,/写数据,RS=1;RW=0,EN = 0;,P0 = dat;,EN = 1;,Delayms(1);,EN = 0;,void Initialize_LCD(),Write_LCD_Command(0x38); / 0011 1000,8位,显示两行,用5*7的字型,Delayms(1);,Write_LCD_Command(0x01); /00000001,清屏,Delayms(1);,第九章LCD显示器原理及应用,void Write_LCD_Data(uchar dat),41,Write_LCD_Command(0x06); /0000 0110,字符不动,光标自动右移一格,Delayms(1);,Write_LCD_Command(0x0c); / 0000 1100,开显示,无光标,字符不闪烁,Delayms(1);,void ShowString(uchar x,uchar y,uchar *str),uchar i = 0;,if(y = 0),Write_LCD_Command(0x80 | x);,if(y = 1),Write_LCD_Command(0xc0 | x);,for(i=0;i16;i+),Write_LCD_Data(stri);,第九章LCD显示器原理及应用,Write_LCD_Command(0x06); /000,42,/* writer:shopping.w */,#include ,#include ,#define uchar unsigned char,#define uint unsigned int,void Initialize_LCD();,void ShowString(uchar,uchar,uchar *);,sbit K1 = P30;,sbit K2 = P31;,sbit K3 = P32;,uchar code Prompt=PRESS K1-K4 TO START DEMO PROG;,uchar const Line_Count = 6;,uchar code Msg80=,第九章LCD显示器原理及应用,/* writer:shop,43,Many CAD users dismiss,process of creating PCB,of view.with PCB layout,placement and track routing,can often be the most time,And if you use circuit simulation,you are going to spend even more,;,uchar Disp_Buffer32;,void Delayxms(uint ms),uchar i;,while(ms-),for(i=0;i120;i+);,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,44,void V_Scroll_Display(),uchar i,j,k = 0;,uchar *p = Msg0;,uchar *q = MsgLine_Count + strlen(MsgLine_Count);,while(pq),for(i=0;(iLine_Count),break;,p = Msgk;,Disp_Bufferi = *p+;,第九章LCD显示器原理及应用,void V_Scroll_Display()第九章LCD显,45,for(j=i;j16;j+),Disp_Bufferj= ;,while(F0),Delayxms(5);,ShowString(0,0, );,Delayxms(150);,while(F0),Delayxms(5);,ShowString(0,1,Disp_Buffer);,Delayxms(150);,while(F0),Delayxms(5);,ShowString(0,0,Disp_Buffer);,ShowString(0,1, );,Delayxms(150);,ShowString(0,0, );,ShowString(0,1, );,第九章LCD显示器原理及应用,for(j=i;j16;j+)第九章LCD显示器原理及应,46,void H_Scroll_Display(),uchar m,n,t = 0,L=0;,uchar *p = Msg0;,uchar *q = MsgLine_Count + strlen(MsgLine_Count);,for(m=0;m16;m+),Disp_Bufferm= ;,while(pq),if(m=16|m=31)& *p = ),p+;,for(m=16;mLine_Count),break;,p = Msgt;,Disp_Bufferm = *p+;,for(n=m;n32;n+),Disp_Buffern= ;,for(m=0;m=16;m+),while(F0),Delayxms(5);,ShowString(0,L,Disp_Buffer+1);,while(F0),Delayxms(5);,Delayxms(20);,L = (L=0)? 1:0;,Delayxms(200);,if(L=1),ShowString(0,1, );,第九章LCD显示器原理及应用,第九章LCD显示器原理及应用,48,演讲完毕,谢谢听讲,!,再见,see you again,3rew,2024/8/28,第九章LCD显示器原理及应用,演讲完毕,谢谢听讲!再见,see you again3rew,49,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!