- - PR -
本連載で使用しているターゲットボード(第6回を参照)には、LEDやモータなどが接続されています。これらの装置の状態をLCD(Liquid Crystal Display)に表示させることができます。例えばLEDを点灯させた場合は、LCDに文字列「LED TEST」を表示させるといった処理です。そこで今回は、LCDの制御について解説します。
ターゲットボードに搭載された
LCDの仕様
ターゲットボードに接続されているLCDは、16けた×2行、5×7ドットマトリクス+カーソルの表示能力があります。LCDの制御信号とデータバスは、下記表のようにH8/3048F-ONEのポート4(P4)に接続されています(表1)。
信号名 | ポート | ポートの方向 | 用途 |
E | P46 | 出力 | イネーブルパルス信号:動作起動信号(ON/OFF) |
R/W | P45 | 出力 | リードライト信号:LCDモジュールからのデータ読み出し/書き込みを選択 |
RS | P44 | 出力 | レジスタ選択信号:データバスの信号がデータか命令かを指定。RS=1:データ、RS=0:命令 |
DB7 | P43 | 入力/出力 | データ信号 |
DB6 | P42 | 入力/出力 | データ信号 |
DB5 | P41 | 入力/出力 | データ信号 |
DB4 | P40 | 入力/出力 | データ信号 |
表1 LCDが接続されるポート |
本連載で使用しているターゲットボードでは、7本の信号線でLCDを接続しています(LCDは4ビットモードで動作)。このため、LCDに1文字を出力するためにはプログラムが若干複雑になり、上位4ビットと下位4ビットを2回に分けて出力する必要があります(図1)。
図1 LCD接続の回路図 |
LCD処理の流れ
LCDの操作は、データ信号(DB4〜DB7)、レジスタセレクタ信号(RS)、リードライト信号(R/W)およびイネーブルパルス信号(E)を用いて行います。処理の流れは、以下のとおりです。
(1) | ●データ信号(命令コードまたは文字コード)をラッチ |
●必要な項目 ・表示データRAM(DD RAM) ・キャラクタジェネレータRAMとROM(CG RAM、CG ROM) ・命令コード、文字コード ・アドレスカウンタ(AC) |
|
↓ | |
(2) | ●レジスタセレクタ信号とリードライト信号を確定 |
●必要な項目 ・命令レジスタ(IR) ・データレジスタ(DR) |
|
↓ | |
(3) | ●イネーブルパルスを作り、(1)でラッチしておいたコードを実行 |
●必要な項目 ・ビジーフラグ(BF) |
使用するレジスタ
ユーザーが使用できるレジスタには、以下の2つがあります(表2)。
レジスタ名 | 用途 |
命令レジスタ(IR) | 表示クリアやカーソルシフトといった命令コードや、表示データRAM(DD RAM)とキャラクタジェネレータRAM(CG RAM)のアドレス情報を記憶 |
データレジスタ(DR) | DD RAMやCG RAMへ書き込むデータおよびDD RAMやCG RAMから読み出されるデータを一時的に記憶 |
表2 LCD使用するレジスタ |
これらのレジスタは、表3のレジスタセレクタ信号(RS)で選択します。
RS | R/W | 動作 |
0 | 0 | IR選択。IR書き込み。内部動作:表示クリア命令の実行など |
0 | 1 | ビジーフラグ(DB7)とアドレスカウンタ(DB0〜DB6)の読み出し |
1 | 0 | DR選択。DR書き込み。内部動作:(DR) → (DD RAMまたはCG RAM) |
1 | 1 | DR選択。DR読み出し。内部動作:(DD RAMまたはCG RAM) → (DR) |
表3 レジスタセレクタ信号(RS) |
ビジーフラグ:BF
LCDは2枚のガラス板の間に閉じ込めた液晶に電圧を掛けることで液晶分子の方向を変え、光の透過率を加減することで像を表示する仕組みになっています。液晶分子の方向を変えるためには時間がかかります。ビジーフラグ(BF)は、LCDモジュールが次の命令を受け付けられる状態にあるかどうかを示します。
BF=1のときは命令実行中状態であり、次の命令は受け付けられません。BF=0のときは次の命令を受け付けることができます。よって命令を実行する際にはBFの値をモニタする必要があります。もしBFの状態を確認せずに命令を実行するのであれば、各命令の実行時間以上の待ち時間を設けて次の命令を実行します。
アドレスカウンタ:AC
アドレスカウンタ(AC)は、DD RAMやCG RAMへデータを書き込む際のアドレスおよびDD RAMやCG RAMに記憶されているデータを読み出す際のアドレスを、アドレスセット命令により7ビットで指定します。アドレスは一度セットされると、以後書き込みや読み出し命令が実行されるたびに、自動的に次のアドレスに再セットされます。
表示データRAM:DD RAM
DD RAMは80×8ビットの容量を持ち、8ビットの文字コードで表される表示データを80文字分記憶します。DD RAMアドレスと表示けたの対応関係は表4のとおりです。
1 | 2 | 3 | … | 15 | 16 | 17 | 18 | 19 | 20 | 21 | … | 38 | 39 | 40 | 表示けた | |
1行目 | 00 | 01 | 02 | … | 0E | 0F | 10 | 11 | 12 | 13 | 14 | … | 25 | 26 | 27 | DD RAMアドレス |
2行目 | 40 | 41 | 42 | … | 4E | 4F | 50 | 51 | 52 | 53 | 54 | … | 65 | 66 | 67 | (HEX) |
表4 DD RAMアドレスと表示けたの対応関係 |
LCDは16けたですので、先頭位置から16けた分が2行表示されます。1行目の最後と2行目の最初のアドレスは連続しません。
関連記事 半導体/エレクトロニクス
組み込み開発フォーラム 新着記事
- 1学期【期末考査】解答編 〜電子回路の基礎知識〜(2007/12/13)
- トヨタのマルチメディア情報機器搭載車への採用を狙う(2007/12/12)
- セキュリティモデルを構成する3つのコンセプト(2007/12/7)
- 1学期【期末考査】 トランジスタとオペアンプ(2007/12/6)
- SELinuxは組み込みでその真価を発揮する!?(2007/12/5)
- 新しい市場を開拓するWindows SideShowの可能性(2007/12/5)
- ケータイ標準DBに躍り出た! Linterの歩み(2007/12/4)
- ドラゴン&イスラムマネーが日本企業を飲み込む日(2007/12/3)
- FPGAの動作スピードを改善するポイントとは?(2007/11/30)
- 1学期の集大成! 【期末考査】のお知らせ(2007/11/29)
- ecloxとdoxygenで仕様書メンテナンスの効率をUP!(2007/11/28)
- 一貫体制で“流れを止めないモノ作り”を(2007/11/28)