| 定時器1的自動重裝載值 | 波特率(fosc=11.059MHz) | 波特率(fosc=22.118MHz) | ||
| 實際波特率 | 理想值 | 實際波特率 | 理想值 | |
| 255 254 253 250 244 232 208 | 28799.5 14399.7 9599.8 4799.91 2399.95 1199.98 - | 28800 14400 9600 4800 2400 1200 - | - 28799.5 14399.6 9599.83 4799.91 2399.95 1199.98 | - 28800 14400 9600 4800 2400 1200 |
在使用DS1077芯片的系統中,這個問題變得簡單了。DS1077芯片共有133MHz、125MHz、120MHz、100MHz、66.666MHz五種型號。下面以66.666MHz的DS1077x-66為例來介紹在各種工作頻率下進行RS232串行通訊的實現方案。
由于DS1077在整個溫度和電壓變化范圍內的頻率偏差小于1%,加上DS1077的輸出作為單片機時鐘所產生的波特率與理想值之間的誤差0.47%(66.666MHz除6即11.111MHz與理想頻率11.059MHz之間的誤差為0.47%),完全能夠滿足串行通訊3%的精度要求。表6列出了單片機系統工作在能夠滿足上述要求的各種頻率下的波特率及此時定時器1的自動重裝載值(該表由計算機模擬得出)。
如果單片機選用最高頻率為40MHz的89C51,則可以把DS1077的可編程除法器N設置為2,即讓單片機工作于33.333MHz。由表6可知,當定時器1的自動重裝載值設置不同進,單片機系統可以分別以28.8kbps、14.4kbps、9600bps、4800bps、2400bps進行可靠的串行通訊。系統對單片機速度要求不高時,單片機則可以把N設置成3、6、9、18、36,則系統分別工作于22.222MHz、11.111MHz、7.0473MHz、3.7037MHz和1.85183MHz。值得一提的是,當單片機工作頻率太低時,單片機只能以較低的波特率通訊。例如,當單片機工作在1.85183MHz時,串行通訊只能是2400bps或更低。當然,如果單片機不按這些標準波特率進行通訊或根本就不需要串行通訊,單片機系統的工作頻率的選擇范圍也就更寬了。
表6 單片機波特率及定時器1的自動重裝載值(波特率發生器誤差全部為0.47%)





