LCD1602液晶显示模块学习笔记

2023-05-16

LCD1602液晶显示模块

    • 一、初识LCD602
      • 1.1.实物图
      • 1.2.引脚图
      • 1.3.引脚功能说明
    • 二、显示位置
    • 三、显示内容
    • 四、指令集
    • 五、工作时序
      • 5.1.写操作时序
      • 5.2.读操作时序
    • 六、编程思路
      • 6.1.写数据
      • 6.2.写指令
      • 6.3.初始化
      • 6.4.读数据(读忙信号)

声明:本文仅供学习交流,部分资料来源于网络,如有侵权联系删除!

一、初识LCD602

LCD1602(Liquid Crystal Display), 每行可显示16个字符共2行。

1.1.实物图

在这里插入图片描述

1.2.引脚图

在这里插入图片描述

1.3.引脚功能说明

Vss:电源接地。
VDD:电源正极。
VL:液晶显示偏压。可以接0~5V调节屏幕的对比度,电压越高对比度越低,对比度越高显示效果越鲜艳。
RS:数据/命令选择端。RS=1时选择数据寄存器,RS=0时选择指令寄存器
RW:读写选择端。RW=1时读操作(读取LCD内数据),RW=0时写操作(向LCD写入数据)
E:使能信号。当E为下降沿(从高电平到低电平)时LCD执行写入的指令
D0~D7:8位双向数据总线。
A:背光源正极
K:背光源负极

二、显示位置

  • LCD1602内置了一个80字节的DDRAM,用来寄存需要显示的内容。CGROM存放了160个不同的字符图形,下面会有详细介绍。
    在这里插入图片描述
    在这里插入图片描述
  • DDRAM虽然可以存放80个显示地址,但是LCD1602每行只能显示前16个地址上的字符,一般只会用到每行的前16个地址。
    在这里插入图片描述
  • 如果想要在第一行第二列显示字符’A’,该怎么选择这个地址呢?
    这里有一个容易出错的点,第一行第二列的地址是01H,A的代码为41H。这时我们向DDRAM的01H写入数据41H时,并不能得到想要的效果。选择显示位置时需要在01H的基础上加上80H,因为向DDRAM写入数据时,数据总线最高位DB7始终保持为1。这里可以参考指令集中的指令8

三、显示内容

  • LCD1602内置一个字符存储器CGROM,存放了192个点阵字符图形。
    在这里插入图片描述
  • 这些字符的二进制代码与计算机中的大多一致,我们在用C语言编程时也可以直接写P0=‘A’.

四、指令集

  • LCD1602内部控制器共有11条控制指令,读/写操作、屏幕、光标操作都是通过指令编程来实现的,通过DB7~DB0的8位数据传输数据和指令。
    1、清屏指令。
    功能:清除DDRAM(清显示)和AC值(光标复位)
    在这里插入图片描述
    2、光标复位指令。
    功能:AC值设为00H(光标复位),DDRAM内容不变。
    在这里插入图片描述
    3、输入模式设置指令。
    功能:I/D用来控制DDRAM地址+1或-1,SH用来控制显示画面左移或右移。
    I/D=1时,光标右移且DDRAM地址+1。
    I/D=0时,光标左移且DDRAM地址-1。
    读操作时或SH=0时显示不移位。
    写操作且SH=1时,如果I/D=1,显示左移,I/D=0,显示右移
    输入模式设置指令
    4、显示开关控制指令。
    功能:D控制显示开关,C控制光标开关,B控制光标闪烁。
    D=1 显示开 D=0 显示关
    C=1 光标开 C=0 光标关
    B=1 光标闪烁 B=0 光标静止在这里插入图片描述
    5、光标、画面位移指令。
    功能:S/C=1选择屏幕,S/C=0选择光标。
    R/L=1右移,R/L=0左移。
    二者分别为
    00:光标左移,AC值-1
    01:光标右移,AC值+1
    10:屏幕左移,光标不动
    11:屏幕右移,光标不动
    在这里插入图片描述
    6、功能设置指令。
    功能:选择数据总线位数、显示行数以及点阵大小。
    DL控制数据线位数,N控制显示行数,F控制点阵大小。
    DL=1选择8位数据线,N=1选择2行显示,F=1选择511点阵。
    DL=0选择4位数据线,N=0选择1行显示,F=0选择5
    8点阵。
    在这里插入图片描述在这里插入图片描述
    7、CGRAM地址设置指令。
    功能:用户自定义字符。
    在这里插入图片描述
    8、DDRAM地址设置指令。
    功能:告诉DDRAM在哪个位置显示字符。
    注意DB7始终为1,无论要显示什么字符DB7位都要保持为1。
    即起始地址 = 00H+1000 0000(80H)
    在这里插入图片描述
    9、读忙信号及AC值。
    功能:当BF=1,不能接收数据或指令。
    BF=0,可以接收数据或指令
    在这里插入图片描述
    10、写数据。
    功能:RS=0 RW=0 E=下降沿 DB7~DB0=指令。
    RS=1 RW=0 E=下降沿 DB7~DB0=数据。
    在这里插入图片描述
    11、读数据。
    功能:RS=0 RW=1 E=1 读状态,RS=1 RW=1 E=1 读数据
    当RS和RW都为1时可以读忙信号。
    在这里插入图片描述

五、工作时序

5.1.写操作时序

在这里插入图片描述

5.2.读操作时序

在这里插入图片描述

六、编程思路

6.1.写数据

	write_data(unsigned char show_data)
	{
		read_busy_flag() // 判忙
		RS = 1;  // RS为高电平,选择数据寄存器
		RW = 0;  // RW为低电平,写操作
		E = 0;   // E使能端拉低
		Px = show_data; // 将数据赋给8位数据总线DB0-DB7,这里的Px为LCD上8位数据总线所连接的单片机IO端口
		delay(); // 延时
		E = 1;  // 使能端拉高
		delay(); // 延时
		E = 0;  // 使能端拉低,下降沿有效,数据写入DDRAM
	}

6.2.写指令

	write_cmd(unsigned char cmd)
	{
		read_busy_flag(); // 判忙
		RS = 0; // RS为高电平,选择指令寄存器
		RW = 0; // RW为低电平,写操作
		Px = cmd; // 将指令赋给8位数据总线DB0-DB7
		delay(); // 延时
		E = 1;  // 使能端拉高
		delay(); // 延时
		E = 0;  // 使能端拉低,下降沿有效。
	}

6.3.初始化

	lcd_init()
	{
		write_cmd(0x06)	  // 指令5,屏幕不动,地址+1
		write_cmd(0x38);  // 指令6,16*2,5*8点阵8位数据
		write_cmd(0x0c);  // 指令4,显示开光标关
		write_cmd(0x01);  // 指令1,清屏
		
	}

6.4.读数据(读忙信号)

	read_busy_flag()
	{
		unsigned char flag; // flag为LCD状态标志
		Px = 0xFF;          // 给8位数据总线赋值11111111
		RS = 0;             // 选择指令寄存器,读取LCD状态字
		RW = 1;             // 读操作
		do
		{
			E = 1;   // 使能端拉高
			flag = Px; // 读取LCD状态
			E = 0; // 使能端拉低
		} while(flag & 0x80); // 如果DB7依然为1,表示忙,直到DB7为0时跳出
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LCD1602液晶显示模块学习笔记 的相关文章

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

    LCD1602液晶显示模块 一 初识LCD6021 1 实物图1 2 引脚图1 3 引脚功能说明 二 显示位置三 显示内容四 指令集五 工作时序5 1 写操作时序5 2 读操作时序 六 编程思路6 1 写数据6 2 写指令6 3 初始化6
  • 你可以写个LCD1602的驱动代码,从当初的起点开始。

    你可以写个LCD1602的驱动代码 xff0c 从当初的起点开始 你现在才明白正确弄单片机的方式
  • 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 下面
  • Arduino--LCD1602(IIC)

    xff08 1 xff09 简介 前篇文章介绍了LCD1602的四位数据线控制方法 xff1a https blog csdn net u011816009 article details 106573622 但是该方法还是需要较多的IO口
  • 树莓派上使用python实现LCD1602显示当前ip

    树莓派一般运行Linux操作系统后通过远程控制来运行 xff0c 但是往往由于网络原因导致树莓派分配的ip地址被改变 xff0c 致使需要重新连接屏幕后才能查看树莓派的当前ip 最近手头有个LCD1602 xff0c 所以尝试将通过驱动LC
  • 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
  • Lcd1602——斌哥51

    最新修改时间2022 7 22 LCD1602 16代表显示16个字符 xff0c 2代表总共显示两行 芯片的工作电压是4 5 5 5v 工作电流2 0ma xff08 5V xff09 模块最佳工作电压5 0v 字符尺寸 xff1a 2
  • 基于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

随机推荐

  • 【BUG】【Raspberry】解决最新版树莓派远程连接蓝/黑屏不显示问题

    文章目录 一 bug如图二 解决办法三 参考四 请教问题 一 bug如图 远程连接登陆后全蓝色 xff0c 没有树莓派桌面 二 解决办法 1 执行下面代码 xff0c 删除两个文件目录 注意 xff1a pi 替换为自己的用户名 xff01
  • 【教程】【记录】树莓派Raspberry+motion+摄像头实现拍照、录像、实时视频功能

    刚接触树莓派 xff0c 还请多多指教 目录 一 准备工作二 操作步骤1 进入设置打开摄像机模块2 拍照3 录像4 实时监控 三 总结补充文章 xff1a 一 准备工作 1 树莓派4B 2 树莓派摄像头500W像素 xff08 淘宝十几块钱
  • linux查看日志命令

    常用的几种linux查看日志的命令 一 tail n 是显示行号 xff1b 相当于nl命令 xff1b 例子如下 xff1a tail 100f localhost yyyy MM dd log 实时监控100行日志 tail n 10
  • 用c++ 的可变模板参数递归来表达 著名的斐波那契数列

    span class token macro property span class token directive keyword include span span class token string lt iostream gt s
  • debian squid透明代理简单配置

    实验环境 主机用途IP客户端10 10 100 11网关10 10 100 12 xff0c 192 168 65 160网站192 168 65 161 客户端配置 配置网关 route add default gw 10 10 100
  • Matlab中的抽象函数的求值

    Matlab中的抽象函数的求值 采用匿名函数 y 61 64 x x 2 43 2 x 8 建立匿名函数y y 4 返回当x 61 4时 xff0c y的结果 上面的命令在命令窗口可以实现 xff0c 但是在M文件中没有实现 使用matla
  • 白嫖5T空间Onedrive并搭建下载站

    更好的阅读体验欢迎访问博客白嫖5T空间Onedrive并搭建下载站 前言 白嫖一个微软E5账号不仅能自己使用office全家桶 xff0c 还能造福25个小伙伴 xff0c 何乐而不为 xff1f 这里借助onedirve的API和onei
  • 阿里云Linux(Debian) + Tomcat搭建网站

    工具 xff1a Linux 我买的是阿里云的主机Linux Debian64位的 Tomcat Java Web服务器 putty 连接远程主机的客户端 WinSCP 远程主机的可视化界面 xff0c 方便操作文件 jdk1 8 需要配置
  • 动态链接库(DLL)开发基础

    本周我的博客涉及到动态链接库的基础开发 我在刚开始学习动态链接库的开发 在网上找DLL开发基础知识教程时发现网上的资料还是太杂 xff0c 对初学者不太友好 xff0c 于是我就着手写了这篇博客 xff0c 本篇博客知识有DLL简介 DLL
  • Mybatis:使用Mybatis执行SQL多出“limit?“,原来这样就可以解决!!!

    问题展示说明 业务需要只展示分组排序后的前15条 xff0c 数据写了如下sql xff1a 启动项目访问接口后 xff0c 报如下错误 xff1a 解决办法 参考了一下MyBatis官网和其他博客发现需要清理一下之前设置过的Page缓存
  • .NET编程——利用C#实现远程桌面连接(WinForm)

    通过学习利用利用C 实现登录功能后 xff0c 本文将通过Visual Studio 2019运行实现远程桌面连接 目录 引言 前期准备 连接固定计算机 连接指定计算机 可能遇到的问题 引言 实现远程桌面有一个大前提是不可忽略的 xff0c
  • 单片机基础:什么是中断系统、中断系统如何用(附中断系统应用实例)

    中断系统 1 前言2 什么是中断3 什么是中断系统4 中断的流程5 中断的优先级控制6 中断源外部中断 7 与中断有关的特殊功能寄存器7 1 定时 计数器控制寄存器 96 TCON 96 7 2 串行口控制寄存器 96 SCON 96 7
  • 单片机基础:MCS-51单片机的硬件结构(附硬件结构框图)

    单片机硬件结构知识点非常琐碎 xff0c 通过一次两次的学习是不太可能记住的 想要熟练掌握硬件结构 xff0c 最好的方法是在实验中练习 xff0c 通过编程多见多用才能牢固的掌握 MCS 51单片机硬件结构 1 硬件系统框图2 单片机功能
  • 三种简单排序(冒泡、插入、选择)的比较和图解

    冒泡排序 这种排序方式是最容易理解的 xff0c 主体思想就是 xff1a 指针重复地走访过要排序的数列 xff0c 一次比较两个元素 xff0c 如果他们的顺序错误就把他们交换过来 走访数列的工作是重复地进行直到没有再需要交换 xff0c
  • 单片机基础:对单片机指令系统中七种寻址方式的理解

    七种寻址方式 1 立即寻址2 直接寻址3 寄存器寻址4 寄存器间接寻址4 1记录一下调试程序过程中遇到的一个错误 5 基址加变址寻址6 相对寻址7 位寻址 1 立即寻址 立即寻址就是不寻址 xff0c 直接把被操作的数据 立即数 写在指令当
  • Python课程设计:简单博客管理系统(完整代码)

    博客管理系统 1 框图及编程思路2 程序执行2 1主界面2 2登录后界面2 3注册信息保存格式2 4文章保存格式 3 代码 注意 xff1a 程序中涉及到文件路径的 xff0c 可以酌情修改电脑本地路径 这是我的Python语言的课程设计作
  • 单片机P0端口驱动数码管0-9循环显示(Proteus仿真+C语言程序)

    P0端口驱动共阳极数码管循环显示0 9 1 实验效果2 数码管3 Proteus仿真4 源代码 1 实验效果 2 数码管 一个数码管包含七段发光二极管 xff0c 通过控制每段二极管的亮灭 xff0c 继而显示出不同的数字 数码管分为共阴极
  • 数据库系统关系代数的学习

    前言 关系代数是一种抽象的查询语言 xff0c 是关系数据库查询语言的基础 xff0c 关系代数包括传统的集合运算和专门的关系运算 基本操作 并 差 笛卡尔积 投影 选择 组合操作 交 连接 自然连接 R S 除运算 良好的理解关系代数的几
  • 基于51单片机的矩阵按键学习

    一 矩阵按键 矩阵按键就是独立按键的结合体 xff0c 矩阵按键的优点是提高了I O端口的利用率 xff0c 用M 43 N个I O端口就可以控制M N个独立按键 而一个独立按键就需要一个I O端口来控制 xff0c I O端口的利用率很低
  • LCD1602液晶显示模块学习笔记

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