找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2528|回复: 2
打印 上一主题 下一主题
收起左侧

关于数码管闪烁

[复制链接]
跳转到指定楼层
楼主
ID:83554 发表于 2016-3-26 13:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数码管动态扫描时间哪怕是几十ms一样会闪烁,可能还有其他什么问题啊?我数码管显示程序是在定时中断里的程序是这样的


void display(unsigned char time)
{
        unsigned char count1,count2,data1,data2;
        count1=time%10;
        count2=time/10;
        data1=(time+2)%10;
        data2=(time+2)/10;
        if(green1==1)
        {
        p22=0;P0=led[count2];delay1ms(5);p22=1;
        p23=0;P0=led[count1];delay1ms(5);p23=1;
        p24=0;P0=led[data2];delay1ms(5);p24=1;
        p25=0;P0=led[data1];delay1ms(5);p25=1;
        }
        if(green2==1)
        {
        p22=0;P0=led[data2];delay1ms(5);p22=1;
        p23=0;P0=led[data1];delay1ms(5);p23=1;
        p24=0;P0=led[count2];delay1ms(5);p24=1;
        p25=0;P0=led[count1];delay1ms(5);p25=1;
        }
        if(yellow1==1)
        {
        p22=1; p23=1;
        p24=0;P0=led[count2];delay1ms(5);p24=1;
        p25=0;P0=led[count1];delay1ms(5);p25=1;
        }
        if(yellow2==1)
        {
        p24=1; p25=1;
        p22=0;P0=led[count2];delay1ms(5);p22=1;
        p23=0;P0=led[count1];delay1ms(5);p23=1;
        }
}

void dispalytime() interrupt 1
{
        if(green1==1) display(nb-t1);
        if(green2==1) display(dx-t1);
        if(yellow1==1|yellow2==1) display(t1);
        if(sos==1) display(t1);
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:92744 发表于 2016-3-26 14:41 | 只看该作者
定时中断内不要搞长码?不然下次中断来前,原中断没有完成,会类积的,,,这会造成后中断失败,,
回复

使用道具 举报

板凳
ID:110672 发表于 2016-3-26 17:55 | 只看该作者
建议闪烁函数不要用中断,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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