|
| このプログラムを使って以下のように周波数の変化量を液晶に表示できます。 |
 |
← RAINBOW7の液晶 |
*周波数信号の差分表示プログラム
'液晶用変数の定義
| WakeUp
|
CON |
%00110000 |
'48 |
| FourBitMode |
CON |
%00100000 |
'32 |
| OneLine5x8Font |
CON |
%00100000 |
'32 |
| OneLine5x10Font |
CON |
%00100100 |
'36 |
| TwoLines5x8Font |
CON |
%00101000 |
'40 |
| TowLines5x10Font |
CON |
%00101100 |
'44 |
| DisplayOff |
CON |
%00001000 |
'8 |
| DisplayOn |
CON |
%00001100 |
'12 |
| DisplayOnBlCrs |
CON |
%00001101 |
'13 |
| DisplayOnULCrsr |
CON |
%00001110 |
'14 |
| IncCrsr |
CON |
%00000110 |
'6 |
| IncCrsrShift |
CON |
%00000111 |
'7 |
| DecCrsr |
CON |
%00000100 |
'4 |
| DecCrsrShift |
CON |
%00000101 |
'5 |
| ClearDisplay |
CON |
%00000001 |
'1 |
| HomeDisplay |
CON |
%00000010 |
'2 |
| ScrollLeft |
CON |
%00011000 |
'24 |
| ScrollRight |
CON |
%00011100 |
'28 |
| CrsrLeft |
CON |
%00010000
|
'16 |
| CrsrRight |
CON |
%00010100 |
'20 |
| MoveCrsr |
CON |
%10000000 |
'128 |
| MoveToCGRAM |
CON |
%01000000 |
'64 |
'変数の定義
CNT VAR
Word :周波数カウンタの数値
INITIAL VAR Word :ゼロ点の格納
SABUN VAR Word :差分(INITIAL-CNT)の格納
i VAR Byte :経過時間の格納
ITERM 0
INPUT 6 :周波数信号の入力pin番号の指定
'液晶用おまじない1
PAUSE
1000
GOSUB InitLCD
'メインプログラム
IOTERM
0
LCDOUT 8, ClearDisplay, ["mesuring"]
:液晶1行目にmesuringと表示
COUNT 6,1000,CNT :ゼロ点となる周波数信号の測定
IINITIAL = CNT :ゼロ点の格納
FOE i = 0 TO 59 :変数iを0から59まで変化させる。
LCDOUT
8, MoveCrsr+64,[DEC i,"s"] :液晶2行目に秒数
sを表示
PAUSE 1000 :変数iの変化時間を1000msに設定
NEXT
COUNT 6,1000, CNT :周波数信号の再測定
SABUN = INITIAL - CNT :ゼロ点と1分後の周波数の比較
LCDOUT
8, ClearDisplay, ["Result"] :液晶1行目にResultと表示
LCDOUT
8, MoveCrsr+20,[DEC SABUN,"Hz"] :液晶3行目に周波数の差分値を表示
'液晶用おまじない2
LCDCMD
8, WakeUp
PAUSE 10
LCDCMD 8, WakeUp
PAUSE 1
LCDCMD 8, WakeUp
PAUSE 1
LCDCMD 8, FourBitMode
LCDCMD 8, TwoLines5x8Font
LCDCMD 8, DisplayOff
LCDCMD 8, DisplayOn
LCDCMD 8, IncCrsr
LCDCMD 8, ClearDisplay
RETURN
|
コメント
|
|
1.周波数カウントプログラム
COUNT A, B, C
A:周波数信号の入力pin番号
B:カウント間隔
ex) 10Hzレンジ → 100(ms)
1Hzレンジ → 1000(ms)
C:格納する変数
2.時間表示プログラム
@秒数(0s〜59s)を表示する
FOE i = 0 TO 59
LCDOUT 8, MoveCrsr+64,[DEC i,"s"]
PAUSE 1000
NEXT
A分数(1min〜59min)を表示する
FOE i = 0 TO 59
LCDOUT 8, MoveCrsr+64,[DEC i,"min"]
PAUSE 60000
NEXT
|