为什么我用单片机做的计时器单片机会出现卡顿

单片机的定时器初始化做好之後就开始走了然后进中断了吗?
全部
  • 不是单片机每隔一个机器周期去检验有没有中断信号产生,如果有就进入中断程序 
     
  • 等计时器单片机嘚时间到了就进行中断
    全部
  • 不是你初始化中要打开开关中断的设置,如中断0为EX0=1就行了一般建议你先打开总开关中断,后打开定时器中斷还有你初始化里面设定模式,如果是自动重装初值的中断程序中不用重装其他要在中断程序中要重装初值。至于如果没有重装初值我就没试过,你可以是下看看能不能进入中断
    全部
  • 没有吧,它是在一直计时吧
    你没有触发中断,就没有中断呗
    全部

如果要做精确定时那就必须用萣时器了,定时时间125us累计进中断16次后令timer2ms=1,中断函数结束(中断服务函数内容不要写太多我们要查询式中断)。主循环中检测到2ms标志清零,同时处理显示按键以及计时。分别如下:显示每2ms循环数码管com一步按键每2ms扫描一行,时间每2ms做一次累加(250次为0.5秒再累加120次为1分,再累加60佽为一小时)。仅有蜂鸣器在125us中运行震动频率4khz,有源无源蜂鸣器通杀效果一样。整个程序1个timer中断就搞定妥妥的,不需要延时函数時钟不浪费,后期还有大把扩容空间﹉


补充主逻辑,开机进入waitmode按键后进入setmode,确认或者几秒钟不按键进入workmode倒计时结束进入buzzmode,按键或一汾钟后返回waitmode

没难度主要是想通过这个实验來加深对中断的理解。

烧写到单片机上的程序:

我要回帖

更多关于 计时器单片机 的文章

 

随机推荐