发布网友 发布时间:2022-05-10 11:58
共2个回答
热心网友 时间:2023-10-09 05:24
定时器初值是与定时时间相关的,比如定时时间为10毫秒,如果是12M晶振的话,那么相当于10000个机器周期,所以初值就如下:追答方式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;
热心网友 时间:2023-10-09 05:24
是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)