一. 元器件介绍
这里用到的元器件有:
SEVEN_SEG_COM_A
七段数码管VIRTUAL_RESISTANCE
电阻器DIgital power
(VCC)数字电源74LS47D
译码器芯片DIPSW
(DIP switch)DIP开关
二. 原理分析
(1)七段数码管上装载了七个发光二极管,既然是发光二极管,那么就具有单向导通性,所以数码管会普遍的分为共阳极和共阴极两种:
共阳极
表示的是内部二极管的正极全部接在一起,阴极则独立接出。
共阴极
表示的是内部二极管的阴极全部接在一起,阳极则独立接出。
数码管上的ABCDEFG实际上就是对应于每一个发光二极管的阴极(或阳极)
可以看到数码管左上角的CA,指的就是共阳极数码管
对应数码管左上角显示CK的为共阴极

(2)译码器芯片需要选择输出为低电平有效的以输出到数码管阴极上驱动数码管显示,故选择74LS47D
译码器芯片,该芯片左右各有七个引脚
ABCD
四引脚分别从上至下分别代表输入二进制数字的低位到高位~LT
:试灯输入,用于检查数码管各段是否能正常发光。当输入为低电平时,译码器输出管脚全部输出低电平,使七段数码管全部点亮显示数字八,试灯完成后将输入置1,即对数码管显示无作用~BI / RBO
:灭灯输入 / 灭零输出,用于同时控制所有二极管的熄灭。当输入为低电平时,译码器输出管脚全部输出高电平,二极管上无电位差,所有二极管熄灭。~RBI
:灭零输入,用于控制数字0的不显示,当接入为低电平时,数码管中显示的数字0会熄灭
DCBA | A | B | C | D | E | F | G |
---|---|---|---|---|---|---|---|
0000 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0001 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
0010 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
0011 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
0100 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
0101 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
0110 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
0111 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
1000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1001 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
上表取~LT、 ~BI / RBO、 ~RBI同时接入高电平
注:0表示亮灯,1表示灭灯
三. 仿真实验
如下图为没有运行时的数码管显示
如下图为运行时的数码管显示
重新接线如下
- 芯片左上端分别接入DIP开关控制每一个二进制位
- 左下端全部接高电平输入(使左下端对数显没有作用)
- 右端分别对应接入数码管阴极
- 数码管左上方为
共阳极
需要接入高电平 - 芯片与数码管连接端需要添加
电阻器
(注:电阻器阻值在一定范围内任意,该范围为(0,648.136] Ω 左开右闭)
即最大阻值不可超过648.136(仿真测试测得最大不超过该值)且不可等于0,否则接该电阻上的二极管不显示
一位数码管最多只能实现0-9十个数字的显示,而ABCD最多可以表示到十进制数字15,所以当ABCD输入数字大于9时,数码管上无法显示,想要实现大于9的数字显示或是多位数字显示则需要添加数码管同时使用其他芯片合成计算数值或使用单片机芯片控制数字输出到不同数码管上
希望能够帮到迷途之中的你,知识有限,如有学术错误请及时指正,感谢大家的阅读
(^^)/▽ ▽\(^^)