[H8-ML(5163)] 秋月グラフィックLCDを3052Fにバス接続
From: wakky@xxxxxxxxxxxxxxxxxxx
Date: 2004年11月29日(月)14時47分52秒
H8/3052F に、話題の秋月グラフィックLCDをバス接続してみました。
LCDからのREADはうまく動かないようですが、
表示だけならば、問題ありません。
回路とソースは以下の通りです。
                      ▲5V
                      │
                       >
                      < 5KΩ
                       >
                      <       ┌───┐
        A01 ─────┼───┤      │
        (CN3-16)      ●───┤OR    ├─  CS1(5)
                      │┌──┤      │
                      ││    └───┘
                      ││    ┌───┐
        A02 ─────┼┼──┤      │
        (CN3-17)   ││┌─┤OR    ├─  CS2(6)
                      │││┌┤      │
        CS5 ─────●┼┘│└───┘
        (CN1-13)        │  │
                        │  │
        RESET  ──|>─●─┴──────  RES(18)
        (CN2-04)   NOT

        A00   ──────────────  A0(4)
        (CN3-16)                            

        HWR   ──────────────  WR(9)
        (CN2-08)                            

        TIOCB4──────────────  CL(7)
        (CN1-19/PB3)                        
                          ▲5V
                          │
                           >
                          < 5KΩ
                           > (READが動作しないので
                          <   とりあえず pull up)
        RD                └───────  RD(8)
        (CN2-07)                            

        D00                                 DB0(10)
        (CN3-07)
         |                                   |
        D07                                 DB7(17)
        (CN3-14)    

--------- 以下、ソースコード ----------------------

#define BASE_ADR 0xa0000

#define CMD0 (*((volatile unsigned char*)(BASE_ADR+2)))
#define CMD1 (*((volatile unsigned char*)(BASE_ADR+4)))
#define DATA0 (*((volatile unsigned char*)(BASE_ADR+3)))
#define DATA1 (*((volatile unsigned char*)(BASE_ADR+5)))

__inline void WriteLcdCmd( char cs, unsigned char data )
{
    switch( cs ) {
    case 0 :
        CMD0 = data ;
        break ;
    case 1 :
        CMD1 = data ;
        break ;
    }
    //WaitLcdBusy( cs ) ;
}

__inline void WriteLcdData( char cs, unsigned char data )
{
    switch( cs ) {
    case 0 :
        DATA0 = data ;
        break ;
    case 1 :
        DATA1 = data ;
        break ;
    }
}


void    InitLcd( void )
{
    Sleep( 1000 ) ;/* ハードリセット終了待ち */
    WriteLcdCmd( LEFT, 0xe2 );      /* リセット */
    WriteLcdCmd( RIGHT, 0xe2 );
    Sleep( 300 ) ;/* リセット終了待ち */
    WriteLcdCmd( LEFT, 0xa9 );      /* DUTY=1/32 */
    WriteLcdCmd( RIGHT, 0xa9 );
    WriteLcdCmd( LEFT, 0xa0 );      /* ADC=右回り */
    WriteLcdCmd( RIGHT, 0xa0 );
    WriteLcdCmd( LEFT, 0xa4 );      /* 通常表示 */
    WriteLcdCmd( RIGHT, 0xa4 );
    WriteLcdCmd( LEFT, 0xb8 );      /* ページ0 */
    WriteLcdCmd( RIGHT, 0xb8 );
    WriteLcdCmd( LEFT, 0xaf );      /* ここでランダムパターン表示 */
    WriteLcdCmd( RIGHT, 0xaf );
}

void ChangeLcdPage( char cs, char page )
{
    page &= 0x3;
    WriteLcdCmd( cs, 0xb8 + page );
}
void SetLcdColumn( char cs, char col )
{
    col &= 0x7f;
    if( col > 79 ){
        col = 79;
    }
    WriteLcdCmd( cs, col );
}

void ClearLcd( void ) 
{
    char    i, j;

    for( i = 0; i < 4; i++ ){
        ChangeLcdPage( LEFT, i );
        SetLcdColumn( LEFT, 0 );
        for( j = 0; j < 62; j++ ){
            WriteLcdData( LEFT, 0 );
        }
    }
    for( i = 0; i < 4; i++ ){
        ChangeLcdPage( RIGHT, i );
        SetLcdColumn( RIGHT, 0 );
        for( j = 0; j < 62; j++ ){
            WriteLcdData( RIGHT, 0 );
        }
    }
    ChangeLcdPage( LEFT, 0 );
    SetLcdColumn( LEFT, 0 );
}

void FillLcd( char Data )//テストプログラム
{
    char    i, j;

    for( i = 0; i < 4; i++ ){
        ChangeLcdPage( LEFT, i );
        SetLcdColumn( LEFT, 0 );
        for( j = 0; j < 62*3; j++ ){
            WriteLcdData( LEFT, Data );
        }
    }
    for( i = 0; i < 4; i++ ){
        ChangeLcdPage( RIGHT, i );
        SetLcdColumn( RIGHT, 0 );
        for( j = 0; j < 62*3; j++ ){
            WriteLcdData( RIGHT, Data );
        }
    }
    ChangeLcdPage( LEFT, 0 );
    SetLcdColumn( LEFT, 0 );
}

PS LCDデータ/コマンドの読み出しは、やはり無理でしょうか(^^;)?
   ソフト屋なんでよく分かりません...horosi-desu
--
Name   :Katsuhiko Terawaki
Address:5-3 Tashita Hirano-aza Iizaka-machi Fukushima-city
            Fukushima-prefecture Japan.
E-mail :wakky@xxxxxxxxxxxxxxxxxxx
URL    :http://www.computerartisan.com

スレッド概略
[表示中](起点)
 ├[5164(1)]
 └[5209(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]