5.高度計プログラム
プログラムリスト
10 ‘IchioJamコウドケイ by NEXTDAY
20 OUT5,1:D=1:GOSUB @SET:’A=キジュンキアツ
30 INPUT “キアツ”,P:IFP<8000CONT
40 INPUT “オンド”,T
45 C=(A-P)*8
50 BEEP5
60 CLS
70 ?”>”;P/10;”.”;DEC$(P,1);”hPa”;CHR$((C<0&&C>-10)*#2D);C/10;”.”;DEC$(C,1);”m”
80 ?”A”;A/10;”.”;DEC$(A,1);”hPa #”;D
90 L=2:[0]=P:[1]=C:LRUN1
100 @continu
110 D=D+1
120 IF D <= (12*2) GOTO30
130 OUT5,0
140 BEEP5,60
150 LC0,1
160 ?”ソクテイ シュウリョウ”
170 GSB @LCD
180 LRUN2
190 END
200 @SET
210 CLS
220 ?”READY! ボタンヲ ハナス”
230 GSB @LCD
240 IF BTN()=1 CONT
250 INPUT “キアツ”,P:IFP<8000CONT
260 INPUT “オンド”,T
270 LED1
280 A=P
290 CLS
300 ?”タクトスイッチヲ オシテ セット”
310 ? A/10;”.”;DEC$(A,1);”hPa”
320 GSB @LCD
330 LED0
340 IF BTN()=0 GOTO250
350 BEEP5,60
360 CLS
370 ?”キアツ ソクテイ カイシ”
380 ?”A”;A/10;”.”;DEC$(A,1);”hPa”
390 GSB @LCD
400 N=0:M=0:Z=I2CW(82,#8E6,2,#8E4,2)
410 RETURN
900 @LCD
910 LET[96],640,64,#5639,#C6C,#C080,64
920 Z=I2CW(62,#8C3,5)
930 Z=I2CW(62,#8C0,3,#900,16)
940 Z=I2CW(62,#8C8,3,#920,16)
950 RETURN
SAVE0
プログラム説明
20行目
通信を開始します(OUT命令)
カウント数を初期化(変数Dを1回目に)します。値には測定した回数が入ります。
サブルーチン処理にて基準気圧を(変数Aに)セットします。
30,40行目
気圧センサーで測定した気圧と温度を、変数Pと変数Tに入れます。
気圧が8000(800hPa)以下の時は異常値として記録せず、再測定します。
45行目
基準気圧との測定した気圧差から、高度差を計算をして、変数Cに入れます。0.1hPa=0.8mとして計算します。
70,80行目
気圧、高度差、基準気圧、カウント数をモニターに表示します(必要に応じて小数点付きで表示する)。
90行目
1回分の測定である、気圧値(変数P)と高度差(変数C)をEEPROMに記録してLCD表示をします(LRUN1呼び出し)
100行目
EEPROM記録プログラムからの戻り行です。この行番番号はずらさないようにしてください。
110行目
カウント数を+1します。
120行目
カウント数が指定回数になるまで測定を繰り返します(GOTO30)。
このプログラムでは、5秒毎24回の測定で、2分間の記録をします。
130行目
通信を終了(OUT命令)します。
150-170行目
LCDに測定終了を表示をします。
180行目
EEPROMから、記録した気圧値と高度差の全ての値を表示します(LRUN2呼び出し)。
200行目~ @SET
基準気圧を変数Aにセットするサブルーチン
タクトスイッチが押されるまで、現在位置の気圧をLCDに表示します。
タクトスイッチが押されたら、その時の気圧を基準気圧にします。
900行目~ @LCD
LCD表示サブルーチン
VIDEO1のとき、モニター画面x0,y0-x15,y1の範囲の文字をLCDへ転送して表示します。
◆プログラム番号0番に保存してください(SAVE0)
※LRUN1とLRUN2(SAVE1とSAVE2)のプログラムは、こちらを入力してください
この教材は「Creative Commons — CC BY-SA 4.0」の下に提供されています。