51单片机应用开发---数码管的控制应用

news2024/9/20 21:39:22

实现目标

1、掌握数码管结构、驱动原理及应用;

2、掌握数码管段码表推导;

3、会编程让开发板8个数码管动态显示。


一、什么是数码管?

1.数码管定义

数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数码管和八段数码管(多一个小数点DP)。数码管在我们生活中无处不在,比如家用电磁炉、洗衣机、冰箱等显示应用,还有电子表的时间显示,都使用了数码管的相应原理。

          

1.1 数码管的引脚定义:

数码管的笔端:


上图为一个数码管的笔端图,笔端分为A、B、C、D、E、F、G、DP 8段,也就是由8个LED组成的,点亮前7段既可点亮一个数字,DP一般用于表示小数点。

2.数码管分类

数码管按其个数可分为单个数码管、多个数码管;按其公共极连接情况可分为共阴极和共阳极数码管

(1)  数码管按连接个数分

  • 单个数码管

                           

一个数码管是由a、b、c、d、e、f、g、dp八个二极管组成,8个LED一端接在一起,另一端引脚引出来。二极管如果阳极连在一起,就是共阳极数码管,阴极连在一起,就是共阴极数码管。

  • 多个数码管

               

上图所示的是四个数码管,在使用时,需要程序选定使用哪几个数码管,这就是“位选”,选定数码管后再对选定的数码管进行操作,其操作与单个数码管的操作一致(接下来还会进一步详解),这就是“段选”。

(2)数码管公共极按照连接情况分

共阳数码管:所有LED的阳极连接到一起形成一个公共阳极接VCC,单片机需要控制某段LED的阴极为低电平时,相应LED就会点亮

共阴数码管:所有LED的阴极连接到一起形成一个公共阴极接GND,单片机需要控制某段LED的阳极为高电平,相应LED会点亮。注:单片机上IO口的电压不足以驱动数码管的LED,因此共阴数码管的阳极一般并不直接连到单片机的IO上,而是中间再接一个电源。

3.数码管显示原理

(1)  共阳数码管显示的字符码推导:

如上图,是一个共阳极数码管,要使数码管显示不同的数字,只需点亮对应LED即可。如:数码管显示“0”,则a、b、c、d、e、f 六个LED亮,g、dp  这俩个LED灭,即可显示“0”。

(2) 数码管码表

共阳数码管:

unsigned char  gsmg_code[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

共阴数码管:

unsigned char  gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

二、数码管驱动方式

2.1 静态驱动显示

静态驱动 是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

(1)优势:是驱动简单直接,好编程
(2)缺陷:每一个数码管需要1个端口,单片机的端口不够用

2.2 动态驱动显示

动态驱动 是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

(1)优势:IO占用少
(2)缺陷:显示亮度不够,编程相对复杂

首先了解一些必要知识
1、多位数码管是扫描显示,也就是同一时刻只有一个数码管显示
2、视觉暂留效果:第一个数码管显示完,第二个数码管接着显示,接着后面数码管一次显示,当显示(扫描)足够快的时候,人眼是看不到闪烁的,就认为多个数码管是同时显示的
3、多位数码管只能同时显示多个一样的数字,要显示不同数字需要扫描显示

显示实例:

比如,用8个数码管要显示12345678,你看起来8个数码管是同时亮的,其实同一时刻只有一个数码管是亮的。我们把时间放慢,看看数码管都发生了什么变化:
1、第1毫秒

2、第二毫秒

3、第三毫秒

4、第四毫秒  5、第五毫秒  6、第六毫秒  7、第七毫秒

8、第八毫秒

当数码管的扫描频率大于50hz的时候人眼是基本分不清的,也就是你的扫描8个数码管的周期控制在20ms内就可以实现动态显示不闪烁。

三、数码管驱动芯片(普中开发板)

开发板上,数码管的驱动需要两个芯片,一个是 74HC138译码器,另一个是74HC245双向数据缓冲器。

3.1  74HC138译码器

74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。

3.2  74HC245双向数据缓冲器

74HC245兼容TTL器件引脚的高速CMOS总线收发器(bustransceiver),典型的CMOS型三态缓冲门电路,八路信号收发器。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。主要应用于大屏显示,以及其它的消费类电子产品中增加驱动。

管脚定义
74HC245的引脚包括输出使能(OE),方向控制(DIR),A组输入/输出(A0-A7),B组输入/输出(B0-B7),电源(VDD)和(GND)。
 

管脚说明
下表是74HC245所有管脚的功能说明

 74HC245真值表

真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。
H代表高电平,L代表低电平,X代表随机电平(可高可低)

四、程序设计

4.1 第一个数码管显示数字“0” (静态驱动)

#include <REGX52.H>

sbit A1 = P2^2;
sbit B1 = P2^3;
sbit C1 = P2^4;

void  main()
{
    //位选控制:哪一个数码管工作
	C1 = 0;B1 =0;A1 =0;//数码管1工作

    //段选控制:要显示什么
	P0 = 0X3f; //显示0  段码对应 P07->DP ... P01->B, P00->A

	while(1)
	{

	}

}

注:普中开发板的数码管为共阴数码管。

4.2  8个数码管从左至右显示数字“12345678” (动态驱动)

五、实验效果

六、仿真实现


总结

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

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

相关文章

Makefile 学习笔记(一)gcc编译过程

环境准备 .linux 系统(虚拟机) VS code linux 编译过程 预处理: 把.h .c 展开形成一个文件.宏定义直接替换 头文件 库文件 .i 汇编&#xff1a; .i 生成一个汇编代码文件 .S 编译&#xff1a; .S 生成一个 .o .obj 链接: .o 链接 .exe .elf gcc c语言 g c语言 gcc的使用 …

钥匙和房间的题解——使用dfs或bfs进行图遍历

841. 钥匙和房间 这 n 个房间看成有向图中的 n 个节点&#xff0c;在x号房拿到了打开y号房的钥匙&#xff0c;可以看作是图中的 x 号点到 y 号点的一条有向边。 这样一来&#xff0c;问题就变成了给定一张有向图&#xff0c;询问从 0 号节点出发是否能够到达所有的节点。 DFS深…

1.3 计算机网络的分类

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言一、按分布范围分类二、按传输技术分类三、按拓扑结构分类四、按使用者分类五、按传输介质分类 前言 计算机网络根据不同的标准可以被分为多种类型&#xff0c;本章从分布…

【STL】 set 与 multiset:基础、操作与应用

在 C 标准库中&#xff0c;set 和 multiset 是两个非常常见的关联容器&#xff0c;主要用于存储和管理具有一定规则的数据集合。本文将详细讲解如何使用这两个容器&#xff0c;并结合实例代码&#xff0c;分析其操作和特性。 0.基础操作概览 0.1.构造&#xff1a; set<T&…

CefSharp_Vue交互(Element UI)_WinFormWeb应用(3)---通过页面锁屏和关机(含示例代码)

一、预览 实现功能:通过vue标题栏按钮锁屏和关机 1.1 预览 1.2 代码 锁屏代码csharp LockWorkStation() 关机代码chsharp 注意vue代码参数和此参数一致(0/1/2) 方法ExitWindowsEx()

春秋云境靶场之CVE-2022-29464

一.靶场环境 1.下载靶场 根据题目提示&#xff0c;存在文件上传漏洞 2.启动靶场 打开之后&#xff0c;页面显示 然后就跳转到一个登录页面 二.登录页面 1.尝试登录 我们尝试弱口令登录admin,admin&#xff0c;跳转到连接超时页面 当我们再次点击这个链接后&#xff0c;就会…

Leetcode面试经典150题-20.有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

【网络原理】❤️Tcp 常用机制❤️ —— 延时应答,捎带应答, 面向字节流, 异常情况处理。保姆式详解 , 建议收藏 !!!

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

【程序员写的诗】《享平安》日期:2021-11-03 作者:橙

享平安 《享平安》 关关难过&#xff0c;关关过。 世事无常&#xff0c;平常心。 顾好自己&#xff0c;和家人。 平平安安&#xff0c;享人生。 创作背景 背景&#xff1a;新冠疫情 涉及32个省&#xff0c;河南郑州未能辛免 ------写于2021-11-03 程鹏 AI豆包点评和解释 这…

前端vue3打印,多页打印,不使用插件(工作中让我写一个打印功能)

说下总体思路&#xff0c;创建一个组件&#xff0c;里面放多个span字段&#xff0c;然后根据父组件传入的参数&#xff0c;生成子组件&#xff0c;最好我们打印子组件的信息即可。通过我多次ai&#xff0c;探索最后成功了。 子组件代码 media print 这个我要讲一下&#xff…

泛读笔记:从Word2Vec到BERT

自然语言处理(NLP)模型的发展历史 1.统计方法时期&#xff1a;使用贝叶斯方法、隐马尔可夫模型、概率模型等传统统计方法 2.机器学习时期&#xff1a;支持向量机(SVM)、决策树模型、随机森林、朴素贝叶斯等传统机器学习方法 3.深度学习革命&#xff1a;各种新的深度学习模型&am…

Day28_0.1基础学习MATLAB学习小技巧总结(28)——参数估计函数

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 参考书目&#xff1a; 1、《MATLAB基础教程 (第三版) (薛山)》 2、《MATL…

流程图怎么画?3个好用的在线流程图软件推荐,绘图没烦恼!

目录 什么是流程图&#xff1f; 为什么需要使用流程图&#xff1f; 流程图中各种图形的含义 如何制作流程图&#xff1f; 小结&#xff1a;流程图如何制作&#xff1f; 流程图是表达工作流程或者系统操作过程的有效工具&#xff0c;被广泛应用于各个行业和领域。…

USDT自动化交易【Pinoex】【自动化分析】【ChatGPT量化脚本】

Pinoex 是一个相对较新的加密货币交易平台&#xff0c;虽然具体的自动交易算法细节对外部用户可能并不公开&#xff0c;但我们可以讨论一般情况下加密货币自动交易算法的常见策略和方法。以下是一些可能会被类似平台或个人交易者使用的自动交易算法和策略。 1. 市场制造商&…

数据结构——原来二叉树可以这么学?(4.链式二叉树)

前言&#xff1a; 在前两篇小编讲述了二叉树的顺序结构存储方式&#xff0c;从而讲到了一个特殊的二叉树——堆&#xff0c;通过对于堆的实现来帮助我们对于顺序结构存储方式的实现&#xff0c;下面小编将要讲述二叉树的另一种存储方式——链式结构&#xff0c;链式二叉树来喽&…

专业学习|GERT网络概览(学习资源、原理介绍、变体介绍)

一、GERT 网络概览 GERT(Graphical Evaluation Review Technique&#xff0c;图示评审技术)是一种结合流线图理论(Flow Graphical Theory)、矩母函数(Moment Generating Function)、计划评审技术(Program Evaluation Review Technique)解决随机网络问题的方法&#xff0c;描述各…

2024年CAD图纸加密软件|加密图纸软件推荐:10款高效CAD加密软件

在当今数字化时代&#xff0c;CAD图纸已成为工程设计、建筑规划、机械制造等领域不可或缺的重要文件。然而&#xff0c;随着数据泄露和信息安全问题的日益严重&#xff0c;保护CAD图纸的安全性变得尤为重要。为了确保设计数据的安全&#xff0c;使用高效的CAD图纸加密软件成为了…

CMAT:提升小型语言模型的多智能体协作调优框架

人工智能咨询培训老师叶梓 转载标明出处 大模型&#xff08;LLMs&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;的基石。然而&#xff0c;这些模型的有效运行仍然在很大程度上依赖于人为输入来准确引导对话流程。为了解决这一问题&#xff0c;来自华东交通大学…

comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决

&#x1f388;背景 comfyui今天在安装插件的过程中&#xff0c;发现有个插件第一次安装失败后&#xff0c;再次安装就开始报错了&#xff0c;提示&#xff1a; ComfyUI-Inpaint-CropAndStitch install failed: Bad Request 截图如下&#xff1a; 看下后台的报错&#xff1a; …

Html css水平居中+垂直居中+水平垂直居中的方法总结

1. Html css水平居中垂直居中水平垂直居中的方法总结 1.1. Html 元素 1.1.1.元素宽高特点 &#xff08;1&#xff09;块级元素&#xff08;如div&#xff09;&#xff1a;独占一行&#xff0c;不和其他元素在一起&#xff0c;可以设置宽和高&#xff1b;当没设置宽和高时&am…