搜索
bottom↓
回复: 25

“定时器定时数码管显示的程序,数码管总是会有余辉怎么

[复制链接]

出0入0汤圆

发表于 2012-4-19 21:11:43 | 显示全部楼层 |阅读模式
刚接触51 ,写了个定时器定时然后数码管显示的程序, 但是数码管总是会有余辉,每个管子显示1~9 的时候背景是亮的 。
显示程序在下面 , _we 是第几位 ,_du 是显示的字符编码 ,   
请教各位大神。为什么加上 delay(1) 之后就会没有余辉了呢? 我明明加了2个消隐的 语句了啊? 

ps :数码管 是 共阴型的 
void disp( uchar _we ,uchar _du)
{
        dula = 1 ;
        P0 = table[_du] ;
        dula = 0 ;
        P0 = 0xff ;                 // 消隐

        wela = 1 ;
        P0 = wecode[_we] ;
        wela = 0 ;
        P0 = 0x00 ;                 // 消隐

        delay(1) ;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-4-19 21:17:41 | 显示全部楼层
楼主,等你看电影的时候看到的不是动态画面而是24副静态画面的时候,你就能不加延时而看不到余辉了

出0入0汤圆

发表于 2012-4-19 21:53:16 | 显示全部楼层
因为单片机的速度太快了,人的肉眼反应不了这么快......你看到的余辉可能是闪烁好几遍的了,

出0入0汤圆

发表于 2012-4-19 22:15:02 | 显示全部楼层
余辉效应

出0入0汤圆

发表于 2012-4-19 22:56:02 | 显示全部楼层
正确的方法是:
显示-延时-消隐-显示。。。。

出0入0汤圆

 楼主| 发表于 2012-4-19 23:06:32 | 显示全部楼层
饿 还是不太明白唉。。。囧

出75入4汤圆

发表于 2012-4-19 23:10:16 | 显示全部楼层
视觉暂留应该都学过。

出0入0汤圆

发表于 2012-4-19 23:10:19 | 显示全部楼层
单片机的速度,相对于人眼的分辨速度,实在是 太快了……人眼分辨时间是20ms也就是说,你的显示必须保持20ms以上人眼才能区别出来……

出0入0汤圆

发表于 2012-4-19 23:14:28 | 显示全部楼层
你那个消隐的时间太短了  相当于没消隐.

出0入0汤圆

发表于 2012-4-20 10:27:41 | 显示全部楼层
强烈支持

出0入0汤圆

发表于 2012-4-20 16:22:08 | 显示全部楼层
对,延时过短,人眼无法识别.

出0入0汤圆

发表于 2012-4-20 18:32:20 | 显示全部楼层
欢迎新人,做个50Hz扫描就可以了

出0入0汤圆

 楼主| 发表于 2012-4-21 02:50:58 | 显示全部楼层
raxb 发表于 2012-4-20 18:32
欢迎新人,做个50Hz扫描就可以了

恩。每次扫描1位显示一个数字的时候,加上1ms 的延迟就会正常,没加延迟的话,就不正常。

出30入25汤圆

发表于 2012-4-21 03:12:05 | 显示全部楼层
切换前要先把数码管灭掉。这个消隐在位选或者段选做都可以,看开发板的电路结构决定,自己画板子就看自己喜好

如果电路设计中没有消隐逻辑,那就是画电路的有问题了
(别笑,8位位选用74138实现,就经常会只连ABC三根线而忘记消隐)
头像被屏蔽

出0入0汤圆

发表于 2012-4-21 07:45:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-4-21 12:04:23 | 显示全部楼层
一进入程序把显示的关掉。

出0入0汤圆

发表于 2012-4-21 12:49:50 | 显示全部楼层
你加1ms延时,问题应该就能解决了

出0入442汤圆

发表于 2012-4-21 12:57:19 | 显示全部楼层
你这样写是有问题的。你显示时必须考虑实际输出的占空比!!占空比越低,频率越高,显示就越暗!因此每输出一个字符都应当在消隐前面加延时,让字符充分点亮!

出0入0汤圆

 楼主| 发表于 2012-4-21 20:29:53 | 显示全部楼层
谢谢楼上各位的回答。真心感谢了。 我再好好想想去。恩

出0入0汤圆

发表于 2012-4-21 21:41:17 来自手机 | 显示全部楼层
我在用138做扫描8位数码管,1毫秒扫一位,哟发现也不够亮,而且某一位实际是显示2,但总会有其他段会被点亮,不知什么原因,如何去除,并增加亮度?谢

出0入0汤圆

发表于 2016-4-19 21:37:54 | 显示全部楼层
消隐写的好奇怪,怎么消的

出0入0汤圆

发表于 2016-4-19 22:31:36 | 显示全部楼层
首先显示正常数码时要加一定时间的延时以保证显示效果,其次在消隐时要让个码段在全灭状态,加以短的延时即可。

出0入0汤圆

发表于 2016-4-28 17:58:18 | 显示全部楼层
我再另辟蹊径给你说吧

用8ms的定时器,每次中断对一个数码管,下次中断对下一个数码管做,这样循环

还有一个 不想要余辉,加几个移位寄存器,成静态显示

出0入0汤圆

发表于 2016-4-28 19:16:44 | 显示全部楼层
lz同病相怜,顶一个

出0入0汤圆

发表于 2016-5-14 11:39:40 | 显示全部楼层
学习了,顶一个,以前也是这个问题!

出0入0汤圆

发表于 2018-3-7 22:42:46 | 显示全部楼层
显示-延时-消隐,这个方法可行。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 20:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表