BCD-to-7-Segment Decoder

Encoders/Decoders · Intermediate · 20 min

Master the BCD-to-7-Segment Decoder: convert a 4-bit Binary Coded Decimal value (0-9) into the seven segment signals that light a digit on a seven-segment display.

Fig. 1 — Interactive BCD-to-7-Segment Decoder circuit ● LIVE

BCD 转七段译码器

概述

  • 用途:BCD 转七段译码器是一种组合逻辑电路,它将 4 位 BCD(二进制编码十进制) 值(0–9)转换为在七段数码管上显示该数字所需的七个控制信号(a–g)。
  • 符号:一个译码器模块,左侧有四个输入(A0–A3),右侧有七个输出(a–g)。在 DigiSim.io 中标注为 BCD / 7-SEG
  • 在 DigiSim.io 中的作用:它是以二进制工作的计数/运算逻辑与人类可读的数字显示之间的桥梁,对应于经典的译码器集成电路,如 7447/7448

BCD 转七段译码器

功能说明

逻辑行为

译码器读取 A0–A3(A0 为最低位)上的 4 位 BCD 值,并以该数字的高电平有效模式驱动七个段输出 a–g。输入 10101111(10–15)不是十进制数,会熄灭显示(所有段熄灭),这与 7448 的约定相同。

真值表(段 = 1 表示点亮):

数字 A3 A2 A1 A0 a b c d e f g
0 0000 1 1 1 1 1 1 0
1 0001 0 1 1 0 0 0 0
2 0010 1 1 0 1 1 0 1
3 0011 1 1 1 1 0 0 1
4 0100 0 1 1 0 0 1 1
5 0101 1 0 1 1 0 1 1
6 0110 1 0 1 1 1 1 1
7 0111 1 1 1 0 0 0 0
8 1000 1 1 1 1 1 1 1
9 1001 1 1 1 1 0 1 1

输入与输出

  • 输入A0A1A2A3 —— 4 位 BCD 值(A0 = 最低位)。
  • 输出abcdefg —— 七个段驱动信号,高电平有效。将每个输出连接到七段数码管对应的段输入。

可配置参数

无。映射是固定的(标准十进制字形);行为仅取决于输入端的 BCD 值。

在 DigiSim.io 中的可视化表示

该元件绘制为一个译码器主体,左侧排列输入 A0–A3,右侧排列七个段输出 a–g。用开关、计数器或任意 4 位逻辑驱动输入,并将输出连接到七段数码管,即可看到数字显示出来。

教育价值

关键概念

  • BCD 编码 —— 将每个十进制数字 0–9 表示为 4 位二进制值。
  • 组合译码 —— 在没有存储器或时钟的情况下,将编码输入转换为固定的输出模式。
  • 显示驱动 —— 将数值(二进制)与其呈现(点亮的段)分离开来。

学习目标

  • 阅读七段真值表,并将每个数字与其点亮的段对应起来。
  • 将二进制计数器连接到译码器和显示器,构建一个会计数的数字。
  • 理解为什么在 BCD 译码器中大于 9 的值会被熄灭。

使用示例/场景

  • 单个计数数字:4 位计数器 → BCD 转七段译码器 → 七段数码管显示 0–9。
  • 多位时钟或计数器:每一位配一个译码器 + 一个显示器,由级联的 mod-10 / mod-6 计数器驱动(参见数字时钟演示)。
  • 手动实验:四个开关设定一个 BCD 值,显示器显示对应的数字。

应用

  • 数字钟、定时器和秒表。
  • 计数器、计分牌和计数显示。
  • 电压表、温度计及其他数字仪表读数。
  • 任何将二进制数转换为可见十进制数字的项目。

局限性

  • 仅译码单个十进制数字(0–9);多位数字需要每一位配一个译码器 + 一个显示器。
  • 输入 10–15 会熄灭显示,而不是显示十六进制字母。若需十六进制(0–F),请改用数字显示(Digit Display)元件。
  • 纯组合逻辑 —— 它不保存任何数值;如果需要数字保持,请在前级进行锁存或计数。

相关元件

  • 七段数码管 —— 该译码器驱动的输出器件。
  • 译码器(3 转 8) / 译码器(2 转 4) —— 独热地址译码器;相关的译码逻辑。
  • 数字显示(Digit Display) —— 内置译码器、直接显示十六进制(0–F),无需外部译码器。
  • 计数器 —— 为该译码器提供 BCD 值的常见来源。

学习路径

常见问题

What is BCD?

Binary Coded Decimal encodes each decimal digit 0-9 as its own 4-bit binary value, so 5 is 0101 and 9 is 1001.

Why do inputs above 9 go blank?

Values 10-15 are not valid single decimal digits, so a BCD decoder blanks all segments for them - the same behaviour as the classic 7448 IC.

How is this different from the Digit Display?

The Digit Display has a decoder built in and shows hex 0-F directly. This component is the decoder itself, driving a separate seven-segment display, so you can see the segment logic.

查看其他组件