« 秋月電子で2015年に買ったLMC6482とNJU7062 | トップページ | 「オオルリ流星群」、「ミッキー7」 »

2023年5月16日 (火)

液晶表示コントローラ HD44780で迎撃

オリジナルデバイス:なんぎな日記(2023年5月10日)
に、HD44780が乗った液晶表示モジュールが出ていたので、
こちらからも迎撃してみます。

2種類のモジュールを発掘できました。

50_20230516102701
上側、東芝のが1987年4月製のようです。
50a

HD44780、このサフィックスで内蔵しているキャラジェネ
のデータが変わります。
手持ちのHD44780データシート(1997年8月)、これで
示されていたのは「A00 A01 A02」の3種類。

・A00
51_20230516102701
・A01
52_20230516102701  
・A02
53_20230516102701

「A01」と「A02」はずいぶん賑やかに見えます。

CG RAMエリアの8文字、コード0x00~0x07と0x08~0x0F
は同じものがは表示されます。
C言語では、0x00はnullターミネートされる文字列で
使われます。
ですので、0x08~0x0FをCG RAMの文字コードに割り当て
たいところなんですが、「BS」や「HT」「LF」「CR」の
制御コードと被ってしまいますんで、CG RAMを使う時は
ちょっと気遣いが必要です。


※関連
液晶表示モジュールを4ビットモードで使ったときの空きピン処理

※Arduinoに絡めて
Arduinoでの液晶制御、一般には「LiquidCrystal」ライブラリを
使います。
8ビットモードだと、
  LiquidCrystal(rs, E, d0~d7)   :10bit
  LiquidCrystal(rs, rw, E, d0~d7) :11bit
4ビットモードだと
  LiquidCrystal(rs, E, d0~d3)   :6bit
  LiquidCrystal(rs, rw, E, d0~d3) :7bit
と、いちばん接続線数が少ない接続は
「4ビットモード」で「rs」と「E」を使った場合の
6本になります。

もう1ビット増やして「rw」を指定したら、
  「busyチェックしてくれるので早くなるかも
は、期待できません。
LiquidCrystalライブラリはbusyチェックは完全に無視。
delayMicroseconds()」を使った時間待ちでタイミングを
作っています。

さて。。。この時間待ち。
LiquidCrystalライブラリのソース「LiquidCrystal.cpp」を
読みますと、初期化(begin)のところで、
  delayMicroseconds(50000);
と「50ms待ち」をしているところがあります。

しかし、delayMicrosecondsにはこんな制限が・・・
Arduino-UNOでのdelayMicrosecondsの設定は16383までだ!

液晶初期化のdelayMicroseconds(50000)、
 ・ほんとにこれでエエの?
 ・動いてるからエエんとちゃう。
っということしか言えません。

|

« 秋月電子で2015年に買ったLMC6482とNJU7062 | トップページ | 「オオルリ流星群」、「ミッキー7」 »

電子回路工作」カテゴリの記事

Arduino」カテゴリの記事

電子部品」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 秋月電子で2015年に買ったLMC6482とNJU7062 | トップページ | 「オオルリ流星群」、「ミッキー7」 »