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

news2024/11/20 2:20:38

一、LCD1602基础知识及接线方法

  1. LCD1602是一种工业字符型液晶,能够同时显示16x02即32字符(16列两行)

  1. 引脚说明

1 : VSS 为电源地

2 : VDD 接 5V 正电源

3 : VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。

4 :RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

  • 当RS=1时,发的是高电平数据(写的内容)

  • 当RS=0时,发的是低电平数据(写的地址)

5 :R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。

6 :E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。

714 :D0~D7 为 8 位双向数据线。

15 :背光源正极。

16 :背光源负极。

  1. LCD1602和上官一号的接线方式

左侧:LCD1602,右侧:上官一号
//电源线
VSS---GND
VDD---5V
//对比度
VO---GND
//控制线
RS---P1.0
RW---P1.1
E---P1.4
//背光灯
A---5V
K---GND
//数据
D0到D7---P0.1到P0.7

二、如何让C51单片机发送的数据,显示在LCD1602的显示屏上

1.首先要确认两件事

  • 告诉LCD1602显示屏,在哪里显示

  • 显示什么内容

2.内部显示地址

3.举例:在第一行的05位置写一个字符“c”,怎么写:

  • 告诉LCD1602显示屏,在哪里显示

  • 首先定义到05的地址,正常05转换成二进制是0000 0101,但是要求写入显示地址时要求最高位 D7 恒定为高电平 1,所以05转换成二进制后为1000 0101在转换成十六进制是:0x85,所以单片机最后传到LCD1602的数据,告诉传到05位置,显示真正的地址是0x85

  • 显示什么内容

  • 直接写字符就可以,比如写个字符"c"

三、LCD1602写时序分析

1.写操作时序

  • 怎么区分写的是地址,还是内容?

  • 参数上述的引脚说明中的第四引脚

  • 4 :RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

  • 当RS=1时,发的是高电平数据(写的内容)

  • 当RS=0时,发的是低电平数据(写的地址)

  • 一般用的时候会封装成两个函数,一个是专门写地址的函数,一个是专门写内容的函数

  • RW:在写操作时,可以一直写0,即RW=0;

  • E:是一个从低电平上升到高电平(这个过程中有一个延时,时间是25ns)然后高电平持续的时间是150ns,最后从高电平下降到低电平的过程(这个过程中也有一个延时,时间是25ns),刚才说的延时时间,一般可以用 _nop_() 函数来替代

2.读操作时序

  • 其他指令暂不做考虑,暂时只看指令9

指令 9:读忙信号和光标地址。BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

  • 怎么检测忙数据?

RS :通过看指令9得知,RS=0

RW:在读操作时,可以一直写1,即RW=1

E:是一个从低电平上升到高电平(这个过程中有一个延时,时间是25ns)然后高电平持续的时间是150ns,最后从高电平下降到低电平的过程(这个过程中也有一个延时,时间是25ns),刚才说的延时时间,一般可以用 _nop_() 函数来替代

  • D7的最高位地址要为BF;BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙

所以D7的最高位地址是1,例如(1000 0000,转换成十六进制是0x80);

  • 写操作时序和读操作时序的区别

写操作时序:在低电平时就开始写入了

读操作时序:在高电平时才开始读取数据

3.LCD1602 初始化过程(8bit)

(1)延时 15ms

(2)写指令 38H(不检测忙信号)

(3)延时 5ms

(4)以后每次写指令,读/写数据操作均需要检测忙信号

(5)写指令 38H:显示模式设置

(6)写指令 08H:显示关闭

(7)写指令 01H:显示清屏

(8)写指令 06H:显示光标移动设置

(9)写指令 0CH:显示开及光标设置

四、编程实现LCD1602显示字符“C”

  1. 编写代码

  1. 执行结果

五、编程实现LCD1602显示一行

  1. 编程代码

  1. 执行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Neo4j构建知识图谱】:官方服务图谱大型数据集下载与可视化方法【数据集包括:食谱数据、足球、权力的游戏、美国宇航局、英国公司注册、财产所有权、政治捐款】

目录 1、服务端口免费查看知识图谱2、关于 Neo4j 示例数据集的实现3、下载离线数据集4、项目概览与实现案例还可以看到解析python源码还可以看到解析cypher源码各种数据集实现案例参考1、服务端口免费查看知识图谱 此服务器托管许多具有只读访问权限的数据集,供公众使用。 该…

2022尚硅谷SSM框架跟学(三)MyBatis基础三

2022尚硅谷SSM框架跟学 三 MyBatis基础三9.动态SQL9.1if9.2where方法一:加入恒成立的条件方法二:使用where标签9.3trim9.4choose、when、otherwise9.5foreach9.51批量添加9.52批量删除批量删除方式1批量删除方式2批量删除方式39.6SQL片段10.MyBatis的缓存10.1MyBatis的一级缓存…

JS基础(一)——认识JS及其基础语法

网页的三个组成部分 HTML:用于控制网页的内容CSS:用于控制网页的样式JavaScript:用于控制网页的行为 网页的行为指用户与浏览器的行为交互、浏览器与浏览器与服务器的数据交互。 ECMAScriptS(ES) ECMAScriptS是Java…

OpenCV入门

OpenCV入门图像金字塔高斯金字塔(cv2.pyrUp、cv.pyrDown)拉普拉斯金字塔边缘检测图像轮廓 (cv2.findContours)轮廓特征(cv2.contourArea、cv2.arcLength)轮廓近似(cv2.approxPolyDP)边界矩形、外接圆(cv2.boundingRect、cv2.minEnclosingCircle)模板匹配…

C库函数:time.h

time.h C 标准库 – <time.h> | 菜鸟教程 (runoob.com) 库变量 下面是头文件 time.h 中定义的变量类型&#xff1a; 序号变量 & 描述1size_t 是无符号整数类型&#xff0c;它是 sizeof 关键字的结果。2clock_t 这是一个适合存储处理器时间的类型。3time_t is 这是一…

C库函数:math.h

math.h C 标准库 – <math.h> | 菜鸟教程 (runoob.com) 16double pow(double x, double y) 返回 x 的 y 次幂。17double sqrt(double x) 返回 x 的平方根。18double ceil(double x) 返回大于或等于 x 的最小的整数值。19double fabs(double x) 返回 x 的绝对值。20doubl…

矩阵分析:QR分解

Householder变换 Householder变换是一种简洁而有意思的线性变换&#xff0c;也可称为镜面反射变换&#xff0c;Householder变换矩阵为HI−wTwHI-w^TwHI−wTw 考虑向量α\alphaα和一个单位向量w:wTw1w:w^{T}w1w:wTw1 α\alphaα在www 方向上的分量是 αw//(wTα)wwwTα\alpha _…

Python快速制作自动填写脚本:100%准确率

嗨害大家好鸭&#xff01;我是小熊猫~ 环境使用 Python 3.8Pycharm 模块使用 import requests —> 数据请求模块 pip install requestsimport parsel —> 数据解析模块 pip install parselfrom selenium import webdriver —> 自动测试模块 pip install selenium3.…

#H. Linear Approximation

Description给你一个数列A&#xff0c;希望你找出一个数字B。使得下面这个式子的值最小Abs(A1-(B1))Abs(A2-(B2))Abs(A3-(B3))..........Abs(An-(Bn))FormatInput第一行给出输入n第二行给出数列A,数字的值在[1,1e9]N<2e5Output如题Samples输入数据 152 2 3 5 5输出数据 12思…

WQS二分

本博客以一种较为少见的方式来解释WQS二分。 题目 首先&#xff0c;WQS二分用于解决什么问题&#xff1f; 我们先看一个伞兵题目&#xff1a; 有一个 nnn 个数的数组 aaa。 求在 aaa 中恰好选择 mmm 个数的情况下&#xff0c;选择的数的和的最大值。 你现在看到了这个题目&a…

Jenkins基于Blue Ocean UI构建流水线

目录 一、Blue Ocean 简介 二、Blue Ocean 安装 2.1 安装 Blue Ocean 插件 2.2 安装 Blue Ocean 版本的 Jenkins 3. 构建流水线 4. 创建流水线 5. 选择代码仓库 6. 连接Git仓库 7. 创建流水线 详细信息可以参考官网&#xff1a;Blue Ocean 入门 一、Blue Ocean 简介…

牛客竞赛每日俩题 - Day13

目录 洪泛法BFS 26进制计数字符串 洪泛法BFS 红与黑__牛客网 循环接收每组用例&#xff0c;对于每组用例进行如下操作&#xff1a; 找到‘’所在的位置&#xff0c;即起始搜索的点 使用DFS搜索地板中的每块瓷砖&#xff0c;如果是黑色&#xff0c;给计数1&#xff0c;然后像…

JavaSE学习day2_01, 数据类型

1. 数据类型 1.1 Java中数据类型的分类,重点 基本数据类型 引用数据类型 1.2 基本数据类型的四类八种 整数类型&#xff1a;byte、short、int、long 浮点类型&#xff1a;float、double 字符类型&#xff1a;char 布尔类型&#xff1a;boolean,只有两个取值,true和false…

HW13 Network Compression网络压缩

文章目录一、任务描述1、介绍知识蒸馏2、介绍架构设计二、实验1、simple baselineconfigs结构设计训练2、medium baselineconfigs3、strong baselineconfigsReLu和leakyRelu知识蒸馏一、任务描述 ●网络压缩&#xff1a;使您的模型更小而不损失性能。 ●在这个任务中&#xff…

初级算法之深度搜索

目录 ​编辑 概述&#xff1a; 个人对深搜的理解&#xff1a; 深搜模板&#xff1a; 例题&#xff1a; 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码图示&#xff1a; 概述&#xff1a; 在我们刷算法的过程中肯定会想到暴力通过&#xff0c;暴力是不需要…

分类预测 | MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特征分类预测

分类预测 | MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特征分类预测 目录 分类预测 | MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特征分类预测分类效果基本介绍程序设计学习小结参考资料分类效果 基本介绍 MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特…

行为型-策略模式

策略模式简介 策略模式&#xff08;Strategy Pattern&#xff09;属于对象的行为模式。其用意是针对一组算法&#xff0c;将每一个算法封装到具有共同接口的独立的类中&#xff0c;从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。其主要目…

【Kotlin】空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )

文章目录一、Kotlin 中的异常处理1、捕获并处理异常2、抛出自定义异常一、Kotlin 中的异常处理 在 Kotlin 程序中 , 处理异常 的方式有 : 抛出默认异常抛出自定义异常捕获并处理异常 1、捕获并处理异常 捕获异常代码示例 : 在下面的代码中 , name 变量是可空类型变量 , 其初始…

C语言入门(三)——简单函数

数学函数在数学中我们用过sin和ln这样的函数&#xff0c;例如Vin(ʌ &#xff0c;ln10等等&#xff0c;在C语言中也可以使用这些函数&#xff08;ln函数在C标准库中叫做log&#xff09;&#xff1a;在C语言中使用数字函数#include <math.h> #include <stdio.h> int…

生物化学 SY003地西泮(三大经典药物的老三)

历史 1864年 巴比妥酸 2,4,6-三羟基嘧啶, 丙二酰脲 “芭芭拉的尿酸” 巴比妥酸是一种有机化合物&#xff0c;化学式为C4H4N2O3&#xff0c;它由德国化学家阿道夫冯拜尔在研究尿酸时发现。巴比妥酸的德语名称“Barbitursure”衍生自拜尔的爱人芭芭拉&#xff08;Babara&#xf…