单片机中断和定时器的区别是什么?

如题所述

区别就是用单片机软件定时,CPU循环执行一小段延时程序,浪费CPU的精力,用定时器定时,CPU就可以干别的。

如果是程序延时的话,时间消耗在(延时程序+剩下的代码);计时器中断则相当于把延时程序交给定时器,此时CPU可以干别的事情,提高了效率。就类似于电脑打游戏时把图形处理任务交给显卡,CPU的压力就小。

单片机进中断后执行中断里的程序,比如你进定时中断,执行完后退出中断后做其他事,但定时还在计数,这样计数和做其他事情两不误。

你的程序中本来就没做其他事情,你的LED移动就是等待中断计数到10才操作的,LED动作的先决条件就是中断计数结束。

扩展资料

1、软件循环延时:采用循环语句,如for,while等,进行长时间的空操作,或者空语句。


优点:程序理解简易,入手快,新手必备武器。


缺点:时间精度不高,且占用单片机大量时间资源,引发其它子函数的不流畅(卡滞、迟钝),导致系统实时反应能力下降。


2、定时延时:采用定时器定时,如T0,T1;


优点:时间精度高,提高系统程序执行的高效性,不影响子函数的正常运行。

缺点:需占用1个定时器资源(可以复用),需良好程序构架支持,入手难。


个人建议:一旦学会定时器,就不应该再使用“循环延时”函数,采用定时器才是正道。如果对延时精度要求不高,建议使用结构体组成多个延时体。

参考资料:百度百科-单片机原理

参考资料:百度百科-定时延时

温馨提示:答案为网友推荐,仅供参考