有谁单片机定时中断前无限循环的目的是什么啊?

请帮帮分析一下下面程序的具体运行过程!(到底何时进入中断函数)
#define uchar unsigned char
#include<reg52.h>
sbit P10=P1^0;
void main()
{
RCAP2H=0x10;
RCAP2L=0x00;
TR2=1;
ET2=1;
EA=1;
while(1);
}
void timer2() interrupt 5
{
static uchar t;
TF2=0;
t++;
if(t==30)
{
t=0;
P10=~P10;
}
}

while(1);代表主程序执行,实际应用中可能是其他语句块(例如处理数据)
还有就是main()执行完了会重新开始程序从(0000H开始),最后一句死循环可防止这一点。

cpu和timer是同步执行的。
定时器设定初值后,每个机器周期timer+1,溢出后就中断了。系统会暂停主程序,跳到中断服务子程序,完了再回到主程序。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-23
中央处理器和内部定时器是同步执行的(也就是说是两个各自独立的两个部件)
当你启动定时器后,定时器就自己在那里定时(此时和CPU无关系),定时器定时时间到时就会触发一个定时中断,当CPU响应这个中断时就进入了中断函数
第2个回答  2009-08-23
单片机定时中断前无限循环的目的是等待中断,当时间到时进入中断!!
第3个回答  2009-08-23
循环的时候定时器在走.到溢出的时候就执行中断了.

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网