⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd._h

📁 单片机的应用程序
💻 _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 + -