51单片机串口通信,定时器1,8位自动重装初值的求法

公式一:TH1=TL1=-(FOSC/BAUD/32/12);公式二:TH1=TL1=256-FOSC/BAUD/32/12;其中FOSC为晶振频率,BAUD为波特率。当晶振为11059200Hz波特率为9600时,公式一的结果为TH1=TL1=-3(负三),公式二结果为TH1=TL1=253两个结果不同,为什么程序又可以正常运行呢?

呵呵 还是俺来帮你解答吧
1 公式一的结果为TH1=TL1=-3
2 公式二结果为TH1=TL1=253
无论使用哪个参数,程序都可以正常运行,这就对了。
因为这俩数 表面上看着不同 实际是一样的。公式二结果为TH1=TL1=253 为正数,
公式一的结果为TH1=TL1=-3 为负数 在计算机中要用补码表示,应表示为FDH=253.
呵呵 这俩个数实际是一样的。
所以无论公式一还是公式二,计算的结果都是一样的,当然程序运行也是相同的。

呵呵 别忘了给俺加分哦
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-19
-3和253互补,汇编后为同一个值。
第2个回答  2012-08-19
8位 最大是255