Arduino四位七段数码管利用余晖效应的动态显示

本文讨论了在编程四位七段数码管时遇到的显示问题,即无法同时显示不同数字。为解决此问题,通常利用余晖效应和延迟函数实现数字的连续显示。然而,当需要动态显示如倒计时效果时,简单的延迟会导致闪烁。通过在外层循环中调整延迟次数,可以控制每个数字的显示时长,从而实现平滑的动态显示。示例代码展示了从-9倒数到-1的过程,其中outPut和clearNumber函数用于显示和清除数码管数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编程四位七段数码管的程序时,常常遇到不同数码管不可以显示不同数字的情况。比如要输出-9,要么-和9先后出现,要么两个管子都显示-或者9。

为了解决这样的问题,常利用余晖效应,在输出数字后加一个极短的delay时间,利用视觉暂留效应使之看起来像是同步显示的。

但是如果想让数码管动态显示起来,例如从-9倒数到-1,这个极短的delay时长会让数字闪动过快,达不到理想的结果。

此时,可以在delay外面套多个for循环,通过for循环的数量来调控每个数字的显示时长。

例子

从-9倒数到-1。(节选与问题有关的片段作展示)

void countNumber1()

for(int i = 0;i < 50;i ++)

{

for(int m = 9;m >0;m--)

{
outPut(1,m);

delay(5);

outPut(2,'-');  //在位置2处显示-号

delay(5);

clearNumber();

}
}
}

其中,outPut函数为自己定义的,outPut(int a,char b)的作用是在a位置处显示数字b

clearNumber函数为自定义,作用是清除显示数字。

在内层循环内,delay总时长为10毫秒,外层循环为50层,及每个数字在显示屏上停留50*10=500毫秒。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值