溢出速率=fosc/[12*(256-TH1初值)]
比如晶振为11.0592MHz,波特率不加倍,那么
波特率=(1/32)*11059200/12/(256-TH1初值)
如果波特率要求为9600
那么TH1初值=256-11059200/12/32/9600=256-3
51的波特率计算根据它的串行口的工作方式 不同,而有不同的算法。
1.方式 0
振荡频率/12 的固定波特率
2.方式 1
(2^SMOD /32) X 定时器1的溢出率
3.方式 2
(2^SMOD /64) X 振荡器频率
式中SMOD为特殊功能寄存器 PCON的最高位的值(0或1)
你可下载一个叫作单片机小精灵 MCUtool 的小工具,方便计算波特率,软件还有其它一些很有用功能 。
看SM0 SM1
00时 f/12
01时 可变 定时器1控制
10时 f/32 或f/64
11时 可变 定时器1控制
这是固定的公式,单片机的内核设计会告诉你,你可以查阅相关文档,其实没必要知道为什么,你又不是设计单片机的,会用就好了