📄 lcd._h
字号:
#ifndef _LCD12864_H
#define _LCD12864_H
/*======================================================================================
控制液晶模块显示的特定控制数据常数定义:
======================================================================================*/
#define LCDM_DataBits 8 /* 液晶模块显示数据的字符位长 */
#define LCDM_MaxColumnDot 64/8 /* 液晶屏幕上可显示的最大列点阵数 */
#define LCDM_MaxRowDot 64 /* 液晶屏幕上可显示的最大行点阵数 */
#define LCDM_ON_Display 63 /* 打开液晶显示的控制指令字 */
#define LCDM_OFF_Display 62 /* 关闭液晶显示的控制指令字 */
#define LCDM_DataPage_1 184 /* 显示数据为第1页的控制指令字 */
#define LCDM_Yaddress_1 64 /* 显示数据的Y地址为1的控制指令字 */
#define LCDM_StartLine_1 192 /* 开始显示行数为1的控制指令字 */
#define ON 1 /* 定义 ON 字符值为 1 */
#define OFF 0 /* 定义 OFF 字符值为 0 */
/*======================================================================================
控制液晶模块显示功能的输入/输出引脚定义:
注:下列这些定义与硬件设计相关,如需改变控制的输入/输出引脚仅在此重新定义即可。
======================================================================================*/
#define BIT0 0x01 // BIT0 = (1<<1) = 0b00000001
#define BIT1 0x02 // BIT1 = (1<<2) = 0b00000010
#define BIT2 0x04 // BIT2 = (1<<3) = 0b00000100
#define BIT3 0x08 // BIT3 = (1<<4) = 0b00001000
#define BIT4 0x10 // BIT4 = (1<<5) = 0b00010000
#define BIT5 0x20 // BIT5 = (1<<6) = 0b00100000
#define BIT6 0x40 // BIT6 = (1<<7) = 0b01000000
#define BIT7 0x80 // BIT7 = (1<<8) = 0b10000000
#define LCD_SDA_DDR DDRB
#define LCD_SDA_PORT PORTB
#define LCD_SDA_PINNum BIT0
#define LCD_SCK_DDR DDRD
#define LCD_SCK_PORT PORTD
#define LCD_SCK_PINNum BIT7
#define LCD_DC_DDR DDRD /* 液晶的寄存器选择控制端口 */
#define LCD_DC_PORT PORTD /* 液晶的寄存器选择控制端口数据寄存器 */
#define LCD_DC_PINNum BIT6 /* 液晶的寄存器选择控制引脚数字 */
#define LCD_RES_DDR DDRD /* 液晶的复位信号控制端口 */
#define LCD_RES_PORT PORTD /* 液晶的复位信号控制端口数据寄存器 */
#define LCD_RES_PINNum BIT5 /* 液晶的复位信号控制引脚数字 */
#define LCD_CS_DDR DDRD /* 液晶的片选控制端口 */
#define LCD_CS_PORT PORTD /* 液晶的片选控制端口数据寄存器 */
#define LCD_CS_PINNum BIT0 /* 液晶的片选控制引脚数字 */
#define LCD_BL_DDR DDRD /* 液晶的背景灯控制端口 */
#define LCD_BL_PORT PORTD /* 液晶的背景灯控制端口数据寄存器 */
#define LCD_BL_PINNum BIT1 /* 液晶的背景灯控制引脚数字 */
#define Set_LCD_BL() ( LCD_BL_PORT |= LCD_BL_PINNum )
#define Clr_LCD_BL() ( LCD_BL_PORT &= ~LCD_BL_PINNum )
#define Set_LCD_CS() ( LCD_CS_PORT |= LCD_CS_PINNum )
#define Clr_LCD_CS() ( LCD_CS_PORT &= ~LCD_CS_PINNum )
#define Set_LCD_RES() ( LCD_RES_PORT |= LCD_RES_PINNum )
#define Clr_LCD_RES() ( LCD_RES_PORT &= ~LCD_RES_PINNum )
#define Set_LCD_DC() ( LCD_DC_PORT |= LCD_DC_PINNum )
#define Clr_LCD_DC() ( LCD_DC_PORT &= ~LCD_DC_PINNum )
#define Set_LCD_SCK() ( LCD_SCK_PORT |= LCD_SCK_PINNum )
#define Clr_LCD_SCK() ( LCD_SCK_PORT &= ~LCD_SCK_PINNum )
#define Set_LCD_SDA() ( LCD_SDA_PORT |= LCD_SDA_PINNum )
#define Clr_LCD_SDA() ( LCD_SDA_PORT &= ~LCD_SDA_PINNum )
/*
//LCD backlight and power register
//extern volatile unsigned char LCDCSR;
#define APD 5
#define PS 4
#define BC 2
#define ABD 1
#define BS 0
// | 0 | 0 | APD | PS | 0 | BC | ABD | BS |
// AutoPowerDown, PowerStatus, AutoBacklightDown, BacklightStatus
#define EN_LCD_APD() (LCDCSR |= (1<<APD) ) //enable LCD auto power down
#define DIS_LCD_APD() (LCDCSR &= ~(1<<APD)) //disable LCD auto power down
#define LCD_APD() (LCDCSR&(1<<APD)) //check LCD auto power down control
#define LCD_PS() (LCDCSR&(1<<PS)) //check LCD power status
#define S_LCD_PS() (LCDCSR |= (1<<PS)) //set LCD power status
#define R_LCD_PS() (LCDCSR &= ~(1<<PS)) //reset LCD power status
#define EN_LCD_ABD() (LCDCSR |= (1<<ABD) ) //enable LCD backlight auto off
#define DIS_LCD_ABD() (LCDCSR &= ~(1<<ABD)) //disable LCD backlight auto off
#define LCD_ABD() (LCDCSR&(1<<ABD)) //check LCD backlight auto off control
#define LCD_BS() (LCDCSR&(1<<BS)) //check LCD backlight status
#define S_LCD_BS() (LCDCSR |= (1<<BS)) //set LCD backlight status
#define R_LCD_BS() (LCDCSR &= ~(1<<BS)) //reset LCD backlight status
#define S_LCD_BC() (LCDCSR |= (1<<BS))
#define R_LCD_BC() (LCDCSR &= ~(1<<BC))
*/
#define MAX_LCD_ROWS 8
#define MAX_LCD_COLS 16
extern void LCD_hard_init(void);
extern void LCD_init(void); /* 用于控制液晶模块操作的初始化 */
extern void Comwrite( unsigned char command );
extern void Datwrite(unsigned char dat);
extern void LCD_backlight(unsigned char on_off);
extern void LCD_power(unsigned char on_off);
extern void LCD_cls(void);
extern void LCD_clearRow(unsigned char y);
extern void LCD_putchar(unsigned char x,unsigned char y, unsigned char c,unsigned char flag);
extern void LCD_puts(unsigned char x,unsigned char y, unsigned char *s, unsigned char flag);
extern void LCD_cputchar(unsigned char x,unsigned char y, const unsigned char c,unsigned char flag);
extern void LCD_cputs(unsigned char x,unsigned char y, const unsigned char *s, unsigned char flag);
extern void LCD_MsgBox( unsigned char *s );
extern void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,
unsigned char Pix_x,unsigned char Pix_y,
const unsigned char *map );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -