TH0=(65536-10000)/256; TL0=(65536-10000)%256; 是单片机C语言的.

问题描述:

TH0=(65536-10000)/256; TL0=(65536-10000)%256; 是单片机C语言的.
1个回答 分类:综合 2014-11-29

问题解答:

我来补答
定时器工作原理:从TH和TL里的值开始向上计数直到溢出触发中断,在晶振12M,12T单片机的情况下,时钟周期为1MHz,执行一次加计数用1us,这样,从0记到两个寄存器的最大值65535就要用去65.536ms,这就是51单片机最大计数范围.此时,为了计出10ms的时间,那么就要更改TH和TL的值,使定时器不从0开始计,这个值,就是65536-10000=55536,即从55536开始向上计数到溢出刚好用去10ms.另外由于单片机寄存器是8位的,所以要把TH和TL组合起来用,TH放高8位,TL放低8位,于是有了TH0=(65536-10000)/256; TL0=(65536-10000)%256;明白?
(以上基于定时器工作方式1)
 
 
展开全文阅读
剩余:2000