#include #include #include #include #define RS_PORT PORTD #define RS_PIN PIND0 #define RS_DDR DDD0 //#define RW_PORT PORTD //#define RW_PIN PIND1 //#define RW_DDR DDD1 #define ENA_PORT PORTD #define ENA_PIN PIND1 #define ENA_DDR DDD1 #define BIT4_PORT PORTD #define BIT4_PIN PIND4 #define BIT4_DDR DDD4 #define BIT5_PORT PORTD #define BIT5_PIN PIND5 #define BIT5_DDR DDD5 #define BIT6_PORT PORTD #define BIT6_PIN PIND6 #define BIT6_DDR DDD6 #define BIT7_PORT PORTD #define BIT7_PIN PIND7 #define BIT7_DDR DDD7 #define LED_PIN PINC0 #define LED_PORT PORTC #define LED_DDR DDC0 //LCD CONNECTIONS: /* * VSS --> GND * VDD --> VCC * V0 --> POT --> GND * RS --> PD0(AVR) * RW --> GND * E --> PD1(AVR) * D4 --> PD4(AVR) * D5 --> PD5(AVR) * D6 --> PD6(AVR) * D7 --> PD7(AVR) * * PURPOSE: * RS: register select, * RW: Read/Write select signal, * E: Operation(data read/write) enable signal. * DB0~DB3: not used for 4bit operations. * DB4~DB7: high order three-state data lines. */ //############################# //MACROS //############################# //already defined //#define _BV(bit) (1 << bit) #define setbit(port, bit) (port) |= (1 << (bit)) #define clearbit(port, bit) (port) &= ~(1 << (bit)) //############################# //FUNCTION PROTOTYPES //############################# void init_lcd(void); void cmd_lcd(uint8_t cmd); void cmd_nibble_lcd(uint8_t cmd); void clear_lcd(void); static void led_blink(void); void set_lcd_one_line_(void); void set_lcd_two_line(void); void return_home_lcd(void); void turn_off_lcd(void); void turn_on_lcd(void); void set_cgram_lcd_address(uint8_t addr); void set_ddram_lcd_address(uint8_t addr); void write_lcd_address(uint8_t addr); void set_entry_mode_increment_lcd(void); void set_entry_mode_decrement_lcd(void); void shift_right_lcd(void); void shift_left_lcd(void); void clear_buf_lcd();