汇编语言中,定时器工作方式0的初值时间怎么计算。请举一个具体实例

如题所述

定时器初值是与定时时间相关的,比如定时时间为10毫秒,如果是12M晶振的话,那么相当于10000个机器周期,所以初值就如下:
THn=(65536-10000)/256;
TLn=(65536-10000)%256;追问

工作方式0的初值!这是工作方式一的初值吧。还有拜托帮忙转化成十六进制

追答

方式1:
TH0=(65536-10000)/256;(0xd8)
TL0=(65536-10000)%256;(0xf0)
方式0:
最大定时周期数是8192,假设定时8毫秒即8000周期,分低5位和高8位。

TH0=(8192-8000)/32;
TL0=(8192-8000)%32;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-25
是51单片机吗?追问

嗯嗯,是的

追答

模式0是13位定时/计数器,TLx只占用低5位,THx则是8个位全部使用了。13位二进制最大值是8191,所以最大定时值为8191 + 1 = 8192。因为TLx只有5个位,5二进制最大值为31。所以TLx赋值的时候是初值除以32的余数(0 - 31的取值范围),THx则是除以32的商。假设用T0定时4000个周期,则
MOV TH0,#((8192 - 4000) / 32)
MOV TL0,#((8192 - 4000) MOD 32)

本回答被提问者采纳