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


PIC−USBIO using BASIC

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

[第195回]



●PICUSBIO用BASIC説明書(10)BASIC関数・システム変数(2)

BASIC説明書の続きです。
今回は前回に続いてBASIC関数とシステム変数についての説明です。

INKEY$

この変数を参照したときにキーボードが押されているとそのキーの文字が得られます。
押されていないときはコード00(ヌル文字)が入ります。
ヌル文字は””で示します。

[使用例]
10 A$=INKEY$
20 IF A$="" GOTO 10
30 PRINT A$
40 GOTO 10

このプログラムを実行するとキーを押すたびにその文字が表示されます。
押したままにするとオートリピート機能がオンになって同じ文字が連続して表示されます。

INPUT$

[書式]INPUT$(k)

キーボードから指定する桁数の文字を読み取ってその桁数の文字列データとして格納します。
kは読み取る桁数で1〜39の範囲の整数で定数の他、変数、配列、式を書くこともできます。
指定した桁数の文字がキーボードから入力されるまで待ち続けます。

[使用例]
10 A$=INPUT$(3)
20 PRINT A$
>RUN
ABC
>
A、B、Cとキー入力するとABCと表示される

LEFT$

[書式]LEFT$(文字列 ,n)

文字列の左端から任意の長さだけ取り出した文字列を与えます。
( )内の文字列は定数、変数のいずれでもよくまた長さを指定する数値は定数、変数、配列、式のいずれでもよいのですがその値は1〜39の範囲の整数に限ります。

[使用例]
10 A$="ABCDEFG"
20 L$=LEFT$(A$,3),M$=MID$(A$,4,3),R$=RIGHT$(A$,3)
30 PRINT L$,M$,R$
>RUN[Enter]
ABC DE EFG

LEN

[書式]LEN(文字列)

文字列の文字数を与えます。
( )の中には文字定数、文字変数が記述できます。

[使用例]
10 A$="ABCDE"
20 PRINT LEN(A$)

>RUN[Enter]
5

MID$

[書式]MID$(文字列 ,n, m)

文字列の左端からn番目から始まってm個を取り出した文字列を与えます。
文字列の部分には文字定数、文字変数が記述できます。
n、mは定数、変数、配列、式のいずれでもよいのですがその値は1〜39の範囲の整数に限ります。
nが文字列の桁数より大きいとエラーになります。
mが文字列の桁数より大きいときはもとの文字列全体が与えられます。

[使用例]
10 A$="ABCDEFG"
20 L$=LEFT$(A$,3),M$=MID$(A$,4,2),R$=RIGHT$(A$,3)
30 PRINT L$,M$,R$
>RUN[Enter]
ABC DE EFG

OR

[書式]OR(a,b)

8ビットの2数の論理和(OR)を計算します。
( )の中には、定数、変数、配列、数式、関数(いずれも文字型を除く)が記述できますがその値は0〜255の範囲の整数でなければ正しい結果は得られません。
またこのOR関数の取り得る値の範囲も0〜255($00〜$FF)です。

[使用例]
10 A=$37
20 B=OR(A,$0F)
30 PRINT HEX$(A),BI$(A)
40 PRINT HEX$(B),BI$(B)

>RUN[Enter]
37 00110111
3F      00111111

PICIN

PICのSFR(Special Function Register)の値(8ビット)を読み込みます。
SFRについては[第193回]を参照してください。
PICINについては過去回のサンプルプログラムでたくさん使っていますので参考にしてください。

RIGHT$

[書式]RIGHT$(文字列 ,n)

文字列の右端から任意の長さだけ取り出した文字列を与えます。
( )内の文字列は定数でも変数でもよく、また長さを指定する数値は定数、変数、配列、式のいずれでもよいのですがその値は1〜39の範囲の整数に限ります。

[使用例]
10 A$="ABCDEFG"
20 L$=LEFT$(A$,3),M$=MID$(A$,4,2),R$=RIGHT$(A$,3)
30 PRINT L$,M$,R$
>RUN[Enter]
ABC DE EFG

SPACE$

[書式]SPACE$(n)

任意の桁数の空白を与えます。
( )の中には、定数、変数、配列、数式、関数(いずれも文字型を除く)が記述できますがその値は1〜39の範囲の整数に限ります。

[使用例]
10 FOR N=1 TO 10
20 A$="*"+SPACE$(N)+"*"
30 PRINT A$
40 NEXT N

>RUN[Enter]
* *
*  *
*   *
*    *
*     *
*      *
*       *
*        *
*         *
*          *

STR$

[書式]STR$(a)

( )内の値を示す文字列を与えます。
( )の中には、定数、変数、配列、数式、関数(いずれも文字型を除く)が記述できます。
VAL関数と逆の働きをします。

[使用例]
10 X=12
20 A$=STR$(X/3)
30 PRINT A$

>RUN[Enter]
4

TIME$

現在の時刻(時、分、秒)を持つシステム変数です。
TIME$は8桁の文字型変数で、HH:MM:SSの形をしています。
HHは00〜23、MMとSSは00〜59の範囲の整数です。
TIME$はWindowsシステムの時刻データを引用しています。
この値はPRINT文やLET文などで常時参照することができます。
TIME$は読み取り専用です。
TIME$に値を書き込むことはできません。

[使用例]
10 PRINT TIME$
>RUN
15:23:46

TIME2$

現在の時刻(時、分、秒)を持つシステム変数です。
TIME2$は6桁の文字型変数で、HHMMSSの形をしています。
HHは00〜23、MMとSSは00〜59の範囲の整数です。
TIME2$はWindowsシステムの時刻データを引用しています。
この値はPRINT文やLET文などで常時参照することができます。
TIME$は読み取り専用です。
TIME$に値を書き込むことはできません。

[使用例]
10 PRINT TIME$,TIME2$
>RUN
15:23:46 152346

VAL

[書式]VAL(文字列)

数字の文字列を計算できる数値に変換します。
STR$と逆の働きをします。
12345という数値はプログラムのなかで計算したり変数に代入することができますが、”12345”というように文字型で表現したものはこのままでは計算に利用することはできません。
VAL関数は文字列が示している数値を計算できる値に変換する働きをします。
下はTIME$の内容を計算できる値に変換する例です

[使用例]
10 T$=TIME$
20 H=VAL(LEFT$(T$,2))
30 M=VAL(MID$(T$,4,2))
40 S=VAL(RIGHT$(T$,2))
50 PRINT T$,H,M,S

XOR

[書式]XOR(a,b)

8ビットの2数の排他的論理和(XOR)を計算します。
排他的論理和とは2つの数をビット毎に比較し共に1の場合及び共に0の場合には結果のそのビットを0にし、一方が1で他方が0のときは結果のそのビットを1にする演算です。
( )の中には、定数、変数、配列、数式、関数(いずれも文字型を除く)が記述できますがその値は0〜255の範囲の整数でなければ、正しい結果は得られません。
またこのXOR関数の取り得る値の範囲も0〜255($00〜$FF)です。

[使用例]
10 A=$37
20 B=XOR(A,$0F)
30 PRINT HEX$(A),BI$(A)
40 PRINT HEX$(B),BI$(B)
>RUN[Enter]
37 00110111
38    00111000

[参考]$FFとのXORをとることによりその値を反転させることができます。

[使用例]
10 A=$37
20 B=XOR(A,$FF)
30 PRINT HEX$(A),BI$(A)
40 PRINT HEX$(B),BI$(B)
>RUN[Enter]
37 00110111
C8 11001000

今回でやっとBASICの説明が終りました。
毎度のことながら説明書の作成作業は本当に骨の折れる作業です。

PIC−USBIO using BASIC[第195回]
2023.3.13upload

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