keil做了下仿真,虽然你的主函数结束了,但是你的计时器仍然在工作,单步下去,总会进入中断函数。但是在protues下你的定时器初值要设置合理,也就是在主函数结束前溢出,中断就能发生。然后一直会有定时中断.挺神奇的 还是烧在板上做吧
在main()函数中,应该有个while(1); ,
否则,会连续执行到下面的 void timer0() interrupt 1 里面去。
在void timer0() interrupt 1 中的中断返回,就不知道返回到什么地方去了。
1.你的程序不会循环执行,因为没有while(1)楼上说的很清楚!
2.定时时间为553,整个程序执行时间不到定时器中断时间就停止。所以定时器不能循环执行!
在TR0=1;后面加上while(1); 就好了