[经验] 10分钟理解LCD1602液晶显示模块

[复制链接]

实习生

发表于 2018-4-9 17:39:24   1250 查看 3 回复 显示全部楼层 倒序浏览
分享


1. 初识LCD1602液晶模块


LCD1602什么意思,LCD表示LiquidCrystal Display,1602表示一行可以显示16个字符,一共有两行。实物图如下所示:

01.jpg


2. 思路分析


LCD1602是显示模块,主要作用当然是显示了。既然是显示,我们可以想一想,无非就是两个内容:

第一点:你打算让它在哪里显示(显示位置)

第二点:你要显示什么内容       (显示内容)

很明显,这两点都是来自于单片机的控制,单片机让它显示什么它就显示什么,单片机让它在哪里显示它就在哪里显示。

这一句话也可以换个说法,比如单片机'告诉'LCD1602模块:请你在第1行的第4个位置,显示字符‘A'

所谓'告诉',也即是单片机与LCD1602模块进行'沟通'。类比一下我们平时的"沟通",比如打电话,是不是一上来就开始

谈论主题了。当然不是,先要发出一信号,比如"喂",打个招呼,确定对方能收到信号后才开始谈论主题。当然也有些人会嘘寒问暖

几句才开始正题谈话。

总之,在'沟通'之前要有个'打招呼'的过程。对于单片机与LCD1602的'沟通'也一样,同样需要先'打个招呼',只不过我们这里换了个说法

叫做"初始化"。



这样整个思路就出来了:

第一步:初始化            (单片机先跟1602打个招呼)

第二步:确定显示位置  (单片机告诉1602在哪里显示)

第三部:确定显示内容  (单片机告诉1602显示什么内容)

3. 操作步骤

思路出来,下面就是按照这个思路去实现就行了。如何实现呢,当然要看你使用的LCD1602液晶模块厂家给的说明书了。



3.1 初始化

如何初始化呢?1602说明书上已经告诉你了,想都不用想,照做即可

延时15ms
写指令38H
延时5ms
写指令38H
写指令08H
写指令01H
写指令06H
写指令0CH


3.2 确定显示位置


如何确定显示位置呢?前面说了显示位置就是2行,每一行16个空格,这样一共是32个空格。那么单片机如何告诉LCD1602

在哪个空格显示呢?注意到单片机和LCD1602都是机器,既然是机器之间的沟通当然要使用机器语言了。既然是机器语言无非

就是0和1组成的语言。那么现在的问题就是如何通过0和1来确定显示位置。这个就比较容易了,比如我只使用一个位的话,

那么就只能确定两个位置,用0来表示第一行的第一个空格显示,用1来表示第一行的第2个空格显示。前面说了,1602有32个

空格,很明显一个位肯定不够用。同样的道理,采用两个位的话就是4种组合,也就是可以确定4个空格,三个位的话就是8个

空格,仍然不够用。那么就继续增加位数,五个位就够了。比如当单片机发送00000这个信息给1602时就表示要它在第1行的第1

个空格显示,00001表示在第1行的第2个空格显示,依此类推。但是通常机器之间的沟通是以字节(8位)为最小单位的,这样

我们就能通过8位0和1的组合确定显示位置。至于具体的组合方式对应着什么位置就要查看厂家提供的说明书了。

显示位置.png

对于这8位0和1的组合在说明书上已经明确指出了,它的最高位固定为1,剩下7位由上表确定。比如剩下7位为40H的时候,就表示

在1602的第2行第1个空格显示。当剩下7位为4FH的时候就表示在第2行的第16个空格显示。


3.3 显示内容


剩下的一个问题就是如何确定显示内容。同样显示什么内容也是通过8位的0和1的组合来完成的,这8位不同的组合形式就对应着不同

的显示内容,具体如下图所示

显示内容.png

比如当单片机发送00110000给1602的时候,就表示告诉让1602显示字符0,等等。


这样又有了个新的问题,当单片机发送1000 0100给1602的时候,它怎么知道这个信息是"位置"信息还是"内容"信息呢?

这两种信息都是用8位的0和1组合而成的,如何区别?我们把"位置"信息定义为"命令",把"内容"信息定义为"数据"。那么

单片机如何告诉1602发送的是"命令"还是"数据",这个问题就去翻一翻说明了,上面讲的很清楚。


步骤整理好了,下面就是对照时序图实现单片机如何发送一个字节(命令/数据)给1602了。


参考代码如下:

LCD1602参考代码.rar (38.61 KB, 下载次数: 39)

标签:51单片机 LCD1602

版主

发表于 2018-4-11 20:56:08  
好资料呀  必须顶一下            
回复

点赞 举报

高级工程师

发表于 2018-4-11 22:34:43  
很不错的资料,特别适合初学者学习借鉴。谢谢分享了!
回复

点赞 举报

实习生

发表于 2018-5-19 20:56:31  
好资料,学习学习
回复

点赞 举报

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区