一、模块简介
LCD1602是指显示的内容为16*2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
二、引脚功能
pin3:VL,偏压信号,外接电位器,调整对比度。
pin4:RS,数据/命令选择。高电平传输数据,低电平传输命令。
pin5:RW,读写选择。高电平从模块读数据,低电平向模块写数据。
pin6:EN,使能。数据控制时钟信号,低电平允许数据变化,高电平要求数据稳定。
pin7-14:8位数据并行口。
pin15:BLA,背光源正电压。
pin16:BLK,背光源负电压。
RS=0、RW=0——表示向模块写入指令
RS=0、RW=1——表示读取Busy标志,在读写操作前必须进行Busy标志位检测。
RS=1、RW=0——表示向模块写入数据
RS=1、RW=1——表示从模块读取数据
三、工作原理
如图所示为像素地址,像素地址=DDRAM地址-0x80;
1602里的存储器有三种:CGROM、CGRAM、DDRAM。CGROM保存了厂家生产时固化在LCM中的点阵型显示数据,CGRAM是留给用户自己定义点阵型显示数据的,DDRAM则是和显示屏的内容对应的。1602内部的DDRAM有80字节,而显示屏上只有2行 ×16列,共32个字符,所以两者不完全一一对应。默认情况下,显示屏上第一行的内容对应DDRAM中80H到8FH的内容,第二行的内容对应DDRAM 中C0H到CFH的内容。DDRAM中90H到A7H、D0H到E7H的内容是不显示在显示屏上的,但是在滚动屏幕的情况下,这些内容就可能被滚动显示出来了。
向模块写入数据时,数据被存储于DDRAM,同时CGROM在固化的编码表上查找该地址对应的液晶点阵编码并显示出来。光标、指针的关系将会在下面讲述。
四、模块通信
在读写操作前都应该检测Busy位是否为0,将RS置0,RW置1,EN置1后,检测接受数据最高位。
控制指令集:
1、01H:清除DDRAM的所有单元,光标被移动到屏幕左上角。
2、02H:DDRAM所有单元的内容不变,光标移至左上角。
3、输入方式设置(EnterModeSet),这些指令规定了两个方面:一是写入一个DDRAM单元后,地址指针如何改变(加一还是减一);二是屏幕上的内容是否滚动。
04H:写入DDRAM后,地址指针减一(光标左移一位),比如第一个字符写入8FH,则下一个字符会写入8EH;屏幕上的内容不滚动。
05H:写入DDRAM后,地址指针减一,同上一种情况;每一个字符写入以后,屏幕上的内容向右滚动一个字符位,光标显示的位置不动。
06H:写入DDRAM后,地址指针加一(光标右移一位),比如第一个字符写入80H,则下一个字符会写入81H;屏幕上的内容也是不滚动。这应该是最常用的一种显示方式。
07H:写入DDRAM后,地址指针加一,同上一种情况;每一个字符写入以后,屏幕上的内容向左滚动一个字符位,光标显示的位置不移动。
4、屏幕开关、光标开关、闪烁开关:
08H、09H、0AH、0BH:关闭显示屏,实质上是不把DDRAM中的内容对应显示在屏幕上,对DDRAM的操作还是在进行的,执行这条指令,接着对 DDRAM进行写入,屏幕上没有任何内容,但是接着执行下面的某条指令,就能看到刚才屏幕关闭期间,对DDRAM操作的效果了。
0CH:打开显示屏,不显示光标,光标所在位置的字符不闪烁。
0DH:打开显示屏,不显示光标,光标所在位置的字符闪烁。
0EH:打开显示屏,显示光标,光标所在位置的字符不闪烁。
0FH:打开显示屏,显示光标,光标所在位置的字符闪烁。
关于光标的位置:光标所在的位置指示了下一个被写入的字符所处的位置,假如在写入下一个字符前没有通过指令设置DDRAM的地址,那么这个字符就应该显示在光标指定的地方。为保证光标与地址的关系不被破坏,应尽量避免手动设置DDRAM地址。
5、设置光标移动(本质就是AC的增加还是减少)、整体画面是否滚动。
10H:每输入一次该指令,AC就减一,对应了光标向左移动一格。整体的画面不滚动。
14H:每输入一次该指令,AC就加一,对应了光标向右移动一格。整体的画面不滚动。
18H:每输入一次该指令,整体的画面就向左滚动一个字符位。
1CH:每输入一次该指令,整体的画面就向右滚动一个字符位。画面在滚动的时候,每行的首尾是连在一起的,也就是每行的第一个字符,若左移25次,就会显示在该行的最后一格。在画面滚动的过程中,AC的值也是变化的。
6、显示模式设定指令,设定了显示几行,显示什么样的点阵字符,数据总线占用几位。
20H:4位总线,单行显示,显示5×7的点阵字符。
24H:4位总线,单行显示,显示5×10的点阵字符。
28H:4位总线,双行显示,显示5×7的点阵字符。
2CH:4位总线,双行显示,显示5×10的点阵字符。
30H:8位总线,单行显示,显示5×7的点阵字符。
34H:8位总线,单行显示,显示5×10的点阵字符。
38H:8位总线,双行显示,显示5×7的点阵字符。这是最常用的一种模式。
3CH:8位总线,双行显示,显示5×10的点阵字符。
五、配置步骤
1、通过控制指令集初始化显示屏
2、写命令,设置显示坐标
3、写数据,指针随着光标移动而移动。