00001
00002
00003
00004
00005
00006
00007
00008 #ifndef LC7981_H_
00009 #define LC7981_H_ LC7981_H_
00010
00011 #include <avr/io.h>
00012 #include <util/delay.h>
00013 #include <avr/pgmspace.h>
00014
00015 #define LCD_CTRL PORTC
00016 #define LCD_CRTL_DDR DDRC
00017 #define LCD_RS PC4
00018 #define LCD_RW PC2
00019 #define LCD_EN PC0
00020
00021
00022
00023 #define LCD_DATA PORTD
00024 #define LCD_DATA_DDR DDRD
00025
00026
00027 #define lcd_rs_high() (LCD_CTRL |= (1 << LCD_RS))
00028 #define lcd_rs_low() (LCD_CTRL &= ~(1 << LCD_RS))
00029
00030 #define lcd_rw_high() (LCD_CTRL |= (1 << LCD_RW))
00031 #define lcd_rw_low() (LCD_CTRL &= ~(1 << LCD_RW))
00032
00033 #define lcd_en_high() (LCD_CTRL |= (1 << LCD_EN))
00034 #define lcd_en_low() (LCD_CTRL &= ~(1 << LCD_EN))
00035
00036
00037 #define LCD_TEXT 0
00038 #define LCD_TEXT_LINES 10
00039 #define LCD_TEXT_COLUMNS 26
00040
00041 #define LCD_GRAPHIC 1
00042 #define LCD_GRAPHIC_WIDTH 160
00043 #define LCD_GRAPHIC_HEIGHT 80
00044 #define PIXEL_ON 1
00045 #define PIXEL_OFF 0
00046
00047 void lcd_init(uint8_t mode);
00048 inline void lcd_clear();
00049
00050 void lcd_write_text(char *txt);
00051 inline void lcd_gotoxy(uint8_t x, uint8_t y);
00052
00053 void lcd_plot_pixel(uint8_t x, uint8_t y, uint8_t set);
00054 void lcd_plot_bitmap(uint8_t x, uint8_t y, const uint8_t *bitmap, uint8_t w, uint8_t h);
00055
00056
00057 inline void lcd_strobe();
00058 inline void lcd_write_command(uint8_t cmd, uint8_t data);
00059 inline uint8_t lcd_read_byte();
00060
00061 #endif