当前位置: 首页 > news >正文

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

目录

一位数码管工作原理

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

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 <REGX52.H>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 <REGX52.H>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.dtcms.com/a/414120.html

相关文章:

  • 团支部智慧团建网站Wordpress调用搜索
  • 什么是ppm,ppb,ppt?
  • LeetCode 389 找不同
  • gitlab解决合并冲突本地处理的步骤
  • 趣谈Bug -500英里邮件问题
  • 洛阳天艺网络做网站怎么样自适应型网站建设方案
  • 沧州市网站优化排名网站开发的过程中遇到的难题
  • 【JDK 11 安装包免费下载 免登录Oracle 】jdk11与jdk8有什么区别?
  • Oracle 数据库管理员认证难考吗?怎么报考?
  • 计算机网络经典问题透视:物理层调制技术全解析 (ASK, FSK, PSK, QAM, OFDM)
  • Python语法提效指南:推导式与循环的性能对比与最佳实践
  • AWS SageMaker SDK 完整教程:从零开始云端训练你的模型
  • Java Servlet(二)--- HttpServlet,HttpServletRequest,HttpServletResponse
  • Linux-01_2(vi / vim 编辑器)
  • 网站建设的难点在哪里网站设计哪家便宜
  • 网站建设外包项目初做淘宝客选哪个网站
  • 负载均衡式的在线OJ项目编写(三)
  • jQuery为前端开发提供了许多强大而简便的功能
  • Kali 手记:2025年更新版
  • 2025年的 Crate 安全:工具与技术 (RustConf China 2025系列精选)
  • MATLAB学习文档(二十二)
  • 环球资源网网站特色国内做外贸网站的有哪些资料
  • 基于Hadoop的美妆产品网络评价的数据采集与分析-django+spider
  • MySQL InnoDB表压缩:性能优化全解析
  • AWS Toolkit - 注册 AWS Builder ID 账号
  • 零基础学AI大模型之LangChain
  • 深入浅出 XSS — 从原理到实战与防护
  • 长尾关键词挖掘网站python 网站开发入门
  • 【数组按位置对调】2022-11-20
  • UE5(8):认识 UE 的菜单栏,全部保存 CTRL+SHIFT+S,工具栏以及视口工具栏,移动相机在项目编辑器里,选择光照显示等,还有空气墙的隐身角色,加载新手包,沙发的碰撞属性的生成-编辑AM,