单片机工作在方式2 晶振频率12mhz 使用定时器t1的定时功能 初值TH1=1H0=06H 我想知道这个定时常数怎么算

如题所述

方式2,是8位计数方式,即计时的最大数是256。而且初始化时,TH1=TL1。

由TL1=06H,可知,定时的时间时250us 。
时间常数X=256-250=6,所以,初始值是TH1=TL1=06H。追问

我想知道这个定时时间250怎么算出来的

追答

那得问你自己了。这是根据程序的时间常数倒推出来的。应该是这个题目要求的,可是,你没有给出原题目是什么,只贴出来程序了,那原题在哪里?

追问

看一下

追答

这是根据程序,分析程序的功能的题目。
所以,250us的时间是根据初始值计算出来的。方法在上面。
定时250us,在P1.0输出方波信号,所以,信号的周斯是T=500us,信号频率
f = 1/T ,f = 2KHz,则程序的功能是从P1.0 引脚输出2KHz的方波信号。

追问

方式2的定时常数是由256-初值得到的
方式1的定时常数是由初值转换为十进制是吗
如方式1工作初值THO=3CH TLO=OB0H
由3CB0H转为十进制得到定时常数是吗

追答

因为方式1,是16位的,时间常数也是16位数。在计算时间常数时,是用十进制数计算的,所以,要把计算的十进制数变成十六进制,才能分出高8位和低8位,高8位给TH1,低8位给TL1。
如果是分析程序题,还是反推的。
TH0=3CH,TL0=0B0H,则时间常数是X=3CB0H,变成十进制数,是
X=15536,由X=65536-T,得定时的时间是:
T=65536-15536=50000us=50ms.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-31
T0MS EQU NOT 50000 ; 50 mS 12.000 MHz
; T0MS EQU NOT 5000 ; 5 mS 12.000 MHz
; T0MS EQU NOT 500 ; 500 uS 12.000 MHz
; T0MS EQU NOT 50000 ; 100 mS 6.000 MHz
MAIN: ---------------------------
MOV TL0, #LOW T0MS

MOV TH0, #HIGH T0MS
----------------------------
RETI