想请教一下 51单片机定时中断 工作方式0, 1ms 初值是如何计算的?
(8192-1000)=(7192)十进制=(1C18)十六进制
TH0=0x1C;
TL0=0X18;
还是
TH0=(8192-1000)/32=0xE0;
TL0=(8192-1000)%32=0x18;
??
void Dingshizhongdaun_0(void) //定时器0中断配置 函数
{
TMOD=TMOD|0x00; //(TMOD) //选择为 定时器0模式,工作方式0, 13位定时器
TH0=???;//(T0) //给定时器赋初值,定时1ms
TL0=???;
ET0=1;//(IE) //打开定时器0中断允许
EA=1;//(IE) //打开总中断
TR0=1;//(TCON) //打开定时器
}
void Dingshizhongdaun_0_zhixing() interrupt 1 //定时器0中断函数
{ //执行中断的内容
static u16 A1=0;//定义静态16位变量A1
TH0=0x??;//T0
TL0=0x??; //给定时器赋初值,定时1ms
A1++;
if(A1==1000) //1000*1ms=1s
{
A1=0;
Led1=!Led1;
}
}