历史上的今天
返回首页

历史上的今天

今天是:2025年03月30日(星期日)

正在发生

2020年03月30日 | 单片机小白学习之路(四十一)---LCD1602液晶理解

2020-03-30 来源:eefocus

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


1.LCD1602简介

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

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

13367077-9261e6aba44b9025.png?imageView2/2/w/550

1602

13367077-0e1404ce0cded604.png?imageView2/2/w/550

引脚作用

  • VL是液晶显示偏压信号,当感觉屏幕过暗或过亮是可以调节此电压来调整亮度

  • RS是高电平是是数据选项,是低电平是命令选项

  • R/W 是高电平是读操作,是低电平是写操作

  • E是使能信号

  • D0 ~ D7是数据I/O口,单片机可以往传数据来让液晶显示不同的数据

  • BLA是背光源正极(A表示正),BLK是背光源负极(K表示负极),如果没背光数据是难以看清的


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

13367077-f491270eda441dce.PNG

DDRAM


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

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


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

13367077-2fa5ab69cbaa12ff.png?imageView2/2/w/550

清屏指令


  • 输入命令是0x01

  • RS是低电平是输入的命令

  • R/W低电平表示写入

  • 清除液晶显示器,即将 DDRAM 的内容全部填入"空白"的 ASCII码 20H;

  • 清完屏光标归位,即将光标撤回液晶显示屏的左上方

  • 将地址计数器(AC)的值设为 0,就是最走上角那个

(2)模式设置指令


13367077-c4729cacac6862ac.png?imageView2/2/w/550

模式设置指令

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

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

(3)显示开关控制指令


13367077-aa7b16af3ab44063.png?imageView2/2/w/550

显示开关控制

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

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

(4)功能设定指令


13367077-16a8a6c64e84233b.png?imageView2/2/w/550

功能设定指令

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

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写操作时序图:


13367077-778d757a76ea03a6.png?imageView2/2/w/550

时序图

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

13367077-816922087b3625df.png?imageView2/2/w/550

时序参数

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液晶接口电路

13367077-0d6bc9a7fd1603de.png?imageView2/2/w/550

电路模块


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

推荐阅读

史海拾趣

Cyrix Corp公司的发展小趣事

在被VIA收购后的一段时间里,Cyrix继续寻求市场扩张的机会。例如,在1998年,Cyrix与北京大船电子技术公司签订了总代理协议,以扩大其在中国的分销网络。这一策略帮助Cyrix进一步打开了中国市场的大门,为其在全球市场的发展奠定了基础。

以上五个故事描绘了Cyrix Corp公司在电子行业中的发展历程。从初创时期的挑战英特尔到被多次收购后的市场策略调整和市场扩张尝试,Cyrix的发展之路充满了曲折和变革。

Ambersil公司的发展小趣事

随着电子行业的竞争日益激烈,Ambersil公司意识到,要想在市场中立足,必须注重产品质量。公司加大了对生产线的投入,引进了先进的生产设备和技术,严格把控产品质量。同时,公司还建立了完善的售后服务体系,及时解决客户在使用过程中遇到的问题。这些举措使得Ambersil公司的产品在市场上赢得了良好的口碑。

FlexiPanel公司的发展小趣事

FlexiPanel自成立以来,便深知技术创新对于企业发展的重要性。公司投入大量资源于RF模块的研发,特别是在蓝牙和ZigBee/IEEE802.15.4等无线通信技术领域取得了显著成果。通过不断优化模块性能、提升集成度,FlexiPanel成功推出了多款具有行业领先地位的产品,吸引了众多OEM厂商的关注。这些创新产品不仅满足了市场对于高性能、低功耗、易集成的RF模块需求,还帮助FlexiPanel在竞争激烈的电子市场中脱颖而出,实现了市场份额的快速增长。

Arduino公司的发展小趣事

随着Arduino电路板的成功推出,Arduino平台在2005年发布了第一款主板——Arduino NG。这款主板采用了Atmel公司的AVR单片机作为核心处理器,并结合了简单易用的开发环境。这一创新使得普通人也能够轻松地进行单片机编程和硬件开发,大大降低了电子制作的门槛。Arduino NG的发布标志着Arduino平台开始受到开发者和爱好者的广泛关注。

Elytone Electronics Co Ltd公司的发展小趣事

近年来,Elytone公司积极响应国家环保政策,致力于推动绿色发展。他们采用环保材料和清洁能源进行生产,减少了对环境的污染。同时,公司还加强了对废弃物的回收和处理工作,实现了资源的循环利用。这些举措不仅提升了公司的社会形象,也为行业的可持续发展做出了积极贡献。

C&K Switches公司的发展小趣事

C&K Switches公司的历史可以追溯到其创立之初。作为一家机电开关和互连解决方案的设计商和制造商,C&K在成立的早期阶段便以其在开关领域的精湛技艺和创新理念崭露头角。公司凭借对技术的深入研究和不断创新,逐渐在工业、交通运输、航空航天和数据通信等领域积累了丰富的经验。这一时期,C&K不断扩大产品线,提升产品质量,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

是去还是留,关于技术!迷茫中!

大家好,好久没上eeworld发帖了! 看过坛子里的很多X牛!发的帖子,说什么“学历低的就不要往嵌入式行业发展” 我看了后受到很多的刺激!并信心一点都没有了, 我是一个从小就爱好的电子的人从懂事起11岁开始,说了不怕各位 X牛笑话 我学历很低上 ...…

查看全部问答>

中国3D电视编解码标准制定完成

本帖最后由 jameswangsynnex 于 2015-3-3 19:56 编辑    近日,记者从数字音视频解码技术标准工作组获悉,最新版本的中国拥有完整知识产权的3D电视系统标准已经于六月底完成定稿,今日将上交工信部、国标委等国家相关部委进行审批。   据悉 ...…

查看全部问答>

ppp问题求教

以下是整个协商过程的LOG: LCP协商部分: send: 7e  ff  7d  23  c0  21  7d  21  7d  20  7d  20  7d &n ...…

查看全部问答>

从coff文件到bootload, 怎么弄?

   在潜入式系统,实际上是DSP开发程序,写了一个bootload程序,相信很多接触过潜入式系统的朋友都知道这个东西的原理,其实就是开始检查一下系统中所有的资源是否已经配置到位,初始化所有的硬件资源,同时将自己真正的应用代码从非易失性的存 ...…

查看全部问答>

EVC学习

我刚刚开始学习WinCE嵌入式的学习 现在在在学习EVC,学习EVC需要熟练掌握VC吗,除了VC还需要其他方面的知识吗 还有WinCE嵌入式硬件学习需要学习些什么?? 希望各位不吝赐教!…

查看全部问答>

怎么用115200的波特率传输?

我用的是11.0592的频率 上网查了很多资料,说用AT89S52的芯片用T2可以达到 但我不知道T2初始化的程序,谁能给个出来? 另外,初始化的参数怎么求呢?…

查看全部问答>

程序员朋友的乐园——程序员俱乐部

  有一个程序员俱乐部,在周末的时候还会组织最新技术专题讲座,讨论会,也有组织球赛或文艺活动,挺不错的,十一有奖活动正在进行,大家有兴趣来参加.呵呵!  http://club.xasoft.org          ...…

查看全部问答>

求助,STM32F107与RTL8201BL通信

                                 stm32f107与RTL8201BL通信,插上网线MII线上有接收到数据的波形,但是stm32F107调试仿真却收不到任何数据,每一个寄存 ...…

查看全部问答>

这个挺有意思:电子小强与TI MCU不能不说的故事

https://www.deyisupport.com/question_answer/f/55/t/2558.aspx…

查看全部问答>

问:lm3s9b92显示芯片温度的程序

void tmpDisplay(unsigned long ulValue){    unsigned long ulTemp;    char pcBuffer1[4];    char pcBuffer2[3];        ulTemp = 151040UL - 225 * ulValue;    pcBuffer1[0 ...…

查看全部问答>