蓝桥杯 动态数码管中的延时处理

今天在学习数码管的被一个小细节困扰了一下,在此分享

如上面的题目,要求最后两位显示月份,并且这个月份要隔一段时间就要变化,一般而言,隔一段时间需要用执行空语句延时,像这样

void Delay(unsigned int t)
{
    while(t--);
}
然而动态数码管显示正是利用视觉残留,空语句延时的话动态数码管效果就不能如意了,为了实现这种延时可以这样做

 void DELAY1(unsigned int t)
{
    while(t--)
    {
        xianshi();//数码管动态显示的程序
    }
}

即在对 月份++ 的延时里嵌入动态显示的过程,使数码管正常显示。

我对这段代码有几点体会,一是这里的t每次减减 都要把动态显示的过程执行一遍,所以这个t不必取得太大即可完成对月份延时;二是延时函数的t注意选取合适类型,普通的空语句延时往往会把t设的很大,所以t不能设为char型;三是函数取名区分大小写。

而我的错误是惯性的在这个while(t--)后面加了分号,致使显示异常。

完整代码如下

#include"reg52.h"

unsigned char code SMG_duanma[18]={

0xc0,0xf9,0xa4,0xb0,

0x99,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值