さて!お正月!そんなわけで秋月電子で液晶表示モジュールを衝動買いしてしまいました。
まず基本的な制御から始めよう。 8bit通信はあったのですが、ピン節約したいから 4bit がいい。
・・・・・・作るしかないか。
いろんなHPからソースを寄せ集め。
コピペの固まりです(笑)
あ、そうそう、液晶表示器はLCDモジュールなんて言ったりもするようです。

計 1140円
LCDモジュールには 8bit 通信モード 4bit通信モードがあるとのこと。
今回のプログラムは 4bit 通信モードです。
ピン位置を間違えると全然動かないのでご注意を。さすがにコードが長いです・・・。
なるべくサブルーチン化してあるので、実はそんなに複雑ではないと思います。ポートI/O設定
↓
LCD初期化
↓
「Hello」「World」交互表示ループ流れとしてはこれだけです。 使い回しも結構簡単のはず。
16f84lcd.asm 5KB
Hello World(^_^) ←こんな感じの表示になりますHello と World(^_^) が交互に点滅します。
ちゃんと+5Vが配給できてないとうまく動かないようですな。busyチェックは結局40μ秒待つだけなので、wait に置き換えても動きました。
開発に10時間くらいかかったような・・。
MOVWFと書くべきところ MOVF と書いていたり。
こういうバグなかなか見つからないんですよね。
でも勉強になりました。
今回は色々なHPを参考にさせていただきました。
特に
JA1HHF の4bit通信ソース
PICな日曜日 の8bit通信ソース
に大変お世話になりました。補足説明多くて素晴らすぃ〜
さて、今回のプログラムのあちこちにMOVLW B'00100000' ;4bit通信に
MOVWF PORTB
BSF E ;Eトグル ←ココ
BCF E ←ココ
CALL DLYS ;100usec Waitこのように E をトグルしてる場所があります。
データシート見た感じ
「Eは周期的クロックかな?面倒・・」
と思っていたんですが 、ネット上のソースみても最後にEをトグルしてるだけ。
「書き込みしたから反映してね」
という意味でEを立ち上げるだけで良さそうです。
自信ありませんが・・
今回は秋月電子で貰ったデータシートをとことん読みました。
ほんの些細なことでも、とても重要。
しかも英語。困った。
データシートの隅っこに書いてあったりします。
う〜ん・・・・理工系のマニュアルはこれだから怖い。
ま、これで液晶表示ができるようになったわけで。
書き込む文字もASCIIコードがそのまま使えるので、パソコンとRS232C通信して色々制御できそうです。
サーバ作ったときモニター代わりに液晶表示装置にしようかな、とか企んでます。でもサーバ立ち上げる必要性があまりないんだよなー