/***********************************************************

	pic18clcd.h

	Version 1.00: 2009/10/10

	Copyright (C) 2008-2009, MicroFan Div., PeopleMedia, Inc.
	All rights reserved.

***********************************************************/

#ifndef PIC18CLCD_H__
#define PIC18CLCD_H__

#ifdef USE_CLCD


/// 表示行数の指定
#define CLCD_2LINE		0b00101011	///< ２行
#define CLCD_1LINE		0b00100011	///< １行

/// 表示のクリア
#define	CLCD_CLEAR			0b00000001

/// ホーム位置にカーソルを移動
#define	CLCD_HOME			0b00000010

#define	CLCD_CURSOR_INC		0b00000110	///< カーソルポインタは増加
#define	CLCD_CURSOR_DEC		0b00000100	///< カーソルポインタは減少

/// 表示/非表示制御
#define CLCD_DISPLAY_ON		0b00001111	///< 表示ON
#define CLCD_DISPLAY_OFF	0b00001011	///< 表示OFF
#define CLCD_CURSOR_ON		0b00001111	///< カーソルON
#define CLCD_CURSOR_OFF		0b00001101	///< カーソルOFF
#define CLCD_BLINK_ON		0b00001111	///< カーソルブリンクON
#define CLCD_BLINK_OFF		0b00001110	///< カーソルブリンクOFF

/// カーソルもしくは表示のシフト
#define CLCD_SHIFT_DISPLAY_RIGHT	0b00011111	///< 表示を右に
#define CLCD_SHIFT_DISPLAY_LEFT		0b00011011	///< 表示を左に
#define CLCD_SHIFT_CURSOR_RIGHT		0b00010111	///< カーソルを右に
#define CLCD_SHIFT_CURSOR_LEFT		0b00010011	///< カーソルを左に

/// Function Set:文字LCD表示器のインターフェースのビット数
#define CLCD_INTERFACE_8BIT		0b00111011	///< ８ビット
#define CLCD_INTERFACE_4BIT		0b00101011	///< ４ビット

/// CGRAM Address Set
#define CLCD_CGRAM_ADDR		0b01000000

/// DDRAM Address Set
#define CLCD_DDRAM_ADDR		0b10000000


/***********************************************************
	関数のプロトタイプおよびマクロ（擬似関数）の定義
***********************************************************/

void CLCD_init(BYTE, BYTE, BYTE, BYTE, BYTE, BYTE) ;
#if defined(CLCD_RS) || defined(SR_DAT)
void CLCD_initDefault(void) ;
#endif

void CLCD_setCursor(unsigned char, unsigned char) ;

void CLCD_cmd(BYTE) ;

void CLCD_data(BYTE) ;

/// 文字LCDへの１文字出力
#define CLCD_putc CLCD_data
void CLCD_puts(char *) ;
void CLCD_putrs(const rom char *) ;
void CLCD_puti(long) ;
void CLCD_putf(float, char) ;
void CLCD_putb(long, BYTE) ;

///　文字LCDの画面消去
#define	CLCD_clear()	CLCD_cmd(CLCD_CLEAR)
/// 文字LCDのカーソルをホームポジション(0,0)へ
#define	CLCD_home()	CLCD_cmd(CLCD_HOME)

#endif /*USE_CLCD*/

#endif /*PIC18CLCD_H_*/
