51单片机学习笔记6 数码管显示

在这里插入图片描述

一、动态数码管

1. 动态数码管工作原理

动态数码管是一种常见的数字显示设备,通常由七段LED组成。每个数码管都有七段LED分别表示数字的不同部分,通过控制这些LED的亮灭,可以显示数字0到9以及一些字母。

在动态数码管中,每个数码管的七段LED是依次被控制的,通过快速地依次使每个数码管的七段LED亮起,可以形成多位数字的连续显示效果。

单片机通过扫描技术和适时的输出控制信号,使得数码管的各个段依次显示所需的数字或字母。

动态数码管特点:

动态数码管具有显示效果清晰、功耗低、寿命长、驱动电路简单等特点,广泛应用于计时器、电子表、计数器等设备中。
由于动态数码管需要单片机不断地扫描和控制,因此需要一定的处理能力和时间,适合用于单片机控制的场合。

我使用的普中开发板,使用 74HC245 作为动态数码管的驱动器,使用 D74HC138 作为译码器。

2. 工作过程

  1. 首先,单片机输出控制信号,选择要显示的数码管。
  2. 然后,单片机根据要显示的数字或字母,通过输出控制信号,通过D74HC138,连接 74HC245,控制对应的七段LED灯亮起或熄灭。
  3. 单片机通过不断地切换显示的数码管,并控制每个数码管的七段LED灯,实现多位数字或字母的连续显示效果。

3. 原理图

(1)数码管及74HC245

在这里插入图片描述

(2)74HC138译码器

在这里插入图片描述

4. 74HC245介绍

74HC245是一款常用的8位双向电平转换器,也被称为总线驱动器。它常用于数字系统中的数据总线扩展、电平转换以及信号缓冲等应用,其主要特点:

  • 高速:74HC245具有较高的数据传输速率,适用于高速数字系统。
  • 低功耗:它的静态功耗较低,适用于功耗要求较低的应用。
  • 低电平输出:74HC245的输出端口可以提供低电平输出,适用于5V和3.3V系统之间的电平转换。

其管脚定义:
在这里插入图片描述

(1)功能

  • 74HC245具有8位双向数据传输功能,可以将数据从一个总线转移到另一个总线,并在两个方向上进行数据传输。
  • 它还具有电平转换功能,可以将高电平信号转换为低电平信号,反之亦然。
  • 74HC245还具有输出使能功能,可以通过控制输入引脚来控制数据的传输使能。

(2)引脚

  • 74HC245具有16个引脚,分为两组,每组包含8个数据引脚和一个使能引脚。

  • 数据引脚用于连接输入或输出数据总线。

  • 使能引脚用于控制数据传输的使能。

  • OE 是输出使能引脚,L 表示输出使能,H 表示输出禁用。

  • DIR 是方向控制引脚,L 表示数据从A端到B端传输,H 表示数据从B端到A端传输。

(3)工作原理

  • 74HC245的工作原理基于双向缓冲器的原理。当使能引脚为高电平时,数据可以从A端传输到B端,并且数据也可以从B端传输到A端。
  • 当使能引脚为低电平时,输入和输出端口之间的连接被切断,此时输入数据不会传输到输出端口,输出端口也不会对输入数据进行响应。

(4)真值表

在这里插入图片描述

5. D74HC138 介绍

D74HC138是一种八线三至八译码器,也被称为3-8译码器。它通常用于数字系统中的地址译码、片选信号生成等应用,用于将三位二进制地址转换为八个输出端口中的一个低电平输出。它具有快速响应、低功耗、高阻抗输入端口等特点。
管脚定义:
在这里插入图片描述

(1)功能

  • D74HC138具有八个输入端口(A0-A2),可以接受三位二进制地址输入。
  • 它有八个输出端口(Y0-Y7),每个输出端口对应一个使能输入端口(G1、G2A、G2B),输出对应的输出端口为低电平。
  • D74HC138将三位输入地址转换为八个输出端口中的一个为低电平,其余输出端口为高电平。

(2)引脚

  • A0-A2:三位地址输入端口,接受二进制地址输入。
  • Y0-Y7:八个输出端口,其中一个为低电平,其余为高电平。
  • G1、G2A、G2B:使能输入端口,通过这些端口控制输出的使能状态。

(3)工作原理

  • 当输入地址的二进制值与译码器的某个输出对应时,该输出端口将产生低电平输出,其余输出端口为高电平。
  • 通过使能端口G1、G2A、G2B来控制译码器的工作状态,使能信号为高电平时,译码器处于工作状态,可以根据输入地址产生对应的输出信号。

(4)真值表

在这里插入图片描述

6. 代码实现

下面代码实现的功能,每1秒在一个数码管上显示当前的数值,即第一个数码管显示0,第二个数码管显示1,以此类推 。

下面定义的gsmg_code中的含义,以0x3f为例,换算成二进制: 00111111,根据电路原理图:
在这里插入图片描述

可以看出赋值情况:

  • a 引脚 P00=1
  • b 引脚 P01=1
  • c 引脚 P02=1
  • d 引脚 P03=1
  • e 引脚 P04=1
  • f 引脚 P05=1
  • g 引脚 P06=0
  • dp 引脚 P07=0
    最终在数码管上就会显示数值 0。
#include "segment_display_utils.h"
#include "types.h"
#include "common_utils.h"

#define SMG_A_DP_PORT P0

// 3-8译码器控制端口
sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;

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


void segment_display() {
    u8 i=0;
    for(i=0;i<8;i++){
        switch(i){
            case 0:
                // 选择第一位数码管,即数码管1, 通过3-8译码器,转换为二进制码111,即7,即选中LED8
                LSA = 1; LSB = 1; LSC = 1;
                break;
            case 1:
                LSA = 0; LSB = 1; LSC = 1;
                break;
            case 2:
                LSA = 1; LSB = 0; LSC = 1;
                break;
            case 3:
                LSA = 0; LSB = 0; LSC = 1;
                break;
            case 4:
                LSA = 1; LSB = 1; LSC = 0;
                break;
            case 5:
                LSA = 0; LSB = 1; LSC = 0;
                break;
            case 6:
                LSA = 1; LSB = 0; LSC = 0;
                break;
            case 7:
                LSA = 0; LSB = 0; LSC = 0;
                break;
        }
        SMG_A_DP_PORT = gsmg_code[i];
        delay_ms(1000);
    }
}

本文代码开源地址:
https://gitee.com/xundh/learn51

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-22 15:30:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-22 15:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-22 15:30:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-22 15:30:02       20 阅读

热门阅读

  1. 计算机网络安全试题

    2024-03-22 15:30:02       18 阅读
  2. node.js nvm命令切换到node 14

    2024-03-22 15:30:02       20 阅读
  3. 面试十二、装饰器模式

    2024-03-22 15:30:02       16 阅读
  4. 量化交易入门(十一)Python开发-数据结构

    2024-03-22 15:30:02       16 阅读
  5. 鸡兔同笼套餐

    2024-03-22 15:30:02       16 阅读
  6. 三要素+人像核验接口,身份核验,身份实名认证

    2024-03-22 15:30:02       20 阅读