蓝桥杯单片机数码管和LED冲突,数码管动态刷新鬼影

主要毛病为:

写好的驱动 数码管动态刷新 和LED刷新 的俩个函数模块 分别单独简单用基本没毛病。

但放在定时器一起用时 两方人马都乱套了。

LED会胡乱有规律跳闪(总之不是人想要的效果,程序也没规定它这么跑)。

数码管会有鬼影重重现象鬼影现象主要体现为:在某个位选 位置确实在显示自己想要的段选数字或符号,亮度也稍大,但却在其他位选也有显示该段选,该显示亮度也稍微欠佳

我本人遇到的情况为以下有规律的鬼影:

我想让数码管从0~1000刷新计数发现只有 7号位选有稳定显示,其他位选都是鬼影

以下为7号位选0~10变化显示过程:

(表示无显示;  红字表示高亮的位选和段选显示正确的地方;  灰色表示鬼影显示)

位选: 0  1  2  3  4  5  6  7    

— — — — — —  0  0

1  — —  1  1  1  1  1

— —  2  — — 2   2

— —  — — 3  3   3

4  —  — 4  4  — — 4

  5  — — 5  — — 5

 6  — — — — — 6

— —  — 7  7  7  7  7

— —  — — — — — 8

— —  — — 9  — — 9

问题代码截取(工程中有修正后的源码):

数码管和LED都在定时器服务函数里刷新,定时器同时也提供了计数条件:

 定时器0中断服务函数截图:

解决方案:

数码管和LED都应该放在定时器中刷新,

数码管刷新P0口段码传输的太快,超过了74hc573锁存的速度,上一次数据还没处理完

就传来了新的数据。

所以应该要加250us延时,

为何为250us ?

因为八个数码管动态扫描结束刚好8*250=2000us=2ms。

调试好的原始工程在此处下载:

https://download.csdn.net/download/qq_64257614/87776747?spm=1001.2014.3001.5503

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值