LCDキャラクタディスプレイモジュールを使う、イニシャライズ動作解説編。
前回は、PICからLCD表示機にデータを送るプログラムを作ったので、今回は、これを使ってLCD表示機を初期化(イニシャライズ)する動作の解説をします。
下のブロック図は、LCD表示機を4ビットで動作させるのに必要なコマンドを送るものです。
ブロック図の解説。
電源が入るとLCD表示機は安定するまで15mS程かかりますから待機します。
RS信号は、制御レジスタにデータを送るので0にセットします。
R/W信号は、書き込み(PICからLCD表示機へデータを送る)ですから0にセットします。
データはPORTBの上位4ビットから送りますから、PORTBに0x30をセットします。
準備ができたので、E信号(データ取り込み指示)を1にして、すぐに0に戻します。
ここで、4.1mS以上待機。
RSとR/W信号は変える必要がないので操作は無しです。
送るデータは変わりませんから、PORTBの操作は無しです。
準備ができたので、E信号(データ取り込み指示)を1にして、すぐに0に戻します。
ここで、100μS以上待機。
RSとR/W信号は変える必要がないので操作は無しです。
送るデータは変わりませんから、PORTBの操作は無しです。
準備ができたので、E信号(データ取り込み指示)を1にして、すぐに0に戻します。
ここで、100μS以上待機。
この時点で、LCD表示機は8ビットモードになります。
今回は、4ビットモードで使用するので、
RSとR/W信号は変える必要がないので操作は無しです。
送るデータが変わりますから、PORTBに0x20をセットします。
準備ができたので、E信号(データ取り込み指示)を1にして、すぐに0に戻します。
ここで、100μS以上待機。
この時点で、LCD表示機は4ビットモードになります。
次に、LCD表示機の初期設定をします。
4ビットモードでは8ビットの命令を、2回に分けて送ります、上位4ビットを送ってからすぐに下位4ビットを送らねばなりません、
データを送信するサブルーチンでは、8ビットのデータを指定してコールすると、後は制限に従って上位4ビットと下位4ビットを送ってくれます。
従って、TXdetaに、0x28を入れてサブルーチンを呼びます。
次に、TXdetaに、0x0Eを入れてサブルーチンを呼びます。
次に、TXdetaに、0x01を入れてサブルーチンを呼びます。
次に、TXdetaに、0x06を入れてサブルーチンを呼びます。
これで、初期設定は終わりで、次から、LCD表示機に表示する文字データを送ると文字が表示されます。
今回はここまで、次回は、初期設定の内容と、実際のC言語プログラムを説明します。