單片機常用的是12M跟11.0592MHZ 。
一般情況下,一個機器周期是12個時鐘周期,所以用12M時,一個機器周期是1US,好計算,而且速度相對是最高的,當然現(xiàn)在也有更高頻率的單片機。
而進行通信是,一般選擇11.0592M,12M頻率進行串行通信不容易實現(xiàn)標準的波特率,比如9600,4800,而11.0592M計算時正好可以得到,因此在有通信接口的單片機中,一般選11.0592M
計算一下就知道了。如我們要得到9600 的波特率,晶振為11.0592M 和12M,定時器1 為模式2,SMOD 設為1,分別看看那所要求的TH1 為何值。代入公式:11.0592M9600=(2÷32)×((11.0592M/12)/(256-TH1))TH1=25012M9600=(2÷32)×((12M/12)/(256-TH1))TH1≈249.49 上面的計算可以看出使用12M 晶體的時候計算出來的TH1 不為整數(shù),而TH1 的值只能取整數(shù),這樣它就會有一定的誤差存在不能產(chǎn)生精確的9600 波特率。當然一定的誤差是可以在使用中被接受的晶振晶振,就算使用11.0592M 的晶體振蕩器也會因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對波特率的影響是十分之小的,可以忽略不計
(揚興科技為您解答)
文章由啟和科技編輯
上一篇:集成電路行業(yè)研究分析報告