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


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第35回]



●PICUSBIO−01(2) OUT、IN()

前回はPICUSBIO−01のハードウェアについて簡単に説明しました。
といってもほとんどは82C55についての説明でした。
実際基板の写真(前回参照)を見ていただければわかりますように82C55(40pinLSI)のほかはUSB通信のためのPICがあるだけです。
USB通信のためのPICについてはBASICプログラム内のシステムプログラムが受け持っていますからユーザーはPICについてはその存在さえも意識する必要はありません。
ユーザーはWindowsパソコンの外にUSB経由で接続された82C55のみを意識してBASICプログラムを書くだけでよいのです。
もうこれ以上簡単なシステムはおそらくありませんでしょう。

ということで簡単極まりない82C55出力サンプルプログラムです。

プログラムは先にテストのためSAVEしてあったものをロードしました。
LISTコマンドで表示されているようにたった4行だけの簡単なプログラムでしかも全部OUT文です。
これは82C55の出力テストプログラムです。
Aポート〜Cポートに適当な8ビットの値を出力するだけですから簡単なもので済むわけですが、それにしても実に簡単、シンプルです。
行番号10は前回説明したコントロールワード(Aポート〜Cポートを出力に設定)をコントロールワードアドレス(末尾2ビットが11)に出力しています。
コントロールワードは80Hです(コントロールワードについては前回参照)。
このBASICでは16進数表記は$をつけて表しますから$80です。
次の行番号10〜30でAポートに$12を、Bポートに$34を、Cポートに$56を出力します。
繰り返しますがたったこれだけです。
変数の設定だとかincludeだとかmainとかvoidとかなんたらかんたらとか一切不要です。
たったこれだけのプログラムを書いてRUN[Enter]と入力すればただちに実行されてしまいます。

こちらは実行結果です。

82C55のAポート〜Cポートの入出力端子は26pinのフラットケーブル用コネクタに配線されています。
端子配列は当社のND80Z3.5などのコネクタの端子配列と同じです(下図)。


上の写真の説明に戻ります。
82C55の出力を確認するために自作のLEDパネルを接続しています。
このLEDパネルはン十年前に作ったものを使い続けています。
上からAポート、Bポート、Cポートで右側がビット0で左側がビット7です。
表示は感覚的には点灯と消灯が逆で0のときに点灯、1のときに消灯します。
Aポートに$12(00010010)、Bポートに$34(00110100)、Cポートに$56(01010110)が出力されていることが確認できます。

最初のプログラム表示の画面の説明に戻ります。
また上の方に戻っていただくのも面倒かと思いますから下に再表示します。

RUN[Enter]を実行したところまで説明しました。
その下のところでPRINT文をダイレクトモードで実行しています。
説明があとになってしまいましたがI/Oポートに出力する命令はOUTです。
書式は OUT a,b です。
aは0〜255までの値でI/Oアドレスを示します。
bも0〜255までの値でI/Oアドレスに出力する値を示します。
いずれも8ビットの数で整数値(10進数、16進数表記)のほか変数、配列や数式も使えます。
これに対してI/Oアドレスに対する入力は命令ではなくてIN()関数です。
書式は IN(a) です。
aは0〜255までの値でI/Oアドレスを示します。
8ビットの数で整数値(10進数、16進数表記)のほか変数、配列や数式も使えます。
指定したI/Oアドレスからの入力値(8ビット)が関数の値になります。
上のPRINT文の実行によってAポート、Bポート、Cポートから12、34、56(いずれも16進数)が読み込まれて表示されました。
HEX$()は[第16回]で説明をしています。
82C55の出力はラッチされています。
出力に設定したポートアドレスに対して入力命令を実行するとラッチされている出力値が読み込まれます。
上ではIN()関数をPRINT文の中で使っていますがたとえば
APORT=IN(0)
というように数式の中で使うこともできます。

PIC−USBIO using BASIC[第35回]
2022.8.10upload

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