提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
STC89C52操作8八段式数码管原理
- [1 8位数码管介绍](#1 8位数码管介绍)
-
- [1.1 8位数码管概述](#1.1 8位数码管概述)
- [1.2 8位数码管原理](#1.2 8位数码管原理)
- [1.3 应用场景](#1.3 应用场景)
- [2 原理图图解](#2 原理图图解)
-
- [2.1 74HC573原理](#2.1 74HC573原理)
- [2.2 74HC138原理](#2.2 74HC138原理)
- [2.3 数码管原理](#2.3 数码管原理)
- [3 数码管程序](#3 数码管程序)
-
- [3.1 点亮一个数码管](#3.1 点亮一个数码管)
- [3.2 扫描显示数码管](#3.2 扫描显示数码管)
- [3.3 显示一组数据](#3.3 显示一组数据)
- [3.4 Protues仿真](#3.4 Protues仿真)
- [4 总结](#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 点亮一个数码管
c
/********************************************************
函数名称:sys_ledtube_on1
函数功能:点亮一个数码管全为亮起来
入口参数:
出口参数:
修 改:
内 容:
********************************************************/
void sys_ledtube_on1(void)
{
//根据原理图,将P0口全部输出高电平,P2选择0号数码管
P0=0xFF;//取显示数据,段码
P2=0; //取位码
}
3.2 扫描显示数码管
c
// 显示段码值01234567,可对应原理图查看显示不同图形对应的引脚高点电平配置状态
unsigned char const EL[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
c
/********************************************************
函数名称: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);
}
c
#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
主程序中
c
void main (void)
{
//8个指示灯的操作
sys_led();
sys_led_test();
sys_led_test1();
sys_ledtube_on1();
//主循环中添加其他需要一直工作的程序
while (1)
{
sys_ledtube_on2();
}
}
3.3 显示一组数据
c
/********************************************************
函数名称: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 总结
数码管是一种常见的数字显示设备,广泛应用于各种领域。以下是一些数码管应用市场的例子:
-
时钟和计时器:数码管常被用于制造电子时钟、计时器和倒计时器。这些设备可以在办公室、学校、体育场馆、交通信号灯等地方使用。
-
家电和电子产品:数码管被广泛应用于家用电器和电子产品中,如微波炉、洗衣机、冰箱、电视机、音响等。数码管可以显示时间、温度、程序设置等信息。
-
工业自动化:在工业控制系统中,数码管常用于显示各种参数和状态信息,如温度、压力、流量、速度等。这些信息对于监控和控制工业过程非常重要。
-
汽车和交通系统:数码管被广泛应用于汽车仪表盘、导航系统、车载音响等设备中。它们可以显示车速、油量、里程、导航指示等信息。此外,数码管还用于交通信号灯和路牌显示。
-
电子游戏和娱乐设备:数码管被用于电子游戏、街机机台、赌场游戏设备等娱乐设备中。它们可以显示得分、计时、游戏状态等信息。
-
医疗设备:数码管在医疗设备中也有广泛应用,如医疗监护仪、血糖仪、体温计等。它们可以显示患者的生命体征、测量结果等重要数据。
-
通信设备:数码管常用于通信设备的显示屏,如电话、对讲机、路由器等。它们可以显示来电号码、信号强度、网络状态等信息。
这些只是数码管应用市场的一些例子,实际上,数码管在各个领域都有广泛的应用。随着科技的发展,数字显示技术也在不断进步,液晶显示屏等新型显示技术逐渐取代了一部分数码管的应用,但数码管仍然在某些特定场景中保持着重要地位。