LCD1602设计(3)-读写时序

单片机:如何读取时序图(以LCD1602为例) 第13章 1602液晶与串口的应用实例 LCD1602读写时序图 大家看到这种图的时候,不要感觉害怕。说句不过分的话,单片机这些逻辑上的问题,只要小学毕业就可以理解的,很多时候是因为大家把问题想象的太难才学不下去的。 我们先来看一下读操作时序的 RS 引脚和 R/W 引脚,这两个引脚先进行变化,因为是读操作,所以 R/W 引脚首先要置为高电平,而不管它原来是什么。读指令还是读数据,都是读操作,而... 阅读详情

 本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步!

> 发布人:@日月同辉,与我共生_单片机-优快云博客

> 欢迎你为独创博主日月同辉,与我共生点赞❤❤❤+关注👍+收藏🌹+评论☺。

系列专栏: 优快云-单片机串口通信学习系列🎁

> 我的格言是:“尽最大努力,做最好的自己!💪

要转载,请提前告知!!!

版权声明:本文为优快云博主「日月同辉,与我共生」的原创文章,优快云独一份。

目录

一、回顾上文

二、读时序

2.1时序图

2.2读忙检测

三、写时序

3.1时序图

3.2写命令

3.3写数据

四、LCD1602指令表

一、回顾上文

上文整理了LCD1602指令的宏定义,让我们一起回顾一下吧!

LCD1602设计(2)-指令宏定义完整版

二、读时序

2.1时序图

读指令,主机(单片机)读取从机(LCD1602)的指令(如读忙指令等)。

如何读指令呢?要看懂时序图。

要知道读指令,RS=0,RW=1。由时序图可知,先将RS端口拉到低电平,RW端拉到高电平,接着使能端E拉到高电平并持续一段时间,在此期间主机(单片机)读取LCD1602指令后,使能端E拉到低电平。

一般情况下,读指令读的是忙指令,即LCD1602忙不忙,不忙可以让LCD1602工作(如写数据等),忙则无法让LCD1602不工作。

忙时,BF=1;不忙,BF=0。(BF是最高位DB7)。

2.2读忙检测

state&0x80,就是DB0-DB6清0,DB7(BF)保留state的最高位,用与判断数据忙不忙。

如果LCD1602要写指令/数据,要等LCD1602不忙,即检测到LCD1602不忙。

如果LCD1602忙,就要不断执行do-while循环语句,直至LCD1602不忙为止。

void LCDReadBF() //读忙检测(读命令)
{
	unsigned char i;
	unsigned char state;
	LCD1602_DB=0XFF;
	LCD1602_RS=0;
	LCD1602_RW=1;
	do
	{
	  LCD1602_E=1;
	  state=LCD1602_DB;//将LCD1602
	  LCD1602_E=0;
		i++;
		if(i>200)
			break;
	}
	while(state&0x80); //判断忙不忙,BF=1忙;BF=0不忙
}

三、写时序

3.1时序图

写指令,RS=0,RW=0。由时序图可知,将RS端拉成低电平,RW端拉成低电平,接着在LCD1602不忙的情况下,写命令(命令表可以看上一文章:),接着将使能端E拉成高电平一段时间后,再拉成低电平。

3.2写命令

要写命令,就要先检测LCD1602忙不忙。

void LCDWriteCmd(unsigned char cmd) //写命令
{
	LCDReadBF();//先检测LCD1602忙不忙
	LCD1602_RS=0;
	LCD1602_RW=0;
	LCD1602_DB=cmd;//写命令给LCD1602
	LCD1602_E=1;
	LCD1602_E=0;
}

3.3写数据

要写数据,就要先检测LCD1602忙不忙。

void LCDWritedata(unsigned char dat) //写数据
{
	LCDReadBF();//检测LCD1602忙不忙
	LCD1602_RS=1;
	LCD1602_RW=0;
	LCD1602_DB=dat;//将数据dat发给LCD1602
	LCD1602_E=1;
	LCD1602_E=0;
}

四、LCD1602指令表

大家可以保留此文章,以便需要时找不到。

亲爱的读者敬请期待,下一文更精彩!!!

一日不读书,胸臆无佳想。我叫不白吃,喜欢我的,可以支持我,博主名叫@日月同辉,与我共生

@日月同辉,与我共生_单片机基础,单片机串口通信-优快云博客@日月同辉,与我共生擅长单片机基础,单片机串口通信,等方面的知识,@日月同辉,与我共生关注stm32,c语言,51单片机,proteus,单片机领域.https://blog.youkuaiyun.com/LIN___IT?spm=1000.2115.3001.5343

FPGA学习之LCD1602基本知识(控制,显示,时序)(一) FPGA学习之LCD1602基本知识(控制,显示,时序) 前言 LCD1602顾名思义就是显示两行,每行16个字符。如下图所示: LCD1602的控制线主要有4根: (1)RS:数据/指令选择端,当RS = 0时,写指令,当RS = 1时,写数据 (2)RW:读/写选择端,当RW = 0时,写指令/数据,当RW = 1时,读状态/数据 (3)EN:使能端,下降沿使指令/数据生效 (4)data[7:0]:8根并行数据口 那LCD1602总共引出的接口信号线如下图所示: 其中VL代表液晶显示器对比度调整端 阅读详情

相关推荐

单片机外设:LCD1602详细解析(免费获取51代码和仿真)

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

Sw0508的博客 4473

初识LCD1602及编程实现字符显示

初识LCD1602及编程实现字符显示

l_z_y_000的博客 6366

LCD1602屏幕简介(全网最详细教程)

要想搞懂1602如何显示,就只需搞懂两个问题(在哪显示,如何显示)。LCD1602可以显示16*2个字符且通过D0-D7八个引脚传输数据八位数据,每一个显示的位置都对应上图的一个地址。例如我想在第一行的第三个位置显示,那么就可以锁定上表中的“02”,换算成二进制就是0000 0010。听上去很简单,但是LCD1602有个特点就是写入显示地址时要求最高位 D7 恒定为高电平。所以我们想显示真实的地址应该为1000 0010。

aaaaaaaa123345的博客 9万+

【 LCD1602显示屏】使用STC89C51控制1602显示、读写操作时序

LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 16×02 即 32 字符(16列两行。初始化LCD1602:发送初始化指令,使LCD1602进入8位模式,并设置显示参数(如光标显示、显示开关等)。 2. 指令发送:使用80C51向LCD1602发送命令和数据。通过控制RS、RW和E引脚,并发送8位数据。 3. 编写显示函数:编写函数以在LCD1602上显示字符和字符串,包括光标移动、清屏等功能

qq_40064717的博客 2156

DS1302时钟与LCD1602液晶显示

DS1302时钟     DS1302是一个实时时钟芯片,它在实时显示时间中应用。它可以对年、月、日、周、时、分、秒进行计时。 DS1302的引脚及原理图如下:     它与CPU的连接需要SCLK(7)、I/O(6)和RST(5)三个引脚,VCC2和VCC1分别为主电源和备份电源,X1和X2分别接外部振荡器。在于CPU的通信中I/O用来传输数据,RST作为复位信号,SCLK用来控制

任长江 2万+

LCD1602的使用详解

LCD1602原理 ,LCD1602显示自定义字符,汉字等原理和方法

黄嘟嘟博客 4万+

STM32驱动LCD1602,哪位同学需要的,来了

问题由来 我们之前分享过了数码管、OLED、LCD12864,最近群里小伙伴有需要STM32驱动LCD1602的源码,咱们今天就分享一下,如何使用STM32驱动LCD1602液晶屏,授人以鱼不如授人以渔,一起来看看怎么驱动LCD1602。 淘宝下单买一个: LCD1602的意思就是每行可以显示16个字符,一共可以显示2行内容。 开发环境与工具 Keil 5 公众号开源的最小系统核心板 PC为Win10 3.3V LCD1206的型号为:1602A 引脚定义 LCD1602一共有16个引脚,具体定义如

程序员小哈的专栏 1万+

LCD1602液晶显示屏使用方法

LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:16×2个字符,每个字符为5*7点阵LCD1602背面的两个黑色的块是芯片,是自带扫描功能的,只需将字符传给LCD1602,芯片便会自己扫描显示可以看到,8位的数据都接到了单片机的P0口,控制位EN、RS、WR分别接到了P2.7、P2.6、P2.5口,后续编写代码时,初始化这几个引脚即可编写代码往DDRAM中写入指令或者数

weixin_46251230的博客 1万+

51单片机入门——LCD1602

文章目录1.初识 LCD16021.1.1602 液晶的硬件接口1.2.1602 液晶的读写时序1.3.1602 液晶的指令2.实例2.1.显示字符2.2.整屏移动 1.初识 LCD1602 LCD ( Liquid Crystal Display 的简称)液晶显示器。 LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。 1.1.160

倾晨灬雨曦的博客 1万+

基于51单片机的LCD1602显示温湿度

51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机。中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目一:秒表设计 项目二:LCD1602显示器显示内容 项目三:循迹+蓝牙小车 LCD1602显示屏 ...

m0_56197680的博客 8407

LCD1602汇编代码

汇编代码 main.asm $INCLUDE(LCD1602.INC) ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP, #60H LCALL LCD_INIT MOV 30H, #'A' LCALL LCD_W_DATA MOV 30H, #'B' LCALL LCD_W_DATA SJMP $ END LCD1602.asm ;程序名...

小耀子的博客 5929

STM32驱动lcd1602,并口8位 6800时序

STM32驱动lcd1602,并口8位 6800时序 一、LCD1602(3.3V硬件版本)简介 1.1 引脚 引脚,lcd1602采用标准接口,6800时序8位并行数据传输。 第 1 脚:VSS 为地电源。 第 2 脚:VDD 接 3.3V 正电源。 第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对 比度过高时会产生“鬼影”,使用时可以通过一个 10K 的...

wo4fisher的博客 1万+

C51: LCD1602如何显示3个汉字?

** 结论 ** 先说结论,不行。 自定义的汉字,每个占4个字模,而LCD1602的CGRAM只允许自定义8个。那么该如何显示3个汉字(12个字模)呢? 我先设置每个汉字的上面一半,也就是6个字模。显示完后,再定义下面一半。 LCD1602自定义字模的指令是01XX XXXX,从0x40到0x7f总共64个字节,8个字模。 字模分别从0x40,0x48,0x50,0x58,0x60,0x68,0x...

痛苦的时候装出幸福相,这不是那么难做到的事 9779

LCD1602液晶

1602液晶,从名字就可以看出它的显示容量,就是可以显示2行,每行 16个字符的液晶。

surymy 1万+

ESP8266 + MQTT :如何实现 LED 灯的远程控制

MQTT 是轻量级的、灵活的物联网消息交换和数据传递协议,致力于为 IoT 开发人员实现灵活性与硬件/网络资源的平衡。 NodeMCU 是一个开源的物联网平台。它使用 Lua 语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。 在此项目中我们将实现 NodeMCU(ESP8266) 与 EMQ X Cloud 运营和维护的免费公共 MQTT 服务器远程控制 LED 灯,并使用 Arduino IDE 来对 NodeMCU ESP8266 进行编程。 EMQ X Cloud

emqx_broker的博客 3357

XCKU060光纤卡学习资料保存:基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡

基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡 一、板卡概述 本板卡系我司自主研发,基于XilinxUltraScaleKintex系列FPGAXCKU060-FFVA1156-2-I架构,支持PCIEGen3x8模式的高速信号处理板卡,搭配两路40GQSFP+接口,两组64-bitDDR4,每组容量8Gbyte,可稳定运行在2400MT/s。板卡具有自控上电顺序,BP...

3073

基于FPGA的LCD1602驱动(含代码)

LCD驱动:初始化+写数据 (含代码)

居安士的博客 7611

【漏洞复现】7-Zip目录穿越漏洞(CVE-2025-11001)

摘要:CVE-2025-11001是7-Zip(v21.02-v24.09)Windows版处理ZIP包符号链接时的高危漏洞,攻击者可构造恶意ZIP文件实现目录穿越和任意文件写入。漏洞源于路径检查缺陷,当用户解压含特殊符号链接的压缩包时,可能将文件写入系统目录。复现利用GitHub公开的Python脚本(https://github.com/pacbypass/CVE-2025-11001)可生成攻击包,需注意该漏洞仅影响Windows且需要用户交互。

LongL_GuYu的博客 1607

液晶LCD1602使用介绍

LCD1602液晶也叫1602字符型液晶模块,LCD1602液晶是一种专门用来显示字母、数字、符号的点阵型液晶模块。

weichen_78的博客 2万+

UsualToolCMS-验证码绕过漏洞复现

本文以UsualToolCMS为靶场,复现了验证码绕过漏洞

小小小屿屿屿的博客 918

如何用DETR(detection transformer)训练自己的数据集

DETR(detection transformer)简介 DETR是Facebook AI的研究者提出的Transformer的视觉版本,是CNN和transformer的融合,实现了端到端的预测,主要用于目标检测和全景分割。 DETR的Github地址:link

weixin_50233398的博客 3万+

51单片机之LCD1602驱动

1602液晶也叫1602字符型液晶,它能显示2行字符信息,每行又能显示16个字符。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。

weixin_44453694的博客 2595

【正点原子STM32连载】第六十章 串口IAP实战:从Bootloader到APP的无缝升级

本文以正点原子STM32F103开发板为例,详细讲解了串口IAP(在应用编程)技术的实现原理与实战步骤。内容涵盖Bootloader与APP的分工、FLASH空间规划、核心代码解析以及Ymodem协议的应用,旨在帮助开发者掌握通过串口为嵌入式设备实现远程固件升级的关键技术,提升产品维护与迭代效率。

weixin_29161719的博客 445

C51单片机LCD1602驱动程序

C51单片机LCD1602驱动程序LCD1602简介1602的引脚操作时序写操作时序时序参数LCD1602关键性操作一、初始化二、清屏指令二、进入模式设置指令三、显示开关控制指令四、功能设定指令RAM地址映射图 LCD1602简介 LCD1602字符型液晶(每行显示16个字符,一共可以显示两行)——一种专门用来显示字母、数字、符号的点阵型液晶模块。它由若干个57或者510的点阵字符组成,每个点阵字符位都可以用来显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此

阿昌 1万+

STM32F103多通道PWM输出避坑指南:TIM1_CH1异常输出的解决方案

本文深入解析STM32F103多通道PWM输出中的TIM1_CH1异常问题,提供从时钟配置到GPIO复用的系统化解决方案。通过黄金法则配置流程和高级调试技巧,帮助开发者快速定位并解决PWM输出不稳定、占空比异常等问题,同时拓展多定时器协同和互补PWM等高级应用场景。

weixin_29194817的博客 117

D16: OpenClaw + Notion API:知识管理新玩法

本文介绍了如何利用OpenClaw连接Notion API构建自动化知识管理系统。文章首先分析了传统知识管理的痛点,包括信息分散、更新不及时等问题,并对比了Notion与其他工具在API完整性、结构化程度等方面的优势。接着详细说明了Notion API的获取和授权流程,并设计了包含项目知识库、技术决策库和会议纪要库的三层架构系统。最后通过会议纪要自动归档的实战案例,展示了如何通过YAML配置实现从飞书会议到Notion的自动化知识沉淀流程。该方案能有效解决团队知识管理中的信息碎片化问题,提升协作效率。

刘一说的IT专栏 274
上一篇: LCD1602设计(2)-指令宏定义完整版
下一篇: LCD1602命令代码整合
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值