单片机小白学习之路(四十一)---LCD1602液晶理解

目标:理解LCD1602液晶工作原理


1.LCD1602简介

1602液晶也叫1602字符型液晶,它能显示2行字符信息,每行又能显示16个字符,所以简称1602。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。

它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。

单片机小白学习之路(四十一)---LCD1602液晶理解
1602
单片机小白学习之路(四十一)---LCD1602液晶理解
引脚作用
  • VL是液晶显示偏压信号,当感觉屏幕过暗或过亮是可以调节此电压来调整亮度
  • RS是高电平是是数据选项,是低电平是命令选项
  • R/W 是高电平是读操作,是低电平是写操作
  • E是使能信号
  • D0 ~ D7是数据I/O口,单片机可以往传数据来让液晶显示不同的数据
  • BLA是背光源正极(A表示正),BLK是背光源负极(K表示负极),如果没背光数据是难以看清的

LCD1602内部含有80个字节的DDRAM,它是用来寄存显示字符的。
其地址和屏幕的对应关系如下表:

单片机小白学习之路(四十一)---LCD1602液晶理解
DDRAM

DDRAM可以显示80个字节,分为2排,上面40个字节下面40个字节,但我们使用的液晶一排也就16个字节,后面不用了。

下面是对应的地址,但真正的地址是每个的加上0x80才是我们真实的地址,如00对应的地址是0x00+0x80 = 0x80


2.LCD1602常用指令
(1)清屏指令

单片机小白学习之路(四十一)---LCD1602液晶理解
清屏指令

  • 输入命令是0x01
  • RS是低电平是输入的命令
  • R/W低电平表示写入
  • 清除液晶显示器,即将 DDRAM 的内容全部填入"空白"的 ASCII码 20H;
  • 清完屏光标归位,即将光标撤回液晶显示屏的左上方
  • 将地址计数器(AC)的值设为 0,就是最走上角那个

(2)模式设置指令


单片机小白学习之路(四十一)---LCD1602液晶理解
模式设置指令

功能:
设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符否移动。

I/D:0=写入新数据后光标左移 ; 1=写入新数据后光标右移;通常是1,但当光标到最右边时光标向左移就是像滚动效果
S:0=写入新数据后显示屏不移动 ; 1=写入新数据后显示屏整体右移 1 个字符;通常是0

(3)显示开关控制指令


单片机小白学习之路(四十一)---LCD1602液晶理解
显示开关控制

功能:
控制显示器开/关、光标显示/关闭以及光标是否闪烁。

D:0=显示功能关 ; 1=显示功能开
C:0=无光标 ; 1=有光标
B:0=光标闪烁 ; 1=光标不闪烁

(4)功能设定指令


单片机小白学习之路(四十一)---LCD1602液晶理解
功能设定指令

功能:
设定数据总线位数、显示的行数及字型。

DL:0=数据总线为 4 位 ; 1=数据总线为 8 位;我们是8位;
N:0=显示 1 行 ; 1=显示 2 行
F:0=5×7 点阵/每字符 ; 1=5×10 点阵/每字符
X:表示随便取值


3.LCD1602操作步骤

(1)初始化(设置上面的光标那些)
(2)写命令(RS=L),设置显示坐标
(3)写数据(RS=H)


LCD1602写操作时序图:


单片机小白学习之路(四十一)---LCD1602液晶理解
时序图

我们先来看一下读操作时序的RS引脚和R/W引脚,这两个引脚先进行变 化,因为是读操作,所以R/W引脚首先要置为高电平,而不管他原来是么。读指令还是读数据,都是读操作,而且都有可能,所以RS引脚既有可能是置为高电平,也有可能是置为低电平,大家注意图上的画法。而RS和R/W变化了经过 Tsp1这么长时间后,使能引脚E才能从低电平到高电平发生变化。
而使能引脚E拉高了经过了tD这么长时间后,LCD1602输出DB的数据就是有效数据了,我们就可以来读取DB的数据了。读完了之后,我们要先把使能E拉低,经过一段时间后RS、R/W和DB才可以变化继续为下一次读写做准备了。
而写操作时序和读操作时序的差别,就是写操作时序,DB的改变是我们单片机来完成的,因此要放到使能引脚E的变化之前进行操作,其他区别大家可以自行对比一下。

细心的同学会发现,这个时序图上还有很多时间标签。比如E的上升时间tR,下降时间时间tF,使能引脚E从一个上升沿到下一个上升沿之间的长度周期 tC,使能E下降沿后,R/W和RS变化时间间隔tHD1等等很多时间要求,这些要求怎么看呢?

单片机小白学习之路(四十一)---LCD1602液晶理解
时序参数

tC:指的是使能引脚E从本次上升沿到下次上升沿的最短时间是400ns,而我们单片机因为速度较慢,一个机器周期就是1us多,而一条C语言指令肯定是一个或者几个机器周期的,所以这个条件完全满足。
tPW:指的是使能引脚E高电平的持续时间最短是150ns,由于我们的单片机比较慢,这个条件也完全满足。
tR, tF:指的是使能引脚E的上升沿时间和下降沿时间,不能超过25ns,这个时间限值空间很大,我们用示波器测了一下我们开发板的这个引脚上升沿和下降沿时间大概是10ns到15ns之间,完全满足。
tSP1:指的是RS和R/W引脚使能后至少保持30ns,使能引脚E才可以变成高电平,这个条件完全满足。
tHD1:指的是使能引脚E变成低电平后,至少保持10ns之后,RS和R/W才能进行变化,这个条件完全满足。
tD:指的是我们的使能引脚E变成高电平后,最多100ns后,1602就把数据送出来了,那么我们就可以正常去读取状态或者数据了。
tHD2:指的是读操作过程中,使能引脚E变成低电平后,至少保持20ns,DB数据总线才可以进行变化,这个条件完全满足。
tSP2:指的是DB数据总线准备好后,至少保持40ns,使能引脚E才可以从低到高进行使能变化,这个条件完全满足。
tHD2:指的是写操作过程中,只能引脚E变成低电平后,至少保持10ns,DB数据总线才可以变化,这个条件完全满足。


看完之后,是不是感觉比你想象的要简单,没有你想的那么困难。大家自己也得慢慢学会看这种时序图和表格,在今后的学习中,这方面的能力尤为重要。如果以后换用了其它型号的单片机,那么就根据单片机的执行速度来评估你的程序是否满足时序要求,整体上来说器件都是有一个最快速度的限制,而没有最慢限制,所以当换用高速的单片机后通常都是靠在各步骤间插入软件延时来满足较慢的时序要求。


4.LCD1602液晶接口电路

单片机小白学习之路(四十一)---LCD1602液晶理解
电路模块

VO通过下面的滑动变阻器改变电压