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

2019-07-16 03:49发布

刚学完定时器,编写了一个电子时钟的程序,想用中断控制时钟的分或秒+1,但是一触发中断,数码管就会停止显示以前的数,为什么呢,然后加的数也不是一,怎么给中断像独立按键一样的那种“消抖”
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
a515972470
1楼-- · 2019-07-17 08:25
yatoo 发表于 2012-11-14 17:05
我们看到的其实 数码管的 余晖, 只不过单片机速度快,不停的点亮数码管,所以我们看到数码管就好像一直 ...

哦,谢谢,那你的意思是说,精简的程序,中断就可以不打断数码管了么
yatoo
2楼-- · 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了,不太熟悉,仅供参考..

一台塔吊
3楼-- · 2019-07-17 15:46
http://bbs.elecfans.com/forum.php?mod=viewthread&tid=289442

我觉得写的很好。你看看吧。在中断中扫描按键,无延时。
tanguixu
4楼-- · 2019-07-17 16:36
 精彩回答 2  元偷偷看……
a515972470
5楼-- · 2019-07-17 17:34
yatoo 发表于 2012-11-14 20:01
假设 定义了全局变量unsigned char S电子发烧友t, MinCnt, HourCnt,且均初始化为0, 其他部分正确,中断 ...

嗯嗯,好的,谢谢啦

一周热门 更多>