株式会社ジーテック

制御機器を小ロット多品種で設計製作

有機ELキャラクタモジュール(SO1602AW)によるテキスト表示

有機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.