单片机数码管重影和闪烁
2016-08-02 00:27
573 查看
单片机数码管重影和闪烁
在进行数码管动态扫描时,经常出现相邻LED某些段位微亮的重影。
产生重影的原因:
由于数码管是由发光管组成的,发光管是有反应时间的,太快就会因为发光管没有来的急放电就要显示下一状态,两种状态叠加显示,就成了重影。’
其实LED的响应时间在纳秒级,相当快。但是人的眼睛有视觉滞留的特点,所以当你扫描时间太短的时候,某一个段码已经由亮转为暗,但是人的眼睛还没有反应过来,还以为它是亮的,接着下一个段码就被点亮了,所以就出现了重影现象。如果用高速的摄像机拍摄下来,仔细分析每一帧,是会发现LED段码的确按照你的要求在亮或者灭,只是停留时间较短而已。
解决重影的办法:
如果数码段选端连接P0,则共阴极数码管消除重影为:
#define SEGPORT P0
sbit bit_select = P2^0;
sbit seg_select = P2^1;
SEGPORT = 0;
seg_select = 1;
seg_select = 0;
SEGPORT = 0xff;
bit_select = 1;
bit_select = 0;
闪烁:
如果停留时间太长的话,也就意味着暗的时间太长,人眼没能将亮暗的变化连续起来。就像拍摄电影,如果帧数较少的时候,在激烈动作的时候会出现跳帧。换个例子,就像本来每秒24帧的静态图片可以在人眼中形成连续的画面,你从中间抽取10帧画面,还在一秒内重放这些画面,就会感觉到闪烁。
在进行数码管动态扫描时,经常出现相邻LED某些段位微亮的重影。
产生重影的原因:
由于数码管是由发光管组成的,发光管是有反应时间的,太快就会因为发光管没有来的急放电就要显示下一状态,两种状态叠加显示,就成了重影。’
其实LED的响应时间在纳秒级,相当快。但是人的眼睛有视觉滞留的特点,所以当你扫描时间太短的时候,某一个段码已经由亮转为暗,但是人的眼睛还没有反应过来,还以为它是亮的,接着下一个段码就被点亮了,所以就出现了重影现象。如果用高速的摄像机拍摄下来,仔细分析每一帧,是会发现LED段码的确按照你的要求在亮或者灭,只是停留时间较短而已。
解决重影的办法:
1.显示前先将所有数码管熄灭,然后再显示。 2.除了显示数码外,其他时间都是熄灭的。 3.检查是否存在交替显示不同数字。 4.扫描速度要足够快。
如果数码段选端连接P0,则共阴极数码管消除重影为:
#define SEGPORT P0
sbit bit_select = P2^0;
sbit seg_select = P2^1;
SEGPORT = 0;
seg_select = 1;
seg_select = 0;
SEGPORT = 0xff;
bit_select = 1;
bit_select = 0;
闪烁:
如果停留时间太长的话,也就意味着暗的时间太长,人眼没能将亮暗的变化连续起来。就像拍摄电影,如果帧数较少的时候,在激烈动作的时候会出现跳帧。换个例子,就像本来每秒24帧的静态图片可以在人眼中形成连续的画面,你从中间抽取10帧画面,还在一秒内重放这些画面,就会感觉到闪烁。
相关文章推荐
- 单片机数码管闪烁或者一个亮其他较暗
- 51单片机--设置数码管的闪烁位置,便于输入数字
- 数码管流动显示(自己的单片机)
- c51 单片机实验_2 数码管
- 单片机数码管动态显示—C语言版
- 单片机: 热敏电阻測温而且显示到数码管(温度计)
- 单片机==数码管+蜂鸣器+炸弹(15)
- 51单片机数码管动态显示
- 数码管闪烁
- SAM4E单片机之旅——4、LED闪烁之PWM
- 【单片机】灯按照不等时间闪烁程序
- 谁帮忙编写 一个 四位数码管显示分钟和秒钟的单片机c语言吧
- 单片机数码管动态显示
- 单片机实现灯左右移动和闪烁的程序
- 单片机==独立按键+数码管计数+扫描法(8)
- Linux系统下的51单片机数码管实现精准计时
- 单片机数码管显示
- SAM4E单片机之旅——1、LED闪烁之空循环
- 关于51单片机数码管消影
- 数码管动态显示 + 中断 消除闪烁