字符LCD液晶显示和接口.ppt
单片机接口技术单片机接口技术LCD 液晶显示器液晶显示器的应用1.1.LCDLCD的原理的原理 LCDLCD是一种被动显示器,本身不发光利用电场效应是一种被动显示器,本身不发光利用电场效应液晶的扭曲向列效应液晶的扭曲向列效应2.LCD2.LCD的特点的特点 (1 1)具有功耗低)具有功耗低(2 2)显示信息大)显示信息大(3 3)寿命长和抗干扰能力强)寿命长和抗干扰能力强(4 4)适合人眼的视觉习惯,不易疲劳)适合人眼的视觉习惯,不易疲劳液晶显示器的应用3.LCD3.LCD的分类的分类 显示类型:笔段型显示类型:笔段型 、字符型、点阵图形型、字符型、点阵图形型 采光分类:自然采光、背光源采光采光分类:自然采光、背光源采光 液晶显示器具有厚度薄、适用于大规模集成电路直接驱液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、便携式电脑、数字摄像机、PDA和移动通信工具等众多领和移动通信工具等众多领域。域。16021602字符型液晶显示模块是一种专门用于显示字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式字母、数字、符号等点阵式LCDLCD,分为上下,分为上下2 2行,每行,每行显示行显示1616个字符,通常称为个字符,通常称为16021602字符型液晶显示器。字符型液晶显示器。1602LCD1602LCD采用标准的采用标准的14 Pin14 Pin(无背光)或(无背光)或16 16 PinPin(带背光)接口(带背光)接口3、LCD与单片机的访问方式v直接访问方式:把字符型液晶显示模块作为存储器或直接访问方式:把字符型液晶显示模块作为存储器或I IO O接口设备直接连到单片机总线上。接口设备直接连到单片机总线上。v间接控制方式:把字符型液晶显示模块作为终端设备连接间接控制方式:把字符型液晶显示模块作为终端设备连接到单片机的并行口上或使用扩展并行接口电路来连接。到单片机的并行口上或使用扩展并行接口电路来连接。直接访问直接访问间接访问间接访问51单片机的1602液晶字符LCD 液晶显示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块模块VDD:+5V电源管脚(Vcc)Vss:地管脚(GND)Vo:液晶显示驱动电源(0V5V)字符LCD 液晶显示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源,本实验中采用的是八位连接方法。字符LCD 液晶显示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块A:背光控制正电源K:背光控制地字符LCD 液晶显示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块RS:数据和指令选择控制端,RS=0:命令/状态;RS=1:数据R/W:读写控制线,R/W=0:写操作;R/W=1:读操作E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机之间将进行一次数据交换字符LCD 液晶显示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块单片机与LCD模块之间有四种基本操作:写命令写命令 读状态读状态 写显示数据写显示数据 读显示数据读显示数据字符LCD 液晶显示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块RSR/W操作00写命令操作(初始化、光标定位等)01读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)字符LCD 液晶显示和接口 读状态操作 状态字的最高位的BF为忙标志位,1表示LCD正在忙,0表示不忙。通过判断最高位BF的0、1状态,就可以知道LCD当前是否处于忙状态,如果LCD一直处于忙状态,则继续查询等待,否则进行下面的操作。查询忙状态程序段如下:do i=lcd_r_start();/调用读状态函数,读取LCD状态字 i&=0 x80;/采用与操作屏蔽掉低7位 delay(2);/延时 while(i!=0);/LCD忙,继续查询,否则退出循环字符LCD 液晶显示和接口 写命令操作/函数功能:读状态字函数功能:读状态字/返回值:返回状态字,最高位返回值:返回状态字,最高位D7=0,LCD控制器空闲;控制器空闲;D7=1,LCD控制器忙控制器忙unsigned char lcd_r_start()unsigned char s;RW=1;/RW=1,RS=0,读,读LCD状态状态 delay1();RS=0;delay1();E=1;/E端时序端时序 delay1();s=P1;/从从LCD的数据口读状态的数据口读状态 delay1();E=0;delay1();RW=0;delay1();return(s);/返回读取的返回读取的LCD状态字状态字字符LCD 液晶显示和接口 写命令操作 LCD上电时,都必须按照一定的时序对LCD进行初始化操作,主要任务是设置LCD的工作方式、显示状态、清屏、输入方式、光标位置等。字符LCD 液晶显示和接口 写命令操作 编编号号指令名称指令名称控制信号命令字RS R/WD7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D01 1清屏清屏0 00 00 0 0 0 0 0 0 10 0 0 0 0 0 0 12 2归归homehome位位0 00 00 0 0 0 0 0 1 0 0 0 0 0 0 1 3 3输输入方式入方式设设置置0 00 00 0 0 0 0 1 I/D S0 0 0 0 0 1 I/D S4 4显显示状示状态设态设置置0 00 00 0 0 0 1 D C B0 0 0 0 1 D C B5 5光光标标画面画面滚动滚动0 00 00 0 0 1 S/C R/L 0 0 0 1 S/C R/L 6 6工作方式工作方式设设置置0 00 00 0 1 DL N F 0 0 1 DL N F 7 7CGRAMCGRAM地址地址设设置置0 00 00 1 A5 A4 A3 A2 A1 A00 1 A5 A4 A3 A2 A1 A08 8DDRAMDDRAM地址地址设设置置0 00 01 A6 A5 A4 A3 A2 A1 A01 A6 A5 A4 A3 A2 A1 A09 9读读BFBF和和ACAC0 10 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0BF AC6 AC5 AC4 AC3 AC2 AC1 AC0字符LCD 液晶显示和接口 写命令操作 void lcd_w_cmd(unsigned char com)void lcd_w_cmd(unsigned char com)unsigned char i;unsigned char i;do /do /查查LCDLCD忙操作忙操作 i=lcd_r_start();i=lcd_r_start();/调用读状态字函数调用读状态字函数 i=i&0 x80;/i=i&0 x80;/与操作屏蔽掉低与操作屏蔽掉低7 7位位 delay(2);delay(2);while(i!=0);while(i!=0);/LCD /LCD忙,继续查询,否则退出循环忙,继续查询,否则退出循环 RW=0;RW=0;delay1();delay1();RS=0;RS=0;/RW=1 /RW=1,RS=0RS=0,写,写LCDLCD命令字命令字 delay1();delay1();E=1;E=1;/E /E端时序端时序 delay1();delay1();P1=com;P1=com;/将将comcom中的命令字写入中的命令字写入LCDLCD数据口数据口 delay1();delay1();E=0;E=0;delay1();delay1();RW=1;RW=1;delay(255);delay(255);字符LCD 液晶显示和接口 初始化操作 LCD初始工作方式设置显示状态设置清屏返回输入方式设置001DL N F*设置单片机与LCD接口数据位数DL、显示行数N、字型FDL=1:8位、DL=0:4位;N=1:2行、N=0:1行F=1:510、F=0:57例:00111000B(38H)设置数据位数8位,2行显示,57点阵字符00001DCB设整体显示开关D、光标开关C、光标位的字符闪耀BD=1:开显示;C=0:不显示光标;B=0:光标位字符不闪烁例:00001100B(0CH)打开LCD显示,光标不显示,光标位字符不闪烁清屏命令字01H,将光标设置为第一行第一列000001 I/D S设光标移动方向并确定整体显示是否移动I/D=1:增量方式右移、I/D=0:减量方式左移S=1:移位、S=0:不移位例:00000110B(06H)设置光标增量方式右移,显示字符不移动字符LCD 液晶显示和接口 写命令操作/函数名:函数名:int1/函数功能:函数功能:lcd初始化初始化/形式参数:无形式参数:无/返回值:无返回值:无void int1()lcd_w_cmd(0 x3c);/设置工作方式设置工作方式 lcd_w_cmd(0 x0e);/设置光标设置光标 lcd_w_cmd(0 x01);/清屏清屏 lcd_w_cmd(0 x06);/设置输入方式设置输入方式 lcd_w_cmd(0 x80);/设置初始显示位置设置初始显示位置字符LCD 液晶显示和接口 写数据操作 光标位置与相应命令字 列行 123456789101112131415161808182838485868788898A8B8C8D8E8F2C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF注:表中命令字以十六进制形式给出,该命令字就是与LCD显示位置相对应的DDRAM地址。字符LCD 液晶显示和接口 void lcd_w_dat(unsigned char dat)void lcd_w_dat(unsigned char dat)unsigned char i;unsigned char i;do do /查忙操作查忙操作 i=lcd_r_start();i=lcd_r_start();/调用读状态字函数调用读状态字函数 i=i&0 x80;i=i&0 x80;/与操作屏蔽掉低与操作屏蔽掉低7 7位位 delay(2);delay(2);while(i!=0);/LCD while(i!=0);/LCD忙,继续查询,否则退出循环忙,继续查询,否则退出循环 RW=0;RW=0;delay1();delay1();RS=1;RS=1;/RW=1/RW=1,RS=0RS=0,写,写LCDLCD命令字命令字 delay1();delay1();E=1;E=1;/E/E端时序端时序 delay1();delay1();P1=dat;P1=dat;/将将datdat中的显示数据写入中的显示数据写入LCDLCD数据口数据口 delay1();delay1();E=0;E=0;delay1();delay1();RW=1;RW=1;delay(255);delay(255);1602液晶的存储器结构2.CGROM:字符发生存储器,已经存储了160个不同的点阵字符图形,按ASCII码排列,如下图所示:字符代码:0 x000 x0F为用户自定义的字符图形RAM。0 x200 x7F为标准的ASCII码。0 xA00 xFF为日文字符和希腊文字符。字符的编码-ASCII码 采用美国标准信息交换码(即ASCII码)编码编码例:字符“W”57H 字符“E”45H 字符“L”4CH 字符”C”43HWELCOME:57H,45H,4CH,43H,4FH,4DH,45H 1602液晶的存储器结构3.CGRAM:用户自定义字符发生存储器,共64字节,地址为0 x000 x3f,可存储8个5*8点阵图形,其中地址0 x000 x07存储字符代码为0 x00的字符图形,0 x080 x0f存储字符代码为0 x01的字符图形,以此类推。小结:1、LCD显示器的特点和连接方式2、LCD显示器的管脚及功能3、LCD显示器的指令码及功能