13 #define F_CPU 16000000UL 22 #define LCD_PORT PORTD 27 #define LCD2_PORT PORTB 38 #define LCD_BOOTUP_MS 15 39 #define LCD_ENABLE_US 20 40 #define LCD_WRITEDATA_US 46 41 #define LCD_COMMAND_US 42 43 #define LCD_SOFT_RESET_MS1 5 44 #define LCD_SOFT_RESET_MS2 1 45 #define LCD_SOFT_RESET_MS3 1 46 #define LCD_SET_4BITMODE_MS 5 48 #define LCD_CLEAR_DISPLAY_MS 2 49 #define LCD_CURSOR_HOME_MS 2 56 #define LCD_DDADR_LINE1 0x00 57 #define LCD_DDADR_LINE2 0x40 58 #define LCD_DDADR_LINE3 0x10 59 #define LCD_DDADR_LINE4 0x50 63 void lcd_init(
void );
67 void lcd_clear(
void );
71 void lcd_home(
void );
75 void lcd_setcursor( uint8_t spalte, uint8_t zeile );
79 void lcd_data( uint8_t data );
83 void lcd_string(
const char *data );
89 void lcd_generatechar( uint8_t code,
const uint8_t *data );
93 void lcd_command( uint8_t data );
101 #define LCD_CLEAR_DISPLAY 0x01 104 #define LCD_CURSOR_HOME 0x02 107 #define LCD_SET_ENTRY 0x04 109 #define LCD_ENTRY_DECREASE 0x00 110 #define LCD_ENTRY_INCREASE 0x02 111 #define LCD_ENTRY_NOSHIFT 0x00 112 #define LCD_ENTRY_SHIFT 0x01 115 #define LCD_SET_DISPLAY 0x08 117 #define LCD_DISPLAY_OFF 0x00 118 #define LCD_DISPLAY_ON 0x04 119 #define LCD_CURSOR_OFF 0x00 120 #define LCD_CURSOR_ON 0x02 121 #define LCD_BLINKING_OFF 0x00 122 #define LCD_BLINKING_ON 0x01 125 #define LCD_SET_SHIFT 0x10 127 #define LCD_CURSOR_MOVE 0x00 128 #define LCD_DISPLAY_SHIFT 0x08 129 #define LCD_SHIFT_LEFT 0x00 130 #define LCD_SHIFT_RIGHT 0x04 133 #define LCD_SET_FUNCTION 0x20 135 #define LCD_FUNCTION_4BIT 0x00 136 #define LCD_FUNCTION_8BIT 0x10 137 #define LCD_FUNCTION_1LINE 0x00 138 #define LCD_FUNCTION_2LINE 0x08 139 #define LCD_FUNCTION_5X7 0x00 140 #define LCD_FUNCTION_5X10 0x04 142 #define LCD_SOFT_RESET 0x30 145 #define LCD_SET_CGADR 0x40 147 #define LCD_GC_CHAR0 0 148 #define LCD_GC_CHAR1 1 149 #define LCD_GC_CHAR2 2 150 #define LCD_GC_CHAR3 3 151 #define LCD_GC_CHAR4 4 152 #define LCD_GC_CHAR5 5 153 #define LCD_GC_CHAR6 6 154 #define LCD_GC_CHAR7 7 157 #define LCD_SET_DDADR 0x80