• 目次 -Page-
  • コンテンツ -Menu-
  • リンク -link-
  • ACM0802C−NLW−BBHを使ってみる ハード編
  • 今回はACM0802C-NLW-BBH 8文字2行キャラクタ液晶モジュール。 これは白抜きで8文字と小さく面白いキャラクタ液晶です。 マイコンのデバッグ時などにメモリの内容を表示させたりするとデバッグが楽になります。 データシートを見ないといけないとかちょっと複雑そうに見えますが、 出来ると出来ないでは雲泥の差があるかも知れないので頑張ってみましょう。
    5V単一電源
     
    始めの準備
    1.基板裏面R7に100Ωの抵抗をつける
    2.R8は何もつけない
    3.R9を短絡
    4.J1は何もしない
     
    ここまでがバックライトを点灯させる準備です。
    次はコントラストVRの取り付け。
    10kΩの半固定抵抗をVdd,Vss,Voに取り付ける。

    キャラクタ液晶は8bitモードで使用した方が何かと便利なのですが、 ポート(PIC)をあまり使いたくないので4bitモードで使用します。 その際にはDB1〜DB3はGNDに接続します。 ついでにR/Wの信号も読み出しはしないのでWrite専用としてGNDに接続しておきました。
     
    PinNoSymbolFunction処理
    1VssGNDGND
    2Vdd+5VVdd
    3VoLCD contrast adjust半固定抵抗
    4RSRegister selectPICのポート
    5R/WRead/WriteGND
    6EEnablePICのポート
    7-10DB0-DB3Data bit 0-3GND
    11-14DB4-DB7Data bit 4-7PICのポート
     
    これでPICとLCD(キャラクタ液晶)の接続は全部で6本となりました。6本でも割と多いですね。
    今度も当然ブレッドボード対応仕様にしました。裏面はGND処理と半固定抵抗の接続、バックライトの処理を行っています。 これで電源とPICとの接続合わせて8本の接続で動くはずです。
  • 初期設定 モジュールに付いていた用紙の内容を転記
  • 電源立ち上げ後、LCDに初期設定を行わないといけません。
    今回は4bitモードへ移行させる必要があります。また4bitモードなので1つのコマンドを2回に分けて与える必要もあります。 DB0〜DB3は4bitモードの為使用しません。xは基本なんでもよいですが0としています。
     
    初期設定の流れ

    Power on
     ↓
    Wait 30ms
     ↓
    Function set
    RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
    00001DLxxxx
    00001DLxxxx
    00NFxxxxxx
    DL:1=8bit,0=4bit
    N:1=1 line display,0=2 Lines display
    F:1=5x10dots,0=5x7dots
     ↓
    Wait 39us
     ↓
    Display ON/OFF control
    RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
    000000xxxx
    001DCBxxxx
    D:1=DisplayON,0=DisplayOFF
    C:1=CursorON,0=CursorOFF
    B:1=BrinkON,0=BrinkOFF
     ↓
    Wait 39us
     ↓
    Display Clear
    RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
    000000xxxx
    000001xxxx
    non
     ↓
    Wait 1.53ms
     ↓
    Entry Mode Set
    RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
    000000xxxx
    0001I/DSHxxxx
    I/D:1=Increment,0=Dectement
    SH:1=TheDisplayIsshifted,0=TehDisplayIsNotShifted
  • プログラムと動作確認 MPLAB C18
  • この液晶を使う場合に毎回初期セットやコマンド・データ送信プログラムを書くのが面倒なのでまとめてみました。 これをメインプログラムからインクルードすれば毎回同じ事をせずに済みます。 プロジェクトフォルダに「Lib_LCD.h」として追加しました。初期設定は上の赤文字の部分を設定するようにしました。
    define部を使用する環境に合わせて変更する必要があります。
    LCD_PORT:データ用ボートを指定します。この場合はBポートを使用します。
    LCD_PORTHL:上で設定したポートの上位4ビットを使うか下位4ビットを使うかを指定します。
    LCD_RS:RSをどこのポートにするか設定します。
    LCD_E:Eをどこのポートにするか設定します。
     
    まだクリアーコマンドなどを入れていないので今後増やしていく必要があります。
     
    メインプログラムはこんな感じです。
    LCDを初期化(lcd_init();)し、上段に0〜7を下段に「*Denshi*」と表示するようにしてみました。
     
    「lcd_data」はデータ送信用です。後に続くのはデータと「1or0」です。コマンドを送信する時は「1」を、データを送信する時は「0」を入れます。
     
    8081828384858687
    C0C1C2C3C4C5C6C7
     
    アドレスは上記の通りです。上段8文字、下段8文字の2行タイプです。
    Design & Programming - 天姫 -
    Copyright (c) 2007-2009 amahime All Rights Reserved.