详解LCD1602液晶显示屏的使用

2023-05-16

1.简介

作为各类单片机实物设计的常用显示屏,LCD1602是一种专门用于显示字母、数字、符号等点阵式LCD,其1602是指LCD显示的内容为16X2,即可以显示两行,每行16个字符(1个汉字占用2个字符)。

2.硬件参数

(1) LCD1602主要技术参数
a.显示容量:16×2个字符
b.芯片工作电压:4.5—5.5V
c.工作电流:2.0mA(5.0V)
d.模块最佳工作电压:5.0V
e.字符尺寸:2.95×4.35(W×H)mm
(2) 引脚定义
在这里插入图片描述
LCD1602引脚主要有逻辑电源引脚VDD,VSS;背光带电源引脚BLA,BLK;数据引脚D0-D7、RS、R/W、EN;偏压信号引脚VL;其中:

  1. VL引脚:为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;
  2. RS引脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器
  3. R/W引脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
  4. EN引脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

(3)电路图
在这里插入图片描述
其中可调电阻P用于调整显示器的对比度。电阻R作为限流电阻,防止过流烧坏显示屏背光灯。

3.控制程序

LCD1602显示屏控制程序简化下来,也相对简单,只需要实现写数据写指令初始化三个控制函数即可实现对LCD1602的控制。(写操作一般不用,这里就省略不说)
(1)写操作时序
在这里插入图片描述
要实现下面的写数据和写指令函数,都是以写操作时序来进行编程,实现有效的控制;其中,可以通过写时序和RS引脚的定义,写数据和写指令的区别在于RS引脚的电平;RS为高电平时,写数据;RS为低电平时,写指令。
(2)写数据函数

//写数据
void write_data(uchar date)
{
  LCDRS=1;
  P0=date;
  LCDdelay(5);
  LCDEN=1;
  LCDdelay(5);
  LCDEN=0;
}

(3)写指令函数

//写命令
void write_com(uchar com)
{
  LCDRS=0;
  P0=com;
  LCDdelay(5);
  LCDEN=1;
  LCDdelay(5);
  LCDEN=0;
}

(4)初始化函数
LCD1602初始化需要做以下设置:
a.设置写操作:R/W设为低电平;
b.屏幕设置模式:写指令38H;
c.打开显示,关闭光标:写指令0CH;
d.设置显示光标移动位置:写指令06H;
e.设置字符显示位置:写指令(字符显示的起始位置);

void Init1602()
{
  uchar i=0;
LCDRW = 0;
  write_com(0x38);//屏幕初始化
  write_com(0x0c);//打开显示 无光标 无光标闪烁
  write_com(0x06);//当读或写一个字符是指针后一一位
  write_com(0x01);//清屏
  write_com(0x80);//设置位置
}

注:由于对LCD1602进行控制时不需要实现读操作,所以R/W在初始化后恒为低电平(或者此引脚直接对地短路)。

4.显示字符

要在LCD1602上显示特定的字符,实际上就是对LCD1602的DDRAM上写入对应的数据,显示屏便显示你想要的字符。
(1)DDRAM地址映射图
从RAM可以看出来,是读的意思,地址与显示位置如下,每行40个地址,1602只用到前16个,共两行,对应关系如图:
在这里插入图片描述
根据写指令格式,由于地址为7位,在写入地址是,第8位恒为1,如图:
在这里插入图片描述
当我们想在指定位置写入内容时,要先指定地址,如在第一行第一位写入,地址位是00H,再加上DB7的1,即80H(0010000000),第二行第一位是40H,再加上DB7的1,即C0H(0011000000),依次类推。
比如要在第1行第3位写入“HELLO WOLRD”,即先写入地址,再写入数据:

write_com(0x40+0);  //第1行第3位
write_com(‘H’);
write_com(‘O’);
.....
write_com(‘D’);

如果是写在第2行第2位:

write_com(0x40+0x80+2);  //第2行第2位
//写数据与上面一样

(2)显示函数
为了程序的简洁与方便,我们将显示程序整合成一个显示函数:

void Display_1602(uchar x,uchar y,uchar *str)
{
	 unsigned char addr;
  
  if (y == 0)
  {
    addr = 0x00 + x; //第一行的x位置显示
  }
  else
  {
    addr = 0x40 + x; //第二行x的位置显示
  }
  write_com(addr + 0x80);
  while (*str != '\0')
  {
    write_data(*str++);
  }

}

要实现上面显示就比较简单:
第1行第3位显示“HELLO WOLRD”:

Display_1602(3,1,”HELLO WOLRD”);

第2行第2位显示“HELLO WOLRD”:

Display_1602(2,2,”HELLO WOLRD”);

更多LCD1602设计资料及例程 请关注公众号,首页回复“1602”获取资料
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解LCD1602液晶显示屏的使用 的相关文章

  • LCD1602液晶显示模块学习笔记

    LCD1602液晶显示模块 一 初识LCD6021 1 实物图1 2 引脚图1 3 引脚功能说明 二 显示位置三 显示内容四 指令集五 工作时序5 1 写操作时序5 2 读操作时序 六 编程思路6 1 写数据6 2 写指令6 3 初始化6
  • LCD1602和LCD12864

    1602 字符型 xff08 字符型的模组 xff09 只能显示数字与字符 不可以显示汉字 12864 点阵型 xff08 图形型的模组 xff09 可根据需求任意显示字符 数字 汉字 图形 1602 为16字乘2行 12864 为128列
  • LCD1602液晶显示屏的入门级应用(一)

    嵌入式小白 xff0c 今天用到1602 xff0c 被CGRAM DDRAM CGROM搞得乱七八糟 xff0c 特此记录一下 xff0c 供大家参考 首先 xff0c 1602液晶显示屏除了电源 地以外 xff0c 有3个控制引脚 RS
  • STC12C5A60S2_LCD1602驱动

    文章目录 LCD1602 HLCD1602 cmain c LCD1602 H 代码如下 xff1a span class token macro property span class token directive hash span
  • 详解LCD1602液晶显示屏的使用

    1 简介 作为各类单片机实物设计的常用显示屏 xff0c LCD1602是一种专门用于显示字母 数字 符号等点阵式LCD xff0c 其1602是指LCD显示的内容为16X2 xff0c 即可以显示两行 xff0c 每行16个字符 xff0
  • LCD1602和12864显示器-第1季第17部分-朱有鹏-专题视频课程

    LCD1602和12864显示器 第1季第17部分 3539人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第17个课程 xff0c 主要讲解LCD1602和LCD12864这两种单片机常用LCD显示器的显示原理 以及
  • LCD1602和12864显示器

    1 LCD显示器相关背景 1 1 LCD简介 1 显示器 xff0c 常见显示器 2 LCD Liquid Crystal Display xff0c 液晶显示器 xff0c 原理介绍 3 LCD应用领域 4 LED OLED 1 2 电子
  • LCD1602按下复位后乱码的问题

    1602按下后会有乱码的问题 xff0c 其实根本上是硬件引起的 某些最小系统板的复位电路没做好 xff0c 按下复位键后 xff0c 就会产生乱码 但是出现这种现象 xff0c 是可以用软件后期修正的 由于LCD复位后默认是8线输入 xf
  • LCD1602模块如何显示自定义字符

    相信大家现在知道了如何通过查字库表的方法来显示表中的任意一个字符 假如现在我想显示某个温度值 xff0c 需要标志出温度符号 C xff0c 现在你去字库表里面查找 xff0c 发现根本找不到这个符号 xff0c 那怎么办 xff1f 下面
  • STM32F407的LCD1602液晶显示程序

    LCD1602 H ifndef LCD1602 H define LCD1602 H include sys h include stm32f4xx h unsigned char message 20 unsigned char mes
  • Arduino--LCD1602(IIC)

    xff08 1 xff09 简介 前篇文章介绍了LCD1602的四位数据线控制方法 xff1a https blog csdn net u011816009 article details 106573622 但是该方法还是需要较多的IO口
  • STM32驱动lcd1602,并口8位 6800时序

    STM32驱动lcd1602 xff0c 并口8位 6800时序 一 LCD1602 xff08 3 3V硬件版本 xff09 简介 1 1 引脚 引脚 xff0c lcd1602采用标准接口 xff0c 6800时序8位并行数据传输 第
  • LCD1602温度显示程序设计流程

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • 基于51单片机的红外解码器

    1 简介 本红外解码器是以MCS 51系列AT89C512片机为核心 将红外传感器接收的信号解析出来 LCD1602显示屏将解码数据显示出来 2 总体原理图 硬件组成 单片机最小系统 LCD1602显示屏 IR红外接收器 系统电源 3 程序
  • 电子闹钟设计

    摘要 本设计是以89c51单片机作为控制核心的闹铃系统 本文大致可以分三个章节 第一章讲用单片机制作电子闹钟带来的优势 还有电子闹钟在未来的电子产品中的趋势以及本次设计所要实现的课题目标 第二章讲一些设计思路和硬件组成 第三讲程序代码 最后
  • 51单片机——串口通信

    51单片机 串口通信 串口通信 串口通信的原理 串口的配置 定时器的配置 c源代码 netty源代码 结果 本篇博客的最终效果是实现51单片机用串口发送Hello World netty监听串口读到Hello World后回发给51单片机
  • Arduino基础入门篇31—LCD1602液晶显示

    LCD1602也叫1602字符型液晶 是一种专门用来显示字母 数字 符号的点阵型液晶模块 能同时显示16X2即32个字符 本篇我们来认识LCD1602 驱动它显示 Hello World 1 LCD1602介绍 对于单片机爱好者和电子爱好者
  • LCD1602芯片的使用——简单易懂

    题目 想在LCD1602上显示两行如下字样 huaianxinxi wantin 想完成上面的显示必须掌握LCD1602芯片的基本知识 将在程序下面附上LCD1602芯片的基本知识 供大家参考 我实现的比较简单 没有什么花哨的显示 大家首先
  • 2021年电赛模块化程序总结

    文章目录 1 ADC0804 2 LCD1602 3 AD9854 1 ADC0804 集成A D转换器品种繁多 选用时应综合考虑各种因素选取集成芯片 一般逐次比较型A D转换器用的比较多 ADC0804就是这类单片集成A D转换器 ADC
  • stm32cubeide驱动LCD1602显示屏

    STM32驱动LCD1602 硬件连接关系 STM32CUBEIDE设置 代码 项目设置 最后运行 硬件连接关系 LCD1602 STM32 VCC VCC GND GND VO VCC 滑动变阻 RS PB1 RW PB2 BOOT1 E

随机推荐

  • jsp报Syntax error, insert "}" to complete MethodBody错误

    用myeclipse写jsp xff0c 发现了如标题的错误 xff0c 而且是报在第一行 xff0c 第一行根本就没有 xff0c 何来的缺少 心中暗骂估计又是myeclipse抽风了 到网上一搜 xff0c 发现是jsp文件中有oncl
  • Linux中“没有可用的软件包XX,但是它被其他软件包引用”的解决方法

    踩坑经历 今天刚在虚拟机上安装好了ubuntu系统 xff0c 在执行sudo apt install net tools 命令时报错 没有可用的软件包net tools xff0c 但是它被其他软件包引用 解决方法 执行命令 sudo a
  • 元学习、迁移学习、对比学习、自监督学习与少样本学习的关系解读

    文章目录 前言一 对比自监督学习与FSL1 对比学习与自监督学习2 自监督学习与FSL 二 元学习与FSL1 元学习是什么2 元学习与FSL 三 迁移学习与FSL1 迁移学习2 迁移学习与FSL 总结 前言 本人的研究方向是少样本图像分类
  • DPPO:Distributed Proximal Policy Optimization

    DPPO xff1a Distributed Proximal Policy Optimization 分布式近端策略优化 xff0c 因为就是PPO的分布式实现 xff0c 整条的架构和A3C差不多 xff0c 一个主网络 xff0c N
  • VNC启动报错A VNC server is already running as :10

    报错 xff1a A VNC server is already running as 2 解决 xff1a usr sbin lsof i tcp 5902 然后kill了 xff0c 再重启
  • XManager5基于gdm连接centos图形界面

    centos6 参考了很多资料 花了几个钟终于把XManager连接centos搞定 第一步 如果是新装的linux centos7 xff0c 需要先配置好yum xff0c 执行命令 xff1a cd etc yum repos d r
  • 初级算法学习步骤

    前言 零散整理一个多月终于整理完了 这是一篇初级算法学习的步骤总结 xff0c 或许可以帮助你怎么去接触算法 阅读本文需要一定java语法基础和api文档查看基础 xff0c 但算法其实看重的是思想而不是语言 xff0c 所以都可以借鉴 本
  • Hadoop学习笔记:(一)WordCount运行

    前言 xff1a 本文是在hadoop已经配置好的情况下 WordCount是hadoop下的HelloWorld程序 xff0c 是初学者必须要会的 下面是用eclipse进行开发 一 工程与MapReduce代码 新建工程 xff0c
  • 乌班图18.04搭建ssh服务器

    一 首先打开终端 xff0c 在终端输入以下命令安装 openssh server 如下图所示 xff1a sudo apt get install openssh server 二 安装完成以后 xff0c 启动ssh服务 xff0c 输
  • keil无法生成axf文件之解决方法

    参考 xff1a 参考 鱼鹰单片机 https blog csdn net weixin 42876465 article details 88356890 其实很简单 默认情况是生成 axf 文件的 xff0c 但有可能不能生成该文件 生
  • 用vnc实现windows远程连接linux桌面

    网络遥控技术是指由一部计算机 xff08 主控端 xff09 去控制另一部计算机 xff08 被控端 xff09 xff0c 而且当主控端在控制端时 xff0c 就如同用户亲自坐在被控端前操作一样 xff0c 可以执行被控端的应用程序 xf
  • linux find typelinux find用法(转)

    由于 find 具有健壮的功效 xff0c 所以它的选项也很多 xff0c 其中大局限选项都值得我们花时间来剖析一下 尽管体例中含有网络文件体例 NFS xff0c find 命令在该文件体例中异样有用 xff0c 只你具有相应的权限 在运
  • Find 命令之 exec 的诠释

    find是我们很常用的一个Linux命令 xff0c 但是我们一般查找出来的并不仅仅是看看而已 xff0c 还会有进一步的操作 xff0c 这个时候exec的作用就显现出来了 e xec解释 xff1a exec 参数后面跟的是 comma
  • AI深度学习模型被“骗”,研究者如何对抗攻击?

    作者 埼玉 编辑 3D视觉开发者社区 如果觉得文章内容不错 xff0c 别忘了三连支持下哦 x1f618 文章目录 我们的模型被 骗 了什么是对抗技术 xff1f 对抗攻击的方法1 FGSM Fast gradient sign metho
  • “Additional information: 您必须有许可证才能使用此 ActiveX 控件”的错误解决方法

    昨天把项目的ArcGIS从9 3升级为10 1 早上到公司 xff0c 准备提交工程代码 xff0c 编译 通过 xff0c 但运行报错 错误信息 xff1a 原本以为是自己清理中间文件导致的 xff0c 但是找来找去 xff0c 没有任何
  • ssh配合vscode免密码登陆

    整体流程 xff1a 1 在本机创建公钥和私钥 2 在本地 ssh config文件中 xff0c 设置IdentifyFile为私钥地址 3 将公钥上传到服务器 下面是每一步的详解 xff1a 1 在本机创建公钥和私钥 xff1a 在命令
  • Debian查看系统版本信息

    下一代 Debian 正式发行版的代号为 34 buster 34 发布时间尚未确定 Debian 9 xff08 34 stretch 34 xff09 当前的稳定版 Debian 8 xff08 34 jessie 34 xff09 被
  • Oracle 索引 index

    一 索引的概念 索引是数据库对象 xff0c 通过使用快速路径访问方法快速定位数据 xff0c 减少了磁盘的I O xff0c 用来加速对表的查询速度 相当于书本的目录 与表独立存放 xff0c 但需要依附于表 xff0c 是在表的基础上创
  • HX711使用教程-数字电子秤常用芯片

    1 简介 HX711是一款专为高精度称重传感器而设计的24位A D转换器芯片 与同类型其它芯片相比 xff0c 该芯片是专门为称重传感器设计的 xff0c 称重传感器只需要一个HX711芯片即可完成称重信号的处理及AD转换 xff1b 对于
  • 详解LCD1602液晶显示屏的使用

    1 简介 作为各类单片机实物设计的常用显示屏 xff0c LCD1602是一种专门用于显示字母 数字 符号等点阵式LCD xff0c 其1602是指LCD显示的内容为16X2 xff0c 即可以显示两行 xff0c 每行16个字符 xff0