AVR実験室(12)
3月7日のプログラム解説の続きです。プログラム解説が先行してしまい、どのようなシステム上で何を目的にしているのかがわからないと思います。このプログラムを動作させる回路図は、後日改めて掲載します。
【4 プログラム本体】
(1)初期設定(続き)
;set USART
ldi Work_Main,0
sts UBRR0H,Work_Main
ldi Work_Main,51 ;9600baud at 8MHz
sts UBRR0L,Work_Main
ldi Work_Main,0b10011000
sts UCSR0B,Work_Main
;bit7=receive intrrupt enable,bit4=recieve enable, bit 3=send eable
;UCSR0C is defautl
この部分は、マイコンのシリアル(RS-232C)インターフェースの設定です。
まず、UBRR0HとUBRR0Lというレジスタペアに51を設定することで、RS-232Cのボーレートを9600ボーに設定できます。計算方法はシステムクロックの8MHz÷2÷8ビット÷9600-1≒51と計算されます。実際は設定値がATmega88の説明書に表形式で記載されていますので、その中から利用するボーレートに対応する設定値を探すことになります。その際には誤差が+-0.5%以内となるものを選択するよう説明書に記載されています。上記設定は9600ボーで0.2%の誤差となっています。
続いて、UCSR0Bレジスタをシリアルインターフェースが使用可能となるように設定します。最上位の第7ビットで受信完了時に割込みがかかるように、また、第4ビットで受信、第3ビットで送信機能が有効となるように、各ビットに1を設定しています。
これでシリアルインターフェースが有効となり、端末(パソコン)との通信が可能となります。
| 固定リンク
「ワンチップマイコン」カテゴリの記事
- 受信用TNCの製作(6)(2013.02.13)
- 受信用TNCの製作(5)(2012.12.03)
- 受信用TNCの製作(4)(2012.11.26)
- 受信用TNCの製作(3)(2012.11.25)
- 受信用TNCの製作(2)、XI-IV再び(85)(2012.11.25)
コメント