51单片机中断疑问

2019-07-15 09:50发布

郭天祥的书中51单片机中断为什么要二次装初值,不理解??
代码:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit led1=P1^0;
  5. uchar num;

  6. void main(){

  7. TMOD=0x01;
  8. TH0=(65536-45872)/256;//装初值
  9. TL0=(65536-45872)%256;
  10. EA=1;//打开中断总开关
  11. ET0=1;//开定时器0中断
  12. TR0=1;//启动定时器0
  13. while(1);//程序停止在这里等待中断发生
  14. }

  15. void T0_time() interrupt 1{
  16. TH0=(65536-45872)/256;重装初值11.0592M晶振定时50ms数为45872
  17. TL0=(65536-45872)%256;
  18. num++;
  19. if(num==20){//如果到了20次,说明1秒时间到
  20. num=0;//然后把num清零,重新再计20次
  21. led1=~led1;//让发光管状态取反
  22. }
  23. }
复制代码

实测在main主函数不装初值也是一样的呀?
0条回答

一周热门 更多>