電子工作をエンジョイする!
イーフェローズ

     
  中級編5 キャラクタLCDモジュールによるテキスト表示
(AQM1602XA・AQM0802XA)
 
     
  薄型のLCDモジュールが出回り始めたので早速試してみました。  
   
     
  ■□使用機器□■  
  使用機器は下記のとおり。他、パソコンや電源、PICKIT2も当然ながら必要です。  
     
 
I2C接続小型キャラクタLCDモジュール Xiamen Zettler Electronics Co., Ltd. AQM1602A-RN-GBW,AQM0802A-RN-GBW
※接続する際にはピッチ変換基板を利用しています。
マイコンボード(PIC16F1947搭載) ZEATEC co.,ltd. ZT-PIC16F194701(3.3V仕様)
 
     
     
  ■□接続□■  
  接続に関してはいたって簡単。CPUボードにあらかじめ必要回路が実装されているため4本の足を伸ばして接続するだけ。今回はデュポン(QIコネクタ)コネクタを使用して配線しました。AQM0802A-RN-GBWの基板上では1,2を短絡しています。  
  LCDのほうは記入する都合で不規則に並んでいるので要注意です。  
     
  AQM1602A-RN-GBW用  
 
1 5V
2 GND
3 SCL
4 SDA
デュポンコネクタ4P
--------------AWG26赤--------------
--------------AWG26黒--------------
---------- AWG26白橙マーク----------
---------- AWG26白黄マーク----------
 
4 5V
1 GND
3 SCL
2 SDA
LCD
 
     
  AQM0802A-RN-GBW用  
 
1 5V
2 GND
3 SCL
4 SDA
デュポンコネクタ4P


--------------AWG26赤--------------
--------------AWG26黒--------------
---------- AWG26白橙マーク----------
---------- AWG26白黄マーク----------
 
 
1 5V
5 GND
3 SCL
4 SDA
2 空き
LCD
 
     
     
  AQM1602A・AQM0802A用ライブラリ aqmxx02a.zip  
  プロジェクトファイルも含めたサンプル aqmxx02_sample.zip  
  開発環境:MPLAB_IDE_8_92 + CCS-C PCMコンパイラVer.4.132  
     
 
/*****************************************************************************************
LCDモジュール(aqmxx02a-RN-GBW)用ライブラリ 2015/2/12作成

□提供元
ZEATEC co.,ltd. 

□ご利用について
転載・無断使用可です。このライブラリを使用した上での不具合等に関しては、いかなる内容におい
ても一切の責任を追わないものとします。

□使用方法
aqmxx02a_init(5)をスタートアップに入れて下さい。カッコ内は使用電圧を指定します。3.3Vの時は
3と指定してください。setcursor_aqmxx02a(0,0)で表示位置を指定し、aqmxx02a_puts("アイウエオabc")
で任意の文字列を指定する。
I2Cはハードウェア制御を推奨とし、宣言例は下記のとおり。

#use i2c(MASTER, SDA=PIN_C4, SCL=PIN_C3,SLOW,FORCE_HW)//FAST=400kbps SLOW=100kbps
ピンアサインはPIC16F1947で使用した場合とします。

*****************************************************************************************/
void aqmxx02a_init(int volt);
void aqmxx02a_setcursor(int col, int row);
void aqmxx02a_cmd(unsigned char c);
void aqmxx02a_puts(char s);
void aqmxx02a_clear();

void aqmxx02a_init(int volt){
    aqmxx02a_cmd(0x38) ;     // function set           : データ線は8本・表示は2行・フォントは5x8ドット
    aqmxx02a_cmd(0x39) ;     // function set           : 拡張コマンドの設定を有効にする
    aqmxx02a_cmd(0x14) ;     // Internal OSC frequency : バイアスの選択と内部OSC周波数の調整
    if(volt == 3){
        //コントラスト調整(3.3V)
        aqmxx02a_cmd(0x70) ;     // Contrast set           : コントラスト調整データ(下位4ビット)
        aqmxx02a_cmd(0x56) ;     // Contrast set           : 昇圧回路有効、コントラスト調整データ(上位2ビット)
    }else{
        //コントラスト調整(5V)
        aqmxx02a_cmd(0x7A) ;     // Contrast set           : コントラスト調整データ(下位4ビット)
        aqmxx02a_cmd(0x54) ;     // Contrast set           : 昇圧回路有効、コントラスト調整データ(上位2ビット) 
    }
    aqmxx02a_cmd(0x6C) ;     // Follower control       : フォロア回路をON、増幅率の調整を行う
    delay_ms(200) ;   // 電力が安定するまで待つ
    aqmxx02a_cmd(0x38) ;     // function set           : 拡張コマンドを設定を無効にする
    aqmxx02a_cmd(0x0C) ;     // display control        : 画面表示はON・カーソル表示はOFF・カーソル点滅はOFF
    aqmxx02a_cmd(0x01) ;     // Clear Display : 画面全体に20Hのスペースで表示、カーソルはcol=0,row=0に移動
    delay_us(1100) ;  // LCDが処理(1.08ms)するのを待ちます
}

void aqmxx02a_setcursor(int col, int row){
    int row_offsets[] = { 0x00, 0x40 };

    aqmxx02a_cmd(0x80 | (col + row_offsets[row])) ; // Set DDRAM Adddress : 00H-07H,40H-47H
}

void aqmxx02a_cmd(char c){
    //スタートコンディションを発行する
    i2c_start();
    //LCDのアドレス
    i2c_write(0x7c);
    // control byte の送信(コマンドを指定)
    i2c_write(0b10000000);
    // data byte の送信
    i2c_write(c);
    // ストップコンディションを発行する
    i2c_stop();
    //delay_us(27);
}

void aqmxx02a_puts(char s){
    //スタートコンディションを発行する
    i2c_start();
    //LCDのアドレス
    i2c_write(0x7c);
    //control byte の送信(データを指定)
    i2c_write(0b01000000);
    //data byte の送信
    i2c_write(s);
    //ストップコンディションを発行する
    i2c_stop();
}

 
     
     
     
     
     
 


 
個人情報の取り扱いについて | 特定商取引法に関する表示
Copyright (C) 2011 E-Fellows All Rights Reserved.