carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

ソースコード公開(マクロ定義+初期化処理)

////////////////////////////////////////////////////////////////////////////////
// LCDのポート割り当て
// RGBのBの8ビットは、ビットが分かれているので注意すること。
// R:
// PDLL ■■■■■■■■ -> R8bit
// G:
// P7L ■■■■■■■■ -> G8bit
// B:
// P7H □□□□■■■■ -> B下位4bit
// P0 □■■■■□□□ -> B上位4bit
////////////////////////////////////////////////////////////////////////////////
#define dPORTLCD_R0_7 PDLH // LCDの 色Rビット(8ビット)
#define dPORTLCD_G0_7 P7L // LCDの 色Gビット(8ビット)
#define dPORTLCD_B0_3 P7H // LCDの 色Bビット(4ビット)0-3
#define dPORTLCD_B4_7 P0 // LCDの 色Bビット(4ビット)3-6

#define dLCD_CK_HI (P3L |= 0x04) // P32 -> Hi
#define dLCD_CK_LOW (P3L &= 0xFB) // P32 -> Low
#define dLCD_DISP_HI (P3L |= 0x08) // P33 -> Hi
#define dLCD_DISP_LOW (P3L &= 0xF7) // P33 -> Low
#define dLCD_HSYNC_HI (P3L |= 0x10) // P34 -> Hi
#define dLCD_HSYNC_LOW (P3L &= 0xEF) // P34 -> Low
#define dLCD_VSYNC_HI (P5 |= 0x01) // P5 -> Hi
#define dLCD_VSYNC_LOW (P5 &= 0xFE) // P5 -> Low
#define dLCD_BACKLIGHT_ON (PDH |= 0x20) // PDH5-> Hi
#define dLCD_BACKLIGHT_OFF (PDH &= 0xDF) // PDH5-> Low

#define dHSYNC_LOW_TIMING 41 // HorizonnのLow区間クロック数

/*
**---------------------------------------------------------------------------
**
** Abstract: 起動時のLCD初期化処理
**
** Parameters: なし
**
** Returns: なし
**
**---------------------------------------------------------------------------
*/
void Lcd_Init(void)
{
////////////////////////////////////////////////////////////////////////////
// 全ラインをHIレベルにする
////////////////////////////////////////////////////////////////////////////
dLCD_CK_HI;
dLCD_HSYNC_HI;
dLCD_VSYNC_HI;

////////////////////////////////////////////////////////////////////////////
// 最初に表示ONにする。(ディスプレイ端子ON)
////////////////////////////////////////////////////////////////////////////
dLCD_DISP_HI;

////////////////////////////////////////////////////////////////////////////
// バックライトON
////////////////////////////////////////////////////////////////////////////
dLCD_BACKLIGHT_ON;
}

マクロ定義のコメントは、省略します。
さて、初期化処理関数ですが、液晶をドライブするためのDATAライン以外は、全て最初にHIレベルにします。ちょっと手を抜いて、最初からDISP端子をHIにして、ディスプレイの表示を許可します。また、バックライトも点灯させてしまいます。