7段数码管动态扫描c语言,7段数码管动态扫描原理及其实现方式

  • Post author:
  • Post category:其他


数码管动态扫描利用了人类视觉系统的暂留性

人类的视觉有暂留性,显示关闭了,还会在视觉系统中暂短的停留,所以数码管轮流以超过50Hz频率刷新显示,人眼是分辨不出来的。

数码管结构

数码管由7个LED排列成一个“8”字制作而成,8段的数码管在右下脚位置会多一个小数点。比如要显示一个“1”,只要把B、C段的LED点亮就可以了

共阳数码管:内部LED正极连接在一起成为公共极

共阴数码管:内部LED负极连接在一起成为公共极

多个数字数码管怎么组合?

以两位共阳极的数码为例来说明

不同的数字的相同段画是连在一起的

每个数字的公共端是单独的

两位7段的数码管会有9个引脚

两位8段的数码管会有10个引脚

数码管动态驱动电路是怎么样的?

同样以两位共阳数码管为例进行分享

b1edf2d41a4bfd07b21458aa9ef95b2e.png

MCU输出口Dig1控制第一个数字的公共阳极

MCU输出口Dig2控制第二个数字的公共阳极

MCU输出口A、B、C、D、E、F、G、DP控制段画的亮和灭

数码管的动态扫描显示怎么做?

两个数字的A、B、C、D、E、F、G、DP也是公用的,所以数码管的两个数字其实是不可以同时点亮的

我们需要进行分时扫描显示,比如让数码管显示“12”(第一个数字显示1,第二个数字显示2)流程如下1~6

Dig1和Dig2设为高电平,A、B、C、D、E、F、G、DP设为高,此时Q1、Q2都截止了,没有电流流过数码管内部的LED,数码管为熄灭状态

B、C设为低电平,Dig1设为低电平,此时第一个数字的B和C段画点亮,显示为“1”

延时10ms,让第一个数字的“1”持续点亮10ms

Dig1和Dig2设为高电平,A、B、C、D、E、F、G、DP设为高,此时Q1、Q2都截止了,没有电流流过数码管内部的LED,数码管又变回熄灭状态

A、B、E、G设为低电平,Dig2设为低电平,此时第二个数字的A、B、E、G段画点亮,显示为“2”

延时10ms,让第二个数字的“2”持续点亮10ms

1~6步不断的循环,1秒钟可以循环50次,也就是说刷新频率为50Hz

因为人眼的视觉有暂留性的,超过50Hz的刷新速度是识别不出来的。虽然两位数字是快速闪动的,但看起来还是静止的。