サンプルプログラムの解説


 サンプルプログラムでは、PORTA及びPORTBに接続したLEDが1秒毎に点滅します。Fig.1はメインルーチンの処理の流れを表しており、各処理の内容を下記に示します。LEDの光る/消えるが決定しているのはAとCで、BとDは点滅を維持する時間を取っています。

@PORTA(RA0〜RA3, RA6, RA7)とPORTB(RB0〜RB1)を出力に設定する。
APORTAに"01010101"(RA7=0, RA6=1, RA3=0, RA2=1, RA1=0, RA0=1)を出力する。また、PORTBに"01010101"(RB7=0, RB6=1, RB5=0, RB4=1, RB3=0, RB2=1, RB1=0, RB0=1)を出力する。
BサブルーチンWAIT0をコールして1秒待機。
CPORTAに"10101010"(RA7=1, RA6=0, RA3=1, RA2=0, RA1=1, RA0=0)を出力する。また、PORTBに"10101010"(RB7=1, RB6=0, RB5=1, RB4=0, RB3=1, RB2=0, RB1=1, RB0=0)を出力する。
DサブルーチンWAIT0をコールして1秒待機。

Fig.1 メインルーチン

 Fig.2は、サブルーチンWAIT0の処理の流れを示しています。1秒とするために100ミリ秒待機するサブルーチンWAIT1を10回繰り返しています。

@UC=10とする。
A100ミリ秒をカウント
BUCの値を-1する。
CUC=0でなければAへジャンプ。UC=0の場合は、サブルーチンの終了。

Fig.2 サブルーチン WAIT0


2010.07.07 Last Update

<Back>