Skip to content

LED数码管

更新: 4/10/2025 字数: 0 字 时长: 0 分钟

在前一节中,我们了解了如何控制LED灯带产生不同的颜色和效果。在本节中,我们将学习如何用LED数码管组合成不同的数字。

准备

硬件

硬件说明图片
创意盒平台My Image
七段数码管模块创意盒官方模块My Image

软件

软件链接说明
比分计数系统链接官方前端应用,可直接通过控制台加载和使用。

视频讲解

七段数码管

连接

My Image
连接
将第一个七段数码管模块和平台的任意排针连接,这里是平台引脚16-19
将第二个七段数码管模块和平台的任意排针连接,这里是平台引脚8-11

使用

打开创意盒控制台,并加载灯光类中的计分板应用。进入该应用,选择主队和客队七段数码管和创意盒的连接引脚编号。点击对应加分选项。可以看到七段数码管显示主队和客队的分数。

创意盒控制台加载应用选择引脚编号并进行控制

原理

数据手册下载链接
七段数码管链接
位移寄存器链接

七段数码管

七段数码管是一种常用的数字显示器件,它由七个LED组成,排列成数字“8”的形状。每个LED代表数字中的一个线段,通过点亮或熄灭这些LED,可以显示从0到9的数字。此外,七段数码管的右下角还有一个圆点状的LED,当两个及以上的数码管连接在一起时,这个圆点可以用来代表小数点(DP)。

My Image

这些LED都有自己单独的引脚。只需要在对应的引脚上电,相应的LED段位就会亮起。不同的LED段位组合,就形成了不同的数字。

My Image

和RGB LED一样,七段数码管也分成共阳型(Common Anode)和共阴型(Common Cathode)。在共阳型数码管中,所有LED的阳极连接在一起,而阴极分别接到各个数字线段。在共阴型数码管中,所有LED的阴极连接在一起,而阳极分别接到各个数字线段。下图中所示的是共阳型七段数码管的电路图:

My Image

通过控制每个线段的点亮和熄灭,我们可以以灵活的方式显示各种数字、字母和符号。七段数码管可以在很多电子设备中看到,比如时钟、计数器、温度计等。它们提供了一种简单而直观的方式来显示数字信息。

位移缓存器

一个七段数码管有八个LED,我们可以为每个LED分配一个GPIO,即可控制任意LED。但是如果要控制多个数码管,那么这种方法就会导致电路非常繁琐。这时候,我们就需要借助位移缓存器。

位移缓存器(Shift Register)是一种数字电路元件,用于在时钟脉冲的控制下将数据从输入端“移动”到输出端。位移缓存器在数字系统中有广泛的应用,例如数据存储、数据传输、显示控制、序列生成等。

My Image

位移缓存器由若干个单比特“D型数据锁存器”组成,每个数据位都可以是逻辑“0”或“1”,它们以串行的方式串联在一起,使得一个数据锁存器的输出成为下一个锁存器的输入,依此类推。单个位移缓存器内的数据锁存器的数量,通常由要存储的位数决定,其中最常见的是8位(一个字节)宽,由八个单独的数据锁存器构成。

My Image

位移缓存器有四种不同的工作模式,其中数据在位移缓存器中的基本移动方式包括:

  1. 串行输入并行输出(SIPO)- 位移缓存器逐位串行加载数据,并将存储的数据以并行形式输出。
  2. 串行输入串行输出(SISO)- 数据在位移缓存器中按位进行串行“输入”和“输出”,在时钟控制下,每次逐位进行左移或右移。
  3. 并行输入串行输出(PISO)- 并行数据同时加载到位移缓存器中,并在时钟控制下逐位进行串行输出。
  4. 并行输入并行输出(PIPO)- 并行数据同时加载到位移缓存器中,并在同一个时钟脉冲下一起传输到各自的输出。

串行输入并行输出位移缓存器

为了实现用较少的GPIO控制多个LED,需要选用串行输入并行输出的位移缓存器。串行输入,意味着只需要一个GPIO输入信号;并行输出,意味着可以同时点亮多个LED。

以下图的4位串行输入并行输出位移缓存器为例:

My Image

如果将逻辑高电平“1”连接到FFA的DATA输入引脚,则在第一个时钟脉冲时,FFA的输出和因此QA的输出将被置为逻辑高电平“1”,而所有其他输出仍然保持逻辑低电平“0”。现在假设FFA的DATA输入引脚再次返回逻辑低电平“0”,这给我们一个数据脉冲或0-1-0。

My Image

随着时钟脉冲的不断产生,信号“1”在锁存器中不断传递。直到第四个时钟脉冲到达时,完整的数据值0-0-0-1存储在寄存器中。这时候,就可以从QA到QD的输出端同步读取数据。

下表是不同时钟脉冲时,各个锁存器的数值。第五个时钟脉冲时,所有输出都为逻辑低电平“0”,这是因为输入端保持在逻辑低电平“0”。

时钟脉冲QAQBQCQD
00000
11000
20100
30010
40001
50000

74HC595位移缓存器

为了同时控制8个LED,我们需要一个8位串行输入并行输出的位移缓存器。下图所示的原理图,就是我们这次使用的74HC595位移缓存器:

My Image

74HC595的每一个引脚用途如下:

  • OE: 输出使能端,拉低时允许信号输出。
  • RCLK: 信号输出控制端,拉高时输出并行信号。
  • SRCLR: 缓存器清零。
  • SRCLK: 时钟脉冲信号。
  • SER: 串行输入信号。

虽然74HC595仍需要5个引脚来控制一个七段数码管,似乎和传统的方法差别不大。但如果我们有多个数码管,则不同的缓存器之间可以共用除SER以外的其余四个GPIO。比如,控制三个数码管,传统的方式需要24个GPIO,而使用位移缓存器,则只需要7个GPIO,很大程度地简化了电路。

接下来,我们只需要了解不同的数字该点亮哪几个LED,然后将这8比特的信号并行传输给数码管,就可以显示出具体的数字了。

真值表

对于七段数码管,我们可以制作一个真值表,列出需要点亮的各个段,以产生从0到9的十进制数字,如下所示:

My Image
数字abcdefg
01111110
10110000
21101101
31111001
40110011
51011011
61011111
71110000
81111111
91111011