有機ELのキャラクタモジュールを早速試してみました。 視認性がとてもいいのでいろんなところに使いたくなります。キャラクタモジュール側の1,3,4と8,9は短絡しています。
使用機器は下記のとおり。他、パソコンや電源、PICKIT2も当然ながら必要です。LCDは3.3V定格と書いていますが、5Vでも使用できました。
I2C接続小型キャラクタLCDモジュール
Sunlike Display Tech. Corp. SO1602AWGB-UC-WB-U,
SO1602AWWB-UC-WB-U,SO1602AWYB-UC-WB-U
マイコンボード(PIC16F1947搭載)
ZEATEC co.,ltd. ZT-PIC16F194701(3.3V仕様)
接続に関してはいたって簡単。CPUボードにあらかじめ必要回路が実装されているため4本の足を伸ばして接続するだけ。今回はデュポン(QIコネクタ)コネクタを使用して配線しました。キャラクタモジュールの1,3,4と8,9は基板上で短絡しています。
有機ELキャラクタモジュール用ライブラリ so1602awxb.zip
プロジェクトファイルも含めたサンプル so1602awxb_sample.zip
開発環境:MPLAB_IDE_8_92 + CCS-C PCMコンパイラVer.4.132
/*******************************************************************************
LCDモジュール(SO1602AWGB-UC-WB-U,SO1602AWWB-UC-WB-U,SO1602AWYB-UC-WB-U)
用ライブラリ 2015/2/14作成
□提供元
ZEATEC co.,ltd.
□ご利用について
転載・無断使用可です。このライブラリを使用した上での不具合等に関しては、いかなる内容におい
ても一切の責任を追わないものとします。
□使用方法
so1602awxb_init()をスタートアップに入れ、so1602awxb_puts(<span style="color: #0000ff;">"アイウエオabc")で任意の文字列を表示す
る。又はprintf(so1602awxb_puts,<span style="color: #0000ff;">" %02x:%02x:%02x ",hour,min,sec);でprintfを使用して出
力する。
I2Cはハードウェア制御を推奨とし、宣言例は下記のとおり。
#use i2c(MASTER, SDA=PIN_C4, SCL=PIN_C3,SLOW,FORCE_HW)//FAST=400kbps SLOW=100kbps
ピンアサインはPIC16F1947で使用した場合とします。
*******************************************************************************/
void so1602awxb_cmd(char c){
//スタートコンディションを発行する
i2c_start();
//LCDのアドレス
i2c_write(0x78);
// control byte の送信(コマンドを指定)
i2c_write(0x00);
// data byte の送信
i2c_write(c);
// ストップコンディションを発行する
i2c_stop();
}
void so1602awxb_init(){
so1602awxb_cmd(0x01);//クリアーディスプレイ
so1602awxb_cmd(0x02);//カーソルを初期値にする
so1602awxb_cmd(0x0c);//ディスプレイオン(0x0c,0x0dならチラつき無い)
so1602awxb_cmd(0x01);//クリアーディスプレイ
}
void so1602awxb_puts(char s){
//so1602awxb_cmd(0x01);//クリアーディスプレイ
//スタートコンディションを発行する
i2c_start();
//LCDのアドレス
i2c_write(0x78);
i2c_write(0x40);
i2c_write(s) ; // data byte の送信(連続送信)
i2c_stop();
}
void so1602awxb_contrast(int cont){
so1602awxb_cmd(0x2a);//RE=1
so1602awxb_cmd(0x79);//SD=1
so1602awxb_cmd(0x81);//コントラストセット
so1602awxb_cmd(cont);//コントラスト値
so1602awxb_cmd(0x78);//SDを0に戻す
so1602awxb_cmd(0x28);//2C=高文字 28=ノーマル
}
1行目と2行目と指定して表示するには下記の様にする。
//1行目表示
so1602awxb_cmd(0x80);
so1602awxb_puts("ZEATEC co.,ltd. ");
//2行目表示
so1602awxb_cmd(0xa0);
so1602awxb_puts("ZT-GSBC03 ");
©ZEATEC co.,ltd.