89c52单片机T0定时器中断程序问题

2024年11月27日 18:31
有2个网友回答
网友(1):

主函数不完整,你这样写主函数运行完还没等到中断程序就退出去了。在主函数最下面加一个while(1);就可以了,酱紫:
void main()
{
t0=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
另:num最好处理一下,要不然增加到256就会溢出了。

网友(2):

你这个函数不完整,因为单片机的每个程序都需要是个死循环,不能执行完的程序,在你的主函数里加while(1);即可解决问题,
关于你调试的时候T0和num为0的情况是因为,你的主程序很快(10us左右吧)就执行完了,而第一次产生中断是需要50ms的时间,根本没有时间执行中断,所以你调试时观察到T0和num的值为0完全是正常的