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 説明ファイル




戻る