晟辉智能制造

技术译码显示电路实验如何实现译码与显示功能?

技术译码显示电路实验全指南

实验概述

实验目的

技术译码显示电路实验如何实现译码与显示功能?-图1
(图片来源网络,侵删)
  • 理解核心概念: 掌握译码器和显示驱动器的基本工作原理。
  • 掌握基本技能: 学会使用数字逻辑芯片(如74系列)搭建简单的数字显示电路。
  • 提升实践能力: 提高电路焊接、连接、调试及故障排查的能力。
  • 探索高级应用: 了解如何将多个数码管组合成多位显示系统,并掌握动态扫描技术以节省I/O口资源。

核心概念解释

  • 数码管:

    • 是什么: 一种用于显示数字的电子显示设备,由7个条形的LED(发光二极管)组成一个“日”字形,外加一个小数点,共8段,因此常被称为“七段数码管”。
    • 类型:
      • 共阳极: 所有LED的阳极连接在一起,作为公共端,要点亮某一段,需要给其对应的阴极施加一个低电平。
      • 共阴极: 所有LED的阴极连接在一起,作为公共端,要点亮某一段,需要给其对应的阳极施加一个高电平。
    • 本实验选择: 共阴极数码管更为常见,驱动逻辑更符合“1点亮”的直观感受。
  • 译码器:

    • 是什么: 一种组合逻辑电路,其功能是将输入的二进制代码“翻译”成特定的输出信号。
    • 为什么需要: 微控制器(如Arduino)或计数器(如4060)输出的是4位二进制码(如 0000, 0001, ... , 1001),而数码管需要的是8个独立的段选信号,译码器就充当了“翻译官”的角色。
    • 核心芯片: 74LS48CD4511,这两个都是BCD码(8421码)七段译码/驱动器。
      • 输入: 4位BCD码(代表0-9)。
      • 输出: 7个段选信号(a-g),可以直接驱动共阴极数码管。
      • 额外功能: 都有灭灯输入和测试端,功能强大。

实验所需器材

  1. 核心芯片:
    • 74LS48 或 CD4511 BCD-七段译码器 (1片)
    • 共阴极七段数码管 (1个)
  2. 输入控制:
    • 4个拨码开关 或 4个带10kΩ上拉电阻的轻触开关
    • 或一块Arduino/单片机开发板
  3. 电源与基础元件:
    • 面包板 (1块)
    • 杜邦线若干
    • 5V直流电源 (或USB供电)
    • 电阻 (约220Ω - 330Ω, 7个,用于限流,保护数码管LED)
  4. 进阶实验 (可选):
    • 74LS192 十进制同步加/减计数器 (1片)
    • 555定时器 (1片) 或 NE555
    • 电容、电阻 (用于构成时钟电路)
    • 更多数码管 (用于多位数显示)

基础静态显示实验

这个实验的目标是:通过拨动开关输入0-9的数字,让数码管稳定地显示对应的数字。

技术译码显示电路实验如何实现译码与显示功能?-图2
(图片来源网络,侵删)

电路原理图

graph TD
    subgraph "输入"
        D0[拨码开关 D0] --> A0[74LS48 A]
        D1[拨码开关 D1] --> A1[74LS48 B]
        D2[拨码开关 D2] --> A2[74LS48 C]
        D3[拨码开关 D3] --> A3[74LS48 D]
    end
    subgraph "核心芯片"
        U1[74LS48] -- 段选信号 a-g --> {a, b, c, d, e, f, g}
    end
    subgraph "显示"
        R1[220Ω] -- a --> LED_a[数码管 a段]
        R2[220Ω] -- b --> LED_b[数码管 b段]
        R3[220Ω] -- c --> LED_c[数码管 c段]
        R4[220Ω] -- d --> LED_d[数码管 d段]
        R5[220Ω] -- e --> LED_e[数码管 e段]
        R6[220Ω] -- f --> LED_f[数码管 f段]
        R7[220Ω] -- g --> LED_g[数码管 g段]
    end
    subgraph "电源与公共端"
        VCC[+5V] --> U1[VCC]
        GND[GND] --> U1[GND]
        GND --> 数码管[COM公共端]
    end
    U1 -- LT(Lamp Test) --> VCC
    U1 -- RBI(Ripple Blanking) --> GND
    U1 -- BI/RBO(Blanking Input/Ripple Blanking Output) --> GND

电路连接步骤

  1. 放置芯片: 将74LS48和共阴极数码管插在面包板的两侧,确保它们不接触。
  2. 连接电源:
    • 将74LS48的 VCC (16脚) 接到面包板的正极电源行。
    • 将74LS48的 GND (8脚) 和数码管的 COM 公共端接到面包板的负极电源行。
  3. 连接输入:
    • 将4个拨码开关的一端接到正极。
    • 开关的另一端分别连接到74LS48的输入引脚 A (7脚), B (1脚), C (2脚), D (6脚)。
    • 重要: 74LS48的输入端悬空会表现为高电平,所以当开关断开时,输入为1;开关闭合时,输入为0,这符合BCD码的逻辑。
  4. 连接输出:
    • 74LS48的输出引脚 a (13脚) 到 g (9脚) 分别通过一个220Ω的电阻连接到数码管对应的 ag 引脚。
    • 查阅数据手册确认数码管引脚定义,不同厂家可能不同。
  5. 使能控制引脚:
    • LT (Lamp Test, 3脚): 接高电平,正常工作时接高电平,用于测试所有段是否点亮。
    • RBI (Ripple Blanking Input, 4脚): 接低电平,正常工作时接低电平。
    • BI/RBO (Blanking Input/Ripple Blanking Output, 5脚): 接低电平,正常工作时接低电平。

实验操作与现象

  1. 接通电源。
  2. 拨动4个拨码开关,输入不同的BCD码。
    • 0000 (所有开关断开) -> 显示 0
    • 0001 -> 显示 1
    • 0010 -> 显示 2
    • 1001 -> 显示 9
  3. 尝试输入非BCD码,如 1010 (10),观察数码管显示是否为乱码或不亮(取决于芯片内部逻辑)。

故障排查

  • 数码管不亮:
    • 检查电源是否接通(VCC和GND)。
    • 检查数码管的COM公共端是否正确接地(共阴极)。
    • 检查BI/RBO引脚是否被误拉高。
  • 显示乱码或错误:
    • 检查输入引脚的连接是否正确。
    • 检查输出引脚 a-g 到数码管引脚的连接是否一一对应。
    • 检查220Ω电阻是否都已接入。
  • 部分段不亮:

    检查对应段的电阻或连接线是否接触不良。


自动计数显示实验

这个实验的目标是:利用计数器芯片和时钟电路,让数码管自动从0计数到9,循环往复。

电路原理

在实验一的基础上,我们不再用手动开关输入,而是用一个计数器来自动产生BCD码,并用一个时钟电路来驱动计数器。

  • 计数器: 74LS192 (同步十进制可逆计数器),我们将其接成加法计数模式。
  • 时钟源: 555定时器构成一个多谐振荡器,产生稳定的脉冲信号,作为计数器的时钟输入。

电路连接

  1. 保留部分: 保留74LS48和数码管及其连接。
  2. 添加555时钟电路:
    • 按照标准的555多谐振荡器电路连接,选择合适的R1, R2, C1值来获得合适的计数速度(例如1Hz)。
    • 555的输出引脚(3脚)连接到74LS192的 CLK UP (5脚)。
  3. 添加74LS192计数器:
    • VCC (16脚) 接+5V, GND (8脚) 接GND。
    • A, B, C, D (数据预置端) 全部接GND(从0开始计数)。
    • CLK DOWN (4脚) 接高电平(不进行减法计数)。
    • CLEAR (14脚) 接高电平(不清零)。
    • A, B, C, D (数据输出端) 连接到74LS48的 A, B, C, D 输入端。

实验现象

接通电源后,你会看到数码管上的数字从0开始,以固定的速度(由555电路决定)增加到9,然后瞬间回到0,重新开始循环。

技术译码显示电路实验如何实现译码与显示功能?-图3
(图片来源网络,侵删)

多位数动态扫描显示

这是在实际应用中最常见的技术,因为它极大地节省了微控制器的I/O口,显示一个4位数“1234”,如果静态驱动,需要4*8=32个I/O口;而动态扫描只需要8个段选口 + 4个位选口 = 12个I/O口。

核心原理

“视觉暂留效应”,快速地轮流点亮每一位数码管,并送出对应的数据,只要切换速度足够快(>50Hz),人眼就会感觉所有数码管是同时点亮的。

  • 段选线: 连接所有数码管对应的a, b, c... 引脚,所有数码管的同名段是并联在一起的。
  • 位选线: 每个数码管的COM公共端独立引出,用于控制当前点亮的是哪一位。

电路连接 (以2位为例)

  1. 段选部分:
    • 将两个数码管的 a 引脚并联,b 引脚并联,...,g 引脚并联。
    • 将这7组并联的引脚通过7个220Ω电阻,连接到一个74LS48的输出端。
    • 74LS48的输入端由Arduino控制。
  2. 位选部分:
    • 将第一个数码管的COM端连接到一个NPN三极管(如8050)的集电极,三极管的发射极接地,基极通过一个1kΩ电阻连接到Arduino的一个数字引脚(如D2)。
    • 将第二个数码管的COM端连接到另一个NPN三极管的集电极,基极通过1kΩ电阻连接到Arduino的另一个数字引脚(如D3)。
    • 原理: 当Arduino给D2一个高电平时,第一个三极管导通,第一个数码管的公共端被拉到地(共阴极),第一个数码管可以被点亮,第二个数码管同理。
  3. 控制:
    • Arduino的8个数字引脚连接到74LS48的4个输入端和3个使能端(或直接用8个口控制段选,省去译码器,更灵活)。
    • 另外2个数字引脚连接到位选三极管的基极。

Arduino 伪代码示例

// 定义引脚
const int segmentPins[] = {2, 3, 4, 5}; // 连接到74LS48的 A, B, C, D
const int digitPins[] = {6, 7};         // 控制第一个和第二个数码管
// 要显示的数字
int number = 42; // 显示 "42"
void setup() {
  // 设置所有引脚为输出
  for (int i = 0; i < 4; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
  for (int i = 0; i < 2; i++) {
    pinMode(digitPins[i], OUTPUT);
  }
  digitalWrite(digitPins[0], HIGH); // 初始关闭所有位
  digitalWrite(digitPins[1], HIGH);
}
void loop() {
  // 分解数字
  int tens = number / 10;
  int ones = number % 10;
  // 显示十位
  displayNumber(tens);
  digitalWrite(digitPins[0], LOW); // 打开第一个数码管
  delay(5); // 延时,控制亮度
  digitalWrite(digitPins[0], HIGH); // 关闭第一个数码管
  // 显示个位
  displayNumber(ones);
  digitalWrite(digitPins[1], LOW); // 打开第二个数码管
  delay(5);
  digitalWrite(digitPins[1], HIGH); // 关闭第二个数码管
}
// 辅助函数:将数字0-9转换为BCD码并输出
void displayNumber(int num) {
  // 这里需要根据你的连接方式,将num转换为4位BCD码
  // 如果num=4,BCD码是0100
  // 然后通过digitalWrite(segmentPins[0], HIGH)...来设置
  // 这部分逻辑需要根据你的具体电路实现
  // 简化版:直接使用Arduino的数字口控制,不使用74LS48
  // byte segments = ...; // 定义0-9的段码表
  // for(int i=0; i<4; i++){
  //   digitalWrite(segmentPins[i], (segments >> i) & 0x01);
  // }
}

实验现象

两个数码管会交替显示“4”和“2”,由于切换速度很快,看起来就像是稳定地显示着“42”。


总结与思考

通过这三个由浅入深的实验,你已经全面掌握了技术译码显示电路的核心技术:

  1. 基础: 理解了译码器如何将二进制码转换为驱动信号。
  2. 应用: 学会了如何将计数器与显示电路结合,实现自动化。
  3. 进阶: 掌握了动态扫描技术,这是现代电子设备(如时钟、计算器)显示数字的基石。

进一步可以探索的方向:

  • 使用驱动芯片: 学习使用MAX7219或TM1637等专用数码管驱动芯片,它们集成了译码、扫描、亮度控制等功能,使用极其方便。
  • 驱动点阵屏: 将原理扩展到8x8点阵屏,可以实现更复杂的图形和文字显示。
  • 与传感器结合: 将温度传感器(如DS18B20)的数值通过动态扫描电路显示出来,制作一个数字温度计。
分享:
扫描分享到社交APP
上一篇
下一篇