TH0=0xFC和TL0=0x67怎么理解?在51单片机定时1ms怎么得前面的数值?

2025-04-14 10:54:25
推荐回答(3个)
回答1:

频率是12M时,需计数的脉冲个数是1000,因此定时器初值是(65536-1000)。

其中高8位代表的是有多少个256,低8位是不足256部分。

1 mS 应该用

TH0=(65536-1000)/256; // 定时时间 1mS

TL0=(65536-1000)%256;

(65536-1000) 与 -1000 不是一个概念

(65536-1000) = 64536 十六进制 为 0xFC18

-1000 为负1000 编译后的 十六进制 会变成 0xFB18

扩展资料:

定时设置完成后,应按“设定”键检查多次定时设定情况是否与实际情况一致。如有异,请按时间需要进行调整或重新设定。

注:如果每天不需要设定20组,而其他组已设定,必须按“清除”键,将多余各组的时间程序清除。

如设置的时间程序是跨天的,需要逐一将“开”与“关”时间程序相对应的星期模式对应好。

参考资料来源:百度百科-定时器

回答2:

频率是12M时,需计数的脉冲个数是1000
因此定时器初值是(65536-1000)
其中高8位代表的是有多少个256,低8位是不足256部分
因此
TH0=(65536-1000)/256=64536/256=252=0xFC
TL0=(65536-1000)%256=64536%256=24=0x18
如果晶振频率是11·0592M,可算出,计数脉冲个数是921个
TH0=(65536-921)/256=252=0xFC
TL0=(65536-921)%256=103=0x67
知道原理就行,实际运用时,一可以用软件计算,二是可以直接写计算公式

回答3:

公式算算麻烦的,用STC下载器自动算