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


PICBASICコンパイラ

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

[第47回]



●さては悪霊の仕業か?

PICBASICボードに接続を考えている20字×4行のLCDのコントローラにはキャラジェネRAM(CGRAM)の機能があります。
といってもわずか8キャラクタですが。
5×8ドットのキャラクタパターンを任意に設定することができます。
RAMですから電源を切ると消えてしまいます。
CGRAMを使いたいときはプログラムの先頭でキャラジェネパターンを書き込むようにします。

LCC命令とLCD命令を使ってCGRAMにドットパターンを書き込むことができます。
CGRAMにドットパターンを書き込むには最初にLCC命令でCGRAMアドレスを指定します。

[出典]Sitronix Technology Co.,Ltd. ST7066 Datasheet

CGRAMアドレス(CGRAMのドットパターン格納アドレス)は6ビット000000〜111111でその上の上位2ビットは01にします。

CGRAMコードとCGRAMアドレスの関係です。

[出典]Sitronix Technology Co.,Ltd. ST7066 Datasheet

CGRAMの文字コードは00〜07ですが08〜0Fも同じ文字パターンになります。
上はTとRの文字パターンをCGRAM文字コードの00と01に設定する例です。
CGRAMアドレスのビット3〜ビット5がCGRAMコード(0〜7、000〜111)になります。
ビット0〜2はCGRAMのドットパターンの表示ラインを示します。
5×8ドットですから000〜111の8ラインになりますが最下行はカーソル表示とOR表示されますから通常は00000にしておきます。

下はCGRAMパターンを書き込んだ後それを表示するプログラムです。

CGRAMコードの00〜07に8種類の文字パターンを書き込むプログラムです。
20行でCGRAMアドレスの00を指定します。
ビット6=1にしますから設定アドレスは$40になります。
それ以後はCGRAMのドットパターンを書き込む都度CGRAMアドレスがインクリメントされます。
ドットパターンは1ラインごとにLCD命令で書き込みます。
50行と60行だけが2行になっています。
ここはちょいと訳ありでそのようにしてあります。

上のプログラムを/RUNコマンドで実行しました。
すると。

こんなおかしなことになってしまいました。
CGRAMには
¥日月火水木金土
の8キャラクタを書いたのですが最初の¥と日以外はまともに書き込まれていません。
CGRAMパターンを書いたあとCGRAMコードの00〜0Fを表示するプログラムなのですが…。
(コードの08〜0Fは00〜07のイメージになっています)
なんじゃあこりゃあ。
また悪霊どもが悪さをしているのかあ。
うむむむ。
悪霊退散んー。
この超常現象の原因が判明するまでたっぷり1日以上を費やしてしまいました。
まさかの原因でありました。

次回に続きます。

PICBASICコンパイラ[第47回]
2023.7.4upload

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