キャラクタ型液晶の使い方

キャラクタ型液晶の使い方
ノートPCなどの液晶と違って,コマンドを送ると文字を書いてくれる液晶
フォントなどをマイコンに設定する必要がないので,簡単に文字を表示できる
例) SC1602BS-B(XA)
DB7
DB5
DB3
DB1
E (Enable Signal)
RS (Register Select)
VSS(0V)
DB6
DB4
DB2
DB0
R/W (Read/Write)
コントラスト調整
VDD(5V)
データ転送は8bitモードと
4bitモードがある。
4bitモードの時は、DB0~3は
使わない
キャラクタ型液晶の使い方
データの書き込み
RS
R/W
E
DB0~7
(or DB0~3)
time
レジスタを選択
=0 … コントロール
=1 … データ
書き込みたいデータ
を出力する
R/W = 0にする
E = 1 → 0とする
と書き込まれる
キャラクタ型液晶の使い方
データの読み込み
RS
R/W
E
DB0~7
(or DB0~3)
time
レジスタを選択
=0 … コントロール
=1 … データ
読み出す
R/W = 1にする
E = 0 → 1とする
とデータが出力さ
れる
キャラクタ型液晶の使い方
4ビットモードでの使用法
1バイト(8bit)のデータを、2回に分けて出力する。
最初に上位4ビット、次に下位4ビットを転送する。(使用するデータ線はDB4~7)
例)0x7Aを転送したいとき(2進数では01111010)
RS
R/W
E
DB7
0
1
DB6
1
0
DB5
1
1
DB4
1
0
time
キャラクタ型液晶の使い方
初期化
1. 電源投入後15ms以上待つ
2. RS=0, RW=0として、DB[7:4]に0011を出力する
3. 4.1ms以上待つ
4. RS=0, RW=0として,DB[7:4]に0011を出力する
5. 100us以上待つ
6. RS=0, RW=0として,DB[7:4]に0011を出力する
7. 1ms待つ
8. RS=0, RW=0として,DB[7:4]に0011を出力する(ここから先は4ビットモードになる)
9. データシートのレジスタ表をみて,欲しい機能のセッティングを行う.
(これ以降は,BF(ビジーフラグ)が使えるようになるので,BFを見て,書き込みできるかどうか判断
できる.BFを使わないなら,ひとつの書き込みが終わった後,固定時間待つようにする.
動作がおかしい場合は,この,待ち時間が短いことが多いので,適宜調整してみる.)
キャラクタ型液晶の使い方
データの書き込み
void LCD_putc(char dat){
int i;
dat
0
LCD_WAIT();
0
0
0
1
1
1
1
LCD_D_MASK
LCD_D = (LCD_D & ~LCD_D_MASK) | (LCD_D_MASK & (dat>>4) ); //Upper 4 bits
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 1;
asm("nop");
LCD_E = 0;
LCD_D = (LCD_D & ~LCD_D_MASK) | (LCD_D_MASK & dat ); //Lower 4 bits
asm("nop");
RS
LCD_E = 1;
asm("nop");
R/W
LCD_E = 0;
}
E
DB0~7
(or DB0~3)
キャラクタ型液晶の使い方
文字列を出力したい場合は,↓のような関数を使うとべんり
int LCD_puts(char* str, int num){
while(*str){
LCD_putc(*str); ここで,1文字出力
str++;
if( ! (num--)) break;
}
return 0;
}