📄 lcd.h
字号:
#ifndef _LCD_H_
#define _LCD_H_
/*
* LCD interface header file
*/
/* Defining CHECKBUSY will check if the LCD is busy. The RW bit of the
* LCD must connected to a port of the processor for the check busy
* process to work.
*
* If CHECKBUSY is not defined it will instead use a delay loop.
* The RW bit of the LCD does not need to connected in this case.
*/
// #define CHECKBUSY 1
#ifdef CHECKBUSY
#define LCD_WAIT lcd_check_busy()
#else
#define LCD_WAIT DelayMs(5)
#endif
#define MESSAGE_LINE 0x0
#define LCD_RS LA3
#define LCD_EN LA1
#define LCD_RW LA2
#define LCD_DATA LATD
#define LCD_DATA_PORT PORTD
#define LCD_RS_TRIS TRISA3
#define LCD_EN_TRIS TRISA1
#define LCD_RW_TRIS TRISA2
#define LCD_DATA_TRIS TRISD
#define FOURBIT_MODE 0x0
#define EIGHTBIT_MODE 0x1
#define OUTPUT_PIN 0x0
#define INPUT_PIN 0x1
#define OUTPUT_DATA 0xF0
#define INPUT_DATA 0xFF
#define LCD_STROBE() LCD_EN = 1; asm("nop"); asm("nop"); LCD_EN = 0
#define LCD_STROBE_READ(value) LCD_EN = 1; \
asm("nop"); asm("nop"); \
value=LCD_DATA_PORT; \
LCD_EN = 0;
#define lcd_cursor(x) lcd_cmd(((x)&0x7F)|0x80)
#define lcd_clear() lcd_cmd(0x1)
#define lcd_putch(x) lcd_data(x)
#define lcd_goto(x) lcd_cmd(0x80+(x));
#define lcd_cursor_right() lcd_cmd(0x14)
#define lcd_cursor_left() lcd_cmd(0x10)
#define lcd_display_shift() lcd_cmd(0x1C)
#define lcd_home() lcd_cmd(0x2)
extern void lcd_cmd(unsigned char);
extern void lcd_data(unsigned char);
extern void lcd_puts(const char * s);
extern void lcd_init(unsigned char);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -