AT89S52单片机定时器赋初值相关程序

TH0=(65536-4000)>>8;TL0=(unsigned char)(65536-4000),这个定时器赋初值是什么意思?
与TH0=(65536-4000);TL0=(65536-4000)有什么区别?
(完整程序:TOMD=0x01;
TH0=(65536-4000)>>8;TL0=(unsigned char)(65536-4000);

由于51単片机定时器是加法计数,到65536溢出,所以定时器初值为65536一定时脉冲数 如果一个脉冲为1us,定时4ms初值为65536-4000
其中高8位装的为256的倍数
所以TH0=(65536-4000)/256 上面的右移8位就是对256求模
低8位是 不足256的部分 因此TL0=(65536-4000)%256
由于TL0是8位寄存器,你给它65536-4000如果大于256的话 高8位将自动丢失, 因此低8位可以直接写为 TL0=65536-4000 省去对256求余步骤
温馨提示:答案为网友推荐,仅供参考
相似回答