单片机学习笔记 5. 数码管静态显示

devtools/2024/11/20 14:13:19/

更多单片机学习笔记
单片机学习笔记 1. 点亮一个LED灯
单片机学习笔记 2. LED灯闪烁
单片机学习笔记 3. LED灯流水灯
单片机学习笔记 4. 蜂鸣器滴~滴~滴~


目录

0、实现的功能

1、Keil工程

1-1 数码管显示原理

1-2 静态与动态显示

1-3 74HC573锁存器的工作原理

1-4 上拉电阻的作用

1-5 原理图

2、代码实现

Q:发现如果没有代码最后一行的while(1),除了亮1之外,其他数码管还会亮!WHY?


0、实现的功能

        数码管的静态显示

1、Keil工程

1-1 数码管显示原理

        数码管在生活中运用的已经很广泛了。该板子用的是共阴极,可以拿万用表测数码管的公共端和任意一个管脚,来判断是共阴还是共阳极。
        不同端口控制不同管脚,给出共阴极的数码码表

1-2 静态与动态显示

        数码管的a b c d e是段选,P0口控制哪个管脚亮灭;公共脚GND是位选,P0口控制选择8个数码管中的某一个。静态显示就是让显示出的数字保持不变的状态,直到下一次输入新的状态

1-3 74HC573锁存器的工作原理

        IO口资源很宝贵,所以尽量增加外设电路的可操作性。首先OE是低电平有效,否则输出高阻态。其次就是LE的状态,高电平时,随输入D变化而变化;低电平时,锁存上一状态数据

1-4 上拉电阻的作用

        上拉电阻主要是可以钳位在高电平,且限流
        P0口不是准双向口,没有上拉电阻。开漏状态只能输出低电平,不能输出高电平

        P1 P2 P3口是准双向口,是有上拉电阻的。可以输出高低电平。所以要在P0加上拉电阻,实现输出高电平的效果

1-5 原理图

        实际上就是P0口的分时复用,P0口就8个口,但是要先控制选择哪个数码管(要8个管脚控制),再控制亮什么数字(要8个管脚控制)。

        为了同时实现这些条件,就需要用到锁存器,先位选出哪个数码管工作,锁存一下数据(因为一会要改变P0口数据实现亮什么数字),再段选出亮什么数字,再锁存一下

        U8是位选,先选择亮哪个数码管,共阴的位选是接地的,置0即可;U9是段选,控制亮的数字,置1即可

2、代码实现

#include <reg52.h>
#include <intrins.h>#define uchar unsigned char
#define uint unsigned intsbit WE = P2^7; //锁存器位选,U8的LE,选择哪个数码管
sbit DU = P2^6; //锁存器段选,U9的LE,控制亮什么数字//延时模块
//void delay(uint z)
//{
//	uint x;
//	uint y;
//	for(x = z; x > 0; x--)
//		for(y = 114; y > 0; y--);
//}void main()
{WE = 1;//位选锁存器打开P0 = 0xfe;//选择第一个数码管WE = 0;	//关上位选锁存器,进入锁存DU = 1;//段选锁存器打开P0 = 0x06;//亮的数字为1DU = 0;//关上段选锁存器,进入锁存WE = 1;//位选锁存器打开P0 = 0x0;//选择第二个数码管WE = 0;	//关上位选锁存器,进入锁存DU = 1;//段选锁存器打开P0 = 0x5B;//亮的数字为2DU = 0;//关上段选锁存器,进入锁存while(1){}	
}

        这段代码会发现结果只显示2,因为静态显示当下一个操作来的时候,上一个锁存的数据就没了。实物展示:

        此时静态显示只能亮同一个数字,想要同时亮多个不一样的数字需要把代码写到循环里


Q:发现如果没有代码最后一行的while(1),除了亮1之外,其他数码管还会亮!WHY?


http://www.ppmy.cn/devtools/135498.html

相关文章

【GNU】反汇编工具objdump

1、什么是 objdump objdump 是 GNU Binutils 工具集中的一个命令行工具&#xff0c;用于分析和显示目标文件&#xff08;如二进制文件、目标文件、静态库和可执行文件&#xff09;的详细信息。它是开发调试、优化和逆向工程的利器。他可以做到&#xff1a; 反汇编功能&#x…

01_MinIO部署(Windows单节点部署/Docker化部署)

单节点-Windows环境安装部署 在Windows环境安装MinIO&#xff0c;主要包含两个东西&#xff1a; MinIO Server&#xff08;minio.exe&#xff09;&#xff1a;应用服务本身MinIO Client&#xff08;mc.exe&#xff09;&#xff1a;MinIO客户端工具&#xff08;mc&#xff09;…

linux中的SIGPIPE信号有什么用?

信号概述 SIGPIPE是一种信号&#xff0c;信号是Unix和类Unix系统中用于进程间通信的一种机制&#xff0c;用于通知进程发生了某个特定的事件。当一个进程接收到SIGPIPE信号时&#xff0c;它表明在管道或者套接字的写入操作出现了问题。 在管道中的应用 管道原理简介&#xff1…

使用 Vue 和 Create-Vue 构建工程化前端项目

目录 前言1. 工程化的意义与 Vue 的生态支持2. 搭建 Vue 工程化项目2.1 环境准备2.2 使用 create-vue 创建项目2.2.1 初始化项目2.2.2 安装依赖2.2.3 本地运行 3. Vue 项目的目录结构解析4. Vue 开发流程详解4.1 项目入口与根组件4.1.1 main.js 的作用4.1.2 App.vue 的结构 4.2…

grafana+prometheus+windows_exporter实现windows进程资源占用的监控

grafanaprometheuswindows_exporter实现windows进程资源占用的监控TOC 一、 管理端搭建&#xff0c;采用windows版本的grafanaprometheus 管理端安装部署不做本文终端&#xff0c;简单讲解一下&#xff0c;此处采用msi的grafana安装包&#xff0c;和免安装版本的prometheus 1…

机器学习—诊断偏差和方差

给定这个数据集&#xff0c;如果在上面画一条直线&#xff0c;它做得不太好&#xff0c;我们说这个算法有很高的偏差或者它不符合这个数据集&#xff0c;或者拟合一个四阶多项式&#xff0c;然后它有很高的方差&#xff0c;或者它太合身了&#xff0c;在中间&#xff0c;如果你…

【金融风控项目-07】:业务规则挖掘案例

文章目录 1.规则挖掘简介2 规则挖掘案例2.1 案例背景2.2 规则挖掘流程2.3 特征衍生2.4 训练决策树模型2.5 利用结果划分分组 1.规则挖掘简介 两种常见的风险规避手段&#xff1a; AI模型规则 如何使用规则进行风控 **使用一系列逻辑判断(以往从职人员的经验)**对客户群体进行区…

Uniapp 引入 Android aar 包 和 Android 离线打包

需求&#xff1a; 原生安卓 apk 要求嵌入到 uniapp 中&#xff0c;并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你&#xff0c;从 apk 到 aar&#xff0c;以及打包冲突到如何运行&#xff0c;期间我所遇到的问题都会 一 一 进行说明&#xff0c;相关版本以我文章内为…