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.xdnf.cn/news/1473691.html

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

相关文章

Python 程序打印图案“G”(Python Program to print the pattern ‘G’)

在本文中,我们将学习如何使用星号和空格打印图案 G。给定一个数字 n,我们将编写一个程序,在 n 行或列上打印图案 G。 例子: 输入:7 输出: *** * * * *** * * * * *** 输入&…

Windows使用nxlog发送系统日志到Linux的rsyslog服务器

Windows使用nxlog发送系统日志到Linux的rsyslog服务器 前言一、IP地址规划及示意图二、在windows上安装及配置nxlog1.下载nxlog2.安装nxlog3.配置nxlog4.创建对应日志路径的文件夹 三、windows上启动nxlog服务四、在CentOS 7上配置日志存到指定位置文件1.编辑/etc/rsyslog.conf…

MySql Innodb 索引有哪些与详解

概述 对于MYSQL的INNODB存储引擎的索引,大家是不陌生的,都能想到是 B树结构,可以加速SQL查询。但对于B树索引,它到底“长”得什么样子,它具体如何由一个个字节构成的,这些的基础知识鲜有人深究。本篇文章从…

MATLAB engine for python调用m文件函数输出变量值python调用MATLAB函数混合编程

MATLAB engine for python调用m文件函数输出变量值python调用MATLAB函数混合编程 说明(废话)解决方案总结 说明(废话) python调用MATLAB函数,MATLAB函数实现在m文件,python直接调用MATLAB中的函数。 首先还是要安装好MATLAB engine python setup.py ins…

普通Java工程如何在代码中引用docker-compose.yml中的environment值

文章目录 一、概述二、常规做法1. 数据库配置分离2. 代码引用配置3. 编写启动类4. 支持打包成可执行包5. 支持可执行包打包成docker镜像6. docker运行 三、存在问题分析四、改进措施1. 包含environment 变量的编排文件2. 修改读取配置文件方式3. 为什么可以这样做 五、运行效果…

从文本到安全图像:自动提示优化防止不当内容生成

T2I生成技术已经得到了广泛关注,并见证了如GLIDE、Imagen、DALL-E 2、Stable Diffusion等大型生成模型的发展。尽管这些模型能够根据文本描述生成高质量的图像,促进了书籍插图、品牌标识设计、游戏场景创作等多种实际应用,但它们也被恶意用户…

ROS 2官方文档(基于humble版本)学习笔记(四)

ROS 2官方文档(基于humble版本)学习笔记(四) 2.客户端库使用colcon构建包(package)创建工作空间(workspace)构建工作空间执行测试(tests)导入环境&#xff08…

如何搜索查找ICLR论文

记录有几个查找顶级会议文章的网址,不止ICLR ICLR 2024 还会有visualization模式: ICLR 2024 virtual 这个网站也很棒 Paper Copilot ICLR 2024 当然还有一个用图表示各论文相关关系的网站: connected papers

入职字节外包2个月后,我离职了...

有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…

Python应用开发——30天学习Streamlit Python包进行APP的构建(13)

st.chat_input 显示聊天输入窗口小部件。 Function signature[source]st.chat_input(placeholder="Your message", *, key=None, max_chars=None, disabled=False, on_submit=None, args=None, kwargs=None) Returns(str or None) The current (non-empty) value of…

排序——数据结构与算法 总结8

目录 8.1 排序相关概念 8.2 插入排序 8.2.1 直接插入排序: 8.2.2 折半插入排序: 8.2.3 希尔排序: 8.3 交换排序 8.3.1 冒泡排序: 8.3.2 快速排序: 8.4 选择排序 8.4.1 简单选择排序 8.4.2 堆排序 8.5 归并…

Docker:一、安装与卸载、配置阿里云加速器(Ubuntu)

目录 🍁安装docker🌲1、环境准备🌲2、安装docker Engine🧊1、卸载旧版、任何冲突的包🧊2、使用存储库安装🧊3、安装 Docker 包。🧊4、查询是否安装成功🧊5、运行hello-world镜像&…

24西安电子科技大学马克思主义学院—考研录取情况

01、马克思主义学院各个方向 02、24马克思主义学院近三年复试分数线对比 PS:马院24年院线相对于23年院线增加15分,反映了大家对于马克思主义理论学习与研究的热情高涨,也彰显了学院在人才培养、学科建设及学术研究等方面的不断进步与成就。 6…

算法day02 回文 罗马数字转整数

回文 搞错了String类型的indexOf方法,理解成获取对应下标的值,实际上是在找对应值的下标。 4ms 耗时最少的方法尽量不会去调用jdk提供的方法,而是直接使用对应的数学逻辑关系来处理, 甚至用 代替equals方法。 罗马数字转整数 考…

设计模式探索:策略模式

1. 什么是策略模式(Strategy Pattern) 定义 策略模式(Strategy Pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而…

vue3+electron项目搭建,遇到的坑

我主要是写后端,所以对前端的vue啊vue-cli只是知其然,不知其所以然 这样也导致了我在开发前端时候遇到了很多的坑 第一个坑, vue2升级vue3始终升级不成功 第二个坑, vue add electron-builder一直卡进度,进度条走完就是不出提示succes 第一个坑的解决办法: 按照网上说的升级v…

Linux操作系统中逻辑卷的缩减

流程:第一步先是要缩减逻辑卷的文件系统。 第二步就是要去缩减逻辑卷的物理边界。 注意事项: 1.逻辑卷要处于卸载状态, 2.建议先备份数据 3.在缩减逻辑卷的时候,要注意xfs文件系统的逻辑卷是不支持直接进行缩减的。 4.在缩减…

利用级数公式计算圆周率(π)

π是是指圆的周长与直径的比值,是无限不循环小数,有很多种方法可以求得它的近似值。这里用比较容易实现的关于π的无穷级数来求它的前10000位的取值。 π / 2 π 具体的,用两个字符数组x,z分别存放当前计算得到的pi值,数组…

51单片机基础10——串口实验

串口实验 51单片机串口实验1. 软硬件条件2. 串口实验2.1 单片机与PC 发送字符2.1.1 效果2.1.2 代码2.1.3 优化 2.3 串口接收数据(指令控制单片机)2.3.1 非中断方式实现2.3.2 中断方式实现 51单片机串口实验 1. 软硬件条件 单片机型号:STC89C52RC开发环境&#xff…

文件、文本阅读与重定向、路径与理解指令——linux指令学习(一)

前言:本节内容标题虽然为指令,但是并不只是讲指令, 更多的是和指令相关的一些原理性的东西。 如果友友只想要查一查某个指令的用法, 很抱歉, 本节不是那种带有字典性质的文章。但是如果友友是想要来学习的,…