电路中有LO,1,L2,L3,4,L5,L6,L7 共八个发光二极管,当引脚LED_ SEL 输入为1,对
于 A、B、C、D、E、F、G、H 引脚,只要输入为1,则点亮相连接的发光二极管。
A~H 引脚连接 STM32F108VB 芯片的 PE8~PE15,程序初始化时,对其进行初始设置。
引脚 LED_ SEL 为 1 时,发光二极管才工作,否则右边的数码管工作。注意,LED
SEL 连接于 PB3,该引脚具有复用功能,在默认状态下,该引脚的 I0 不可用,
需对 AFIO_ MAPR 寄存器进行设置,设置其为 10 可用。
数码管中的 A~G、DP 段分别连接到电路图中的 A~G、H 线上,当某段上有一-定的
电压差值时,便会点亮该段。当 E3 输入为 1,也就是 LED_ SEL 输入为 0 时,
根据 SELO~SEL2 的值确定选中的数码管,即位选,再根据 A~H 引脚的高低电平,
点亮对应段,即段选。
对于给出的流水灯案例,下载HEX 文件后,在开发板上可观察到L0-L7 从左至右
依次点亮,间隔300ms。当全部点亮八个发光二极管后,八个发光二极管同时熄
灭,间隔300ms 后,发光二极管再次从左至右依次点亮。如此反复循坏。
对于给出的 8 位数码管动态扫描案例,下载后,在开发板上可观察到 8 个数码管
从左至右依次显示对应的数字,且每一个数码显示的数字在 1-9 之间循环。
可以通过加快扫描频率,使得八位数码管在人眼看上去是同时显示。在后续的案
例中可以看到该现象。