C/C++教程

LCD1602

本文主要是介绍LCD1602,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、模块简介

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——表示从模块读取数据

 

三、工作原理

 

 

163х26 
00 01 02 03 04 05 03 07 од 09 ОА ОВ ОС 10 
27 
40 41 42 43 44 45 46 47 48 49 4А 48 40 4Е 4F 50 • 
• 67

如图所示为像素地址,像素地址=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、写数据,指针随着光标移动而移动。

 

 

这篇关于LCD1602的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!