55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
|
#ifndef USER_LCD_H_
|
||
|
#define USER_LCD_H_
|
||
|
|
||
|
#include "ch32v20x.h"
|
||
|
|
||
|
static const uint8_t LCD_RS = 0x01;
|
||
|
static const uint8_t LCD_RW = 0x02;
|
||
|
static const uint8_t LCD_EN = 0x04;
|
||
|
static const uint8_t LCD_BACKLIGHT = 0x08;
|
||
|
static const uint8_t LCD_NOBACKLIGHT = 0x00;
|
||
|
|
||
|
static const uint8_t LCD_4BITMODE = 0x00;
|
||
|
static const uint8_t LCD_2LINE = 0x08;
|
||
|
|
||
|
static const uint8_t LCD_CLEARDISPLAY = 0x01;
|
||
|
static const uint8_t LCD_RETURNHOME = 0x02;
|
||
|
static const uint8_t LCD_ENTRYMODESET = 0x04;
|
||
|
static const uint8_t LCD_DISPLAYCONTROL = 0x08;
|
||
|
static const uint8_t LCD_CURSORSHIFT = 0x10;
|
||
|
static const uint8_t LCD_FUNCTIONSET = 0x20;
|
||
|
static const uint8_t LCD_SETCGRAMADDR = 0x40;
|
||
|
static const uint8_t LCD_SETDDRAMADDR = 0x80;
|
||
|
|
||
|
static const uint8_t LCD_BLINKOFF = 0x00;
|
||
|
static const uint8_t LCD_BLINKON = 0x01;
|
||
|
static const uint8_t LCD_CURSOROFF = 0x00;
|
||
|
static const uint8_t LCD_CURSORON = 0x02;
|
||
|
static const uint8_t LCD_DISPLAYON = 0x04;
|
||
|
static const uint8_t LCD_DISPLAYOFF = 0x00;
|
||
|
|
||
|
static const uint8_t LCD_ENTRYSHIFTDEC = 0x00;
|
||
|
static const uint8_t LCD_ENTRYSHIFTINC = 0x01;
|
||
|
static const uint8_t LCD_ENTRYRIGHT = 0x00;
|
||
|
static const uint8_t LCD_ENTRYLEFT = 0x02;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
uint8_t address;
|
||
|
uint8_t backlight;
|
||
|
uint8_t function;
|
||
|
uint8_t dispctrl;
|
||
|
uint8_t entrymode;
|
||
|
} lcd_t;
|
||
|
|
||
|
void lcd_init(lcd_t *lcd, uint8_t address);
|
||
|
void lcd_backlight(lcd_t *lcd);
|
||
|
void lcd_no_backlight(lcd_t *lcd);
|
||
|
void lcd_clear(lcd_t *lcd);
|
||
|
void lcd_home(lcd_t *lcd);
|
||
|
void lcd_write(lcd_t *lcd, char c);
|
||
|
void lcd_puts(lcd_t *lcd, char *str);
|
||
|
void lcd_cursor(lcd_t *lcd, uint8_t row, uint8_t col);
|
||
|
|
||
|
#endif /* USER_LCD_H_ */
|