PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第250回]
●新PICBS02(PIC18F45K50)LEDチカチカ
LEDチカチカはPICプログラムの定番です。
いまどきは大抵はC言語でしょうけれど。
PICに限らずC(C++)はなかなかに大変です。
かといってアセンブラはもっと大変です。
いえ。
私に言わせればPICの場合アセンブラのほうがC++よりもなんぼか簡単だと思います。
PICのアセンブラはクセツヨですけれどC++のほうがもっとクセツヨで慣れるまでが大変です(どちらも同じか)。
その点BASICは実に簡単です。
前口上はそのくらいにしてさっそく取り掛かりましょう。

PORTDのビット0とビット1を交互に点灯させます。
TRISDはPORTDの方向定義レジスタです。
0のビットが出力、1のビットが入力になります。
TRISD=0は00ですから全ビットが出力になります。
PORTD=1は00000001です。
ビット0が1(ビット1は0)になります。
PORTD=2は00000010です。
ビット1が1(ビット0は0)になります。
wait 0はこのBASICでのローカルな関数です。
wait 0は256msecのタイマーです。
プログラムはこれだけです。
とっても簡単です。
プログラムを実行するには/RUNコマンドを入力します。

/RUNを実行するとコンパイラが起動してPICのマシン語コードに翻訳されたあとそのコードがPIC18F45K50に書き込まれてそのあとプログラムが実行されます。
実行中の写真を撮ろうとしたのですが256msecではちょっと時間が短すぎてタイミングが取りにくかったのでもう少し長くウエイト時間を取ることにしました。
プログラムの実行を中止するには[Ctrl][b]を入力します。

マシン語コードで実行されているのですがちゃんとプログラムを中止することができます。
LISTコマンドを入力するとソースプログラムが表示されます。
wait関数のパラメータは0〜255で0が最大値(256msec)です。

ですのでwait 0を4回実行するようにプログラムを変更しました。
何をやっているかわかりますでしょうか?
スクリーンエディタ機能が使えますからカーソルを移動して行番号のみ書き換えて[Enter]を入力するだけで新規行が追加されます。
便利です。
LISTコマンドで確認しました。

これで約1秒のウエイト時間になりました。
/SAVEコマンドでソースプログラム(テキストファイル)を保存しました。

もう一度/RUNコマンドでプログラムを実行しました。

コンパイラの表示が多くて/RUNコマンドがスクロールして見えなくなってしまいました。
program startedと表示されてマシン語コードに翻訳されたプログラムが実行開始されました。
実行中の写真です。

ビット1が点灯しています。
1秒後にビット1が消灯してビット0が点灯しました。

1秒間隔で上記を交互に繰り返しています。
PICBASICコンパイラ[第250回]
2026.10.9 upload
前へ
次へ
ホームページトップへ戻る