<リスト1−2>サンプル・プログラム1

 


1       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2       ; 自動温度制御サンプル・プログラム ;
3       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4       ; I/O アドレス EQUテーブル
5   PAD   EQU  1CH   ;PIO Aチャネル・データ
6   PAC   EQU  1DH   ;PIO Aチャネル・コマンド
7   PBD   EQU  1EH   ;PIO Bチャネル・データ
8   PBC   EQU  1FH   ;PIO Bチャネル・コマンド
9   ADC   EQU  8000H   ;ADC
10       ;
11       ;ここから 起動ルーチン
12       ORG  0000H   ;0番地へプログラムが配置される
13       LD  SP,8000H   ;スタック・ポインタの設定
14       JP  INITIAL
15       ;
16       ;  NMI   ;ノンマスク割り込み発生時のサービス・ルーチン
17       ORG  0066H   ;66番地へプログラムが配置される
18       RETN    ;なにも実行しないでRETNのみ
19       ;
20       ;  INITIAL ROUTINE
21 INITIAL:  LD  A,0CFH   ;PIO MODE 3
22       OUT  (PAC),A
23       LD   A,00H   ;チャネルAポート=出力
24        OUT  (PAC),A
25       LD   A,07H   ;PIO割り込み禁止
26       OUT  (PAC),A
27       ;
28       JP  MAIN   ;JUMP TO MAIN ROUTINE
29       ;
30       ;  MAIN ROUTINE
31  MAIN:  LD  A,(ADC)   ;温度データ入力
32       CP  80   ;80℃以下か?
33       CALL  C,SW_ON   ;80℃以下でCALLヒータONルーチン
34       CP  85   ;85℃以上か?
35        CALL  NC,SW_OFF  ;85℃以上でCALLヒータOFFルーチン
36       JP  MAIN   ;無限ループ
37       ;
38       ; SUB ROUTINE
39  SW_ON:  LD  A,(4000H)  ;PIO Aチャネルのビット状態メモ参照
40       SET  0,A  ;ヒータ制御ビットON
41       OUT  (PAD),A  ;PIO Aチャネルへ出力
42        LD  (4000H),A  ;PIO Aチャネルのビット状態メモ
43        RET
44       ;
45 SW_OFF:  LD  A,(4000H)  ;PIO Aチャネルのビット状態メモ参照
46       RES  0,A  ;ヒータ制御ビットOFF
47        OUT  (PAD),A  ;PIO Aチャネルへ出力
48        LD  (4000H),A  ;PIO Aチャネルのビット状態メモ
49       RET
50       ;
51        END   ;プログラム終了

戻る