LCD(SC1602BS*B)

■概要
 SC1602BS*Bは,あらかじめキャラクタデータ(文字等)を内蔵しており,非常に使い勝手がよいことから,ホビーから業務まで幅広く使用されているLCDである.
 現在は700〜1000円程度で入手できる.また,姉妹品として,バックライト付きのSC1602BSLBもある.

 以下にSC1602BS*Bの主な特徴を示す.SC1602BS*Bの制御用ICの詳細はmsm6562b.pdfを参照すること.
 インターフェイスが8bit以外に4bitにも対応しており,中規模以下のPIC等のようにポート数が多くないマイコンと接続する場合に便利である.

表示領域 16文字×2行
表示性能 超ハイコントラスト,視野角70°
表示文字 5×7 or 5×10ドット+カーソル
電源 5V単一,低消費電流
インターフェイス 4bit or 8bitパラレル
命令数 9
 
 
■端子機能
ピンNo. 記号 機能 信号 備考
1 VDD 電源   5V
2 VSS GND    
3 VO コントラスト調整電源   任意の電圧を印加する.V0=VSSで最も濃くなる.
4 RS(D/1) レジスタ選択 入力 H:データ,L:制御命令
5 R/W 読み出し/書き込み 入力 H:読み出し,L:書き込み
6 E(STB) イネーブル 入力 H:ストローブ
7 DB0 データバス 入出力 データ第0(最下位)ビット
8 DB1 データバス 入出力 データ第1ビット
9 DB2 データバス 入出力 データ第2ビット
10 DB3 データバス 入出力 データ第3ビット
11 DB4 データバス 入出力 データ第4ビット
12 DB5 データバス 入出力 データ第5ビット
13 DB6 データバス 入出力 データ第6ビット
14 DB7 データバス 入出力 データ第7(最上位)ビット

注意:インターフェイスデータ長が4bitの場合は,DB4〜DB7のデータバスを使用し,DB0〜DB3はGNDに接続する.
 
■制御命令コード
命令 コード 概要 実行時間
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
表示クリア 0 0 0 0 0 0 0 0 0 1 全表示クリア後,カーソルをホーム位置(DDRAMの00H番地)に戻す. 1.64ms
カーソル・ホーム 0 0 0 0 0 0 0 0 1 x カーソルをホーム位置に戻す.シフトしていた表示も元に戻る.DDRAMの内容は変化 しない. 1.64ms
エントリーモード
セット
0 0 0 0 0 0 0 1 I/D S データの書き込み及び読み出し時に,カーソ ルの進む方向,表示をシフトさせるかどうかを設定する. 40us
表示オン・オフ
コントロール
0 0 0 0 0 0 1 D C B 全表示のオン/オフ(D),カーソルのオン/オフ(C),カーソル位置にある桁のブリンクのオン/オフ(B)をセットする. 40us
カーソル表示シフト 0 0 0 0 0 1 S/C R/L x x DDRAMの内容を変えずにカーソルの移動 と表示シフトを行う. 40us
ファンクションセット 0 0 0 0 1 DL N F x x インターフェイスデータ長(DL),表示行数(N),文字フォント(F)を設定する. 40us
CGRAMアドレス
セット
0 0 0 1 ACG CGRAMのアドレスをセットする.以降送受するデータはCGRAMのデータとして扱われる. 40us
DDRAMアドレス
セット
0 0 1 ADD DDRAMのアドレス(表示位置)をセットする.以降送受するデータはDDRAMのデータとして扱われる. 40us
Busyフラグ/アドレス
読み出し
0 1 BF ADC 内部動作中であることを示すBusyフラグ(BF),およびアドレスカウンタ(AC)の内容を読み出す. 1us
DDRAM(CGRAM)
データ書き込み
1 0 書き込みデータ DDRAMCGRAM)に表示データを書き込む. 40us
DDRAM(CGRAM)
データ読み出し
1 1 読み出しデータ DDRAMCGRAM)から表示データを読み出す. 40us

x:don't care
I/D=1:インクリメント(右方向) I/D=0:デクリメント(左方向)
S=1:表示のシフトを伴う S=0:表示のシフトを伴わない
D=1:全表示オン D=0:全表示オフ
C=1:カーソル表示オン C=0:カーソル表示オフ
B=1:カーソル点滅オン B=0:カーソル点滅オフ
S/C=1:表示のシフト S/C=0:カーソルの移動
R/L=1:右シフト R/L=0:左シフト
DL=1:8bit DL=0:4bit
N=1:2行 N=0:1行
F=1:5×10ドット F=0:5×7ドット
BF=1:内部動作中(命令受付不可) BF=0:内部動作完了(命令受付可)
DDRAM:表示データ用メモリ(表示データを格納する)
ADD:DDRAMのアドレス(表示位置)
CGRAM:キャラクタジェネレータ用メモリ
ACG:CGRAMのアドレス
ADC:アドレスカウンタ.DDRAM,CGRAMの両方に使用する
 
注意:ファンクションセットで,N=1(2行)に設定した場合,5×10ドット表示はできない(Fは無効ビットとなる).
 
■入出力シーケンス
 SC1602BS*Bに対する制御命令や表示データの書き込みや読み出しには,DB0-7端子,RS端子,R/W端子,E端子を使用する.

◆入力(書き込み)シーケンス
 書き込み時の各信号の簡単なタイミング図を示す.

 各信号の制御がこの条件を満たすようにプログラミングする必要がある.

 まず,制御命令と表示データのいずれかをRS信号により指定する(RS=0:制御命令,RS=1:表示データ).
 次に,R/W信号を“0”に設定する.
 最後に,E信号を一端“1”にした後“0”に戻す.

◆出力(読み出し)シーケンス
 読み出し時の各信号の簡単なタイミング図を示す.

 各信号の制御がこの条件を満たすようにプログラミングする必要がある.

 まず,制御命令と表示データのいずれかをRS信号により指定する(RS=0:制御命令,RS=1:表示データ).
 次に,R/W信号を“1”に設定する.
 最後に,E信号を一端“1”にした後“0”に戻す.

◆リセットシーケンス
 SC1602BS*Bは電源入力時に自動的にリセット処理を行うように設計されているが,電源変動やノイズ等によって正常に実行されない場合があるため,ソフトウェアによっても初期化できるようになっている.その手順(リセットシーケンス)を以下に示す.

<step 0>
電源オン
 
<step 1>
VDDが4.5V以上に達してから15ms以上待つ
 
<step 2>
8bitモード設定
(30H書き込み)
ファンクションセット命令で,インターフェイスデータ長8bit(DL=1:30H)に設定して書き込む.
Busyフラグによる内部動作完了確認は行わない.
<step 3>
4.1ms以上待つ
<step 4>
再度8bitモード設定
(30H書き込み)
ファンクションセット命令で,インターフェイスデータ長8bit(DL=1:30H)に設定して書き込む.
Busyフラグによる内部動作完了確認は行わない.
<step 5>
100us以上待つ
<step 6>
再々度8bitモード設定
(30H書き込み)
ファンクションセット命令で,インターフェイスデータ長8bit(DL=1:30H)に設定して書き込む.
このStepよりBusyフラグによる内部動作完了確認を行う.
<step 7>
4/8bitモード設定
(20Hもしくは30H書き込み)
ファンクションセット命令で,任意のインターフェイスデータ長(DL)を書き込む.
これ以降は指定した動作モードで動作する.
<step 8>
ファンクション設定
(任意設定書き込み)
ファンクションセット命令で,表示行数(N),文字フォント(F)を設定する.
例えば8bit動作において,2行(N=1),5x7文字(F=0)を設定する場合には(38H)を書き込む.
<step 9>
表示オフ
(08H書き込み)
表示オン・オフコントロール命令で,全表示をオフ(D=0,C=0,B=0)するため,(08H)を書き込む.
<step 10>
表示クリア
(01H書き込み)
表示クリア命令により表示を初期化する.
<step 11>
エントリーモード設定
(任意設定書き込み)
エントリーモードセット命令で,カーソル進行方向(I/D),表示シフト(S)を設定する.
例えば,カーソルインクリメント(I/D=1),表示シフトオフ(S=0)を設定する場合には(06H)を書き込む.

リセットシーケンス完了後に,“表示オン・オフコントロール命令で,全表示のオン/オフ(D),カーソルのオン/オフ(C),カーソル点滅のオン/オフ(B)を設定する.
例えば,全表示オン(D=1),カーソルオフ(C=0),カーソル点滅オフ(B=0)を設定する場合には(0CH)を書き込む.
 
■表示データ
 SC1602BS*Bでは,文字等のキャラクタを表示データ用メモリ(DDRAM)に格納することで実現する.
 任意の文字等を任意の位置に表示させるためには,表示データの値(表示データコード)をDDRAMの希望する表示位置(表示アドレス)へ書き込む必要がある.

◆表示データコード
 以下に,表示データコード表を示す.
 Upper 4 bitsLower 4 bitsを組み合わせて8bitデータで文字を指定する.例えば,「1」を表示したい場合は,30HをDDRAMへ書き込む.
 なお,10H〜1FH,および80H〜9FHまでは割り当て文字が無く,00H〜0FHまではユーザが外字を定義できる領域(CGRAM)である.ただしCGRAMは電源リセット後は再定義する必要がある.


◆データ表示位置
 SC1602BS*Bの文字表示エリアは2行×16桁であるが,その表示位置とDDRAMのアドレスとは下図のように対応している.
 1行目と2行目のアドレスが連続していないことに注意すること.
 任意の位置に文字を表示する場合は,まずDDRAMアドレスセット命令表示位置にカーソルを移動し,続けてDDRAM(CGRAM)データ書き込み命令で文字を書き込む.

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH
2 40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH