历史上的今天
今天是:2025年03月30日(星期日)
2020年03月30日 | 单片机小白学习之路(四十一)---LCD1602液晶理解
2020-03-30 来源:eefocus
目标:理解LCD1602液晶工作原理
1.LCD1602简介
1602液晶也叫1602字符型液晶,它能显示2行字符信息,每行又能显示16个字符,所以简称1602。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。
它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。

1602

引脚作用
VL是液晶显示偏压信号,当感觉屏幕过暗或过亮是可以调节此电压来调整亮度
RS是高电平是是数据选项,是低电平是命令选项
R/W 是高电平是读操作,是低电平是写操作
E是使能信号
D0 ~ D7是数据I/O口,单片机可以往传数据来让液晶显示不同的数据
BLA是背光源正极(A表示正),BLK是背光源负极(K表示负极),如果没背光数据是难以看清的
LCD1602内部含有80个字节的DDRAM,它是用来寄存显示字符的。
其地址和屏幕的对应关系如下表:

DDRAM
DDRAM可以显示80个字节,分为2排,上面40个字节下面40个字节,但我们使用的液晶一排也就16个字节,后面不用了。
下面是对应的地址,但真正的地址是每个的加上0x80才是我们真实的地址,如00对应的地址是0x00+0x80 = 0x80
2.LCD1602常用指令
(1)清屏指令

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

模式设置指令
功能:
设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符否移动。
I/D:0=写入新数据后光标左移 ; 1=写入新数据后光标右移;通常是1,但当光标到最右边时光标向左移就是像滚动效果
S:0=写入新数据后显示屏不移动 ; 1=写入新数据后显示屏整体右移 1 个字符;通常是0
(3)显示开关控制指令

显示开关控制
功能:
控制显示器开/关、光标显示/关闭以及光标是否闪烁。
D:0=显示功能关 ; 1=显示功能开
C:0=无光标 ; 1=有光标
B:0=光标闪烁 ; 1=光标不闪烁
(4)功能设定指令

功能设定指令
功能:
设定数据总线位数、显示的行数及字型。
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写操作时序图:

时序图
我们先来看一下读操作时序的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等等很多时间要求,这些要求怎么看呢?

时序参数
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液晶接口电路

电路模块
VO通过下面的滑动变阻器改变电压
史海拾趣
|
大家好,好久没上eeworld发帖了! 看过坛子里的很多X牛!发的帖子,说什么“学历低的就不要往嵌入式行业发展” 我看了后受到很多的刺激!并信心一点都没有了, 我是一个从小就爱好的电子的人从懂事起11岁开始,说了不怕各位 X牛笑话 我学历很低上 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:56 编辑 近日,记者从数字音视频解码技术标准工作组获悉,最新版本的中国拥有完整知识产权的3D电视系统标准已经于六月底完成定稿,今日将上交工信部、国标委等国家相关部委进行审批。 据悉 ...… 查看全部问答> |
|
在潜入式系统,实际上是DSP开发程序,写了一个bootload程序,相信很多接触过潜入式系统的朋友都知道这个东西的原理,其实就是开始检查一下系统中所有的资源是否已经配置到位,初始化所有的硬件资源,同时将自己真正的应用代码从非易失性的存 ...… 查看全部问答> |
|
我用的是11.0592的频率 上网查了很多资料,说用AT89S52的芯片用T2可以达到 但我不知道T2初始化的程序,谁能给个出来? 另外,初始化的参数怎么求呢?… 查看全部问答> |
|
有一个程序员俱乐部,在周末的时候还会组织最新技术专题讲座,讨论会,也有组织球赛或文艺活动,挺不错的,十一有奖活动正在进行,大家有兴趣来参加.呵呵! http://club.xasoft.org ...… 查看全部问答> |
|
stm32f107与RTL8201BL通信,插上网线MII线上有接收到数据的波形,但是stm32F107调试仿真却收不到任何数据,每一个寄存 ...… 查看全部问答> |
|
void tmpDisplay(unsigned long ulValue){ unsigned long ulTemp; char pcBuffer1[4]; char pcBuffer2[3]; ulTemp = 151040UL - 225 * ulValue; pcBuffer1[0 ...… 查看全部问答> |




