LCD1602液晶显示总结
lcd1602液晶屏显示原理
lcd1602液晶屏显示原理
LCD1602液晶屏是一种常见的二线多功能液晶显示模块,其
显示原理基于液晶的光电效应。
液晶是一种具有特殊物理性质的有机分子,它可以通过电场的作用改变其自身的光透过性。
LCD1602液晶屏中的液晶材料
被填充在由两片玻璃构成的一个夹层之间,夹层中含有电极。
在液晶屏正常工作时,通过控制外部电源,液晶屏上的液晶分子会根据电场的变化而排列。
液晶分子排列的不同状态会导致光线的折射和透过性发生变化,从而实现显示。
液晶屏通过在电极上加电或去电来创建电场变化,从而控制液晶分子的排列状态。
在液晶屏上,液晶分子的排列状态会导致出现两个主要的极化方向——平行和垂直。
当电场变化时,液晶分子会根据电场的方向来重新排列。
当液晶分子排列平行时,光线不会被液晶分子折射,而垂直排列时,光线会被液晶分子折射。
液晶屏上设有偏振片,其方向与液晶分子排列的状态有关,可通过改变偏振片方向来改变光线的透过性。
为了实现更复杂的显示效果,LCD1602液晶屏采用了多行多
列的方式排列液晶分子,形成像素点的矩阵。
通过控制每个像素点处电极的电场,可以控制液晶分子在不同位置的排列状态,从而实现对每个像素点的控制。
液晶屏上通过电压控制器和驱动芯片控制电场的变化,进而控制液晶分子排列状态的变化。
总之,LCD1602液晶屏通过控制电场的变化来改变液晶分子的排列状态,从而控制光线的折射和透过性,实现图像和文字的显示效果。
通过控制每个像素点处的电场,可以实现复杂的显示效果。
LCD1602知识总结
LCD1602写操作时序:LCD1602读操作时序:1602采用标准的16脚接口,其中: 第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚1602液晶模块内部的控制器共有11条控制指令:它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令DL:高电平时为8位总线,低电平时为4位总线N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置DB5DB4DB3 为字符号,也就是你将来要显示该字符时要用到的字符地址。
(000~111)(能定义八个字符)DB2DB1DB0为行号。
(完整版)LCD1602学习总结
LCD1602液晶屏知识点总结LCD1602的引脚包括数据指令寄存器RS,读写控制寄存器R/W,使能端E,三态数据总线DB0~DB7,电源引脚VDD,VSS,背光正负极A、K,背光调节引脚V0。
1602可以显示2行每行16个共32个5*8或者5*11个字符,这就是1602名字的由来。
1602内部有CGROM、CGRAM、DDRAM。
CGROM是字符发生器ROM,是固化在内部的,共192个字符,包括160个5*7点阵字符,32个5*10点阵字符。
(为什么上面是5*8和5*11,这里不是,因为内部CGROM中的字符没有完全占满可以用的字模)其中部分与ASCII完全一样,所以对于大小写英文字母和数字及部分符号,在编程时可以直接双引号括起来用。
CGRAM是64字节用户可自定义的存储区,可自定义8个5*8或者4个5*11的字符。
DDRAM是控制显示的RAM,想显示什么,就把显示内容的地址放进DDRAM,不过还要设置好显示方式。
DDRAM共80字节,第一行和第二行各40字节。
这40个字节在一次显示时当然不会全部显示,因为屏幕只能显示16个,但在滚动显示时就可以全部显示出来。
LCD1602设定某种地址,接下去读取数据就放在改类地址中,比如设定了CGRAM的地址,那么接下去读取的数据就放在CGRAM中。
R=1时,是数据寄存器,RS=0时,是指令寄存器。
R/W=1时,是读操作,R/W=0时,是写操作。
读操作时,使能端E要保持1,写操作时,下降沿使能。
当RS=0,R/W=0时,是写入命令:1、01H:清除DDRAM的所有单元,光标被移动到屏幕左上角。
<1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;<2> 光标归位,即将光标撤回液晶显示屏的左上方;<3> 将地址计数器(AC)的值设为0。
2、02H或这03H:DDRAM所有单元的内容不变,光标移至左上角。
LCD1602液晶显示实验报告
LCD1602液晶显示实验报告实验报告:LCD1602液晶显示实验实验目的:1.了解LCD1602液晶显示的工作原理和基本结构;2.掌握LCD1602液晶显示的驱动控制方法;3.能够通过Arduino控制LCD1602液晶显示。
实验材料:1.Arduino UNO开发板2.LCD1602液晶显示屏3.面包板4.杜邦线实验步骤:1.将Arduino UNO开发板与面包板连接,确保连接正确并牢固;2.将LCD1602液晶显示屏与面包板连接,连接时应注意引脚的对应关系,确保连接正确;3.将杜邦线的一端连接到Arduino UNO开发板的数字引脚上,另一端连接到对应的液晶显示屏引脚上;4.编写Arduino代码,实现液晶显示屏的控制功能;5.将编写好的代码上传到Arduino UNO开发板上,运行程序,观察LCD1602液晶显示屏上的显示结果。
实验结果:通过实验,我们成功实现了对LCD1602液晶显示屏的控制。
在液晶显示屏上可以显示出我们想要的文字、数字或符号。
通过控制液晶显示屏的引脚电平,可以控制液晶显示出不同的字符。
实验总结:通过本次实验,我们了解了LCD1602液晶显示的工作原理和基本结构。
液晶显示屏通过控制引脚电平来控制液晶分子的排列,从而实现文字、数字或符号的显示。
我们还掌握了LCD1602液晶显示的驱动控制方法,通过编写Arduino代码,我们能够实现对液晶显示屏的控制。
在实验中,我们还学习到了Arduino的使用,它是一款开放源代码的电子原型平台,由硬件和软件组成。
通过编写Arduino代码,我们可以控制与Arduino连接的各种外设,包括LCD1602液晶显示屏。
通过本次实验,我们不仅加深了对LCD1602液晶显示的理解,还学会了使用Arduino控制液晶显示屏。
这对我们的电子制作和嵌入式系统开发有重要意义。
(完整版)LCD1602学习总结
LCD1602液晶屏知识点总结LCD1602的引脚包括数据指令寄存器RS,读写控制寄存器R/W,使能端E,三态数据总线DBO〜DB7,电源引脚VDD, VSS,背光正负极A、K,背光调节引脚V0。
1602可以显示2行每行16个共32个5*8或者5*11个字符,这就是1602名字的由来。
1602内部有CGROM、CGRAM、DDRAM。
CGROM是字符发生器ROM,是固化在内部的,共192个字符,包括160个5*7点阵字符,32个5*10点阵字符。
(为什么上面是5*8和5*11,这里不是,因为内部CGROM中的字符没有完全占满可以用的字模)其中部分与ASCII完全一样,所以对于大小写英文字母和数字及部分符号,在编程时可以直接双引号括起来用。
CGRAM是64字节用户可自定义的存储区,可自定义8个5*8或者4个5*11的字符。
DDRAM是控制显示的RAM,想显示什么,就把显示内容的地址放进DDRAM,不过还要设置好显示方式。
DDRAM共80字节,第一行和第二行各40字节。
这40个字节在一次显示时当然不会全部显示,因为屏幕只能显示16个,但在滚动显示时就可以全部显示出来。
LCD1602设定某种地址,接下去读取数据就放在改类地址中,比如设定了CGRAM的地址,那么接下去读取的数据就放在CGRAM中。
由于写数据时最高位必须为1所以实际地址是:R=1时,是数据寄存器,RS=0时,是指令寄存器。
R/W=1时,是读操作,R/W=0时,是写操作。
读操作时,使能端E要保持1,写操作时,下降沿使能。
当RS=0,R/W=0 时,是写入命令:1、01H :清除DDRAM的所有单元,光标被移动到屏幕左上角<1>清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;<2>光标归位,即将光标撤回液晶显示屏的左上方;<3>将地址计数器(AC)的值设为02、02H或这03H : DDRAM 所有单元的内容不变,光标移至左上角0<1>把光标撤回到显示器的左上方;<2>把地址计数器(AC)的值设置为0;<3>保持DDRAM的内容不变3、输入方式设置(EnterModeSet ),这些指令规定了两个方面:一是写入一个DDRAM单元后,地址指针如何改变(加一还是减一);二是屏幕上的内容是否滚动。
LCD1602液晶显示完全资料
LCD1602液晶显示完全资料0x18 光标和显示一起向左移动4.显示地址:LCD1602内部RAM显示缓冲区地址的映射图,00~0F、40~4F分别对应LCD1602的上下两行的每一个字符,只要往对应的RAM地址写入要显示字符的ASCII代码,就可以显示出来。
5.读写时序:时序图1602手册中有,这里不引用了。
时序图很重要,编程就是根据时序图设置寄存器,让LCD工作。
二、LCD1602程序编写流程:LCD1602在了解完以上信息后便可以编写,这里我们把程序分为以下几步:1.定义LCD1602管脚,包括RS,R/W,E。
这里定义是指这些管脚分别接在单片机哪些I/O口上。
现举例如下:sbit EN=P3^4;sbit RS=P3^5;sbit RW=P3^6;2.显示初始化,在这一步进行初始化及设置显示模式等操作,包括以下步骤:设置显示方式延时清理显示缓存设置显示模式通常推荐的初始化过程如下:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms注:以上写38H指令可以看情况省略1~2步(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开及光标设置3.设置显示地址(写显示字符的位置)。
4.写显示字符的数据。
三、LCD1602各子程序模块及主程序编写:现在按照上面编写程序的流程,给出各子程序模块及主程序的例子。
1.头文件,宏定义,定义管脚等:#include<reg52.h>#include <string.h>#define uchar unsigned char#define uint unsigned intsbit EN=P3^4;sbit RS=P3^5;sbit RW=P3^6;uchar code table0[]={"QQ:545699636"}; //此条语句为显示字符串时定义的字符串数组2.LCD1602基本初始化子程序:void LCD1602(){EN=0;RS=1;RW=1;P0=0xff; //这里P0为与LCD D0~D7相连的I/O口}3.读忙子程序:void read_busy(){P0=0xff;RS=0;RW=1;EN=1;while(P0&0x80); //P0和10000000相与,D7位若不为0,停在此处EN=0; //若为0跳出进入下一步;这条语句的作用就是检测D7位} //若忙在此等待,不忙跳出读忙子程序执行读写指令4.写指令写数据子程序:void write(uchar i,bit j){read_busy();P0=i; //其中i=0,写指令;i=1,写数据;RS=j;RW=0;EN=1;EN=0;}5.延时子程序:void delay(uint c) //功能为提供初始化等其他子程序中的延时1xc MS{uint a,b;for(a=0;a<c;a++)for(b=0;b<120;b++);}6.LCD1602初始化子程序:void init() //完全按照要求初始化流程来,中间省略了一步写指令38H{delay(15);write(0x38,0);delay(5);write(0x38,0);write(0x08,0);write(0x01,0);write(0x06,0);write(0x0c,0);}7.显示单个字符子程序:void display_lcd_byte(uchar y,uchar x,uchar z) //Y=0,1(起始行)X=0~15(起始列)Z=想写字符的ASCII码{if(y) //是否显示在第二行(若在第一行Y=0,不进入IF语句,若在第二行,进入IF语句{x+=0x40; //第二行起始地址加上列数为字符显示地址}x+=0x80; //设置数据指针位置write(x,0);write(z,1); //写入数据}8.显示字符串子程序:void display_lcd_text(uchar y,uchar x,uchartable[]) //Y,X同上字符显示,table[]字符串数组{uchar z=0;uchar t;t=strlen(table)+x; // 求得字符串长度加上起始列位置 while(x<t) //功能为LCD显示到字符串最后一个字符,防止字符串{ //没有16个字符,从而不够位产生乱码; display_lcd_byte(y,x,table[z]); //逐位显示数组内字符x++;z++;}}9.主程序:主程序里除了放入初始化程序外就是加入自己编写的显示子程序,根据你所要的不用功能可以编写各种类型的显示子程序,这里不做详细介绍,以下举例为显示一个字符和显示字符串的显示子程序。
lcd1602的显示原理
lcd1602的显示原理
LCD1602是一款16×2字符液晶显示模块,其显示原理基于液
晶分子的电光效应。
液晶分子是一种有机分子,在没有电场时,其分子内部呈现随机排列的状态,不会通过光线的传播。
然而,当液晶分子受到电场的作用时,它们会改变自身的方向,从而使光线能够通过。
在LCD1602中,液晶分子被夹在两片平行的透明电极之间。
这两片电极由透明导电材料(如氧化铟锡)制成,通过外部电源提供电压。
当电压施加在电极上时,液晶分子会重新排列,形成一个规则的结构。
在LCD1602的背光灯亮起的情况下,LCD的每个字符位置由
一个位于背光层后面的液晶单元组成。
液晶单元可以看作一个微小的透明窗口,它由液晶分子和两片玻璃之间的色素层组成。
当液晶分子处于无电场状态时,色素层会吸收背光光线,使液晶单元呈现黑色。
而当液晶分子受到电场的作用时,它们会重新排列,色素层对背光光线的吸收减少,使液晶单元呈现透明状态。
通过控制液晶分子的排列方式,可以实现对字符的显示。
LCD1602通过与微控制器(如Arduino)连接,通过微控制器
发送指令和数据来控制液晶模块的显示内容。
具体来说,微控制器通过发送脉冲来改变电场的方向和强度,从而控制液晶分子的排列方式。
然后,显示模块将电场信息转化为对应的字符显示。
LCD1602液晶显示实验实验报告及程序
LCD1602液晶显示实验实验报告及程序一、实验目的本次实验的主要目的是熟悉并掌握 LCD1602 液晶显示屏的工作原理和编程方法,能够成功实现字符在液晶屏幕上的显示和控制。
二、实验原理LCD1602 是一种工业字符型液晶,能够显示 16x2 个字符,即每行16 个字符,共 2 行。
它的工作原理是通过控制液晶分子的偏转来实现字符的显示。
LCD1602 有 16 个引脚,主要引脚功能如下:1、 VSS:接地。
2、 VDD:接电源(通常为+5V)。
3、 V0:对比度调整引脚,通过外接电位器来调节屏幕显示的对比度。
4、 RS:寄存器选择引脚,高电平时选择数据寄存器,低电平时选择指令寄存器。
5、 RW:读写选择引脚,高电平时进行读操作,低电平时进行写操作。
6、 E:使能引脚,下降沿触发。
7、 D0 D7:数据引脚,用于传输数据和指令。
LCD1602 的指令集包括清屏、归位、输入方式设置、显示开关控制、光标或显示移位、功能设置、CGRAM 和 DDRAM 地址设置以及读忙标志和地址等。
三、实验设备与材料1、单片机开发板2、 LCD1602 液晶显示屏3、杜邦线若干4、电脑四、实验步骤1、硬件连接将 LCD1602 的 VSS 引脚接地。
将 VDD 引脚接+5V 电源。
将 V0 引脚通过一个 10K 的电位器接地,用于调节对比度。
将 RS、RW、E 引脚分别连接到单片机的三个 I/O 口。
将 D0 D7 引脚连接到单片机的 8 个 I/O 口。
2、软件编程包含必要的头文件。
定义与 LCD1602 连接的 I/O 口。
编写初始化函数,包括设置显示模式、清屏、输入方式等。
编写写指令函数和写数据函数,用于向LCD1602 发送指令和数据。
编写显示字符串函数,实现字符在屏幕上的显示。
3、编译下载程序使用编译软件对编写的程序进行编译,生成可执行文件。
将可执行文件下载到单片机开发板中。
4、观察实验结果给开发板上电,观察 LCD1602 液晶显示屏上是否正确显示预设的字符。
1 LCD1602显示总结
1 LCD1602显示总结使用LCD 1602显示内容时首先要初始化LCD1602的显示模式,然后实现对LCD 1602稳定读/写的函数,包括读状态和写内容,对LCD 1602写内容又包括写指令和写数据。
1.1 LCD1602的初始化可编写专门的初始化函数来实现,函数内容可包含如下:(1)程序运行时,等待约15ms的时间让LCD VDD电压达4.5V。
(2)用编写的LCD写指令函数设置LCD的显示模式,如设置LCD1602用16 x 2显示、5x7点库、使用8位数据端口。
对应送往LCD 1602 8个端口的数据为0x38。
(3)设置LCD开显示模式,是否显示光标,光标是否闪烁。
都设置时8个数据端口的数据为0x0f。
(4)设置LCD读写字符后地址指针、光标位置是否往后增1,屏幕移动与否。
地址指针、光标在读写字符后增1,屏幕不移动时8个端口的数据为0x06。
(5)清屏。
清屏指令为0x01.可在LCD写指令模式设置下写入清屏指令。
清屏指令主要是为了下一次的显示不受上一次显示的干扰。
1.2 LCD1602写指令/数据可专门编写函数来实现。
函数内容可包含如下:(1)检测LCD忙信号:LCD的D7位是否为1,如果此位为1则表示LCD处于忙碌状态,需要等到D7状态位为0时方可进入写指令操作。
(2)设置LCD的RS端口为0来表示对LCD进行指令操作,RW端口为0表示往LCD内写东西。
二者构成往LCD内写指令。
延时等待(时间不长,需参考手册中的时间)保证RS,RW 两端口彻底的到达低电平。
(3)将指令置于LCD的D0-D7位,延时等待保证D0-D7电平得到彻底变化。
(4)将LCD的EN使能位置为1,延时等待其位彻底变高后将EN置为1,使得EN端口得到一个负脉冲。
(5)EN端负脉冲产生LCD就开始将D0-D7上面的指令往LCD里面写入,此时延时等待一段时间(如5ms,合适的时间可以不断的调试得来)当要对LCD写数据时,步骤跟写指令时一样,只是需要在以上步骤中将RS设置为高电平,表示对LCD进行数据操作。
LCD1602液晶显示总结
LCD1602液晶显示应用总结一、1602里面存储器有三种:CGROM、CGRAM、DDRAMCGROM保存了厂家生产时固化在LCM中的点阵型显示数据;CGRAM是留给用户自己定义点阵型显示数据的;DDRAM则是和显示屏的容对应的。
1602部的DDRAM有80字节,而显示屏上只有2行×16列,共32个字符,所以两者不完全一一对应。
默认情况下,显示屏上第一行的容对应DDRAM中80H到8FH的容,第二行的容对应DDRAM 中C0H到CFH的容。
DDRAM中90H到A7H、D0H到E7H的容是不显示在显示屏上的,但是在滚动屏幕的情况下,这些容就可能被滚动显示出来了。
注:这里列举的DDRAM的地址准确来说应该是DDRAM地址+80H之后的值,因为在向数据总线写数据的时候,命令字的最高位总是为1。
DDRAM(Display Data RAM)就是显示数据RAM,用来寄存待显示的字符代码。
共80个字节,其地址和屏幕的对应关系如下:DDRAM相当于计算机的显存,我们为了在屏幕上显示字符,就把字符代码送入显存,这样该字符就可以显示在屏幕上了。
同样LCD1602共有80个字节的显存,即DDRAM。
但LCD1602的显示屏幕只有16×2大小,因此,并不是所有写入DDRAM的字符代码都能在屏幕上显示出来,只有写在上图所示围的字符才可以显示出来,写在围外的字符不能显示出来。
这样,我们在程序中可以利用下面的“光标或显示移动指令”使字符慢慢移动到可见的显示围,看到字符的移动效果。
为了在液晶屏幕上显示字符,就把字符代码送入DDRAM。
例如,如果想在屏幕左上角显示字符‘A’,那么就把字符‘A’的字符代码41H写入DDRAM 的00H地址处即可。
至于怎么写入,后面会有说明。
那么为什么把字符代码写入DDRAM,就可以在相应位置显示这个代码的字符呢?我们知道,LCD1602是一种字符点阵显示器,为了显示一种字符的字形,必须要有这个字符的字模数据,什么叫字符的字模数据,看看下面的这个图就明白了:A的字模上图的左边就是字符‘A’的字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。
LCD1602的简单使用原理——跟大家分享我学习1602的总结与体会
LCD1602的简单使用原理——跟大家分享我学习1602的总结与体会我的总结主要分为这几部分:①LCD1602的硬件特性及引脚功能②LCD1602的时序特性③LCD1602的使用原理(包括带字库和不带字库的简要使用方法,控制显示指令)④基于FPGA的LCD1602使用案例Part 1. LCD1602的硬件特性及引脚功能LCD1602顾名思义是一种02*16,即为两行十六列的液晶显示屏,液晶两行,每行可以显示16个字符,但是CGRAM及CGROM里面一共有160个字符,包括阿拉伯数字,英文字母大小写,常用符号及日文。
每个字符对应于一个ASCII码值,在液晶显示屏上显示对应的字符时候,只需要将对应的ASCII码写到DDRAM中就好,详细的步骤会在下面细说。
液晶板上排列着5*8的字符点阵,8行,每行5个点位,高电平1就是该点显示,低电平0就是该点不显示。
一、引脚功能:RS,R/W,E控制数据端口DB0~DB7,数据的命令的读写由控制端口控制,并通过数据端口传输。
端口其他特性这里不再赘述,详细见1602液晶手册。
O(∩_∩)O二、硬件特性:①CGRAM 和CGROMCGRAM:character generator ram CGROM:character generator romCGRAM的地址空间:CGRAM的地址是0x40~0x7F, 64个地址空间,每个地址双字节,一共128字节,一个字符是8个字节,所以一共能显示8个自定义字符(每个双字节地址只有一个字节是被自定义字符数据写入的,另外个字节无效,因为CGARM的字符代码的规定,详细原因见下面)字符对应的区位码如下图所示:CGRAM: 字符产生ram,用来存放用户自定义的字符,如上图的两条(1)~(8),区位码为0x00~0x0F.0x00~0x07对应于(1)~(8);0x08~0x0F对应于下一条(1)~(8),虽然看起来有16个地址,但是其实只要8个地址可用,CGRAM的“字符码”规定0~2为地址,3位无效,4~7位全为0,因此CGRAM的字符码等效为0000X111,X为无效位,最后三位的地址只要八个,所以实际能用的只有8个。
lcd1602液晶屏显示原理(一)
lcd1602液晶屏显示原理(一)LCD1602液晶屏显示LCD1602液晶屏是一种基于液晶技术的显示器件,它可以用于图形、文本等信息的显示。
以下将从显示原理、基本接口、驱动程序及使用注意事项四个方面介绍LCD1602液晶屏。
显示原理LCD1602液晶屏由16列2行的字符组成,每个字符由 5x7个像素组成。
液晶显示器的显示原理是利用液晶分子随电场的变化而改变其各向异性,从而控制光的透过程度实现显示。
基本接口LCD1602液晶屏基本接口共有16个引脚,其中8个为数据引脚(D0-D7),剩下8个为控制引脚(RS、EN、RW、D0-D3不用接)。
以下是各个引脚的具体作用:•VSS:电源负极•VDD:电源正极•VO:液晶显示器偏置电压,可调整亮度•RS:寄存器选择,0为命令,1为数据•RW:读写选择,0为写入,1为读取•EN:使能信号,表示读写已准备好•D0-D7:数据口,用于发送指令或数据驱动程序LCD1602液晶屏的驱动程序通常使用C语言编写,涉及到的主要函数包括初始化、写入数据、写入指令等。
以下是一份简单的驱动程序:#include <reg51.h>#define LCD_DB P0 //定义LCD接口sbit LCD_RS = P1^0; //定义RS、RW、EN引脚sbit LCD_RW = P1^1;sbit LCD_EN = P1^2;void delay_us(unsigned int us) //延时函数{while(us--);}void write_com(unsigned char com) //写入指令{LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;LCD_DB = com;delay_us(5);LCD_EN = 1;delay_us(5);LCD_EN = 0;}void write_data(unsigned char dat) //写入数据{LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;LCD_DB = dat;delay_us(5);LCD_EN = 1;delay_us(5);LCD_EN = 0;}void LCD_init() //初始化{write_com(0x38); //16X2显示,5X8点阵,8位数据接口write_com(0x0c); //显示开,光标隐藏write_com(0x06); //写入光标即向右移动write_com(0x01); //清屏}int main(){LCD_init(); //调用初始化函数write_data('H'); //显示字符“H”write_data('e');write_data('l');write_data('l');write_data('o');write_data(',');write_data('W');write_data('o');write_data('r');write_data('l');write_data('d');}使用注意事项LCD1602液晶屏连接必须正确,如VSS与COM接在一起,否则会造成芯片损坏。
lcd1602液晶显示屏优点
lcd1602液晶显示屏优点LCD1602液晶显示屏优点LCD1602液晶显示屏是一种常用的字符型显示模块,具有许多优点,适用于各种应用领域。
本文将介绍LCD1602液晶显示屏的优点和优势。
首先,LCD1602液晶显示屏具有高清晰度和清晰度。
该显示屏采用LCD技术,可以显示2行16个字符,每个字符由5x7个像素组成。
这使得显示的文本和图形非常清晰和易于阅读。
在大多数应用中,如电子设备和仪器,清晰的显示对于操作者的操作和交互非常重要。
因此,LCD1602液晶显示屏具有出色的可读性,使得用户可以轻松阅读和理解显示的信息。
其次,LCD1602液晶显示屏具有低功耗和低电压操作的特点。
相对于其他显示技术,如LED显示屏,LCD液晶显示屏的功耗非常低。
这是由于LCD液晶显示屏不需要背光,所以在显示内容不变化时几乎不消耗能量。
此外,LCD液晶显示屏的电压要求较低,通常在5V左右,这意味着它可以在各种电子设备中使用,而无需大功率供电。
因此,LCD1602液晶显示屏非常节能,有助于减少能源消耗和延长电池寿命。
第三,LCD1602液晶显示屏具有较长的使用寿命和较高的可靠性。
与其他显示技术相比,LCD液晶显示屏具有更长的使用寿命。
这是由于LCD液晶显示屏不是像LED显示屏那样使用发射光源,而是通过激活液晶分子来显示图像。
这种设计使得LCD1602液晶显示屏不容易发生发光模块失效或损坏的情况,因此可以提供更长的使用寿命。
此外,LCD1602液晶显示屏的结构简单,没有机械部件,因此具有较高的可靠性和抗震性。
这些特点使得LCD液晶显示屏成为各种应用中的理想选择。
此外,LCD1602液晶显示屏具有较小的尺寸和占用空间。
该显示屏的尺寸为16x2个字符,非常紧凑,适用于小型设备和仪器。
与其他大尺寸显示屏相比,LCD1602液晶显示屏占用的空间更小,可以有效地节省产品设计的空间需求。
这使得LCD液晶显示屏非常适合小型电子设备,如手机,计算器等。
LCD1602液晶显示器资料
运行时间(250KHz):40μs 功能:设置CGRAM地址。A5—A0=0—3FH
⑧ DDRAM地址设置
RS R/W 0 0
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 A6 A5 A4 A3 A2 A1 A0
5
2.1602LCD指令说明
由于MPU可以直接访问模块内部的IR和DR,作为缓冲区域,IR和DR在 模块进行内部操作之前,可以暂存来自MPU的控制信息。这样就给用户在M PU和外围控制设备的选择上,增加了余地。模块的内部操作有来自MPU的 RS、R/W、E及数据信号DB0—DB7决定,这些信号的组合形成了模块的指令
引脚说明
第1引脚:VSS接地 第2引脚:VDD接+5V电源
2
第3引脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高, 对比度过高时会产生“鬼影”,使用时可以通过一个10KΩ的电位器调整对比 度
第4引脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器 第5引脚:R/W为读/写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW
显示位置 1
2
34
5 6 7 ........ 40
第1行 DDRAM地址
第2行
00H 01H 02H 03H 04H 05H 06H ........ 27H 40H 41H 42H 43H 44H 45H 46H ........ 67H
■ 字符发生器ROM
在CGROM中,模块已经一8位二进制数的形式,生成了5*8点阵的字符字模 组字符字模(一个字符对应一组字模)。字符字模是与显示字符点阵对应 的8*8矩阵位图数据(与点阵行相对应的矩阵的高三位为“0”),同时每 一组字符字模都有一个由其在CGROM中存放地址的高8位数据组成的字符 码对应。
lcd1602液晶显示模块原理
lcd1602液晶显示模块原理LCD1602液晶显示模块原理引言:LCD1602液晶显示模块是一种常见的显示设备,广泛应用于各种电子产品中。
它采用液晶技术,通过控制液晶分子的排列来实现显示功能。
本文将介绍LCD1602液晶显示模块的工作原理、构造和应用。
一、LCD液晶显示原理液晶显示是利用液晶分子的光学特性来实现显示的。
液晶分子具有双折射特性,即在电场的作用下,液晶分子的折射率发生改变,从而改变光的传播方向和偏振态,从而实现显示效果。
二、LCD1602液晶显示模块的构造LCD1602液晶显示模块由1602液晶屏、驱动芯片、背光源和控制电路组成。
1602液晶屏是由16列2行的字符组成,每个字符由5x8个像素点组成。
驱动芯片负责控制液晶分子的排列,实现显示功能。
背光源提供背光照明,使得显示内容清晰可见。
控制电路则负责将输入的数据和信号转化为液晶屏可以理解的信号。
三、LCD1602液晶显示模块的工作原理1. 数据和信号输入用户通过控制电路将需要显示的数据和命令输入到LCD1602液晶显示模块。
这些数据和命令通过数据总线和控制总线传输到驱动芯片。
2. 数据处理和驱动驱动芯片接收到输入的数据和命令后,根据不同的指令进行相应的处理。
驱动芯片内部有一个字符发生器和一个字符显示RAM,根据接收到的指令和数据来控制液晶分子的排列,从而显示出相应的字符。
3. 图形显示和刷新除了显示字符外,LCD1602液晶显示模块还可以显示简单的图形。
驱动芯片中的字符发生器可以根据用户的要求生成不同的图形,并通过驱动液晶分子的排列方式来显示这些图形。
为了保持显示内容的稳定,LCD1602液晶显示模块需要进行周期性刷新,即不断更新液晶屏上显示的内容。
4. 背光控制LCD1602液晶显示模块的背光源可以通过控制电路来控制其亮度。
用户可以通过调节背光源的电流或使用PWM调光方式来控制背光的亮度和显示效果。
四、LCD1602液晶显示模块的应用LCD1602液晶显示模块广泛应用于各种电子产品中,如电子秤、计时器、温度计、计数器等。
LCD1602学习总结
LCD1602液晶屏知识点总结LCD1602的引脚包括数据指令寄存器RS,读写控制寄存器R/W,使能端E,三态数据总线DB0~DB7,电源引脚VDD,VSS,背光正负极A、K,背光调节引脚V0。
1602可以显示2行每行16个共32个5*8或者5*11个字符,这就是1602名字的由来。
1602内部有CGROM、CGRAM、DDRAM。
CGROM是字符发生器ROM,是固化在内部的,共192个字符,包括160个5*7点阵字符,32个5*10点阵字符。
(为什么上面是5*8和5*11,这里不是,因为内部CGROM中的字符没有完全占满可以用的字模)其中部分与ASCII完全一样,所以对于大小写英文字母和数字及部分符号,在编程时可以直接双引号括起来用。
CGRAM是64字节用户可自定义的存储区,可自定义8个5*8或者4个5*11的字符。
DDRAM是控制显示的RAM,想显示什么,就把显示内容的地址放进DDRAM,不过还要设置好显示方式。
DDRAM共80字节,第一行和第二行各40字节。
这40个字节在一次显示时当然不会全部显示,因为屏幕只能显示16个,但在滚动显示时就可以全部显示出来。
LCD1602设定某种地址,接下去读取数据就放在改类地址中,比如设定了CGRAM的地址,那么接下去读取的数据就放在CGRAM中。
R=1时,是数据寄存器,RS=0时,是指令寄存器。
R/W=1时,是读操作,R/W=0时,是写操作。
读操作时,使能端E要保持1,写操作时,下降沿使能。
当RS=0,R/W=0时,是写入命令:1、01H:清除DDRAM的所有单元,光标被移动到屏幕左上角。
<1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;<2> 光标归位,即将光标撤回液晶显示屏的左上方;<3> 将地址计数器(AC)的值设为0。
2、02H或这03H:DDRAM所有单元的内容不变,光标移至左上角。
LCD1602液晶显示总结
LCD1602液晶显示应用总结一、1602里面存储器有三种:CGROM、CGRAM、DDRAMCGROM保存了厂家生产时固化在LCM中的点阵型显示数据;CGRAM是留给用户自己定义点阵型显示数据的;DDRAM则是和显示屏的内容对应的。
1602内部的DDRAM有80字节,而显示屏上只有2行×16列,共32个字符,所以两者不完全一一对应。
默认情况下,显示屏上第一行的内容对应DDRAM中80H到8FH的内容,第二行的内容对应DDRAM 中C0H到CFH的内容。
DDRAM中90H到A7H、D0H到E7H 的内容是不显示在显示屏上的,但是在滚动屏幕的情况下,这些内容就可能被滚动显示出来了。
注:这里列举的DDRAM的地址准确来说应该是DDRAM地址+80H 之后的值,因为在向数据总线写数据的时候,命令字的最高位总是为1。
DDRAM(Display Data RAM)就是显示数据RAM,用来寄存待显示的字符代码。
共80个字节,其地址和屏幕的对应关系如下:DDRAM相当于计算机的显存,我们为了在屏幕上显示字符,就把字符代码送入显存,这样该字符就可以显示在屏幕上了。
同样LCD1602共有80个字节的显存,即DDRAM。
但LCD1602的显示屏幕只有16×2大小,因此,并不是所有写入DDRAM的字符代码都能在屏幕上显示出来,只有写在上图所示范围内的字符才可以显示出来,写在范围外的字符不能显示出来。
这样,我们在程序中可以利用下面的“光标或显示移动指令”使字符慢慢移动到可见的显示范围内,看到字符的移动效果。
为了在液晶屏幕上显示字符,就把字符代码送入DDRAM。
例如,如果想在屏幕左上角显示字符‘A’,那么就把字符‘A’的字符代码41H写入DDRAM的00H 地址处即可。
至于怎么写入,后面会有说明。
那么为什么把字符代码写入DDRAM,就可以在相应位置显示这个代码的字符呢?我们知道,LCD1602是一种字符点阵显示器,为了显示一种字符的字形,必须要有这个字符的字模数据,什么叫字符的字模数据,看看下面的这个图就明白了:A的字模上图的左边就是字符‘A’的字模数据,右边就是将左边数据用“○”代表0,用“■”代表 1。
lcd1602显示原理
LCD1602显示原理什么是LCD1602显示屏LCD1602是一种常见的字符型液晶显示屏,它可以显示2行16列的字符。
它通常被用于各种电子设备,如智能家居控制面板、温度计、电子钟等。
通过控制液晶显示屏上的液晶模块,我们可以在屏幕上显示各种文字和符号。
LCD1602的工作原理LCD1602采用液晶技术实现文字和符号的显示。
液晶是一种特殊的物质,它可以通过电场来调整光的偏振方向,从而控制光的透过与否。
液晶显示屏上的每个像素点都由液晶模块和驱动电路组成。
液晶模块是由若干个液晶单元组成的,每个液晶单元上有两个透明的电极。
当液晶单元受到电场的作用时,液晶分子会发生取向变化,调整光的偏振方向。
驱动电路会根据输入的控制信号来产生电场,控制每个液晶单元的偏振方向,从而控制像素点的亮暗。
LCD1602的接口与引脚说明接下来我们来了解一下LCD1602的接口与引脚说明:•VSS(Pin1):接地,用于提供LCD1602的电源地。
•VDD(Pin2):电源正极,接5V的电源。
•VO(Pin3):液晶对比度电源,通过调整VO电压可以调整显示屏的对比度。
•RS(Pin4):寄存器选择引脚,用于选择数据寄存器还是指令寄存器。
•RW(Pin5):读写选择引脚,用于选择读操作还是写操作。
•E(Pin6):使能信号引脚,当E为高电平时,数据被写入液晶模块。
•DB0-DB7(Pin7-Pin14):数据引脚,用于传输数据和指令。
•A(Pin15):LED背光的正极,接5V电源,连接一个电流限制电阻。
•K(Pin16):LED背光的负极,接地。
LCD1602的使用步骤下面我们来学习如何使用LCD1602显示屏:1.电源连接:将VSS引脚接地,VDD引脚接5V电源,A引脚和K引脚分别接5V电源和地。
2.供电延时:在开机前,需要给LCD1602提供一段时间的供电延时,通常为20ms以上。
3.初始化:通过控制RS、RW和E引脚,向LCD1602发送特定的指令来初始化显示屏。
LCD1602液晶显示总结
LCD1602液晶显示应用总结一、1602里面存储器有三种:CGROM、CGRAM、DDRAMCGROM保存了厂家生产时固化在LCM中的点阵型显示数据;CGRAM是留给用户自己定义点阵型显示数据的;DDRAM则是和显示屏的容对应的。
1602部的DDRAM有80字节,而显示屏上只有2行×16列,共32个字符,所以两者不完全一一对应。
默认情况下,显示屏上第一行的容对应DDRAM中80H到8FH 的容,第二行的容对应DDRAM 中C0H到CFH的容。
DDRAM中90H到A7H、D0H到E7H的容是不显示在显示屏上的,但是在滚动屏幕的情况下,这些容就可能被滚动显示出来了。
注:这里列举的DDRAM的地址准确来说应该是DDRAM 地址+80H之后的值,因为在向数据总线写数据的时候,命令字的最高位总是为1。
DDRAM(Display Data RAM)就是显示数据RAM,用来寄存待显示的字符代码。
共80个字节,其地址和屏幕的对应关系如下:DDRAM相当于计算机的显存,我们为了在屏幕上显示字符,就把字符代码送入显存,这样该字符就可以显示在屏幕上了。
同样LCD1602共有80个字节的显存,即DDRAM。
但LCD1602的显示屏幕只有16×2大小,因此,并不是所有写入DDRAM的字符代码都能在屏幕上显示出来,只有写在上图所示围的字符才可以显示出来,写在围外的字符不能显示出来。
这样,我们在程序中可以利用下面的“光标或显示移动指令”使字符慢慢移动到可见的显示围,看到字符的移动效果。
为了在液晶屏幕上显示字符,就把字符代码送入DDRAM。
例如,如果想在屏幕左上角显示字符‘A’,那么就把字符‘A’的字符代码41H写入DDRAM的00H 地址处即可。
至于怎么写入,后面会有说明。
那么为什么把字符代码写入DDRAM,就可以在相应位置显示这个代码的字符呢?我们知道,LCD1602是一种字符点阵显示器,为了显示一种字符的字形,必须要有这个字符的字模数据,什么叫字符的字模数据,看看下面的这个图就明白了:A的字模上图的左边就是字符‘A’的字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LCD1602液晶显示应用总结一、1602里面存储器有三种:CGROM、CGRAM、DDRAMCGROM保存了厂家生产时固化在LCM中的点阵型显示数据;CGRAM是留给用户自己定义点阵型显示数据的;DDRAM则是和显示屏的容对应的。
1602部的DDRAM有80字节,而显示屏上只有2行×16列,共32个字符,所以两者不完全一一对应。
默认情况下,显示屏上第一行的容对应DDRAM中80H到8FH的容,第二行的容对应DDRAM 中C0H到CFH的容。
DDRAM中90H到A7H、D0H到E7H的容是不显示在显示屏上的,但是在滚动屏幕的情况下,这些容就可能被滚动显示出来了。
注:这里列举的DDRAM的地址准确来说应该是DDRAM地址+80H之后的值,因为在向数据总线写数据的时候,命令字的最高位总是为1。
DDRAM(Display Data RAM)就是显示数据RAM,用来寄存待显示的字符代码。
共80个字节,其地址和屏幕的对应关系如下:DDRAM相当于计算机的显存,我们为了在屏幕上显示字符,就把字符代码送入显存,这样该字符就可以显示在屏幕上了。
同样LCD1602共有80个字节的显存,即DDRAM。
但LCD1602的显示屏幕只有16×2大小,因此,并不是所有写入DDRAM的字符代码都能在屏幕上显示出来,只有写在上图所示围的字符才可以显示出来,写在围外的字符不能显示出来。
这样,我们在程序中可以利用下面的“光标或显示移动指令”使字符慢慢移动到可见的显示围,看到字符的移动效果。
为了在液晶屏幕上显示字符,就把字符代码送入DDRAM。
例如,如果想在屏幕左上角显示字符‘A’,那么就把字符‘A’的字符代码41H写入DDRAM 的00H地址处即可。
至于怎么写入,后面会有说明。
那么为什么把字符代码写入DDRAM,就可以在相应位置显示这个代码的字符呢?我们知道,LCD1602是一种字符点阵显示器,为了显示一种字符的字形,必须要有这个字符的字模数据,什么叫字符的字模数据,看看下面的这个图就明白了:A的字模上图的左边就是字符‘A’的字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。
从而显示出‘A’这个字形。
从下面的图可以看出,字符‘A’的高4位是0100,低4位是0001,合在一起就是01000001b,即41H。
它恰好与该字符的ASCII码一致,这样就给了我们很大的方便,我们可以在PC 上使用P2=‘A’这样的语法。
编译后,正好是这个字符的字符代码。
在LCD1602模块上固化了字模存储器,就是CGROM和CGRAM,HD44780置了192个常用字符的字模,存于字符产生器CGROM(CharacterGenerator ROM)中,另外还有8个允许用户自定义的字符产生RAM,称为CGRAM(Character Generator RAM)。
下图(字模表)说明了CGROM和CGRAM与字符的对应关系。
从ROM和RAM的名字我们也可以知道,ROM 是早已固化在LCD1602模块中的,只能读取;而RAM是可读写的。
也就是说,如果只需要在屏幕上显示已存在于CGROM中的字符,那么只须在DDRAM中写入它的字符代码就可以了;但如果要显示CGROM中没有的字符,比如摄氏温标的符号,那么就只有先在CGRAM中定义,然后再在DDRAM中写入这个自定义字符的字符代码即可。
和CGROM中固化的字符不同,CGRAM中本身没有字符,所以要在DDRAM中写入某个CGROM不存在的字符,必须在CGRAM中先定义后使用。
程序退出后CGRAM中定义的字符也不复存在,下次使用时,必须重新定义。
上面这个图(如图10)说明的是5×8点阵和5×10点阵字符的字形和光标的位置。
先来说5×8点阵,它有8行5列。
那么定义这样一个字符需要8个字节,每个字节的前3个位没有被使用。
例如,定义摄氏温标的符号{0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00}。
设置CGRAM地址指令上面这个图说明的是设置CGRAM地址指令。
从这个指令的格式中我们可以看出,它共有aaaaaa这6位,一共可以表示64个地址,即64个字节。
一个5×8点阵字符共占用8个字节,那么这64个字节一共可以自定义8个字符。
也就是说,上面这个图的6位地址中的DB5DB4DB3用来表示8个自定义的字符,DB2DB1DB0用来表示每个字符的8个字节。
这DB5DB4DB3所表示的8个自定义字符(0--7)就是要写入DDRAM中的字符代码。
我们知道,在CGRAM 中只能定义8个自定义字符,也就是只有0—7这8个字符代码,但在下面的这个表(如图12)中一共有16个字符代码(××××0000b--××××1111b)。
实际上,如图所示,它只能表示8个自定义字符(××××0000b=××××1000b, ××××0001b=××××1001b……依次类推)。
也就是说,写入DDRAM中的字符代码0和字符代码8是同一个自定义字符。
5×10点阵每个字符共占用16个字节的空间,所以CGRAM中只能定义4个这样的自定义字符。
那么如何在CGRAM中自定义字符呢?在上面的介绍中,我们知道有一个设置CGRAM地址指令,同写DDRAM指令相似,只须设置好某个自定义字符的字模数据,然后按照上面介绍的方法,设置好CGRAM地址,依次写入这个字模数据即可。
我们在后面的例子中再进行说明。
二、1602使用三条控制线:EN、RW、RS。
其中EN起到类似片选和时钟线的作用,RW和RS指示了读、写的方向和容。
在读数据(或者Busy标志)期间,EN线必须保持高电平;而在写指令(或者数据)过程中,EN线上必须送出一个正脉冲。
RW、RS的组合一共有四种情况,分别对应四种操作:RS=0、RW=0——表示向LCD写入指令。
RS=0、RW=1——表示读取Busy标志。
RS=1、RW=0——表示向LCD写入数据。
RS=1、RW=1——表示从LCD读取数据。
三、LCD1602引脚定义:*说明:1、VSS接电源地2、VDD接+5V3、V0是液晶显示的偏压信号,可接10K的3296精密电位器。
或是同样阻值的RM065/RM063信号的蓝白可调电阻。
4、RS是命令/数据选择引脚,接单片机的其中一个I/O口。
当RS=0,选择指令模式;RS=1,选择数据模式。
5、RW为读/写模式选择引脚,接单片机的一个I/O口,RW=0——写,向1602写数据或是指令。
RW=1——读,从1602读取数据或是状态,如果是不需要进行读取操作,可以直接此位接Vss。
6、E,LCD1602执行命令的使能信号,接单片机的一个I/O口。
7、D0~D7:LCD1602的并行数据输入/输出端口,可以接单片机的任意一个的8位的I/O端口(P0~P3),如果是接P0口的话要接一个8位的上拉电阻。
当应用4线并行驱动模式的时候,只需接4个并行的I/O端口。
8、A:背光正极,可以接一个10~47Ω的限流电阻接到VDD。
9、K:背光负极,接VSS。
四、LCD1602的基本操作:1、读状态:RS=0,RW=1,E=高脉冲。
输出:D0~D7为状态字。
2、读数据:RS=1,RW=1,E=高脉冲。
输出:D0~D7为数据。
3、写指令:RS=0,RW=0,E=高脉冲。
输出:无4、写数据:RS=1,RW=0,E=高脉冲。
输出:无。
读操作时序写操作时序时序时间参数五、LCD1602液晶显示屏指令:1、工作方式设置指令:(一般0x38)×:不关心,也就是说这个位是0或1都可以,一般取0。
DL:设置数据接口位数。
DL=1:8位数据接口(D7—D0)。
DL=0:4位数据接口(D7—D4)。
N=0:一行显示。
N=1:两行显示。
F=0:5×8点阵字符。
F=1:5×10点阵字符。
说明:因为是写指令字,所以RS和RW都是0。
LCD1602只能用并行方式驱动,不能用串行方式驱动。
而并行方式又可以选择8位数据接口或4位数据接口。
这里我们选择8位数据接口(D7—D0)。
我们的设置是8位数据接口,两行显示,5×8点阵,即0b00111000也就是0x38。
(注意:NF是10或11的效果是一样的,都是两行5×8点阵。
因为它不能以两行5×10点阵方式进行显示,换句话说,这里用0x38或0x3c是一样的)。
2、显示开关控制指令(一般0x0c)D=1:显示开,D=0:显示关。
C=1:光标显示,C=0:光标不显示。
B=1:光标闪烁,B=0:光标不闪烁。
说明:这里的设置是显示开,不显示光标,光标不闪烁,设置字为0x0c。
3.进入模式设置指令:I/D=1:写入新数据后光标右移。
I/D=0:写入新数据后光标左移。
S=1:显示移动。
S=0:显示不移动。
说明:这里的设置是0x06。
4.光标或显示移动指令:说明:在需要进行整屏移动时,这个指令非常有用,可以实现屏幕的滚动显示效果。
初始化时不使用这个指令。
5.清屏指令:说明:清除屏幕显示容。
光标返回屏幕左上角。
执行这个指令时需要一定时间。
6.光标归位指令:说明:光标返回屏幕左上角,它不改变屏幕显示容。
7.设置CGRAM地址指令:说明:这个指令在上面已经介绍过。
用法在后面例子中说明。
8.设置DDRAM地址指令:说明:这个指令用于设置DDRAM地址。
在对DDRAM进行读写之前,首先要设置DDRAM地址,然后才能进行读写。
前面我们说过,DDRAM就是LCD1602的显示存储器。
我们要在它上面进行显示,就要把要显示的字符写入DDRAM。
同样,我们想知道DDRAM某个地址上有什么字符,也要先设置DDRAM地址,然后将它读出到单片机。
9.读忙信号和地址计数器AC:说明:这个指令用来读取LCD1602状态。
对于单片机来说,LCD1602属于慢速设备。
当单片机向其发送一个指令后,它将去执行这个指令。
这时如果单片机再次发送下一条指令,由于LCD1602速度较慢,前一条指令还未执行完毕,它将不接受这新的指令,导致新的指令丢失。
因此这条读忙指令可以用来判断LCD1602是否忙,能否接收单片机发来的指令。
当BF=1,表示LCD1602正忙,不能接受单片机的指令;当BF=0,表示LCD1602空闲,可以接收单片机的指令。
RS=0,表示是指令;RW=1,表示是读取。
这条指令还有一个副产品:即可以得到地址记数器AC的值(address counter)。