郭天祥的书中51单片机中断为什么要二次装初值,不理解??
代码:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar num;
void main(){
TMOD=0x01;
TH0=(65536-45872)/256;//装初值
TL0=(65536-45872)%256;
EA=1;//打开中断总开关
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
while(1);//程序停止在这里等待中断发生
}
void T0_time() interrupt 1{
TH0=(65536-45872)/256;重装初值11.0592M晶振定时50ms数为45872
TL0=(65536-45872)%256;
num++;
if(num==20){//如果到了20次,说明1秒时间到
num=0;//然后把num清零,重新再计20次
led1=~led1;//让发光管状态取反
}
}
实测在main主函数不装初值也是一样的呀?
代码:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar num;
void main(){
TMOD=0x01;
TH0=(65536-45872)/256;//装初值
TL0=(65536-45872)%256;
EA=1;//打开中断总开关
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
while(1);//程序停止在这里等待中断发生
}
void T0_time() interrupt 1{
TH0=(65536-45872)/256;重装初值11.0592M晶振定时50ms数为45872
TL0=(65536-45872)%256;
num++;
if(num==20){//如果到了20次,说明1秒时间到
num=0;//然后把num清零,重新再计20次
led1=~led1;//让发光管状态取反
}
}
实测在main主函数不装初值也是一样的呀?