04节-51单片机-数码管模块

1.静态数码管显示

LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件
在这里插入图片描述
下图展示了数码管的线路连接
在这里插入图片描述
数码管的连接方式分为,公共端,共阴极和共阳极连接:
在这里插入图片描述
多个数码管共用引脚,该共用引脚的方式,只能显示一位数,动态数码管显示的原理,通过快速的扫描,迷惑肉眼,使其看起来显示多位数。
在这里插入图片描述

在这里插入图片描述
通过138译码器
,可以实现位选(COM公共端选中),主要工作原理为:
通过给P22,P23,P24引脚赋值,即给端口A,B,C赋值来选择共用端LED1~LED8
!!C是高位啊。

CBAY
000Y0
001Y1
010Y2
011Y3
100Y4
101Y5
110Y6
111Y7

例如:若我将P22=0,P23=0,P24=0,则我通过138译码器选择了Y0,也就是位选到LED1,再根据下图P0引脚设置高低电平,显示目标数字。
在这里插入图片描述
其中:
74HC245为双向数据缓冲器,有利于提高驱动能力,使得数码管看起来更亮
74HC245的作用:信号功率放大。
第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。
第2~9脚“A”信号输入输出端,A1=B1、、、、、、A8=B8,A1与B1是一组,如果DIR=“1”G=“0”则A1输入B1输出,其它类同。如果DIR=“0”G=“0”则B1输入A1输出,其它类同。
第11~18脚“B”信号输入输出端,功能与“A”端一样,不在描述。
第19脚G,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。
第10脚GND,电源地。
第20脚VCC,电源正极。
单位换算工具
数码管显示数字对应的P0电平输入
在这里插入图片描述
下面代码经过我的改进,不在是单一的在指定位置显示指定数字,而是改为我称之为流动的数码管。

#include <REGX52.H>
void Delay(int xms)	//@12.000MHz
{unsigned char data i, j;while(xms--){i = 12;j = 169;do{while (--j);} while (--i);}
}unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};
void Nixie(unsigned char Location,unsigned char Number)
{switch(Location){case 1: P2_2=1,P2_3=1,P2_4=1;break;case 2: P2_2=0,P2_3=1,P2_4=1;break;case 3: P2_2=1,P2_3=0,P2_4=1;break;case 4: P2_2=0,P2_3=0,P2_4=1;break;case 5: P2_2=1,P2_3=1,P2_4=0;break;case 6: P2_2=0,P2_3=1,P2_4=0;break;case 7: P2_2=1,P2_3=0,P2_4=0;break;case 8: P2_2=0,P2_3=0,P2_4=0;break;}P0=NixieTable[Number];
}
void main()
{unsigned char Location=1;while(1){if(Location==9)Location=1;Nixie(Location,Location);Delay(200);Location++;}
}

要想实现静态一位的显示,只需要将while循环中的去掉,并在前面加上函数调用即可。

2.动态数码管显示

按理来说,因为共用引脚,所以只能显示多个数中的一个,为了解决这一问题,我们使用快速扫描显示的方式

#include <REGX52.H>
void Delay(int ms)	//@12.000MHz
{unsigned char data i, j;while(ms--){i = 2;j = 239;do{while (--j);} while (--i);
}
}unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77F,0x7C,0x39,0x5E,0x79,0x71,0x00};
void Nixie(unsigned char Location,unsigned char Number)
{switch(Location){case 1:  P2_2=1;P2_3=1;P2_4=1;break;case 2:  P2_2=0;P2_3=1;P2_4=1;break;case 3:  P2_2=1;P2_3=0;P2_4=1;break;case 4:  P2_2=0;P2_3=0;P2_4=1;break;case 5:  P2_2=1;P2_3=1;P2_4=0;break;case 6:  P2_2=0;P2_3=1;P2_4=0;break;case 7:  P2_2=1;P2_3=0;P2_4=0;break;case 8:  P2_2=0;P2_3=0;P2_4=0;break;}P0=NixieTable[Number];Delay(1);P0=0x00;
}
void main()
{while(1){Nixie(1,1);Nixie(2,2);Nixie(3,3);Nixie(4,4);}
}

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

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

相关文章

存储过程的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中&#xff0c;经常会需要查询数据库中已有的存储过程或者某一个存储过程的内容&#xff0c; 下面就介绍-下如何查询存储过程。 这需要使用到数据字典 user_sou…

MacBook系统升级导致idea无法打开

1 背景 MacBook的MacOS系统升级之后&#xff0c;之前安装的idea无法打开了。idea卸载重装仍然无法打开。 2 原因排查 2.1 寻找报错原因 为了了解具体的报错原因&#xff0c;通过“访达-应用程序”找到“IntelliJ IDEA”&#xff0c;然后右击打开“显示包内容”选项进入Intel…

Linux设置真实IP

1.查看ens33网卡信息 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #添加以下内容 BOOTPROTODHCP #协议类型 dhcp bootp none ONBOOTyes #启动时是否激活 yes | no#修改文件完成后&#xff0c;重启网络 service network restartping www.baidu.com #验证网络是否生效 ifco…

宝塔面板国际版aaPanel 精简版安装

宝塔面板国际版aaPanel 精简版安装 很多人都知道宝塔面板&#xff0c;但不知道宝塔面板还有英文版&#xff0c;宝塔面板英文版不是单纯的宝塔面板的翻译&#xff0c;而是根据老外的使用习惯及国外的网络环境做了一定的优化&#xff0c; 比如&#xff1a;去掉了手机号验证、去…

【大语言模型LLM】-大语言模型如何编写Prompt?

第一部分 环境配置 1.1 安装 Anaconda 官网&#xff1a;Anaconda清华源镜像&#xff1a;Anaconda推荐安装版本&#xff1a;Anaconda Python 3.11 1.2 创建虚拟环境 打开&#xff1a;anaconda prompt创建名为env_name的虚拟环境&#xff1a;conda create -n env_name python…

数据结构----顺序表

在学习顺序表之前&#xff0c;我们先来了解一下数据结构。 数据是什么呢&#xff1f; 我们在生活中常见的名字&#xff0c;数字&#xff0c;性别等都属于数据。 结构又是什么呢&#xff1f; 在计算机中&#xff0c;结构就是用来保存数据的方式。 总的来说&#xff0c;数据…

【Cookie,Session,Token,JWT的区别】

一、Cookie Cookie 是在 HTTP 协议下&#xff0c;维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器上的小文本数据文件&#xff0c;它可以包含有关用户的信息。cookie是不可跨域的&#xff0c;每个cookie都会绑定一个单一的域名&#xff0c;并只能在指…

Python 基础02-Python 入门

官方文档&#xff1a;3.10.13 Documentation 一、Python 代码编写习惯 1. Python 中的编码 在 Python 3 版本之后&#xff0c;Python 默认使用 UTF-8 编码。UTF-8 是一种针对 Unicode 的可变长度字符编码。 2. 注释 注释可以对代码起到解释说明的作用&#xff0c;注释内容…

Linux的启动过程,了解一下?

Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂&#xff0c;其过程可以分为5个阶段&#xff1a; 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 init程序的类型&#xff1a; SysV: init, CentO…

PVE8.1安装DSM 7.2

PVE8.1,安装和优化PVE8.1安装DSM 7.2&#xff0c;设置虚拟机具体操作DSM安装引导详细篇&#xff0c;rr引导激活套件Active Backup for Business 方法一&#xff0c;方法二PVE控制synology开关机&#xff0c;安装Qemu Guest Agent

linux——yum工具详解

yum是linux中自动解决软件包依赖关系的管理器 同时&#xff0c;yum也是一个rpm软件 这里使用yum install nginx安装nginx

CommunityToolkit.Mvvm笔记---ObservableValidator

ObservableValidator 是实现 INotifyDataErrorInfo 接口的基类&#xff0c;它支持验证向其他应用程序模块公开的属性。 它也继承自 ObservableObject&#xff0c;因此它还可实现 INotifyPropertyChanged 和 INotifyPropertyChanging。 它可用作需要支持属性更改通知和属性验证的…

目标检测中加入背景样本的思考,基于NanoDetPlus的QualityFocalLoss(原创)

文章目录 引言训练集加入无目标图像的作用NanoDetPlus的损失函数无目标图像在训练时怎么计算loss 引言 在目标检测的很多应用场景中&#xff0c;大多数情况下视野中是不存在检测目标的&#xff0c;但是在这些无目标场景下&#xff0c;又很容易出现误检框。为了解决这个问题&am…

Oracle解析exp、imp及常见的问题

前言 在工作中经常需要不同数据库的导入和导出。exp和imp可以实现数据的迁移。 exo会转储产生对应的二进制文件,里面包括数据的定义信息、数据内容等,即为dump文件。 下面是使用exp和imp的一些场景 exp和imp主要有4中模式: 1)数据库模式 数据库模式也就是我们说的全备…

新手理解Hugging Face:与Docker Hub对比,理解Hugging Face到底是啥东西

可以将Hugging Face类比为Docker Hub&#xff0c;但它们之间有一些关键区别。我们将分别解释它们的相似之处和不同之处。 相似之处&#xff1a; 集中存储&#xff1a;Hugging Face Hub和Docker Hub都是集中式存储库&#xff0c;提供了一个可供用户查找、分享和使用的模型或镜…

产品经理常用工具汇总

英文名称中文名称描述Axure原型原型图&#xff0c;流程图&#xff0c;框架图&#xff0c;原型图&#xff1b;Axhub团队原型共享Axure原型团队共享&#xff0c;链接转发&#xff1b;iconfont阿里矢量图标图标下载&#xff0c;协助原型和方案&#xff1b;visio流程图 业务流程图&…

k8s安装记录

k8s安装记录 如无特别说明&#xff0c;则该步操作指在所有的机器上执行&#xff01;&#xff01;&#xff01; 如无特别说明&#xff0c;则该步操作指在所有的机器上执行&#xff01;&#xff01;&#xff01; 如无特别说明&#xff0c;则该步操作指在所有的机器上执行&#…

CSS——前端笔记

CSS 1、选择器1.1、基础选择器1.2、复合选择器1.2.4、伪类选择器 1.3、属性选择器1.4、结构伪类选择器1.5、伪元素选择器 2、CSS的元素显示模式2.1、块元素2.2、行内元素2.3、行内块元素2.4、元素显示模式转换 3、字体属性3.1、font-family 字体3.2、font-size 字体大小3.3、fo…

Three.js加载glb / gltf模型,Vue加载glb / gltf模型(如何在vue中使用three.js,vue使用threejs加载glb模型)

简介&#xff1a;Three.js 是一个用于在 Web 上创建和显示 3D 图形的 JavaScript 库。它提供了丰富的功能和灵活的 API&#xff0c;使开发者可以轻松地在网页中创建各种 3D 场景、模型和动画效果。可以用来展示产品模型、建立交互式场景、游戏开发、数据可视化、教育和培训等等…

常用的数据结构及算法

一、数据结构 &#xff08;一&#xff09;线性结构&#xff1a;一对一。 1.可以使用数组、链表来表示。数组又分为静态数组和动态数组两种。链表常用的是单链表。 2.两种特殊的线性结构&#xff1a;队列和栈。其中队列是先进先出&#xff08;排队&#xff09;&#xff0c;栈…