Previous: 2.3.3.2. 送受信タイミング |
Up: 2.3.3. HD44780互換LCDコントローラ |
Next: 2.3.3.4. アドレス |
LCDモジュールとやりとりするデータ・命令は表 6?15の通りです。画面の消去やカーソル移動、表示中のデータの読み取り、表示するデータの送信等が行えます。例えばRSとR/WをLレベルにしてからデータバスに0b00000001を出力し、クロックを送信する(EをHレベルにしてからLレベルにする)とLCDの表示がクリアされ、カーソルが左上に戻ります。RSをHレベルに、R/WをLレベルにしてからデータバスに0b01000001を出力し、クロックを送信するとLCDに「A」が表示され、カーソルが一つ右に進みます(文字コードについては後述)。RSとR/WをHレベルにしてからデータバスを読み取ると、現在のカーソル位置の文字の文字コードが得られ、カーソルが一つ右に進みます。
これらのデータ・命令の送受信が完了するのにも一定の時間が必要です。特に画面のクリアやカーソルの原点復帰に必要となる1.64msという時間は、マイコンから見ればかなり長い時間であり、待ち時間を意識しておかないと、LCDモジュール内での処理が完了していない間にマイコンが次のデータや命令を送るといったことが発生してしまいます。
幸いなことにHD44780ではコントローラが処理中であるかを確認するためのビジーフラグ(BF)が用意されています。RSをLレベル、R/WをHレベルにして命令の読み取りモードにしてからデータバスのデータを読み取ります。このときDB7のビットがBFです。BFがHレベルであれば処理中であり、Lレベルであれば待機中であって、命令やデータを受け付けることができる状態となっています。
表 6?15 コマンド表
***再トレース***
命令 |
コード(バスの状態) |
内容 |
最大実行時間 |
|||||||||
RS |
R/W |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
|||
ディスプレイクリア |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
ディスプレイをクリアしカーソルをホームポジション(アドレス0)に戻す。 |
1.64ms |
ホームへ移動 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
* |
カーソルをホームポジション(アドレス0)に戻す。画面をシフトさせている場合には初期位置に戻す。DDRAMの内容は変更されない。 |
1.64ms |
エントリモード設定 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I/D |
S |
カーソルの移動方向(I/D 1:右 0:左)と画面のシフト(S 1:シフトする 0:シフトしない)を設定する |
40μs |
ディスプレイオン・オフ |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
D |
C |
B |
ディスプレイ(D 1:表示 0:非表示)、カーソル(C 1:表示 0:非表示)、カーソル点滅(B 1:点滅 0:常灯)を設定する。 |
40μs |
カーソル・ディスプレイ設定 |
0 |
0 |
0 |
0 |
0 |
1 |
S/C |
R/L |
* |
* |
カーソルの移動をするかディスプレイのシフトをするか(S/C 1:ディスプレイシフト 0:カーソル移動)と移動方向(R/L 1:右にシフト 0:左にシフト)を設定する。 |
40μs |
ファンクション設定 |
0 |
0 |
0 |
0 |
1 |
DL |
N |
F |
* |
* |
インターフェースのデータ長(DL 1:8ビット 0:4ビット)、ディスプレイ行数(N 1:2行 0:1行)、フォント(F 1:5×10ドット 0:5×7ドット)を設定する。 |
40μs |
CCRAMアドレス設定 |
0 |
0 |
0 |
1 |
CGRAMアドレス |
CGRAMのアドレスを設定する。 |
40μs |
|||||
DDRAMアドレス設定 |
0 |
0 |
1 |
DDRAMアドレス |
DDRAMのアドレスを設定する。 |
40μs |
||||||
CGRAM/DDRAMデータ書込 |
1 |
0 |
書込データ |
CGRAM/DDRAMにデータを書き込む。 |
40μs |
|||||||
CGRAM/DDRAMデータ読込 |
1 |
1 |
読込データ |
CGRAM/DDRAMからデータを読み込む。 |
40μs |
Previous: 2.3.3.2. 送受信タイミング |
Up: 2.3.3. HD44780互換LCDコントローラ |
Next: 2.3.3.4. アドレス |