(基于江协科技)51单片机入门:3.静态数码管 - 实践

news/2025/9/29 12:07:07/文章来源:https://www.cnblogs.com/tlnshuju/p/19118511

(基于江协科技)51单片机入门:3.静态数码管 - 实践

2025-09-29 12:02  tlnshuju  阅读(0)  评论(0)    收藏  举报

目录

一位数码管工作原理

四位一体的数码管工作原理

138译码器工作原理

74HC245

1.(共阴级链接)控制单个数码管亮“6”

2.(共阴极链接)动态数码管显示

数码管消影


一位数码管工作原理

                可将数码管每段单独看成一个LED,一个单体数码管就是8个LED,对它控制它出现数字,就是控制他排列在莫些地方的LED亮灯就行

                下方为单体数码管的链接图

                单体数码管的链接会分两种:

                1.共阳极链接(一条干路是5V的电压)

                               控制单独段LED亮,只要控制这段支路电压是0V就行

                2.共阴极链接(一条干路是0V的电压)

                                控制单独段LED亮,只要控制这段支路电压是5V就行

四位一体的数码管工作原理

                满足二级管的亮灭在于:

                                1.屁股后面为 5 V

                                2.头前为 0 V

                上图将四位一体数码管拆分观察,想要其中的LED亮灯,这组干路(DIG表示的线路)得是5V(共阳极链接)

                如果图中二极管的头对干路,那么干路得是0V(共阴级链接)才能控制这组LED灯会有亮灯的机会

                之后才是控制每组中单个LED的亮灭

                现在我已经给了DIG1 5V 其余为 0V

                现在要控制它亮个 “6” 出现就得知道它每条线路控制的那个位置的LED

                亮 “6” 线路 A C D E F G 要亮

                所以给这些LED对应线路控制为 0 符就能出现亮 “6”

注意,四位一体数码管和一位数码管的区别在于,一位数码管干路电压是固定的,四位一体干路是可控的,干路控制那个组能有亮灯的可能。

                干路下的支路控制的是每组中的LED灯亮(和一位数码管操作一样)

138译码器工作原理

                可以观察到 P22 P23 P24 等值,我们转移到单片机模块上去看,也能看到 P22 P23 P24的值,现在我们已经知道能通过寄存器去控制银脚了。但是银脚的数量是有限的,所以138译码器的功能就是减少银脚的使用,利用银脚间接控制4位一体数码管的亮灭

                我们可以控制 P22 P23 P24 的电压组成 2进制,有8种排序方式,利用这8种排序方式去控制 8 条主干线的电压

                以C B A的排序去控控制

                0 0 0 控制 LED1(就是DIG1) 为 5V 或 0V(根据自己单片机是共阴级还是共阳极链接)

                0 0 1 LED2

                0 1 0 LED3

                依次类推 

74HC245

                能看见J21元件,这个元件能决定你是从下面74HC245左端到右端输入数据,还是右端到左端读取素数

                2 1 链接 左端(P00)到右端(LCD0)输入数据

                               我们要控制灯的亮灭,要使 21 连接

        ·       3 2 链接 右端到左端读取数据 

1.(共阴级链接)控制单个数码管亮“6”

#include 
int main()
{while(1){P2_4 = 0;P2_3 = 0;P2_2 = 1;P0 = 0x7D;}return 0;
}

控制指定数码亮数字函数:

void lig(int num1,int num2)
{unsigned char arr[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };switch(num1){case 1:P2_4=0,P2_3=0,P2_2=0;break;case 2:P2_4=0,P2_3=0,P2_2=1;break;case 3:P2_4=0,P2_3=1,P2_2=0;break;case 4:P2_4=0,P2_3=1,P2_2=1;break;case 5:P2_4=1,P2_3=0,P2_2=0;break;case 6:P2_4=1,P2_3=0,P2_2=1;break;case 7:P2_4=1,P2_3=1,P2_2=0;break;case 8:P2_4=1,P2_3=1,P2_2=1;break;}P0 = arr[num2];
}

2.(共阴极链接)动态数码管显示

                由于138译码器的存在每次显示只会显示一个数字

                所以,想要显示多个数字,就要利用人眼视觉暂留进行快速切换

例如:

                3秒一个循环

                第1秒在第3号位显示1

                第2秒在第2号位显示0

                第3秒在第1号位显示0

                将这个循环所用的时间缩短就行(通常整个循环在20ms以内),我们就会感觉这四个数码管是同时亮着的。

数码管消影

鬼影的根本原因: 数码管从“亮”到“灭”的切换不是瞬间完成的,存在一个极短的延时 

                在这个延时中,上一数字的信息会被下一个灯接收(这个过程用时很短,所以篡位的数字,亮度很低)

                所以在下一个亮灯前将上一个亮灯数据清空一下(给P0赋值为不亮灯的数据,这时下一个灯提前接收到的数据是不亮灯)

                再执行下一个亮灯操作,就能将鬼影清除

动态数码管显示代码如下:

#include 
void Delay(int num)		//@11.0592MHz
{while(num--){unsigned char i, j;i = 2;j = 199;do{while (--j);} while (--i);}
}
void lig(int num1,int num2)
{unsigned char arr[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };switch(num1){case 1:P2_4=0,P2_3=0,P2_2=0;break;case 2:P2_4=0,P2_3=0,P2_2=1;break;case 3:P2_4=0,P2_3=1,P2_2=0;break;case 4:P2_4=0,P2_3=1,P2_2=1;break;case 5:P2_4=1,P2_3=0,P2_2=0;break;case 6:P2_4=1,P2_3=0,P2_2=1;break;case 7:P2_4=1,P2_3=1,P2_2=0;break;case 8:P2_4=1,P2_3=1,P2_2=1;break;}P0 = arr[num2];
}
int main()
{while(1){lig(1,0);Delay(2);P0=0x00;lig(2,0);Delay(2);P0=0x00;lig(3,1);Delay(2);P0=0x00;}return 0;
}

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

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

相关文章

US$7 12Pin Welding Line for CG Pro 9S12 Programmer

12Pin Welding Line for CG Pro 9S12 ProgrammerIf your CG Pro 9S12 is with new design, please choose New Design--SK238-B6If your CG Pro 9S12 is with old design, please choose Old Design--SK238-6We will a…

江阴市住房与建设局网站wordpress菜单设计

我们可以利用OpenCV的直方图,backproject直方图和meanshift算法来跟踪物体。下面通过简单的例子来说明如何实现跟踪算法,我们有两幅狒狒的图片,如下图所示:我们首先在左图中框选狒狒的脸,计算出框选区域的色度(HSV空间…

seo网站推广优化就找微源优化网站租用一年服务器费用多少

getAttribute获得class属性时,IE6,IE7的传參是className,IE7和现代游览器都是class全部游览器DOMElement均有的className属性,其在IE各版本号下的均表现良好返回属性class值的字符串此外html5中DOMElement有个classList属性,它返回一个类型为DOMTokenList的对象,它当中有非常多…

商城网站做推广有什么好处做网站书面报告申请

介绍高光谱图像的基本知识,便通过MATLAB对高光谱图像进行基本的处理。 文章目录前言一、高光谱图像二、MATLAB高光谱图像处理1.加载.MAT文件数据2.图像的显示3.图像维度变换总结前言 高光谱图像是一个立方体结构,维度为M x N x B,M为水平方向…

2025内网聊天工具排行 4款好用的内网聊天软件推荐

本文盘点2025年主流内网聊天工具,聚焦企业微信私有化、有度即时通、飞秋、FastMsg四款局域网通讯软件的私有化部署、安全性、适用场景及扩展能力,为企业选型提供高安全通讯与高效协作的解决方案。一、企业微信私有化…

【正则表达式】正则表达式零基础入门:从“抄”到“写”,附性能测试实战案例 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

dumpgds

setMultiCpuUsage -localCpu 16 set VER_NAME [exec /bin/date +%m%d_%H%M] update_names -net -nocase set design_name [dbGet top.name] remove_assigns deleteEmptyModule update_names -nocasesaveNetlist -i…

网站网页制作企彩票销售网站开发

文章目录 前言主要功能基本用法 前言 docker-compose 是一个用于定义和运行多容器 Docker 应用的工具。它使用一个 YAML 文件(通常命名为 docker-compose.yml)来配置应用的服务、网络和卷等属性。通过 docker-compose,你可以利用一个单一的命…

独立开发在线客服系统手记:实现对 PostgreSQL 的支持,以及与 MySQL 的对比

我会先对比一下 PostgreSQL 和 MySQL 的差异,然后带你看看在 C# 中如何快速接入 PostgreSQL。我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。陆陆续续开发了几年,从一开始的偶有用户尝试,到如今…

pre_cts_opt

#################################################################################### set design_name [dbGet top.name] set pre_stage pre_place set post_stage pre_c…

自己如何建设刷赞网站小程序与app有什么区别

WinCC OPC服务器和OPC客户机之时的数据交换通过DCOM进行。安装WinCC后,WinCC OPC服务器的DCOM要设置正确。如下情况设置必须改变:? 如果登记到OPC客户机或服务器计算机的用户没有管理员员限? 如果用不同于OPC客户机的帐号登记OPC服务器。注意下列说明描…

ccopt

################################################################################# ##### common setting set design_name [dbGet top.name] set pre_stage pre_cts_opt set post_stag…

方言普通话识别大模型,支撑中英+202种方言识别

方言普通话识别大模型,支撑中英+202种方言识别pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

春季高考网站建设做设计用哪个素材网站

问题场景: 使用若依Vue前端分离版-基于SpringBoot的权限管理系统进行实战。 问题描述与解决 拉取若依项目后,根据官方开发文档(项目readme文档)进行依赖下载安装后,启动失败。 出现以下几个问题: 运行n…

神华两学一做网站重庆做网站seo优化选哪家好

1 /*2 题目大意:3 就是一幢大厦中有0~99的楼层, 然后有1~5个电梯!每个电梯有一定的上升或下降速度和楼层的停止的位置!4 问从第0层楼到第k层最少经过多长时间到达!5 6 思路&#x…

北京专业的网站ui设计公司怎么制作图片加文字

ElementUI 布局——行与列的灵活运用 一 . 使用 Layout 组件1.1 注册路由1.2 使用 Layout 组件 二 . 行属性2.1 栅格的间隔2.2 自定义元素标签 三 . 列属性3.1 列的偏移3.2 列的移动 在现代网页设计中&#xff0c;布局是构建用户界面的基石。Element UI 框架通过其强大的 <e…

图怪兽logo设计官网seo技术培训东莞

ArcGIS Pro SDK (十四)地图探索 6 图形与工具 文章目录 ArcGIS Pro SDK (十四)地图探索 6 图形与工具1 图形叠加1.1 图形叠加1.2 图形叠加与 CIMPicture图形1.3 添加带有文本的叠加图形2 工具2.1 更改草图工具的符号2.2 创建用于地图中单击的点的返回坐标的工具2.3 创建用于…

init.tcl

setMessageLimit 1000 set DESIGN IF_ASIC_TOPset init_lef_file " \/home/xxx.tlef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \/home/xxx.lef \" #/home/xxx.lef…

ffmpeg一些使用记录,防止忘记

合并音频和视频,并将音频循环延至视频结束 ffmpeg -stream_loop -1 -i start.mp3 -i start.mp4 -c:v copy -c:a aac -b:a 128k -shortest -movflags +faststart startNeed.mp4视频延长时间 ffmpeg -stream_loop 249 -…

BLE从机(20)BLE区分主机(IOS/安卓/WIN)

前言: 实现功能:作为从机区分主机系统。 实现逻辑: 从机添加client权限后,识别主机系统UUID并读取。 目前可以实现区分IOS/WIN/安卓/MAC系统。UUID handle 系统 备注Device_Information_Service_UUID:0x180A服务U…