#ifndef LCD_H | |
#define LCD_H | |
/*********************************************************************************** | |
FILE NAME lcd.h | |
DESCRIPTION Driver for KS0066u LCD Module Controller (8 characters by 2 lines ) | |
on the Renesas RSK boards - header file | |
Copyright : 2006 Renesas Technology Europe Ltd. | |
Copyright : 2006 Renesas Technology Corporation. | |
All Rights Reserved | |
***********************************************************************************/ | |
/*********************************************************************************** | |
Revision History | |
DD.MM.YYYY OSO-UID Description | |
26.07.2006 RTE-MBA First Release | |
***********************************************************************************/ | |
void InitialiseDisplay( void ); | |
void DisplayString(unsigned char position, char * string); | |
void LCD_write(unsigned char data_or_ctrl, unsigned char value); | |
void LCD_nibble_write(unsigned char data_or_ctrl, unsigned char value); | |
void DisplayDelay(unsigned long int units); | |
#define SET_BIT_HIGH (1) | |
#define SET_BIT_LOW (0) | |
#define SET_BYTE_HIGH (0xFF) | |
#define SET_BYTE_LOW (0x00) | |
struct _LCD_Params { | |
unsigned char Line; | |
unsigned short Speed; | |
char *ptr_str; | |
}; | |
/* RS Register Select pin */ | |
#define RS_PIN PORTJ.PODR.BIT.B1 | |
/* Display Enable pin */ | |
#define EN_PIN PORTJ.PODR.BIT.B3 | |
/* Data bus port */ | |
#define DATA_PORT PORTH.PODR.BYTE | |
/* Bit mask from entire port */ | |
#define DATA_PORT_MASK 0x0F | |
/* Number of bits data needs to shift */ | |
#define DATA_PORT_SHIFT 0 | |
#define DATA_WR 1 | |
#define CTRL_WR 0 | |
/* Set to ensure base delay of 1microS minimum */ | |
//#define DELAY_TIMING 0x2F | |
#define DELAY_TIMING 50 | |
/* number of lines on the LCD display */ | |
#define NUMB_CHARS_PER_LINE 8 | |
/* Maximum charactors per line of LCD display. */ | |
#define MAXIMUM_LINES 2 | |
#define LCD_LINE1 0 | |
#define LCD_LINE2 16 | |
/**********************************************************************************/ | |
/* LCD commands - use LCD_write function to write these commands to the LCD. */ | |
/**********************************************************************************/ | |
/* Clear LCD display and home cursor */ | |
#define LCD_CLEAR 0x01 | |
/* move cursor to line 1 */ | |
#define LCD_HOME_L1 0x80 | |
/* move cursor to line 2 */ | |
#define LCD_HOME_L2 0xC0 | |
/* Cursor auto decrement after R/W */ | |
#define CURSOR_MODE_DEC 0x04 | |
/* Cursor auto increment after R/W */ | |
#define CURSOR_MODE_INC 0x06 | |
/* Setup, 4 bits,2 lines, 5X7 */ | |
#define FUNCTION_SET 0x28 | |
/* Display ON with Cursor */ | |
#define LCD_CURSOR_ON 0x0E | |
/* Display ON with Cursor off */ | |
#define LCD_CURSOR_OFF 0x0C | |
/* Display on with blinking cursor */ | |
#define LCD_CURSOR_BLINK 0x0D | |
/*Move Cursor Left One Position */ | |
#define LCD_CURSOR_LEFT 0x10 | |
/* Move Cursor Right One Position */ | |
#define LCD_CURSOR_RIGHT 0x14 | |
#define LCD_DISPLAY_ON 0x04 | |
#define LCD_TWO_LINE 0x08 | |
#endif |