当定时计数器工作在方式0模式时,TH0和TL0的初值如何确定?

我主要是不明白TH0用了高8位,TL0用了低5位,那算出的初值如何分配到这两个计数器中的呢?方式1的时候是两个8位的 一边一般好理解,可模0 时 两边的位数是不一样的。请详细说明谢谢了!

初值X可以这样计算:X=M-计数值。

单片机在不同的工作方式下,计数器的位数不同,因而最大计数值也不同.现在设最大计数值为M,那么在各方式下的M值如下:

1、方式0:M=2^13=8192。

2、方式1:M=2^16=65536。

3、方式2:M=2^8=256。

4、方式3:定时器0分为两个8为定时器,所以两个M均为256。

5、因为定时器是做加1计数,并在计满溢出时产生中断,因此初值X可以这样计算:

6、X=M-计数值。

7、现在举例说明定时处置的计算方法,若80C51主频为6MHz,要求产生1ms的定时,计算初值.。

8、在6MHz的主频下,计数器每加1所需的时间是2uS.若果要产生1ms的计时就需要“加1” 500次.那么500即为计数值,如果要求在方式1下工作,则计数初值X=M-计数值=65536-500=65036=FE0CH。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-26
单片机在不同的工作方式下,计数器的位数不同,因而最大计数值也不同。现在设最大计数值为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。
第2个回答  推荐于2018-02-26
我从郭天祥的《新概念51单片机C语言教程》书中摘抄一段使用定时工作方式0的程序给你:
void inition()
{
TMOD=0x00;

TH0=(8192-4607)/32;

TL0=(8192-4607)%32;

EA=1;

ET0=1;

TR0=1;

}
晶振11.0592MHz,定时5ms。
因为工作方式0的TL0只有低5位被使用,所以在装TL0初值的时候对2^5=32取余,这时不管初值如何变化,TL0低5为总是在范围内,而TH0是取32的整数,在8192的范围内也不会溢出,这就能很好解决你的问题了。
不懂的地方随时回复我。
希望我的回答能帮助到你。本回答被提问者和网友采纳
第3个回答  2018-03-15
当工作在方式0时,先算出13位的2进制数,高8位存入th,底5位存入tl.

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

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

单片机定时器方式2 TH0和TL0如何赋值
TH0,和TL0在程序一开始赋值一次就行了,再以后,单片机运行的时候,即TR0 = 1,只有TL0运行,TL0从初始数值开始自加,当加到255之后,再加1 次,就变成 了0,此时,单片机的硬件会自动把TH0里的数值赋值给TL0,然后TL0又自加,加到255之后...周而复始。除非TR0 = 0,不然一直循环上述的过程 本回答由提问者推荐 举报...

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

计数器的初值如何确定
在定时或计数方式下,计数初值的确定依赖于定时器的工作模式。不同的操作模式下,最大计数值M是不同的。例如,模式0的最大计数值为2的13次方,等于8192;模式1为2的16次方,等于65536;模式2为2的8次方,等于256;模式3中,由于定时器T0分成两个独立的8位计数器,因此TH0和TL0的M值均为256。2....

单片机定时器方式2 TH0和TL0如何赋值
TH0,和TL0在程序一开始赋值一次就行了,再以后,单片机运行的时候,即TR0 = 1,只有TL0运行,TL0从初始数值开始自加,当加到255之后,再加1 次,就变成 了0,此时,单片机的硬件会自动把TH0里的数值赋值给TL0,然后TL0又自加,加到255之后...周而复始。除非TR0 = 0,不然一直循环上述的过程 ...

用定时器时,对TH0,TL0是怎样赋值的
TH0=和TL0是根据定时长短和晶振频率大小以及工作方式等因素来赋值的。比如12M晶振,工作方式1,定时10毫秒,那么 TH0=(65536-10000)\/256 TL0=(65536-10000)%256

TL0、 TH0怎么设置?
50ms定时:初值计算公式为:65536 - (12000000 \/ 12 \/ 500) = 49704,即 TH0=0xc2,TL0=0x38;工作方式需要选择 "工作方式1" ,也就是 "模式1",即设置 TMOD 的低四位为 0001 。因此,对于这两种定时器\/计数器,都应该选择 "工作方式1" ,并设置相应的初值。具体而言,对于10ms定时应设置...

定时的初值怎么求
TMOD=0x01;\/\/T0做定时器,工作模式选择模式1:16位定时器,无预分频 由于51单片机1个机器周期等于12个时钟周期。T=1\/6MHz*12=2us,即一个机器周期是2us。没有预分频如果要定时10ms则需要10ms\/2us=5000次计数。所以可求得初值 TH0=(65535-5000)\/256;TL0=(65535-5000)%256;初值就上面这样...

...方式0下,这是什么意思啊,定时多少秒,怎么算的?
方式0是13位定时器,其最大计数值是8192,51单片机定时器\/计数器是加法计数,因此如果要计数1000个脉冲,定时器的初值应该是8192-1000 ,如果要计数100个脉冲,定时器的初值应该是8192-100 该16位定时器又分成了高8 位和低8位,其中低8位只用了5位,最大装值是31,超过32则装入高8 位,高8...

相似回答