51單片機波特率計算的公式和方法51單片機芯片的串口可以工作在幾個不同的工作模式下,其工作
模式的設置就是使用SCON寄存器。它的各個位的具體定義如下: SMOSM1SM2RENTB8RB8TIRIS
M0、SM1為串行口工作模式設置位,這樣兩位可以對應進行四種模式的設置。串行口工作模式設
置。波特率在使用串口做通訊時,-個很重要的參數就是波特率,只有上下位機的波特率一樣時才可
以進行正常通訊。波特率是指串行端口每秒內可以傳輸的波特位數。這里所指的波特率,如標準960
0不是每秒種可以傳送9600個字節,而是指每秒可以傳送9600個二進位,而一個字節要8個二進位,
如用串口模式1來傳輸那么加上起始位和停止位,每個數據字節就要占用10個二進位,9600波特率
用模式1傳輸時,每秒傳輸的字節數是9600+ 10= 960字節。51芯片的串口工作模式0的波特率是固
定的,為fosc/12,以一個12M的晶振來計算,那么它的波特率可以達到1M。模式2的波特率是固定
在fosc/64或fosc/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率focs/64,SMOD為1,波特率為focs/32。模式1和模式3的波特率是可變的,取決于定時器1或2 (52芯片)的溢出速率,就是說定時器1每溢出一-次,串口發送一次數據。 那么我們怎么去計算這兩個模式的波特率設置時相關的寄存器的值呢?可以用以下的公式去計算。上式中如設置 了PCON寄存器中的SMOD
|