LCD1602液晶显示
(一)LCD1602简介
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。
(二)LCD1602液晶工作原理
1、1602的引脚
2、时序图
3、关于显示地址的注意(重点)
在设置完成之后我们就要明白具体是在哪显示,在哪个位置显示?在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的, 无需人工干预。 每次输入指令前都要判断液晶模块是否处于忙的状态(其实也不判断,因为液晶模块的处理速度远大于单片机)。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,例如第二行第一个字符的地址是 40H, 那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平 1 所以实际写入的数据应该是: 01000000B(40H)+10000000B(80H)=11000000B(C0H)
在 LCD1602 中我们就用前 16 个就行了。第二行也一样用前 16 个地址。对应如下:
4、时序参数
(三)LCD1602关键性的指令设置
1、清屏指令
功能:
- 清除液晶显示器,即将 DDRAM 的内容全部填入"空白"的 ASCII码 20H;
- 光标归位,即将光标撤回液晶显示屏的左上方;
- 将地址计数器(AC)的值设为 0。
2.进入模式设置指令
功能:设定每次定入 1 位数据后光标的移位方向,并且设定每次写入的1个字符是否移动。
参数设定的情况如下所示:
位名 设置
- I/D 0=写入新数据后光标左移
1=写入新数据后光标右移 - S 0=写入新数据后显示屏不移动
1=写入新数据后显示屏整体右移 1 个字符
3.显示开关控制指令
功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。
参数设定的情况如下:
位名 设置
D 0=显示功能关 1=显示功能开
C 0=无光标 1=有光标
B 0=光标闪烁 1=光标不闪烁
4.功能设定指令
功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:
位名 设置
DL 0=数据总线为 4 位 1=数据总线为 8 位
N 0=显示 1 行 1=显示 2 行
F 0=5×7 点阵/每字符 1=5×10 点阵/每字符
5. 操作步骤
(1)初始化
8位的数据
- 开启2行显示。(属于4.功能设定指令)
- 开显示,有光标,且闪烁。(属于3.显示开关控制指令)
- 写入1个数据光标右移,显示屏整体不动。(属于2.进入模式设置指令)
- 清屏指令。(属于1.清屏指令)
- 设置数据指针起点0x80 (详见第2章的"3.关于显示地址的注意")
4位的数据
- 将8位总线转为4位总线。(属于4.功能设定指令)
- 在4位总线下的初始化
- 开启2行显示。(属于4.功能设定指令)
- 开显示,有光标,且闪烁。(属于3.显示开关控制指令)
- 写入1个数据光标右移,显示屏整体不动。(属于2.进入模式设置指令)
- 清屏指令。(属于1.清屏指令)
- 设置数据指针起点0x80(详见第2章的"3.关于显示地址的注意")
(2)写命令(RS=L)设置显示坐标
(3)写数据(RS=H)