2023.6.24
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第40回]



●PRINT文/PICでのLCD表示

前回はPICターゲットボードをPICUSBIFボードを介してWindowsパソコンにUSB接続してPRINT文のテストプログラムを実行しました。
もとのプログラムはBASICで記述しています。
そのBASICプログラムを保存するときはTEXTイメージのファイル(.TXT)としてSAVEされます。
コマンドプロンプト画面でBASICプログラムを作成したあとそのまま/RUNコマンドを実行すると、コンパイル→PICマシン語コードに変換→PICに書き込み→実行という順序で自動的に作業が行なわれます。
すでに作成済みのBASICプログラムファイル(TEXTファイル)をLOADするとそこでコンパイラが起動されて、コンパイル→PICマシン語コードに変換→PICに書き込み、というところまでが自動的に行なわれます。
そのあと/RUNコマンドを実行するとPICに書き込まれたマシン語プログラムが実行されます。
PRINT文を実行した結果がコマンドプロンプト画面に表示されますからWindowsパソコンの中でPRINT文が実行されているように見えますが、BASICプログラムがマシン語コードに変換されてPICに書き込まれたプログラム(PICマシン語プログラム)をPICが実行しているのです。
Windows側はPICから送られてくる表示データをそのまま表示しているに過ぎません。

PICのマシン語コードに変換されたマシン語プログラムはPICに書き込まれていて実行できる状態になっています。
そのPICを実行させると、それがWindowsパソコンと接続されているとその実行結果がWindowsパソコンのコマンドプロンプト画面に表示されることは上で説明した通りですし、実際に前回の画像でお見せしました。
繰り返しですがプログラムはすでにPICターゲットボード上のPICに書き込み済みですからWindowsパソコンとの接続を外してPICターゲットボードだけで起動するとPIC単独でその書き込み済みのプログラムが実行されます。
そのことについてはすでに[第37回]で単独実行中の写真をお見せして説明していますがそのときの写真はコネクタケーブルが一部しか写っていませんでしたので写真からだけではパソコンに接続されているのか単独実行しているのか判断できない状態になっていました。
そこで今回は単独で実行していることがはっきりわかるようにケーブル部分もしっかり写った写真を用意しました。
前回のプログラムを単独で実行している写真です。

前回はWindowsパソコンに接続したPICUSBIFボードと10pinのフラットケーブルで接続してそのボードとの間で通信をするとともに、Windowsパソコン→USBケーブル→PICUSBIFボード→10pinフラットケーブルの流れで+5Vの電源の供給も受けています。
今回は10pinケーブルのうちの電源ラインのみを+5Vの電源に接続しています。
フラットケーブルは片側だけのコネクタで電源以外のラインは丸めてあります。
たまたま今回は手元にそういうフラットケーブルがあったのでそれを利用したのですが単独実行時の電源はフラットケーブルコネクタに接続しなければならないわけではありません。
ちょっとこの写真でははっきり見えませんがフラットケーブルコネクタの右下方に電源の接続端子穴がありますからそこに電源を接続することができます。

写真を拡大しました。

+5V、GNDと表示されているのが電源の接続用端子穴です。
LCD表示の説明です。
前回はPRINT文の最後に;(セミコロン)をつけて終ると改行されず、つけないで終ると改行される、と説明しました。
実はそれはWindowsパソコンに接続してコマンドプロンプトに表示が行なわれたときを説明したものです。
同じPRINT文のプログラムを実行してもそれがPICを独立して実行させたときは表示のされ方が少し異なります。
上の画面の通り独立実行時のLCDへのPRINT文の表示では改行はされません。
改行を意識して複数のPRINT文に分けたプログラムを実行しても上の画像のようにベタに表示されます。
LCD表示器は20字×4行でこれはWindowsパソコンのコマンドプロンプト画面の1行に相当します。
Windows側での表示と同じように改行するとLCD表示では表示が全部消えてしまうことになります。
かといってLCD表示の通りに20字ごとに改行することにすると今度はコマンドプロンプト画面の表示がややこしくなります。
PICを独立実行させたときのLCD表示では改行を行なわないことにしたのはそういう理由からです。
独立実行時のLCD表示で「改行」をイメージさせたい場合には、たとえば1行目に”ABC”と表示したところで改行し次の行に”XYZ”と表示させたい場合には次のようにします。
10 PRINT ”ABC                 ”(17字のスペース)
20 PRINT ”XYZ”

いま気が付きました。
SPACE()またはSPC()という関数があるといいですね。
さっそく作って組み込むようにします。

PICボードを単独で独立実行させるためには接続用のフラットケーブルを外して電源を供給するだけでは足りません。
下の写真のようにJ1にジャンパピンをセットすることで単独(スタンドアローン)実行モードになります。

上はJ1にジャンパピンをセットしている写真です。

下はJ1にジャンパピンがセットされていない状態の写真です。


前回説明するつもりだったのですが今回の改行についての説明のことが頭にあったものですからつい忘れてしまいました。
PRINT文のなかで変数名のみを記述すると、その値は16進数で表示されます。
このことは以前の回のどこかで説明しているはずなのですが念のために再記します。
PICはI/Oを主体とするコントローラですから値は16進数(もっというとビットデータ)で扱うことが多いと考えたためです。
しかし場合によっては値を10進数で表記したいときもあるかと思います。
変数の値を10進数で表記したいときは変数名の前に%をつけて示します。
前回のプログラムリストと実行結果の表示を見比べてそのようになっていることを確認してください。

PICBASICコンパイラ[第40回]
2023.6.24upload

前へ
次へ
ホームページトップへ戻る