51单片机嵌入式开发:3、STC89C52操作8八段式数码管原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

STC89C52操作8八段式数码管原理

  • 1 8位数码管介绍
    • 1.1 8位数码管概述
    • 1.2 8位数码管原理
    • 1.3 应用场景
  • 2 原理图图解
    • 2.1 74HC573原理
    • 2.2 74HC138原理
    • 2.3 数码管原理
  • 3 数码管程序
    • 3.1 点亮一个数码管
    • 3.2 扫描显示数码管
    • 3.3 显示一组数据
    • 3.4 Protues仿真
  • 4 总结


1 8位数码管介绍

1.1 8位数码管概述

8位数码管是一种显示器件,用于显示数字、字母和一些特殊符号。它由8个数码管组成,每个数码管可以显示0到9之间的数字。通过控制每个数码管的亮灭状态,可以组合显示不同的数字或字符。

1.2 8位数码管原理

数码管通常由共阳极或共阴极的LED(发光二极管)组成。在共阳极数码管中,每个数码管的阳极连接在一起,而在共阴极数码管中,每个数码管的阴极连接在一起。通过控制每个数码管的阳极或阴极,可以选择性地点亮其中一个数码管。
以共阳极的8位数码管为例,每个数码管通常由7个LED段(a,b,c,d,e,f,g)和一个小数点(dp)组成。这些段可以按照特定的图案和编码来点亮,以显示数字、字母或符号。

1.3 应用场景

常见的8位数码管编码方式是使用BCD(二进制编码十进制)码或者ASCII码。BCD码是一种二进制表示法,其中每个十进制数字用4位二进制码表示。ASCII码是一种字符编码标准,将每个字符映射到一个唯一的数值。
使用8位数码管,可以显示0到9的数字以及一些字母和符号。每个数码管可以独立显示一个字符,因此可以同时显示8个字符。通过控制每个数码管的亮灭状态和编码,可以实现多种显示效果。

2 原理图图解

根据开发板原理图,找到数码管原理图。

在这里插入图片描述

数码管原理图主要由三部分组成,74HC573、74HC138、数码管,下面分别对三个元器件进行分析。

2.1 74HC573原理

高性能硅门 CMOS 器件 SL74HC573 跟 LS/AL573 的管脚一样。器件的输入是和标准 CMOS 输出兼容 的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同 步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
×输出能直接接到 CMOS,NMOS 和 TTL 接口上
×操作电压范围:2.0V~6.0V
×低输入电流:1.0uA
×CMOS 器件的高噪声抵抗特性

74HC573逻辑图如下

在这里插入图片描述

根据逻辑图,可以得出功能表,当输出使能为L,锁存功能为H时,输出端口Q状态与输入信号的D状态完全一致,我们选择的也是这种模式,在开发板上,使用跳线帽将“锁存”引脚和VCC5V引脚短接。
在这里插入图片描述

2.2 74HC138原理

特点
• 解复用能力
• 多输入使能,便于扩展
• 存储芯片选择解码的理想选择
• 低电平有效输出互斥输出
• 输出能力:标准
• ICC 类别:微星
概述
74HC/HCT138 是高速硅栅 CMOS 器件,与低功耗肖特基 TTL (LSTTL) 引脚兼容。它们的指定符合 JEDEC 标准第 7A 号。74HC/HCT138解码器接受三个二进制加权地址输入(A0、A1、A2),启用后提供8个互斥的低电平有效输出(Y0至Y7)。“138”具有三个使能输入:两个有效低电平(E1和E2)和一个高电平有效(E3)。除非 E1 和 E2 为低电平且 E3 为高电平,否则每个输出都将为高电平。这种多重使能功能允许将“138”轻松并行扩展到 1-of-32(5 行至 32 行)解码器,只需四个“138”IC 和一个逆变器。“138”可用作八路输出解复用器,方法是使用一个有效的低电平使能输入作为数据输入…

74HC/HCT138期间原理图如下
在这里插入图片描述

在这里插入图片描述

根据逻辑原理图可知,我们使用一个译码器,只需要将E1E2为低电平,E3为高电平,然后A0A1A2输入不同的值,即可在相同值序号的Yn引脚输出低电平。

在这里插入图片描述

在这里插入图片描述

2.3 数码管原理

根据数码管内部的连接方式,所以数码管又分为共阳数码管(低电平点亮)与共阴数码管(高电平点亮),共阳数码管内部是将所有LED的正极接在一起组成的公共端接电源+5V,只需要控制对应的LED负极就可以显示数字, 所以共阳级低电平才能点亮,共阴极与共阳级刚好相反,共阴极数码管内部将LED的负极接在一起形成公共端接地 0V,只需要控制对应的LED正极就能够显示数字,所以共阴极数码管高电平点亮。共阳极数码管与共阴极数码管内部结构如下图所示。
我们开发板上选用的数码管是共阴极数码管,具体理论原理图,如下所示,只需在不同的控制端给定高电平,即可点亮8段式数码管对应的位置,达到显示效果。

在这里插入图片描述

3 数码管程序

3.1 点亮一个数码管

/********************************************************
函数名称:sys_ledtube_on1
函数功能:点亮一个数码管全为亮起来
入口参数:
出口参数:
修    改:
内    容:
********************************************************/
void sys_ledtube_on1(void)
{//根据原理图,将P0口全部输出高电平,P2选择0号数码管P0=0xFF;//取显示数据,段码P2=0;  	//取位码
}

3.2 扫描显示数码管

// 显示段码值01234567,可对应原理图查看显示不同图形对应的引脚高点电平配置状态
unsigned char const EL[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/********************************************************
函数名称:sys_ledtube_on2
函数功能:显示一组数据
入口参数:
出口参数:
修    改:
内    容:
********************************************************/
static unsigned char ledtube_cnt = 0;
void sys_ledtube_on2(void)
{ledtube_cnt++;if(ledtube_cnt>7){ledtube_cnt = 0;}P0 = 0x00;				//防止切换数码管瞬间有虚影出现P2 = 0x00;P0 = EL[ledtube_cnt];	//取显示数据,段码P2 = ledtube_cnt;  		//取位码//根据人眼适应虚影缓冲时间为50ms左右//我们调整delay在500以下可以看到明显的看起来是一串数据一起显示delay(50000); 			
}
#ifndef __C51_LEDTUBE_H__
#define __C51_LEDTUBE_H__extern unsigned char const EL[];extern void sys_ledtube_on1(void);
extern void sys_ledtube_on2(void);#endif

主程序中

void main (void)
{//8个指示灯的操作sys_led();sys_led_test();sys_led_test1();sys_ledtube_on1();//主循环中添加其他需要一直工作的程序while (1){sys_ledtube_on2();}
}

3.3 显示一组数据

/********************************************************
函数名称:sys_ledtube_on2
函数功能:显示一组数据
入口参数:
出口参数:
修    改:
内    容:
********************************************************/
static unsigned char ledtube_cnt = 0;
void sys_ledtube_on2(void)
{ledtube_cnt++;if(ledtube_cnt>7){ledtube_cnt = 0;}P0 = 0x00;				//防止切换数码管瞬间有虚影出现P2 = 0x00;P0 = EL[ledtube_cnt];	//取显示数据,段码P2 = ledtube_cnt;  		//取位码//根据人眼适应虚影缓冲时间为50ms左右//我们调整delay在500以下可以看到明显的看起来是一串数据一起显示delay(100); 			
}

3.4 Protues仿真

Protues仿真图如下所示,注意P0口作为输出控制引脚需要有上拉电阻,不然无法输出高电平。

在这里插入图片描述

4 总结

数码管是一种常见的数字显示设备,广泛应用于各种领域。以下是一些数码管应用市场的例子:

  1. 时钟和计时器:数码管常被用于制造电子时钟、计时器和倒计时器。这些设备可以在办公室、学校、体育场馆、交通信号灯等地方使用。

  2. 家电和电子产品:数码管被广泛应用于家用电器和电子产品中,如微波炉、洗衣机、冰箱、电视机、音响等。数码管可以显示时间、温度、程序设置等信息。

  3. 工业自动化:在工业控制系统中,数码管常用于显示各种参数和状态信息,如温度、压力、流量、速度等。这些信息对于监控和控制工业过程非常重要。

  4. 汽车和交通系统:数码管被广泛应用于汽车仪表盘、导航系统、车载音响等设备中。它们可以显示车速、油量、里程、导航指示等信息。此外,数码管还用于交通信号灯和路牌显示。

  5. 电子游戏和娱乐设备:数码管被用于电子游戏、街机机台、赌场游戏设备等娱乐设备中。它们可以显示得分、计时、游戏状态等信息。

  6. 医疗设备:数码管在医疗设备中也有广泛应用,如医疗监护仪、血糖仪、体温计等。它们可以显示患者的生命体征、测量结果等重要数据。

  7. 通信设备:数码管常用于通信设备的显示屏,如电话、对讲机、路由器等。它们可以显示来电号码、信号强度、网络状态等信息。

这些只是数码管应用市场的一些例子,实际上,数码管在各个领域都有广泛的应用。随着科技的发展,数字显示技术也在不断进步,液晶显示屏等新型显示技术逐渐取代了一部分数码管的应用,但数码管仍然在某些特定场景中保持着重要地位。

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

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

相关文章

树模型详解2-GBDT算法

与adaboost一样,GBDT也是采用前向分步算法,只是它会用决策树cart算法作为基学习器,因此先要从分类树和回归树讲起 决策树-提升树-梯度提升树 决策树cart算法 回归树:叶子结点的值是所有样本落在该叶子结点的平均值 如何构建&a…

【绿色版】Mysql下载、安装、配置与使用(保姆级教程)

大家都知道,Mysql安装版的卸载过程非常繁琐,而且卸载不干净会出现许多问题,很容易让大家陷入重装系统的窘境。基于此,博主今天给大家分享绿色版Mysql的安装、配置与使用。 目录 一、Mysql安装、配置与使用 1、下载解压 2、创建…

zabbix 配置钉钉告警

1.申请一个钉钉企业版 2.群内申请一个机器人 下载电脑版钉钉,登录后,在要接收群消息的群里,点击右上角设置图标,下滑找到机器人,添加一个机器人,保存机器人的webhook地址 保存这里的加签字符串 保存这里的…

深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇

序言 反向传播(Backpropagation,简称backprop)是神经网络训练过程中最关键的技术之一,尤其在多层神经网络中广泛应用。它是一种与优化方法(如梯度下降法)结合使用的算法,用于计算网络中各参数的…

香橙派AIpro开发板评测:部署yolov5模型实现图像和视频中物体的识别

OrangePi AIpro 作为业界首款基于昇腾深度研发的AI开发板,自发布以来就引起了我的极大关注。其配备的8/20TOPS澎湃算力,堪称目前开发板市场中的顶尖性能,实在令人垂涎三尺。如此强大的板子,当然要亲自体验一番。今天非常荣幸地拿到…

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method--论文笔记

论文笔记 资料 1.代码地址 https://github.com/iBelieveCJM/pseudo_label-pytorch 2.论文地址 3.数据集地址 论文摘要的翻译 本文提出了一种简单有效的深度神经网络半监督学习方法。基本上,所提出的网络是以有监督的方式同时使用标记数据和未标记数据来训练的…

ASCII码对照表(Matplotlib颜色对照表)

文章目录 1、简介1.1 颜色代码 2、Matplotlib库简介2.1 简介2.2 安装2.3 后端2.4 入门例子 3、Matplotlib库颜色3.1 概述3.2 颜色图的分类3.3 颜色格式表示3.4 内置颜色映射3.5 xkcd 颜色映射3.6 颜色命名表 4、Colorcet库5、颜色对照表结语 1、简介 1.1 颜色代码 颜色代码是…

2024亚太杯数学建模竞赛(B题)的全面解析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024亚太杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

数据库-MySQL 实战项目——书店图书进销存管理系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴,博主提供了源码、数据和一些查询语句,供大家学习和参考,代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具:navicat; 数据库:MySq…

MySQL:如何在已经使用的数据表中增加一个自动递增的字段

目录 一、需求 二、实现步骤 (一)数据表students (二)添加整型字段 (三)更新SID字段的值 1、使用用户定义的变量和JOIN操作 2、用SET语句和rownum变量 (1)操作方法 &#x…

使用antd的<Form/>组件获取富文本编辑器输入的数据

前端开发中,嵌入富文本编辑器时,可以通过富文本编辑器自身的事件处理函数将数据传输给后端。有时候,场景稍微复杂点,比如一个输入页面除了要保存富文本编辑器的内容到后端,可能还有一些其他输入组件获取到的数据也一并…

MySQL篇三:数据类型

文章目录 前言1. 数值类型1.1 tinyint类型1.2 bit类型1.3 小数类型1.3.1 float1.3.2 decimal 2. 字符串类型2.1 char2.2 varchar2.3 char和varchar比较 3. 日期类型4. enum和set 前言 数据类型分类: 1. 数值类型 1.1 tinyint类型 在MySQL中,整型可以指…

如何第一次从零上传项目到GitLab

嗨,我是兰若,今天想给大家说下,如何上传一个完整的项目到与LDAP集成的GitLab,也就是说这个项目之前是不在git上面的,这是第一次上传,这样上传上去之后,其他小伙伴就可以根据你这个项目的git地址…

自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)源码

背景 很多资源下载站,付费资源下载站,付费内容查看等都可以用WordPress站点发布内容,这些站点一般会基于一个主题,付费信息作为文章附属的信息发布,底层存储在WP表里,比如日主题,子比主题等。 …

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样, 继续使用Fashion-MNIST数据集,并保持批量大小为256。 import torch from torc…

【基础篇】第4章 Elasticsearch 查询与过滤

在Elasticsearch的世界里,高效地从海量数据中检索出所需信息是其核心价值所在。本章将深入解析查询与过滤的机制,从基础查询到复合查询,再到全文搜索与分析器的定制,为你揭开数据检索的神秘面纱。 4.1 基本查询 4.1.1 Match查询…

多语言版在线出租车预订完整源码+用户应用程序+管理员 Laravel 面板+ 司机应用程序最新版源码

源码带PHP后台客户端源码 Flutter 是 Google 开发的一款开源移动应用开发 SDK。它用于开发 Android 和 iOS 应用,也是为 Google Fuchsia 创建应用的主要方法。Flutter 小部件整合了所有关键的平台差异,例如滚动、导航、图标和字体,可在 iOS 和…

如何在前端网页实现live2d的动态效果

React如何在前端网页实现live2d的动态效果 业务需求: 因为公司需要做机器人相关的业务,主要是聊天形式的内容,所以需要一个虚拟的卡通形象。而且为了更直观的展示用户和机器人对话的状态,该live2d动画的嘴型需要根据播放的内容来…

昇思25天学习打卡营第08天 | 模型训练

昇思25天学习打卡营第08天 | 模型训练 文章目录 昇思25天学习打卡营第08天 | 模型训练超参数损失函数优化器优化过程 训练与评估总结打卡 模型训练一般遵循四个步骤: 构建数据集定义神经网络模型定义超参数、损失函数和优化器输入数据集进行训练和评估 构建数据集和…

【Excel、RStudio计算T检测的具体操作步骤】

目录 一、基础知识1.1 显著性检验1.2 等方差T检验、异方差T检验1.3 单尾p、双尾p1.3.1 检验目的不同1.3.2 用法不同1.3.3 如何选择 二、Excel2.1 统计分析工具2.1.1 添加统计分析工具2.1.2 数据分析 2.2 公式 -> 插入函数 -> T.TEST 三、RStudio 一、基础知识 参考: 1.…