C51,单片机T1,串口编程(请问如何设置TH1,TL1初值)

TH1= TL1=?
我是新手,我想问问,定时器1的工作方式2下,16M晶振,想要250Kbps波特率,初值为多少?如何计算?谢谢(C51)

这个要看你是什么单片机,不同的单片机指令周期不同,有12T,也有6T1T等等,
12T的算法就是256-16000000/(250000*12)=FAH
TH1=FAH
TL1=FAH
计算中你会发现除不尽,有小数点,被无情的舍去了,这样的话精度就无法保证,
所以要调整你的16M,比如用11.0592M 18.432M等,波特率一般9600等常用波特率
保证计算的时候能除尽,这样精度就高,通讯出错的几率就低

另外我这有波特率计算器,需要的话留邮箱
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-14
在方式2下貌似只利用了TL,当溢出的时候单片机会自动让TL=TH。TL有8位也就是0~255,每次计数要一个机器周期也就是12/16M(秒)。波特率250k就要看你工作在什么方式下了
第2个回答  2011-07-15
哈,简单,下个51定时计算器就行了。不用自己去算。
第3个回答  2011-07-15
两个赋相同的值即可,系统会自动使用减法将TL减到0,然后将TH赋给TL