51单片机 | LCD1602 液晶显示实验


  在前面章节,我们已经学习过几种显示装置,例如静态数码管、动态数码管、 8*8LED 点阵、串口通信。使用它们可以直观显示一些字符数据,但是它们也有各种局限性,比如显示字符数据太少,硬件设计复杂、代码编写难度大等。这一章就来介绍一种非常简单且常用的显示装置– LCD1602 液晶显示器,使用它可以显示更多的字符数字。我们开发板上集成了一个 LCD1602 液晶显示器接口,将 LCD1602 液晶对应插入即可。本章要实现的功能是:系统运行时,在 LCD1602 液晶上显示字符信息。

一、LCD1602 介绍

1.LCD1602 简介

  1602 液晶也叫 1602 字符型液晶,它能显示 2 行字符信息,每行又能显示 16个字符。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个 5x7 或者 5x10 的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距行间距的作用,正因为如此,所以它不能很好的显示图片。其实物图如下所示:
在这里插入图片描述
  在上图中可以看到有 16 个管脚孔,从左至右管脚编号顺序是 1-16,其功能定义如下所示:
在这里插入图片描述
  下面对几个管脚做下说明:

  • 3 脚:VL,液晶显示偏压信号,用于调整 LCD1602 的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为 0 时可以得到最强的对比度。
  • 4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对 1602 进行数据字节的传输操作,而为低电平时,则是进行命令字节的传输操作。命令字节,即是用来对 LCD1602 的一些工作方式作设置的字节;数据字节,即使用以在 1602 上显示的字节。值得一提的是,LCD1602 的数据是 8 位的。
  • 5 脚:R/W,读写选择端。当此脚为高电平可对 LCD1602 进行读数据操作,反之进行写数据操作
  • 6 脚:E,使能信号,其实是 LCD1602 的数据控制时钟信号,利用该信号的上升沿实现对 LCD1602 的数据传输。
  • 7~14 脚:8 位并行数据口,而 51 单片机一组 IO 也是 8 位,使得对 LCD1602的数据读写大为方便。

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

  从上图可知,不是所有的地址都可以直接用来显示字符数据,只有第一行中的 00-0F,第二行中的 40-4F 才能显示,其他地址只能用于存储。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 。所以实际写入的数据应该是

01000000B(40H)+10000000B(80H)=11000000B(C0H)

1602 中我们就用前 16 个就行了。第二行也一样用前 16 个地址。

2.LCD1602 常用指令

  在使用 LCD1602 时,我们需要掌握一些常用的指令,这些指令对于 LCD1602初始化是必须的。

  1. 清屏指令0x01
    在这里插入图片描述
    功能:

    • 清除液晶显示器,即将 DDRAM 的内容全部填入"空白"的 ASCII20H;
    • 光标归位,即将光标撤回液晶显示屏的左上方;
    • 将地址计数器(AC)的值设为 0。
  2. 模式设置指令:0x06
    在这里插入图片描述
    功能:设定每次写入 1 位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。

    • I/D:0=写入新数据后光标左移; 1=写入新数据后光标右移,这里选择1
    • S:0=写入新数据后显示屏不移动; 1=写入新数据后显示屏整体右移 1 个字符,这里选择0
  3. 显示开关控制指令0x0c
    在这里插入图片描述
    功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。

    • D:0=显示功能关; 1=显示功能开,这里选择1
    • C:0=无光标 ;1=有光标,这里选择0
    • B:0=光标闪烁; 1=光标不闪烁,这里选择0
  4. 功能设定指令0x38
    在这里插入图片描述
    功能:设定数据总线位数、显示的行数及字型。

    • DL:0=数据总线为 4 位 ;1=数据总线为 8 位,这里设置为1
    • N:0=显示 1 行; 1=显示 2 行,这里设置为1
    • F:0=5×7 点阵/每字符 ;1=5×10 点阵/每字符,这里设置为0
    • X:表示任意值,这里选择0

3.LCD1602 使用

  要使用 LCD1602,首先需要对其初始化,即通过写入一些特定的指令实现。然后选择要在 LCD1602 的哪个位置显示并将所要显示的数据发送到 LCDDDRAM。使用 LCD1602 通常都是用于写数据进去,很少使用读功能。LCD1602 操作步骤如下所示:

1)初始化
(
  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值