AT90S1200 RS232C 受信データ表示プログラム サンプル
AT90S1200を使い、秋月で販売している16桁2行表示のLcdに RS232C
の受信データを表示させるプログラムのサンプルです、ライターのテストの為に書い
たプログラムであり、9600ボーにしか対応していません。
また、表示は表示プログラムサンプルをそのまま使用しています
・回路図
・動作
スタートパルスの立ち上がりで、INT0割込みが掛かり、タイマー割り込みを開始
します。最初のタイマー割込みは1/2ビットサイクルでスタートパルスのレベルの
チェックを行ないます、Lowの場合はノイズで有る為、待機状態に戻します。
Highレベルの場合は受信を開始します次からは1ビットサイクルのタイマー割り
込みを行ない、ビットデータを受信します。TP1とTP2に割込みが掛かった時に
パルスが出力します。
・ビットサイクルの求め方
ビットサイクルは以下のように計算します。
1 ÷ 9600ボー = 104μs
タイマー設定値の計算
1. 基本クロック時間
1 ÷ 10MHz = 0.1μs
2. タイマークロックを CK/8 に設定します。
0.1μs X 8 = 0.8μs
3. タイマー設定値(アップカウンタ)
104μs ÷ 0.8μs = 130
255 ― 130 = 125
255 ― (130 ÷ 2)= 190
・ボーレートの変更のやり方
上記の計算を行ない、ソースファイルを変更してください。
タイマー基本クロックの変更はソースファイル181行目
;** 割込み初期化 **
ldi temp1,$03
out MCUCR,temp1 ; int0 立ち上がり設定
⇒⇒⇒ ldi temp1,$02
out TCCR0,temp1 ; intt ck/8 設定
ldi temp1,$40
out GIMSK,temp1 ; int0 割込み可設定
sei ; グローバル割込み許可
1/2ビットサイクルの変更はソースファイル273行目
ldi rx_cnt,0 ; 受信カウンター = 0
ldi rx_buf,0 ; 受信バッファー = 0
⇒⇒⇒ ldi itemp1,190
out TCNT0,itemp1 ; スタートパルス時間セット
ldi itemp1,$02
out TIFR,itemp1 ; タイマーフラグリセット
out TIMSK,itemp1 ; タイマー割込み許可
ビットサイクルの変更はソースファイル291行目
sbi PORTD,test_d0
cbi PORTD,test_d1
⇒⇒⇒ ldi itemp1,125
out TCNT0,itemp1 ; ビット間パルス時間セット
cbi PORTD,test_d0
・アセンブラ
アトメル社のホームページからダウンロードしたアセンブラ(Ver1.3)で
作成しています
・最後に
疑問点等があればメールをください。出来る限りお答えするようにします。
このプログラムは、フリーウェアーなので、自由に配布可能です。使用者自身の
責任でご使用下さい。
「このソフトによってどのような損害が出ても私は責任を負いかねます。」
*AT90S1200 RS232 表示ソフト*−−at90rs_0.lzh ( 約10kByt )
ファイル内容
at90rs_0.asm ソースファイル
at90rs_0.hex 書きこみ用ヘキサファイル
at90rs_0.gif 回路図
at90rs_1.gif TP1,2波形図
readme.txt 説明ファイル
戻る