单片机学习笔记---LCD1602

LCD1602介绍

LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符(比如日文的片假名),还可以有8个自定义字符

显示容量:16×2个字符,每个字符为5*7点阵(其实是5*8的点阵,只不过字符只占了5*7)

引脚及应用电路

D0~D7口是数据口,代表一个字节的8位,是并行的传输接口

RS,RW,E控制数据是干什么的,或者控制什么时候改传输数据

我们开发板上的LCD1602的原理图

D0~D7接在单片机的P0口

内部结构框图

字模库就相当于数码管的段码表,其中CGRAM是可写的,是我们自定义字符的一个数据存储区。CGROM是不可写的,是内部固定的一个字模区。

我们想要它显示的数据实际上是写在DDRAM这一个存储单元里面去,然后再通过DDRAM里面的这个数据来向字模库找到相应字符的显示点阵的字模,然后再在屏幕的对应位置上显示我们的数据。DDRAM中虽然有40列,但是只有前16列才能映射到屏幕中。后面多出那么长可以利用内部指令向左移平,左边移出去的数据会重新回到右边来。如果我们循环使用移平指令的话就可以实现流动字幕的效果。

AC(光标位置)和我们前面将的AT24C02的这个地址计数器是一个东西,操作后会自动增加。我们可以把它想象成一个AT24C02,我们可以把光标位置设置在某个存储器的地址,然后写数据,那这个光标位置会自动加1向下,这样我们就可以连续写,就可以写一串数据了。

那这个AC的地址是怎么确定的呢?它也是我们的指令来确定的。

存储器结构

DDRAM(数据显示区)

CGRAM+CGROM(字模库)

它最多只能定义8个自定义字符。后面8个和前面8个地址是重复的地址,一样的。

后面都是ROM区,是固定的,不能改的字符,比如想要显示A,那它的索引码就是0100 0001,换成16进制就是0x41。

并且这个索引码和ASCII码值是一样的,所以我们在写索引码的时候可以直接用单引号把大写的A引出来’A’,就相当于写一个0x41

时序结构

写数据/指令

我们主要是给LCD1602写数据,所以读的时序就不管了。

LCD1602指令集

第一个指令(指令码0x01):清除AC就是光标复位,清除DDRAM就是清屏

第二个指令中*号是代表无关位

第三个指令(输入方式设置):我们常用的是0x06那个指令码

第四个指令(显示开关控制):我们常用的是0x0C那个指令码

第五个指令中的0x18指令码可以用来做流动字幕

第六个指令我们常用的是0x38那个指令码

第七个指令是可以用来设置自定义字符

第八个指令是很关键的一条指令,1固定在最高位。PS:比如如果想要把光标设置在第一行第一列,我们应该发的指令是0x80,因为最高位表示设置光标位置,剩下7个0就代表它的实际地址;如果想要设置在第二行第一列,那我们就设置成1100 0000=0xC0

我们一般不用读所以先不管第九条指令

LCD1602操作流程

初始化:

发送指令0x38 //八位数据接口,两行显示,5*7点阵

发送指令0x0C //显示开,光标关,闪烁关

发送指令0x06 //数据读写操作后,光标自动加一,画面不动

发送指令0x01 //清屏

显示字符:

发送指令0x80|AC //设置光标位置(原因请看前面第八条指令的举的例子就明白了)

发送数据 //发送要显示的字符数据

发送数据 //发送要显示的字符数据

……

以上就是本节的内容,下一节开始代码演示!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux 幻兽帕鲁服务器怎么上传存档文件?

通过控制台远程连接到 Linux 服务器后,你可以打开文件树,然后找到幻兽帕鲁存档位置,将存档压缩包上传到 Pal 目录中。 记得替换存档前要先停止服务。 2. 然后将 Saved.tar 文件解压,并完全替换新服务器上的 Saved 存档目录即可。 …

蓝桥杯:C++排序

排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的,而是对数值按位划分,按照以空间换取时间的思路来排序。看起来它们的复杂度更好,但实际…

真假难辨 - Sora(OpenAI)/世界模拟器的技术报告

目录 引言技术报告汉译版英文原版 引言 Sora是OpenAI在2024年2月15日发布的世界模拟器,功能是通过文本可以生成一分钟的高保真视频。由于较高的视频质量,引起了巨大关注。下面是三个示例,在示例之后给出了其技术报告: tokyo-wal…

博途PLC While指令编程应用(SCL代码)

FOR循环和While指令都可以实现循环控制。在循环体内部,你可以编写需要重复执行的代码。WhIile在每次循环开始之前,都会检查条件是否为真。如果条件为真,则执行循环体内的代码;如果条件为假,则跳出循环,继续…

Android Studio 实现图书借阅(管理)系统

🍅文章末尾有获取完整项目源码方式🍅 目录 前言 一、任务介绍 1.1 背景 1.2目的和意义 二、 实现介绍 视频演示 2.1 启动页实现 2.2 注册页面实现 2.3 登陆页面实现 2.4 图书列表的实现 2.5 当前借阅页面实现 2.6 我的页面实现…

你知道.NET的字符串在内存中是如何存储的吗?

一、字符串对象的内存布局 从“值类型”和“引用类型”来划分,字符串自然属于引用类型的范畴,所以一个字符串对象自然采用引用类型的内存布局。引用类型实例的内存布局总的来说整个内存布局分三块:ObjHeader TypeHandle Payload。对于一般…

如何在Windows中配置多个显示器?这里提供详细步骤

Windows可以通过多种方式使用多个显示器,扩展或复制主显示器。你甚至可以关闭主显示器。以下是如何使用简单的键盘快捷键更改辅助显示设置。 使用Windows+P投影菜单 要快速更改Windows 10处理多个显示器的方式,请按Windows+P。屏幕右侧会弹出一个名为“投影”的深灰色菜单。…

Codeforces Round 926 F. Sasha and the Wedding Binary Search Tree

F. Sasha and the Wedding Binary Search Tree 题意 给定一颗二叉搜索树,规定树上的所有点的点权都在范围 [ 1 , C ] [1, C] [1,C] 内,树上的某些节点点权已知,某些节点点权未知,求出合法的二叉搜索树的数量 思路 由于是二叉搜…

Web项目利用MybatisPlus进行分页查询

之前在写博客系统前台页面的时候,遇到了利用mp进行分页查询的情况,由于涉及到的知识点相对较为重要,固写一篇博客以此巩固。 一、功能需求 在首页和分类页面都需要查询文章列表。 首页:查询所有的文章分类页面:查询…

隐函数的求导【高数笔记】

1. 什么是隐函数? 2. 隐函数的做题步骤? 3. 隐函数中的复合函数求解法,与求导中复合函数求解法有什么不同? 4. 隐函数求导的过程中需要注意什么?

透光力之珠——光耦固态继电器的独特特点解析

光耦固态继电器作为现代电子控制领域中的重要组件,以其独特的特点在工业、通信、医疗等多个领域得到广泛应用。本文将深入剖析光耦固态继电器的特点,揭示其在电子控制中的卓越性能。 光耦固态继电器的光电隔离技术 光耦固态继电器以其光电隔离技术而脱颖…

深入了解社区店:定义、模式与优势

在当今的商业环境中,社区店正逐渐成为创业者们关注的热点。本文将以我的鲜奶吧店铺为例,深入探讨社区店的定义、模式和优势,为您提供最有价值的干货信息。 1、社区店的定义 社区店是指位于社区内或周边,以服务社区居民为主要目标…

Diffusion Transformer U-Net for MedicalImage Segmentation

用于医学图像分割的扩散变压器U-Net 摘要: 扩散模型在各种发电任务中显示出其强大的功能。在将扩散模型应用于医学图像分割时,存在一些需要克服的障碍:扩散过程调节所需的语义特征与噪声嵌入没有很好地对齐;这些扩散模型中使用的U-Net骨干网对上下文信…

2.15学习总结

2.15 1.聪明的质监员(二分前缀和) 2.村村通(并查集) 3.玉蟾宫(悬线法DP) 4.随机排列(树状数组逆序对问题) 5.增进感情(DFS) 6.医院设置(floyd) 聪明的质监员…

P1010 [NOIP1998 普及组] 幂次方题解

题目 任何一个正整数都可以用2的幂次方表示。例如137。 同时约定次方用括号来表示,即ab可表示为a(b)。 由此可知,137可表示为2(7)2(3)2(0),进一步:72 ( 用2表示),并且32。 所以137可表示为2(2(2)22(0))2(22(0))2(0…

ESP32学习(4)——电脑远程控制LED灯

1.思路梳理 首先需要让ESP32连接上WIFI 然后创建udp socket 接着接收udp数据 最后解析数据,控制LED 2.代码实现 import network from socket import * from machine import Pin p2Pin(2,Pin.OUT)def do_connect(): #连接wifi wlan network.WLAN(network.STA_IF)…

optee imx8mm

总仓库 git clone https://github.com/Xsyin/imx8mqevk.git -b container_region 替换imx8mqevk中的optee-client git clone https://github.com/nxp-imx/imx-optee-client.git -b lf-5.15.32_2.0.0 用 5.15.32 kernel 会有如下报错,需要将optee os升级到分支 lf-…

MySQL容器的数据挂载

挂载本地目录或文件 可以发现,数据卷的目录结构较深,如果我们去操作数据卷目录会不太方便。在很多情况下,我们会直接将容器目录与宿主机指定目录挂载。挂载语法与数据卷类似: # 挂载本地目录 -v 本地目录:容器内目录 # 挂载本地…

第9讲重写登录成功和登录失败处理器

重写登录成功和登录失败处理器 common下新建security包,再新建两个类,LoginSuccessHandler和LoginFailureHandler Component public class LoginSuccessHandler implements AuthenticationSuccessHandler {Overridepublic void onAuthenticationSuccess…

请标记你的龙年心愿关键词

昨天外孙陪我游了崇州市白头镇、道民镇(竹艺村),见我心情愉悦,今天再陪我去饱览其他风景名胜,所以笔者——本“人民体验官”特别推广人民日报官方微博文化产品《2024年第一批春花开了》《#大年初七#,标记你…