中断,电子时钟,定时器的问题

2019-07-16 03:49发布

刚学完定时器,编写了一个电子时钟的程序,想用中断控制时钟的分或秒+1,但是一触发中断,数码管就会停止显示以前的数,为什么呢,然后加的数也不是一,怎么给中断像独立按键一样的那种“消抖”
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
yatoo
2019-07-17 12:29
本帖最后由 yatoo 于 2012-11-14 20:16 编辑
a515972470 发表于 2012-11-14 17:44
哦,谢谢,那你的意思是说,精简的程序,中断就可以不打断数码管了么

假设 定义了全局变量unsigned char S电子发烧友t, MinCnt, HourCnt,且均初始化为0, 其他部分正确,中断程序可以参照以下,刚刚写了下,没有实测。。。。。。

void Time_IRQHandler(void) interrupt 3
{
     //定时器秒中断
    S电子发烧友t++;
    if(S电子发烧友t == 60)
    {
        S电子发烧友t = 0;
        MinCnt++;
        if(MinCnt == 60)
        {
           MinCnt = 0;
           HourCnt++;
           if (HourCnt == 24)
           {
               HourCnt = 0;
           }
        }
    }
    //定时器载入初值
    TH1=(65536-55536)/256;
    TL1=(65536-55536)%256;
}

编辑器有问题,S电子发烧友t ,不是本意,你自己改一下

好久没有接触51了,不太熟悉,仅供参考..

一周热门 更多>