マイクロコントローラ51に配置されたボーレート

232モードは、モード0、モード2ボー・レートが固定されている4つのクロックモードがあります。モード1、モード3は、可変ボーレート、T1は、ボーレートジェネレータ2つのタイマです。

モード0のボーレートの設定

次のようにモード0のボーレートが計算されます。

B = F インクルード S C / 12 B = {\ RM暗{/ 12}}

Bは、ボーレートであり、水晶周波数FOSCです。

ボーレートの設定2

次のように2の実施形態は、ボー・レートを計算します。
B = ( 2 S M O D / 64 ) f o s c {\ RmのB = {(} {} {\ RM {2}} ^ {SMOD} {} \ {RM / 64)}} * {\ RM {Foscが}}

Bは、ボー・レートである、FOSCは、水晶周波数、SMOD最高PCONビットレジスタです。

図1及び図3ボーモード構成

方法1および3のボーレート・ジェネレータタイマT1として使用されるので、時定数は、それに基づいて計算されます。通常動作モード2(8ビットの自動ロード動作)、この時刻T1において。
ボーレートの計算式は次のとおりです。
B = ( 2 S M O D / 32 ) T 1 B =({2 ^ {SMOD}} / 32)* T1
我々は唯一のT1オーバーフロー率を計算する必要があり、ボーレートを得ることができる、のは、オーバーフロー率を解決するために行ってみましょう。

ここで、式Xのカウンタの初期値は:tはオーバーフロー時間であり、Tは、マシンサイクルであります
X = 2 8 t / T X = 2 ^ 8 - T / T

式中のオーバーフロー時間T:T = 1 / Fが、タイマー12が生じるように、結晶12を分割することです。
t = ( 2 8 X ) T = ( 2 8 X ) 12 / f o s c T =(2 ^ {8} - X)* T =(2 ^ {8} - X)* 12 /暗いです

T1オーバーフロー速度T1:タイムアウト期間が直接逆数以上です。
T 1 = 1 / t = f o s c / [ 12 ( 2 8 X ) ] T1 = 1 / T =暗/ [12 *(2 ^ {8} - X)]

我々は、T1世代に戻って得ることができるので:
B = ( 2 S M O D / 32 ) f o s c / [ 12 ( 2 8 X ) ] B =({2} ^ {} SMOD / 32)*ダーク/ [12 *(2 ^ {8} - X)]

しかし、我々は通常、タイマー初期値Xを求めて、ボーレートを質問が知られていますか だから我々は、変換を介して取得することができます。
X = 2 8 ( f o s c / 12 ) [ 2 S M O D / ( 32 B ) ] X {\ RM {} {} = 2 ^ 8} {\ RM { - }}(暗/ 12)* [SMOD {{}} ^ 2 /(32×B)]
我々は、タイマ・モード2を使用しているので、X TH1とTL1の値が等しいので。

公開された19元の記事 ウォン称賛17 ビュー4075

おすすめ

転載: blog.csdn.net/qq_43605009/article/details/105310935