论坛风格切换切换到宽版
  • 3392阅读
  • 13回复

请教一个七段LED显示的问题 [复制链接]

上一主题 下一主题
离线kyughanum
 
发帖
99
只看楼主 倒序阅读 0楼 发表于: 2008-07-28
请教一个七段led显示的问题,比如现在要做一个七段led显示的时钟,当我要调整时间时,我想在调整小时时,小时这一位显示是一闪一闪的,就像lcd电子表显示那种闪,七段led显示是采用动态扫描的。各位dx指点一下!谢谢了!
在线BG4UVR
发帖
11209
只看该作者 1楼 发表于: 2008-07-28
0.5秒显示全黑,0.5秒显示原有的内容。
离线kyughanum
发帖
99
只看该作者 2楼 发表于: 2008-07-28
我试过了上面的方法,问题是动态扫描的,我不好掌握0。5秒这个时间。
离线阳光999
发帖
52
只看该作者 3楼 发表于: 2008-07-28
动态扫描的,0.5秒黑就是显示内容为空
如本来是 12:34
  你送 1 :34  

加多个状态位来确定要不要闪
在线BG4UVR
发帖
11209
只看该作者 4楼 发表于: 2008-07-28
用单片机,准确掌握0.5秒的时间难么?
离线kyughanum
发帖
99
只看该作者 5楼 发表于: 2008-07-28
晕~~那还要用定时器了?有没有个示例程序看一下啊~?多谢了~
在线BG4UVR
发帖
11209
只看该作者 6楼 发表于: 2008-07-28
楼上,难道你动态扫描没用定时器?
离线阳光999
发帖
52
只看该作者 7楼 发表于: 2008-07-28
就那一闪还专用一个定时器呀 随便看哪个可以利用就利用好了 能看出闪的效果就好了
离线阳光999
发帖
52
只看该作者 8楼 发表于: 2008-07-28
建议lz贴原来代码出来看下
在线BG4UVR
发帖
11209
只看该作者 9楼 发表于: 2008-07-28
反正动态扫描要用个定时器的,所以直接在定时中断里放个变量,比如5ms的中断,就加100次,就是0.5秒了啊。。。

当然,如果牛到动态扫描没使用定时器,那当我没说吧。。
离线kyughanum
发帖
99
只看该作者 10楼 发表于: 2008-07-28
我动态扫描都是用延迟时~~都是用一个while做程序大循环~~可能是我写的程序太简单了吧~~
离线kyughanum
发帖
99
只看该作者 11楼 发表于: 2008-07-28
哦~~另外请教一下~~动态扫描的话最少要多久让他刷新一次人眼才会有视觉停留效应啊?
在线BG4UVR
发帖
11209
只看该作者 12楼 发表于: 2008-07-29
如果在主程序中扫描,除非你的程序非常简单。不然你想,如果你的按键检测也是非中断方式的,那么按住一个按键就可以让你的显示凝固。就算没有按键处理,其实程序也是要受到其他代码的执行时间影响的,实际应用中,会看到数码管有闪烁现象,或亮度有变化。所以不管你的程序是很简单的,还是很复杂的,都非常推荐你用定时器中断来完成数码管的动态扫描。

至于中断的时间,我一般按每秒扫描所有位数码管50次左右来计算。比如你有4位数据管,那么每位的时间就是 (1/50)/4=5ms,如果你有8位,不难算出这个值就要变成2.5ms了。

中断时间越短,对cpu的占用越严重,中断时间越长,数码管的闪烁感越强烈。应用中可以看实际效果按自己的要求来调整,没有什么固定的数值。
离线kyughanum
发帖
99
只看该作者 13楼 发表于: 2008-07-29
呵呵~~谢谢楼上的大哥了~~