; Copyright 2005 Doi Shigeki ;list1003.asm h8/3694Fテスト・プログラム シリアル通信 ; .CPU 300HN ;ノーマル・モード  ;HEWならなくてもよい .SECTION sec0,DATA,LOCATE=H'0000 ;sec0という名のセクションを0x0000から展開 .DATA.L start ;リセット・ベクトル ;割り込みは使用しないのでほかのベクトルはなし .SECTION sec1,CODE,LOCATE=H'0100 ;sec1という名のセクションを0x0100から展開 start: MOV.L #H'FF80,ER7 ;スタック・ポインタ設定 MOV.B #H'FF,R0L ;ポート5を出力に設定 MOV.B R0L,@H'FFE8 ;ポート5 MOV.B #B'00000111,R0L ;ADを7ビット目にする MOV.B R0L,@H'FFB8 ;つまり0〜6ビットはディジタルで使う MOV.B #B'00000000,R0L ;非同期,8ビット,パリティなし,一応偶数 MOV.B R0L,@H'FFA8 ;stop1,mp=0,cks=00 MOV.B #D'64,R0L ;ボーレートを9600ボーに設定 MOV.B R0L,@H'FFA9 MOV.B #B'00110000,R0L ;割り込み不許可,送受信イネーブル,内部クロック MOV.B R0L,@H'FFAA MOV.B #B'00000010,R0L ;P22をTxピンにする MOV.B R0L,@H'FFE0 ;PMR1に設定 loop: ;データの受信 check: BTST #D'6,@H'FFAC ;SSRの受信フラグのチェック BEQ check ;空きなら待つ MOV.B @H'FFAD,R0L ;受信 MOV.B R0L,@H'FFD8 ;P5経由でLEDに出力 ;データのエコー check2: BTST #D'7,@H'FFAC ;SSRの送信フラグのチェック BEQ check2 ;空きでないなら待つ MOV.B R0L,@H'FFAB ;送信 ;スイッチの状態を送信 MOV.B @H'FFDD,R0L ;PBからスイッチの状態を入力 AND.B #H'0F,R0L ;数字コードに加工 OR.B #H'30,R0L check3: BTST #D'7,@H'FFAC ;SSRの送信フラグのチェック BEQ check3 ;空きでないなら待つ MOV.B R0L,@H'FFAB ;送信 JMP @loop .END