; BLINKER.SRC (c)yas@E-SYS Lab.
;**********************************
;* LED点滅プログラム *
;**********************************
;------CPUの指定-------
.CPU 300HA
;
;----シンボルの定義------
P5DR .EQU H'FFFFCA ;ポート5データレジスタ
LED1 .BEQU 0,P5DR ;ポート5のbit0をLED1で表す
;
.SECTION ROM,CODE,LOCATE=H'000100 ;セクションの宣言
;
;-----I/Oの初期設定----
INIT: MOV.L #H'FFFF10,ER7 ;スタックポインタの設定
MOV.B #H'FF,R0L ;ポート5を出力に設定するため
MOV.B R0L,@H'FFFFC8 ;ポート5DDRにH'FFを書き込む
;
;----MAINルーチン-----
;これよりメインです.
;サブルーチンがわからない場合は前回を参照してください.
;このプログラムの流れは,
;LED点灯→1秒待つ→LED消灯→1秒待つ→LEDONラベルへ飛ぶ→…(繰り返し)
;となります.
LEDON: BSET LED1 ;LED1を点灯する
JSR @TIME00 ;1秒間待つ
LEDOFF: BCLR LED1 ;LED1を消灯する
JSR @TIME00 ;1秒間待つ
LOOP: JMP @(_____) ;LEDONに飛ぶ
;
;----タイマサブルーチン------
;約1秒間のタイマ
TIME00: MOV.L #H'280000,ER6 ;ER6にH'280000を書き込み
TIME01: SUB.L #1,ER6 ;1ずつ減算
BNE (______) ;0になるまで減算を繰り返す
RTS ;元のルーチンに戻る
;
.END
|