1 | #ifndef LCD_ROUTINES_H
|
2 | #define LCD_ROUTINES_H
|
3 |
|
4 | #ifndef F_CPU
|
5 | #define F_CPU 8000000
|
6 | #endif
|
7 |
|
8 |
|
9 | #define LCD_PORT PORTD
|
10 | #define LCD_DDR DDRD
|
11 | #define LCD_DB PD0
|
12 |
|
13 | #define LCD_RS PD4
|
14 |
|
15 | #define LCD_EN PD5
|
16 |
|
17 | #define LCD_BOOTUP_MS 15
|
18 | #define LCD_ENABLE_US 20
|
19 | #define LCD_WRITEDATA_US 46
|
20 | #define LCD_COMMAND_US 42
|
21 |
|
22 | #define LCD_SOFT_RESET_MS1 5
|
23 | #define LCD_SOFT_RESET_MS2 1
|
24 | #define LCD_SOFT_RESET_MS3 1
|
25 | #define LCD_SET_4BITMODE_MS 5
|
26 |
|
27 | #define LCD_CLEAR_DISPLAY_MS 2
|
28 | #define LCD_CURSOR_HOME_MS 2
|
29 |
|
30 | #define LCD_DDADR_LINE1 0x00
|
31 | #define LCD_DDADR_LINE2 0x40
|
32 | #define LCD_DDADR_LINE3 0x10
|
33 | #define LCD_DDADR_LINE4 0x50
|
34 |
|
35 | void lcd_init( void );
|
36 |
|
37 | void lcd_clear( void );
|
38 |
|
39 | void lcd_home( void );
|
40 |
|
41 | void lcd_setcursor( uint8_t spalte, uint8_t zeile );
|
42 |
|
43 | void lcd_data( uint8_t data );
|
44 |
|
45 | void lcd_string( const char *data );
|
46 |
|
47 | void lcd_generatechar( uint8_t code, const uint8_t *data );
|
48 |
|
49 | void lcd_command( uint8_t data );
|
50 |
|
51 |
|
52 | #define LCD_CLEAR_DISPLAY 0x01
|
53 |
|
54 |
|
55 | #define LCD_CURSOR_HOME 0x02
|
56 |
|
57 |
|
58 | #define LCD_SET_ENTRY 0x04
|
59 |
|
60 | #define LCD_ENTRY_DECREASE 0x00
|
61 | #define LCD_ENTRY_INCREASE 0x02
|
62 | #define LCD_ENTRY_NOSHIFT 0x00
|
63 | #define LCD_ENTRY_SHIFT 0x01
|
64 |
|
65 |
|
66 | #define LCD_SET_DISPLAY 0x08
|
67 |
|
68 | #define LCD_DISPLAY_OFF 0x00
|
69 | #define LCD_DISPLAY_ON 0x04
|
70 | #define LCD_CURSOR_OFF 0x00
|
71 | #define LCD_CURSOR_ON 0x02
|
72 | #define LCD_BLINKING_OFF 0x00
|
73 | #define LCD_BLINKING_ON 0x01
|
74 |
|
75 |
|
76 | #define LCD_SET_SHIFT 0x10
|
77 |
|
78 | #define LCD_CURSOR_MOVE 0x00
|
79 | #define LCD_DISPLAY_SHIFT 0x08
|
80 | #define LCD_SHIFT_LEFT 0x00
|
81 | #define LCD_SHIFT_RIGHT 0x04
|
82 |
|
83 |
|
84 | #define LCD_SET_FUNCTION 0x20
|
85 |
|
86 | #define LCD_FUNCTION_4BIT 0x00
|
87 | #define LCD_FUNCTION_8BIT 0x10
|
88 | #define LCD_FUNCTION_1LINE 0x00
|
89 | #define LCD_FUNCTION_2LINE 0x08
|
90 | #define LCD_FUNCTION_5X7 0x00
|
91 | #define LCD_FUNCTION_5X10 0x04
|
92 |
|
93 | #define LCD_SOFT_RESET 0x30
|
94 |
|
95 |
|
96 | #define LCD_SET_CGADR 0x40
|
97 |
|
98 | #define LCD_GC_CHAR0 0
|
99 | #define LCD_GC_CHAR1 1
|
100 | #define LCD_GC_CHAR2 2
|
101 | #define LCD_GC_CHAR3 3
|
102 | #define LCD_GC_CHAR4 4
|
103 | #define LCD_GC_CHAR5 5
|
104 | #define LCD_GC_CHAR6 6
|
105 | #define LCD_GC_CHAR7 7
|
106 |
|
107 | #define LCD_SET_DDADR 0x80
|
108 |
|
109 | #endif /* LCD-ROUTINES_H_ */
|