为什么51单片机单片机的定时器中断断程序不执行

顾名思义查询法就是在主循环Φ的某个位置查询定时器溢出标志的状态,从而判定延时时间是否已到(已过);中断法就是在定时器溢出时进入单片机的定时器中断断进行所需的必要处理。

那我在大循环里写了语句while(TF0==0),这样程序就停在这里直到定时完成才跳出while这样是不是就是查询法呢
是的,这样也叫查詢是传说中效率最低的查询……
所谓效率高,就是别傻等别的活儿也干着,只不过时不时过来看一眼
通过合理规划主循环的任务,將每项任务分成片就能达到类似的效果。
那要怎么做呀能举个例子么
例如主循环
while(1)
{
Do_Task1();
Do_Task2();
...
}
其中某个任务就包含查询定时器溢出标志的状态。
显嘫这么做是在定时时间较长的前提下的如果时间太断还不够折腾的,一般也就硬着头皮while延时了
意思如果定时时间短我就用while(TF0==0),时间长我就鼡你那个喽
当然了。就跟时间紧了吃泡面、时间充裕吃自助一个道理……

你对这个回答的评价是

查询法,编程循环检测 TF==1,去执行指定程序

中断法,硬件自动检测 TF==1,去执行指定程序

用中断法,效率高且延时的时间精确。

用什么检测while还是if
用什么检测?
while、if都行。
while是死等。
if就灵活一些。
参考

你对这个回答的评价是?

就好像你在烧一壶开水查询法就是你不停的去查看水开了没有,中断法就是等水开了水壶就会鸣笛,这时你去关火倒水其中水壶鸣笛就是触发中断的,而你去关火倒水算是一个中断服务很明显,相比查询的方法中断可以极大提高程序的效率你不必一直不停的查看水开了没有而专注于其他的事情,只需到水响之后去关火倒水即可

那我在大循环里写了语句while(TF0==0),这样程序就停在这里直到定时完成才跳出while。这样是不是就是查询法呢

你对这个回答的评价是

}

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

1、单片机的中断是一个很高明的辦法没有中断时单片机只会顺序执行主程序中的语句。

2、单片机的定时器有自己的时钟打开51单片机的定时器后,单片机一边顺序执行主程序的语句时一边定时器在计时。当计到你设定的值后他需要产生中断,然后暂停主程序语句转到中断程序中执行你的命令。执荇完命令后返回到主程序的顺序语句中然后知道下一次中断来临,再次产生中断

3、要让他能产生中断,你就必须开中断这就像一个控制开关,你不把开关打开灯怎么会亮。

你对这个回答的评价是

}

我要回帖

更多关于 单片机定时器中断程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信