### 4-6　ドットマトリクスLCDコントローラ

LCDコントローラ/ドライバは、表示用RAMに格納されたデータを自動的に読み出し、ドットマトリクスLCD駆動信号を発生するための回路です。

表示モードは、表示用RAMの1ビットのデータがLCDの1ドットの点灯/非点灯に対応すグラフィックモードです。

ドットマトリクスLCDコントローラ/ドライバは、次の回路ブロックにより構成されています。

- 表示用RAM（XRAM）
- 表示コントロールレジスタ
- 液晶表示用電源回路

####

4-6-1　機能

- 表示デューティ：1/33デューティ
- 表示バイアス：1/5 バイアス
- グラフィック表示
- 液晶インストラクション
  表示：ON/OFF
- グラフィック表示
  横48ドット×縦32ドット（マトリクス表示）＋4モードアイコン表示可能

液晶表示を制御するには、次に示す特殊機能レジスタを操作する必要があります。

・MCR ：液晶表示のON/OFFの制御
・STAD ：液晶表示のスタートアドレスの制御
・CNR ：水平方向のバイト数の制御
・TDR ：表示デューティの制御
・VCCR ：液晶表示のコントラスト制御
・XBNK ：表示用RAMのバンクアドレス制御

####

4-6-2　表示用RAM（XRAM）

表示用のXRAMは、ドットマトリクス表示表用の96ビット×8ビット×2バンクと、アイコン表示用の6ビットの3バンクで構成されています。

LCDコントローラ/ドライバは、このXRAMに記憶されたデータを読み出し、ドットマトリクス液晶駆動信号を発生します。

XRAMへの書き込みまたは読み出しは、システムクロックをRC発振にしてから行ってください。

シンボル | アドレス | R/W | 名称 | 初期値 | バンク
XRAM | 180H - 1FBH | R/W | 表示用RAM | 不定 | バンク0
| 180H - 1FBH |  |  |  | バンク1
| 180H - 185H |  | アイコン用 |  | バンク2

▽ 表示用XRAMの構成(図71)

####

4-6-3　表示コントロール制御レジスタ

#### モード制御レジスタ（MCR）

液晶コントローラ動作の開始または停止、カーソル表示の制御、液晶表示用クロックの分周比の制御を行ないます。

モード制御レジスタは、書き込み専用レジスタです。書き込み専用レジスタにビット操作命令、INC命令、DEC命令、DBNZ命令を使用すると、指定したビット以外のビットがセットされるので注意してください。このレジスタ操作には、次の命令を使用してください。 MOV，MOV＠，ST，ST＠，POP また、このレジスタを操作する場合は、ビット7〜4とビット0は必ず固定値を設定してください。

シンボル | アドレス | R/W | ビット７ | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
MCR | 120H | R/W | MCR7 | MCR6 | MCR5 | MCR4 | MCR3 | − | − | MCR0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1

ビット名 | 機能
MCR7（ビット7） MCR6（ビット6） MCR5（ビット5） | 液晶クロック分周選択
MCR7 | MCR6 | MCR5 | 分周比
0 | 0 | 0 | 1/1 *必ずMCR7〜MCR5=0に設定してください
MCR4（ビット4） | 液晶クロック1/2分周回路選択
0：MCR7〜MCR5で選択された信号の1/2分周信号を液晶クロックとして選択する *必ずMCR4=0に設定してください
MCR3（ビット3） | 液晶コントローラ制御
0：液晶コントローラ 停止 1：液晶コントローラ 動作開始／継続
MCR0（ビット0） | 表示モード選択
1：グラフィックモード *必ず、MCR4=1に設定してください

##### ■MCR7〜5（ビット7〜5）：液晶表示用クロックの分周比の選択

必ず、MCR7〜MCR5＝0にリセットしてください。

##### ■MCR4（ビット4）：液晶表示用クロックの1/2分周の選択

必ず、MCR4＝0にリセットしてください。

フレーム周波数は、
1/2分周（MCR4＝0）：82.7Hz

##### ■MCR3（ビット3）：LCDコントローラの制御

LCDコントローラを動作させるか停止するかを指定します。

‘1’をセットすると、LCDコントローラが動作を開始します。

‘0’にリセットするとLCDコントローラが停止します。XRAMの内容を変更してもLCDに再描画されなくなります。なお、液晶表示のON/OFFの制御していません。

##### ■MCR0（ビット0）：表示モードの選択

表示モードは、常にグラフィック表示を選択してください。

グラフィック表示　MCR0＝1

▽ ドットマトリクス表示(図72)

##### ■液晶表示スタートアドレス制御レジスタ（STAD）

液晶表示のスタートアドレスの制御を行ないます。

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
STAD | 122H | R/W | STAD7 | STAD6 | STAD5 | STAD4 | STAD3 | STAD2 | STAD1 | STAD0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

ビット名 | 機能
STAD7（ビット7） ｜ STAD0（ビット0） | 液晶表示用RAMの表示スタートアドレスの設定
STAD7 | STAD6 | STAD5 | STAD4 | STAD3 | STAD2 | STAD1 | STAD0 | スタートアドレス
0 0 ↓ 1 | 0 0 ↓ 1 | 0 0 1 | 0 0 1 | 0 0 1 | 0 0 1 | 0 0 1 | 0 0 1 | 0 0 ↓ 255

STADの値を変更すると、XRAMバンク0だけでなくバンク1，2にも影響し、アイコンが点滅したりすべてのアイコンが点灯したりといった症状が発生します。この場合は、STADで指定した表示開始アドレス-1〜-6バイトのデータを次のように変更してください。

STADで指定した開始アドレス | -6 | -5 | -4 | -3 | -2 | -1
書き込むデータ | 00H | 00H | 00H | 10H | 00H | 00H

これでゲームアイコンのみが点灯した状態になります。また、XRAMのBANK2へのアクセスは禁止事項ですが、STADに00H以外を指定した場合においてはアクセスが許されます。

STADを00H以外に設定した状態でフラッシュメモリへのアクセスを行うと、画面の一部が書き変わります。これは、BIOSがフラッシュメモリへのアクセスアイコンを点灯するためです。したがって、フラッシュメモリにアクセスする場合は、STADを00Hに設定し直してから、BIOSを呼び出すようにしてください。

##### ■STAD7〜0（ビット7〜0）：XRAMの表示スタートアドレスの設定

液晶表示画面に現われる表示データの最初のアドレスを設定（XRAM　180HをSTAD＝00Hとする）します。

2バイト単位でデータは変化します。

スタート アドレス | XRAMアドレス | STAD7 | STAD6 | STAD5 | STAD4 | STAD3 | STAD2 | STAD1 | STAD0
0H | 180H（バンク0） | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
1H | 182H（バンク0） | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1
2H | 184H（バンク0） | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0
3H | 186H（バンク0） | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1
4H | 188H（バンク0） | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0
5H | 18AH（バンク0） | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1
6H | 設定不可 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0
7H | 設定不可 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1
8H | 190H（バンク0） | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0
9H | 192H（バンク0） | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1
0AH | 194H（バンク0） | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0
0BH | 196H（バンク0） | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1
0CH | 198H（バンク0） | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0
0DH | 19AH（バンク0） | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1
0EH | 設定不可 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0
0FH | 設定不可 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1
10H | 1A0H（バンク0） | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0
11H | 1A2H（バンク0） | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1
： | ： | ： | ： | ： | ： | ： | ： | ： | ：
3DH | 1FAH（バンク0） | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1
3EH | 設定不可 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0
3FH | 設定不可 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1
40H | 180H（バンク1） | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0
41H | 182H（バンク1） | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1
： | ： | ： | ： | ： | ： | ： | ： | ： | ：
7DH | 1FAH（バンク1） | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1
7EH | 設定不可 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0
7FH | 設定不可 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1
80H | 180H（バンク2） | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0
81H | 182H（バンク2） | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1
82H | 184H（バンク2） | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0
83H - FFH | 設定不可 |  |  |  |  |  |  |  |

表中に「設定不可」とあるように、スタートアドレスに設定すると誤動作となる設定値があります。xx6H，xx7H，xxEH，xxFHは、設定できませんので注意してください。

#### 文字数レジスタ（CNR）　123H

このレジスタは、アプリケーションから読み書きしないでください。

#### 時分割レジスタ（TDR）　124H

このレジスタは、アプリケーションから読み書きしないでください。

#### バンクアドレスレジスタ（XBNK）

XRAMのバンクを切り替えます。

シンボル | アドレス | R/W | ビット７ | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
XBNK | 125H | R/W | − | − | − | − | − | − | XBNK1 | XBNK0
リセット時 | H | H | H | H | H | H | 0 | 0

ビット名 | 機能
XRBK1（ビット1） ｜ XRBK0（ビット0） | 液晶表示用RAMの表示スタートアドレスの設定
XRBK1 | XRBK0 | バンクアドレス
0 0 1 | 0 1 0 | 0 1 2
1 | 1 | 設定禁止

##### ■XBNK1〜0（ビット1〜0）：表示用RAMのバンクアドレス制御

XRAMのバンクを切り替えます。

ドットマトリクス表示用のXRAMバンク0，1には、それぞれ96バイトのメモリがあります。アプリケーションから読み書きできるのは、バンク0，1のみです。

XRAMバンク2は、ビジュアルメモリの動作モードを示すアイコン表示用の6バイトのRAMです。

XRAMのバンク2は、アプリケーションから操作しないでください。

#### 液晶コントラスト制御レジスタ（VCCR）

液晶表示の表示のON/OFFを制御します。

- コントラスト制御回路は、内蔵していませんので注意してください。
- 液晶コントラスト制御レジスタは、書き込み専用レジスタです。書き込み専用レジスタにビット操作命令、INC命令、DEC命令、DBNZ命令を使用すると、指定したビット以外のビットがセットされるので注意してください。VCCRレジスタを変更するには、次の命令を使用してください。

MOV，MOV＠，ST，ST＠，POP

また、このレジスタにアクセスする際は、ビット5〜0は必ず固定値を設定してください。

シンボル | アドレス | R/W | ビット７ | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
VCCR | 127H | W | VCCR7 | VCCR6 | VCCR5 | VCCR4 | VCCR3 | VCCR2 | VCCR1 | VCCR0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

ビット | 機能
VCCR7（ビット7） | 液晶表示制御
0：液晶表示OFF 1：液晶表示ON
VCCR6（ビット6） | 液晶表示RAMアクセス制御
0：CPUからの表示用RAMへのアクセス許可 1：CPUからの表示用RAMへのアクセス
VCCR5（ビット5） ｜ VCCR0（ビット0） | *必ず、VCCR5〜VCCR0=0に設定してください

##### ■VCCR7（ビット7）：液晶表示の制御

液晶表示を行なうか、表示を停止するかを指定します。

‘0’にリセットすると、液晶パネルへの電源を遮断し液晶表示が消えます。

▽ 液晶表示状態(図73)

‘1’をセットすると、液晶パネルへの電源が供給され液晶が表示されます。

▽ 液晶消灯状態(図74)

液晶表示を行なう（VCCR7＝1）場合は、必ず液晶コントローラ動作を開始（MCR3＝1）してから行なってください。 液晶表示を消す場合は、VCCR7＝0にしてからMCR3＝0にしてください。

##### ■VCCR6（ビット6）：液晶表示RAMアクセス制御

システムクロックを水晶発振に設定し、LCD表示を行っている場合、必ずシステムクロックを変更後、CPUからXRAMへのアクセスを禁止（VCCR6＝1）に設定してください。

また、XRAMに読み書きを行うときや、システムクロックをRC発振に設定し、LCD表示を行っている場合は、CPUからのアクセスを許可（VCCR6＝0）してください。

液晶表示中にシステムクロックを変更する手順は、次のとおりです。

- RC発振→水晶発振
  VCCR6＝1
  OCR5＝1，OCR4＝0
- 水晶発振→RC発振
  VCCR6＝0
  OCR5＝0，OCR4＝0（RC発振）

##### ■VCCR5〜0（ビット5〜0）

必ず‘0’にリセットしてください。

LCD表示を行なう場合、VCCRを最後に設定してください。

[←] | [INDEX] | [→]