51单片机串口通信定时器初值怎么计算啊?公式和计算原理麻烦说一下!

如题所述

串口通信方式1和方式3,要用T1来控制波特率

T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:
T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率)

--我不明白波特率跟这个定时器的关系。麻烦你详细一点!

这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。
软件人员,编程的时候,会用这个公式即可,也没有必要弄明白这个。

基本上,也没有几个人,能够弄明白集成电路内部,究竟是怎么处理的。
其它的很多人,好像是很明白,其实都是在瞎编理由,包括写书的那些人。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-15
//工作频率12M,所以定时器脉冲频率为1M=1000000
#define F 12 //时钟频率,单位MHz
#define BaudRate 1200
#define oTH1 (256-(((F*1000000)/384) / BaudRate)) // 定时器1计数器高字节初值追问

我在网上也找到了这个答案,但是我不明白波特率跟这个定时器的关系。麻烦你详细一点!

追答

就是计数器溢出一次的时间就是串口一位数据的时间

第2个回答  2013-03-15
看看我的这个回答肯定会帮到你的。
http://zhidao.baidu.com/question/472019671?&oldq=1