詳細準備中(2003/07/31)

PIC16F628と(Morphy Oneで使われる筈だった液晶モジュール)EPSON EG7014C-ASとの簡易接続

640*200ライン表示したあと、セルフリフレッシュモードへ入る。

(そうしないとチラついてよく見えない)


回路図


PICとの接続。半田付けヘタ:欝


PICはRAMが小さいのでとりあえず「2」だけ繰り返し表示。写真ヘタ:欝

プログラムの考え方:

基本的には

 

xscl , lp , yd をPORTAへ

xd[0..7]をPORTBへ定義しておく

MAIN_LOOP:

    nline = 0 ;( 0〜199の縦ライン数 )

    LOP0:

        nchar = 0 ;( 0-79の横バイト数。これで8*80=640ドットになる。)

 

        nline == 1 なら

             xd[0..7]=0をPORTBへ出力

             yd=1 , lp=0 , xscl=0  で PORTAへ出力

             yd=1 , lp=1 , xscl=0  で PORTAへ出力

             yd=1 , lp=0 , xscl=0  で PORTAへ出力

             yd=0 , lp=0 , xscl=0  で PORTAへ出力

        nline != 1 なら

             xd[0..7]=0をPORTBへ出力

             yd=0 , lp=1 , xscl=0  で PORTAへ出力

             yd=0 , lp=0 , xscl=0  で PORTAへ出力

 

        LOP1:

            xd[0..7]にデータをセットして

             yd=0 , lp=0 , xscl=1  で PORTAへ出力

             yd=0 , lp=0 , xscl=0  で PORTAへ出力

       nchar++ >= 80 までLOP1を繰り返す。

 

    nline++ >= 200 までLOP0を繰り返す。

 

これで画面描写が終わったので以降はセルフリフレッシュモードに移る。

これは、上記ループのLOP1中のPORTA出力を行わないだけである。

 (xsclのレベルをLで維持し、XSCLのパルスを止める。)

これでMAIN_LOOP:を繰り返す。

 

これにより、LCDは内部のデータで表示を保つ。(LPとYDのパルス出力は通常通り行わないと、表示がすぐ消える。)

なお、PIC16F628を20MHzで駆動しても、50μs<LP<125μsという条件をクリアするのは困難である。(一定の8ビットパターンだけを表示するだけ(=xd[0..7]を固定する)ならともかく。)が、1画面作ってセルフリフレッシュモードに入れば大丈夫の様である。

従って高速にリアルタイムで画面を変化させるのはPICの20MHzでは困難と思われる。

 


がっかりしまくって戻る