PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第38回]
●PRINT文です
前回は「詳細は次回に説明します」と書いたのですが、相変わらず時間に追われています。
ちょいと大変な作業に首をつっこんでしまいましたのでなかなか思うように時間が取れません。
1日があっという間に過ぎてしまいます。
というようなわけで本日もほんの少しだけで終ります。
前回はPIC18F4550に接続したLCDに文字列を表示している写真をお見せしました。
PICBASICで書いたプログラムをコンパイラでPICのマシン語に翻訳したPICマシン語プログラムが実行されています。
前回の写真の時から時計の針を逆にまき戻して説明をします。
PICボードをWindowsマシンにUSB接続してもとになったBASICプログラムをLOADしています。
プログラムはBSPRINTT1.TXTです。
ロードするとすぐにPICBASICコンパイラによってPICアセンブラソースプログラムに翻訳され、最終的にPICマシン語コードが生成されます。
LISTコマンドでプログラムをリスト表示しました。
/RUNコマンドを実行すると翻訳生成されたPICのマシン語コードがPICに送られてそこで実行されます。
FOR〜NEXT文でPRINT文が繰り返し実行された結果’A’〜’Z’の文字が画面に表示されました。
Windowsの画面に表示されていますがこのプログラムを実行しているのはWindowsマシンにUSB接続されたPICボードです。
正確に言うとPIC18F4550ボードとWindowsマシンの間にはUSBインターフェースの役目をするPIC18F14K50が挟まっています。
PIC18F4550のマシン語プログラムはUSB接続されているか単独で起動しているかを判断してPRINT文の文字コードをUSB回路に送るかLCDに送るかの選択をします。
PICBASICコンパイラによって作成されたマシン語プログラムリストファイルです。
2000 ; 10 for a=$41 to $5a 2000 410e movlw 41 2002 306e movwf a 2004 5a0e movlw 5a 2006 1e6e movwf R1e;to 2008 010e movlw D'1' 200a 1f6e movwf R1f;step 200c 18ec call 30 200e 00f0 2010 _floop1 2010 ; 20 print chr$(a); 2010 3050 movf a,w 2012 16ec call 2c 2014 00f0 2016 ; 30 next a 2016 1f50 movf R1f,w;step 2018 3026 addwf a 201a 3050 movf a,w 201c 1e5c subwf R1e,w;to 201e 02e3 bnc $+6 2020 08ef goto _floop1 2022 10f0 2024 1eec call 3c 2026 00f0 |
PICのプログラムでもLEDチカチカぐらいならなんとかなるかもしれませんがLCDに文字を表示するとなると簡単なことではありませんでしょう。
PICBASICコンパイラはPIC側にLCD表示のためのマシン語サブルーチンを仕込んでありますからご覧のように簡単なBASICプログラムでLCD表示ができてしまいます。
PICBASICコンパイラ[第38回]
2023.6.20upload
前へ
次へ
ホームページトップへ戻る