/***************************************************************************/
/* */
/* LCD.H */
/* LCD interface implementation */
/* */
/* */
/* Mode : HD44780 type LCD displays */
/* */
/* Interface : SEL = Port A bit 3 */
/* WR = Port A bit 2 */
/* RS = Port A bit 0 */
/* Data_7 = Port B bit 7 */
/* Data_6 = Port B bit 6 */
/* Data_5 = Port B bit 5 */
/* Data_4 = Port B bit 4 */
/* */
/* */
/* This version is for 4 bit mode */
/* */
/* */
/***************************************************************************/
#ifdef LCD
void LCD_Setup(void);
void LCD_FunctionMode(void);
void LCD_DataMode(void);
void LCD_WriteMode(void);
void LCD_ClockData(void);
void LCD_Command(char d);
void LCD_Write_8_Bit(char d );
void LCD_Write_4_Bit(char d );
void LCD_WriteInt(int num);
void LCD_SetPos(char position);
void LCD_WriteIntPos( int num, char position );
void LCD_Clear(void);
void LCD_GoLine1(void);
void LCD_GoLine2(void);
void LCD_ClearLine1(void);
void LCD_ClearLine2(void);
void printf( const char *text );
#else
extern LCD_Setup(void);
extern LCD_FunctionMode(void);
extern LCD_DataMode(void);
extern LCD_WriteMode(void);
extern LCD_ClockData(void);
extern LCD_Command(char d);
extern LCD_Write_8_Bit(char d );
extern LCD_Write_4_Bit(char d );
extern LCD_WriteInt(int num);
extern LCD_SetPos(char position);
extern LCD_WriteIntPos( int num, char position );
extern LCD_Clear(void);
extern LCD_GoLine1(void);
extern LCD_GoLine2(void);
extern LCD_ClearLine1(void);
extern LCD_ClearLine2(void);
extern printf( const char *text );
#endif
//***********************************************************************
// PIC Pin definitions for the LCD interface
//***********************************************************************
#define LCD_RS 0 // Register Select in RA0
#define LCD_WR 1 // Write in RA1
#define LCD_SEL 2 // LCD Enable in RA2
#define LCD_DATA_4 4 // LCD BIT 4 in RB4
#define LCD_DATA_5 5 // LCD BIT 5 in RB5
#define LCD_DATA_6 6 // LCD BIT 6 in RB6
#define LCD_DATA_7 7 // LCD BIT 7 in RB7
//***********************************************************************
// Definitions for the LCD configurations
//***********************************************************************
#define CHARS_IN_LINE_C 16
#define LINES_C 2
#define CHAR_COUNT_C 32
//***********************************************************************
// LCD Commands ( Refer to LCD Data Sheet )
// Standard command should work with most common devices
//***********************************************************************
#define CLEAR_LCD_C 0x01 // Clear Display
#define RETURN_HOME_C 0x02 // Cursor to Home position
#define ENTRY_MODE_C 0x06 // Normal entry mode
#define ENTRY_MODE_SHIFT_C 0x07 // - with shift
#define SYSTEM_SET_8_BIT_C 0x38 // 8 bit data mode 2 line ( 5x7 font )
#define SYSTEM_SET_4_BIT_C 0x28 // 4 bit data mode 2 line ( 5x7 font )
#define DISPLAY_ON_C 0x0c // Switch ON Display
#define DISPLAY_OFF_C 0x08 // Cursor plus blink
#define SET_DD_LINE1_C 0x80 // Line 1 position 1
#define SET_DD_LINE2_C 0xC0 // Line 2 position 1
#define SET_DD_RAM_C 0x80 // Line 1 position 1
#define WRITE_DATA_C 0x00 // With RS = 1
#define CURSOR_ON_C 0x0E // Switch Cursor ON
#define CURSOR_OFF_C 0x0C // Switch Cursor OFF
//***********************************************************************
#define NUL 0 // end character of sting
syntax highlighted by
Code2HTML, v. 0.9.1