打印

LED数码管动态扫描

[复制链接]
21491|68
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shibao21ic|  楼主 | 2010-10-22 08:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2010-10-22 08:58 | 只看该作者
1~2MS循环扫描

使用特权

评论回复
板凳
shibao21ic|  楼主 | 2010-10-22 09:04 | 只看该作者
谢谢2楼,我使用的是PROTEUS仿真,一开始我也是1~2MS循环扫描,可是在仿真时LED不停的跳变,我又用示波器观察,发现输出波形正常,这是怎么回事?

使用特权

评论回复
地板
ayb_ice| | 2010-10-22 09:12 | 只看该作者
本帖最后由 ayb_ice 于 2010-10-22 09:14 编辑

仿真必竟是"仿"真
PROTEUS那玩意儿没有用过
保证频率50~100HZ即可,比如4位LED,100HZ那么周期是10MS,每位10/4=2.5MS即可

使用特权

评论回复
5
yangyicheng| | 2010-10-22 15:24 | 只看该作者
4位数码管,60Hz左右的频率就够了,每个数码管导通时间1/4,即用240Hz的频率就可以了,也就是每个数码管的导通1MS左右!肯定行

使用特权

评论回复
6
chunyang| | 2010-10-22 15:29 | 只看该作者
导通时间要尽量的长,是否闪烁与占空比有关,刷新率则是另一个概念。

使用特权

评论回复
7
peigang| | 2010-10-22 15:29 | 只看该作者
80hz左右应该比较稳定

使用特权

评论回复
8
zx4798| | 2010-10-23 01:40 | 只看该作者
仿真未必就对啊我在板上试过,2ms够了

使用特权

评论回复
9
w34880593| | 2010-10-23 08:17 | 只看该作者
学习学习!

使用特权

评论回复
10
老鱼探戈| | 2010-10-27 13:04 | 只看该作者
1-2ms就可以了,不要太长,否则占有CPU资源。。

使用特权

评论回复
11
zhoukok| | 2010-10-28 18:02 | 只看该作者
20ms应该可以

使用特权

评论回复
12
刘前辈| | 2010-10-28 21:35 | 只看该作者
本帖最后由 刘前辈 于 2010-10-28 21:54 编辑

还是6楼chunyang说的对。
这种事不是实验出来的,是计算出来的:
你如果要50HZ(20ms)扫描频率,4个LED当然每个需要点亮5ms!

24HZ 扫描频率是一个根据人眼滞后特性得到的。所以大于20HZ或者说50ms的扫描频率都是可以的;(不闪烁的)。
扫描频率太快则LED亮度暗;
扫描频率太慢则LED闪烁;

要折衷考虑就不能动态LED太多,所以一般只看见4~8个动态扫描。因为50ms / 8=5.1ms点亮时间,再多就不亮了。5ms点亮时间是个标准,1ms相当于你接了50个LED!当然不亮。

10楼可能说反了吧,5ms点亮时间只是说每隔5ms需要切换下一个LED,切换时间是瞬间的,几乎不占CPU资源的。相反,1ms 切换程序倒是由于过于频繁的占用CPU时间,浪费了CPU资源,影响系统其它程序。——单个LED点亮时间越长,切换频率越低,越不占用CPU资源。



使用特权

评论回复
13
xwj| | 2010-10-28 21:53 | 只看该作者
LS错,亮度只和占空比(位数分之一)有关,和5ms或1ms无关。
扫描快了并不会变暗的。

使用特权

评论回复
14
dong_abc| | 2010-10-28 21:58 | 只看该作者
LS正确

使用特权

评论回复
15
dong_abc| | 2010-10-28 22:01 | 只看该作者
4位数码管我一般用20ms一个循环,也就5ms切换一位

使用特权

评论回复
16
zhuzheic| | 2010-10-30 22:08 | 只看该作者
1ms,用中断来做,蛮稳定的。但是不要让其它的语句导致LED占空比太大了。

使用特权

评论回复
17
eswei| | 2010-10-31 10:44 | 只看该作者
延时多少不是关键,只要稍微延时就可以了。一般我用的是5MS。习惯问题。

使用特权

评论回复
18
刘前辈| | 2010-10-31 12:33 | 只看该作者
本帖最后由 刘前辈 于 2010-10-31 12:36 编辑



13楼xwj:
LS错,亮度只和占空比(位数分之一)有关,和5ms或1ms无关。
扫描快了并不会变暗的。

请问xwj版主:占空比难道和点亮电流无关?您一秒钟扫描2个LED,和一秒钟扫描10个LED,平均每个点亮电流,能一样么;效果上哪个状态更亮?

如若想让10个LED和2个LED状态时每个LED位数一样亮,只有把扫描频率由10HZ降到2HZ,越慢越亮,(牺牲的是扫描稳定性)。——亮度与扫描频率无关?


我举个例子:100HZ的扫描频率,20个LED,这样位数之一每个LED平均一次扫描点亮500us。

结果:20个LED一个也不亮!扫描频率越快越没戏。只有把扫描频率降下来,一直降到50HZ以下,结果:
扫描频率:
50HZ:每位数点亮1ms,看得见,亮度不足;
25HZ: 每位数点亮2ms,亮度高一倍;
10HZ:每位数点亮5ms,亮度基本正常;闪烁。
1HZ: 每位数点亮50ms,请看看是什么亮度?1秒钟移动20次,——流水灯了。



实际结果:

使用特权

评论回复
19
maychang| | 2010-10-31 13:07 | 只看该作者
18楼:
这是你实验的结果?
xwj说得完全正确,亮度只与占空比有关,与每位的时间长度无关。当然,每位的转换时间必须可以忽略。

使用特权

评论回复
20
刘前辈| | 2010-10-31 13:11 | 只看该作者
本帖最后由 刘前辈 于 2010-10-31 13:13 编辑

下面的数学公式证明想必正确:
设:
   动态扫描LED个数为 n ;
   动态扫描频率为f (HZ) ;
则:每位LED所得到的点亮时间T 等于
     1 / (nxf)    ( 秒 )

即:每位LED点亮时间 T(即亮度)与扫描频率 f  成反比。

扫描频率越高,相当于占空比越小,当然亮度越低。

——当然稳定性(不闪烁)越好。
反之,扫描频率越低,亮度越高。但是开始闪烁。——书上标准以20~50HZ为上、下限。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

40

帖子

1

粉丝