我在高职教STM32——LCD液晶显示(1)

news2024/10/6 1:37:39

        大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思的教学设计分享出来,主要面向广大师生朋友,单片机老鸟就略过吧。欢迎点赞+关注,各位的支持是本人持续输出的动力,多谢多谢!


 

        前边我们讲解了LED、按键和蜂鸣器的应用,这三类器件本身工作原理十分简单,因此我们的重点是放在STM32的GPIO上面。这一章我们来学习一下开发板配套的那块厚厚的液晶屏——LCD1602,聚焦的是这个器件本身的特点和工作时序。因此,我们需要熟读它的数据手册,因为手册里告诉了编程的要点、参数、时序等。阅读器件手册是做单片机和嵌入式开发必备的基本能力,我们就从这一章开始锻炼起来吧。为了不让篇幅太长,本章打算分四个部分来讲解,本文是第一部分。

【学习目标】

  1. 了解LCD1602的工作原理
  2. 掌握LCD1602的工作时序
  3. 领悟软件模拟时序的思路和方法

一、观察外部认识LCD1602

        大家学习这些电子器件,头脑中要逐渐形成一种意识,不管是强大复杂的STM32,还是简单的LED、三极管等等,都是有数据手册的。不管是设计电路还是编写程序,器件的数据手册是我们最好的参考资料。LCD1602的数据手册大家可以在网上很方便的找到,这里我们只挑手册的重点讲。

1.1 产品外观

        图1所示的就是LCD1602的正面和背面,从它的名字我们就可以看出它的显示容量,就是可以显示2行,每行16个字符的液晶。至于它为什么那么厚,因为它不单纯是块屏,屏下还集成了驱动电路、背光电路以及显示RAM。

图1 LCD1602的产品外观

1.2 电气参数

        接着来看它主要的技术参数,如下表所示。表中有两个地方需要解释一下:第一,LCD1602最佳工作电压是5.0V,而STM32的工作电压是3.3V,这就意味着它们不能共用一组电源。第二,在5V工作电压下测量它的工作电流是2mA,这仅仅是指液晶消耗的电流,而它的背光是用LED做的,所以功耗不会太小,一二十毫安还是有的。基于这两方面的需求,当连接LCD1602时,我们需要使用配套的电源适配器,并接到开发板DC5V的插座上,如图2所示。

表1 LCD1602的主要技术参数
图2 使用电源适配器给LCD1602供电

1.3 硬件接口

        LCD1602一共16个引脚(编号已在图1中标出),每个引脚的功能,我们都可以在它的数据手册上找到。而这些基本的信息,在我们设计电路和编写代码之前,必须先看明白,如表2所示。

表2 LCD1602引脚功能

1.3.1 电源和背光

        电源1脚2脚以及背光电源15脚16脚,不用多说,正常接就可以了,1脚和16脚接地,2脚和15脚接5V电源。

1.3.2 显示偏压

        3脚叫做显示偏压信号。大家注意到屏里的小黑块没有,如图3所示,当我们要显示一个字符的时候,有的黑点显示,有的黑点就不能显示,这样就可以实现我们想要的字符了。

图3 液晶屏的点阵字符

        3脚就是用来调整显示的黑点和不显示的之间的对比度,调整好了对比度,就可以让我们的显示更加清晰一些。在进行电路设计实验的时候,通常的办法是在这个引脚上接个电位器。通过调整电位器的分压值,来调整3脚的电压。而当产品批量生产的时候,我们可以把调好的阻值直接用简单电路来实现。观察我们开发板上LCD1602部分的原理图4,就直接使用了一个4.7K的定值电阻。

图4 开发板上的LCD1602原理图

1.3.3 数据/命令选择端口

        4脚是数据/命令选择端。对于液晶,有时候我们要发送一些命令,让它实现我们想要的一些状态,有时候我们要发给它一些数据,让它显示出来,液晶就通过这个引脚来判断接收到的是命令还是数据。大家注意学会读手册,看到这个引脚描述里:数据/命令选择端,而后跟了(H/L)。它的意思就是当这个引脚是H(High)高电平时,是数据;当这个引脚是L(Low)低电平的时候,是命令。

1.3.4 读/写选择端

        5脚和4脚用法类似,功能是读/写选择端。我们既可以写给液晶数据或者命令,也可以读取液晶内部的数据或状态,就是控制这个引脚。因为液晶本身内部有RAM,实际上我们送给液晶的命令或者数据,液晶需要先保存在缓存里,然后再写到内部的寄存器或者RAM中,这个就需要一定的时间。所以我们进行读写操作之前,首先要读一下液晶当前状态,是不是在“忙”,如果不忙,我们可以读写数据,如果在“忙”,我们就需要等待液晶忙完了,再进行操作。读状态是常用的,不过读液晶数据很少用,大家了解这个功能即可。

1.3.5 使能信号

        6脚是使能信号,很关键,液晶的读写命令和数据,都要靠它才能正常读写,我们后边结合时序再详细讲这个引脚怎么用。

1.3.6 数据端口

        7到14脚就是8个数据引脚了,我们就是通过这8个引脚读写数据和命令的。最后来看一下LCD1602与STM32引脚连接的原理图和实物图,分别如图5和6所示。

图5 引脚连接原理图
图6 实物连接

        关于LCD1602与STM32连接的端口,需要注意以下三个问题:

        第一,RS接的是PC6,RW接的是PA11,使能E接的是PC3,8位数据端口由高到低依次连接的是PC2 ~ PC0、PB9 ~ PB5,也就是说我们在做端口初始化的时候需要分别对GPIOA、GPIOB、GPIOC进行初始化配置。

        第二,由于8位数据端口占了GPIOC的3位和GPIOB的5位,因此我们在读写数据的时候需要分别读写这两组I/O口指定位上的数据,再把两组数据组合起来。在编程时涉及了多处C语言的位操作,请大家后面阅读代码时注意。

        第三,使能E连接的是PB4,而STM32在复位时,PA13/14/15 & PB3/4这些引脚默认配置为JTAG功能。这里我们只是把PB4当做普通I/O口来用,即禁用JTAG功能。因此,我们在对GPIO进行初始化的时候,需要额外再做两项配置,如代码清单1所示。

代码清单1 初始化GPIO的额外配置

(第一部分完,共四部分)

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

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

相关文章

基于CNN的掩码自编码器微调用于分类任务

开源仓库 JJLi0427/CNN_Masked_Autoencoder: Design a patches masked autoencoder by CNN (github.com)https://github.com/JJLi0427/CNN_Masked_Autoencoder CNN自编码器 前面的文章中我们模仿MAE的思路用CNN做了一个掩码自编码器 动手小实验,用CNN来构建Mase…

C++语法01 基本框架

目录 什么是 C ? 新建源程序 保存源程序 程序基本框架 #include using namespace std; int main() return 0; 编译 运行 什么是 C ? C语言,是基本的程序设计语言之一【程序设计语言,简单的来说就是编写代码来操控计…

【漏洞复现】Jenkins文件读取漏洞(CVE-2024-23897)

简介 jenkins是啥? 简单理解就是:一个开源的、用于方便代码管理、部署的基于web的平台,用于提高团队开发效率(生产力)。 Jenkins CLI 任意文件读取漏洞 CVE-2024-23897 是怎么回事? Jenkins提供了一个命令…

哈喽GPT-4o——对GPT-4o 文本创作的思考与看法

目录 用法1:创作小说用法2:创作散文用法3:创作诗歌1、古诗2、现代诗 用法4:创作儿童故事用法5:创作剧本 大家好,我是哪吒。 都说ChatGPT4o是目前文本创作的最强大模型,它都可以用于哪些方面的文…

Mac 安装HomeBrew(亲测成功)

1、终端安装命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"执行后,没有安装git,会先安装,安装后再执行一下命令。 2、根据中文选择源安装 3、相关命令 查看版本号&a…

Maven下载安装、环境配置(超详细)(包括Windows、IDEA)

目录 一、引言 二、下载和安装 Maven (1)首先保证 Java 的环境是正常的。 1、电脑桌面上右击 " 此电脑 ",点击属性。 2、点击高级系统设置。 3、点击环境变量。 4、找到系统变量中的 Path。 5、点击新建,然后把…

win10重装系统如何操作,附上详细系统重装图文教程(2024年新)

win10重装系统如何操作呢?电脑使用时间长了,会出现各种各样的问题,如重要的系统文件被删除导致电脑无法正常运行,电脑运行内存空间不足,电脑卡顿等。Win10重装系统很简单,这里分享超详细的重装系统方法&…

20240611-WWDC2024-visionOS 2/Apple Intelligence/ARKit

目录 1 visionOS 2 1)从2D图像提取左右眼的视角,生成空间照片——利用机器学习 2)提供丰富的API和框架 2 Apple Intelligence 1)自动对通知优先级排序、缩略通知、专注模式 2)Siri可以根据屏幕内容执行相关操作 …

AI赋能——六月转折点的高效赋能策略

致所有内容创作者的2024财富密钥:六月转折点的高效赋能策略 随着六月的脚步渐近,我们正站在一个前所未有的时代转折点上——一个由人工智能引领的变革时代。在这个关键时期,我们诚挚地向您推荐一套专为自媒体量身定制的效率提升方案&#xf…

用python克隆了前男友的声音

声音克隆开源项目推荐:MockingBird 项目简介 MockingBird 是一个由开源社区开发的声音克隆项目,托管在 GitHub 上。该项目旨在通过深度学习技术实现高质量的声音克隆,使用户能够合成任意人的声音,并生成自然、流畅的语音输出。M…

温湿度采集与OLED显示

目录 一、什么是软件I2C 二、什么是硬件I2C 三、STM32CubeMX配置 1、RCC配置 2、SYS配置 3、I2C1配置 3、I2C2配置 4、USART1配置 5、TIM1配置 6、时钟树配置 7、工程配置 四、设备链接 1、OLED连接 2、串口连接 3、温湿度传感器连接 五、每隔2秒钟采集一次温湿…

这个开源软件,送给爱读书的你!!【送源码】

对于喜欢阅读的人来说,一定经历过从一本厚厚的修仙书籍到MP3、MP4的阅读时代,再到现今的手机软件。 但是现在的阅读软件经常会遇见以下问题:比如广告弹窗太多,排版乱,甚至很多的APP都进入会员时代,再加上一…

Python爬虫实战案例之——MySql数据入库

Hello大家好,我是你们的南枫学长,咱们今天来学——爬虫之MySql数据入库。 话不多说,导入咱们的老朋友: Pymysql就是我们Python里面的mysql库,主要功能就是用来连接MySql数据库,那么下载还是一样的操作去进…

报表开发工具DevExpress Reporting v23.2 - 增强PDF导出、多平台打印等

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 DevExpress Reporting控件日前正式发布了v23.2…

05、部署 YUM 仓库及NFS 共享服务

目录 5.1 部署YUM软件仓库 5.1.1 准备网络安装源(服务器端) 1、准备软件仓库目录 2、安装并启用vsftpd服务 5.1.2 配置软件仓库位置(客户端) 5.2 使用yum工具管理软件包 5.2.1 查询软件包 1、yum list——查询软件包列表 …

JavaScript日期对象、DOM节点操作(查找、增加、克隆、删除)

目录 1. 日期对象2. DOM节点操作2.1 查找节点2.2 增加节点2.3 克隆节点2.4 删除节点 1. 日期对象 实例化日期对象: 获取当前时间: new Date()获取指定时间: new Date(2023-12-1 17:12:08) 日期对象方法: 方法作用说明getFullYear()获得年份获取四位年份getMonth…

建筑学跑路:揭秘热门转行新选择!

话说建筑学真的是我见过最关心同行的专业,每个建筑学跑路的帖子下面都有人问:你跑哪里去了? 很多人表示,我也想跑 当然不仅建筑学,园林的、城规的、土木的也会来凑热闹: 很多小伙伴分享了自己的转行经历&a…

【免费分享】全国shp数据汇总(中国湖泊、县界、公路、河流、铁路、国界线、经纬线、省会城市、省级行政区、县城驻地、线状省界)

ESRI Shapefile(shp),或简称shapefile,该文件格式已经成为了地理信息软件界的开放标准,也是重要的交换格式,能够在ESRI与其他公司的产品之间进行数据互操作。 Shapefile属于一种矢量图形格式,它…

电脑硬盘文件隐藏了怎么恢复数据?轻松上手不求人

在数字化时代,电脑硬盘中存储的数据对于个人和企业而言都至关重要。然而,有时我们可能会遇到一些意想不到的情况,比如硬盘中的文件突然消失了或者变成了隐藏状态。这种情况不仅让人感到困惑,还可能对日常工作和生活造成不小的影响…

cesium按照参数绘制不同形状的船舶

俺们公司之前有个自创的所谓前端GIS框架,是用Cesium搞的。我对该框架不熟悉,用它在地图上作画,画船舶符号,看以前的代码,感觉十分艰深晦涩,什么材质、纹理,令人头大如斗。我4年前用过一阵Cesium…