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