单片机中定时计数器的TH0和TL0的值如何计算

如题所述

单片机在不同的工作方式下,计数器的位数不同,因而最大计数值也不同。现在设最大计数值为M,那么在各方式下的M值如下;
方式0:M=2^13=8192
方式1:M=2^16=65536
方式2:M=2^8=256
方式3:定时器0分为两个8为定时器,所以两个M均为256.
因为定时器是做加1计数,并在计满溢出时产生中断,因此初值X可以这样计算:
X=M-计数值
现在举例说明定时处置的计算方法,若80C51主频为6MHz,要求产生1ms的定时,计算初值。
在6MHz的主频下,计数器每加1所需的时间是2uS。若果要产生1ms的计时就需要“加1” 500次。那么500即为计数值,如果要求在方式1下工作,则计数初值X=M-计数值=65536-500=65036=FE0CH
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-29
每本书都有,开玩笑呢?
第2个回答  2012-02-29
干什么用,采用什么方式,才能确定最终值。

单片机中定时计数器的TH0和TL0的值如何计算?
方式0:M=2^13=8192 方式1:M=2^16=65536 方式2:M=2^8=256 方式3:定时器0分为两个8为定时器,所以两个M均为256.因为定时器是做加1计数,并在计满溢出时产生中断,因此初值X可以这样计算:X=M-计数值 现在举例说明定时处置的计算方法,若80C51主频为6MHz,要求产生1ms的定时,计算初值。...

单片机定时四种计数方式TL0和TH0怎么赋值
TH0=0x** 或者TH0=(计数模式的最大值)-你要设定的时间 \/\/这是高位 TL0=0x** 或者TL0=(计数模式的最大值)-你要设定的时间 \/\/这是低位 记住高位低位拆开分别装

怎么计算51单片机定时器TH0和TL0的初值,比如我要让定时器20ms溢出一次...
最简单的计算方法就是 TH0=(65536-20000)\/256; TL0=(65536-20000)%256; 20000=20ms 如果1ms就是1000 想弄多少弄多少。。。

单片机定时器\/计数器的工作方式
问题1:定时器\/计数器 TH0 & TL0 的 高 低 两个字节 的 计算方式 是 两个 字节 最大 数据 为 65536(十进制) , 或者 0FFFFH (十六进制)高字节 为 TH0=(65536-X)\/256 ,就是 除以 256 后的 整数部分,低字节 为 TL0=(65536-X)%256 ,减去 高字节后 余下的部分,问...

单片机的定时器C语言编程中:TH0与TL0为什么是TH0=(65536-50000)\/256...
1、首先第一步要定时器0设置于模式1时,然后由高8位TH0和低8位TL0两个8位寄存器组成,注意的是当设定计算值为65536-50000=15536(D)时,转换为十六进制就是3CB0(H),此时,TH0=3C,TL0=B0分别装入就可以了。2、接这就是采用“TH0=(65536-50000)\/256;TL0=(65536-50000)%256“的编程方式,...

单片机定时器计算?
计算定时器,最原始的公式是(65536-初值)*12\/晶振值=定时的时间,由此式子推出:初值=65536-(晶振值*定时时间\/12)。则TH0=初值\/256,TL0=初值%256,最终结果就是 TH0 = 255-CLOCK\/TIME_PER_SEC\/12\/256;TL0 = 255-CLOCK\/TIME_PER_SEC\/12%256;其中除以TIME_PER_SEC,是因为TIME_PER_SEC...

单片机对TH0,TL0赋值
是一样的,第一种是65536-10000=55536,而55536转换成是十六进制就是D8F0,TH0=0XD8是高8位,而TL0=0xF0是低8位。第二个TH0= -10000\/256;TL0 =-10000%256;相当于:TH0= 65536-10000\/256;TL0 =65536-10000%56;那运算之后就是TH0=55536\/256;TL0 =55536%256;.55536\/256相当于高8...

单片机方面的知识
定时器延时的时间计算方式是TH0和TL0的常数乘以机器时钟周期。这边的TH0是高8位,TL0是低8位,组成一个16位的常数。一般51单片机是累加定时器,也就是说当计数器达到65536(0xFFFF)的时候,定时器会产生溢出中断,你的语句中,计时常数是10000,也就是说计数器会从55536开始计数到达65536就会溢出,...

单片机定时里 TH0=(65536-45872)\/256; TL0=(65536-45872)%256; 这两 ...
\/256和%256 是用于计算TH,和TL的值。即高8位,和低8位。要了解定时器计数一次是多久,例如:定时器对系统时钟计数,系统时钟周期1US,那么定时器1US计数一次。要计数1MS,那么就计数1000次,计算方法:TH0=(65536-1000)\/256;TL0=(65536-1000)%256;依次类推。50MA定时初值应该是50000,但考虑到中断...

怎么理解TH0=(65535-50000)\/256;Tl0=(65535-50000)%256
TH0=98\/10;Tl0=98%10;这样TH0=9;Tl0=8;同理,若想把一个数的高八和第八位分开,八位正好是256 所以出现上面的TH0=(65535-50000)\/256;Tl0=(65535-50000)%256;至于为什么会出现65535,这是因为这个是2^16-1,因为是从0开始算的,就像10个数,是从0到9,不是1到10;以上是计数器的一种...

相似回答