波特率(Boud Rate)就是在串口通信中每秒能夠發送的位數(bits/second)。MCS-51串行端口在四種工作模式下有不同的波特率計算方法。其中,模式0和模式2波特率計算很簡單;模式1和模式3的波特率選擇相同,故在此僅以工作模式1爲例來說明串口通信波特率的選擇。
在串行端口工作於模式1,其波特率將由計時/計數器1來產生,通常設置定時器工作於模式2(自動再加模式)。在此模式下波特率計算公式爲:
波特率=(1+SMOD)*晶振頻率/(384*(256-TH1))
其中,SMOD——寄存器PCON的第7位,稱爲波特率倍增位;
TH1——定時器的重載值。
在選擇波特率的時候需要考慮兩點:首先,系統需要的通信速率。這要根據系統的運作特點,確定通信的頻率範圍。然後考慮通信時鐘誤差。使用同一晶振頻率在選擇不同的通信速率時通信時鐘誤差會有很大差別。爲了通信的穩定,我們應該儘量選擇時鐘誤差最小的頻率進行通信。
下面舉例說明波特率選擇過程:
假設系統要求的通信頻率在20000bit/s以下,晶振頻率爲12MHz,設置SMOD=1(即波特率倍增)。則
TH1=256-62500/波特率
根據波特率取值表,我們知道可以選取的波特率有:1200,2400,4800,9600,19200。列計數器重載值,通信誤差如下表:
波 |