| #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 |