单片机C编程中断的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 16:17:39
void main(void) // 主程序
{
RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟
RCAP2L =0x00;
TR2=1; //启动定时器
ET2=1; //打开定时器2中断
EA=1; //打开总中断
while(1) //程序循环
{ ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作
}
}
//定时器2中断
timer2() interrupt 5
{
static uchar t;
TF2=0;
t++;
if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ
{
t=0;
P10=~P10; //反转LED灯的亮灭
}
}
这个程序里面 当中断溢出后 程序执行是回到main()下面第一句话RCAP2H =0x10开始执行 还是其他 若不是为什么在中断程序里面没有重新定定时器计数的初值
最最简单的C51

中断执行后,回到while循环里面。
定时器2是自装载的,初始化一次就可以了,定时时间到了,他会自己恢复初值的,看看芯片的资料就知道了。

当然是在while里了
看看是几型中断就明白了 啥片子呀?