//-------------------------------------------------------- // 项目:通用 // 模块:LCD1602显示驱动 // 说明: // 设计:程序匠人(版权所有,引用者请保留原作者姓名) //-------------------------------------------------------- /* 版本说明: LCD1602.h 2009-3-9 23:18:18
*/ //--------------------------------------------------------
//-------------------------------------------------------- //LCD 端口定义 //-------------------------------------------------------- //V0为液晶显示器对比度调整端.接正电源时对比度最弱,接地电源时对比度最高. //对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
#define LCD_PORT GPIOB //LCD控制口
#define LCD_E GPIO_Pin_5 //使能信号(下降沿有效) #define LCD_RW GPIO_Pin_6 //读写信号(1=读,0=写) #define LCD_RS GPIO_Pin_7 //寄存器选择信号(1=数据寄存器,0=指令寄存器) //当RS=0,RW=0时,写入指令或者显示地址 //当RS=0,RW=1时,读忙信号 //当RS=1,RW=0时,写入数据
#define LCD_DB0 GPIO_Pin_8 //8位双向数据线 #define LCD_DB1 GPIO_Pin_9 //8位双向数据线 #define LCD_DB2 GPIO_Pin_10 //8位双向数据线 #define LCD_DB3 GPIO_Pin_11 //8位双向数据线 #define LCD_DB4 GPIO_Pin_12 //8位双向数据线 #define LCD_DB5 GPIO_Pin_13 //8位双向数据线 #define LCD_DB6 GPIO_Pin_14 //8位双向数据线 #define LCD_DB7 GPIO_Pin_15 //8位双向数据线
#define LCD_BUSY LCD_DB7 //忙标志位(1=忙,0=不忙)
//-------------------------------------------------------- //LCD 控制定义 //-------------------------------------------------------- #define LCD_E_L GPIO_ResetBits(LCD_PORT, LCD_E); //使能信号=0 #define LCD_E_H GPIO_SetBits(LCD_PORT, LCD_E); //使能信号=1
#define LCD_RW_L GPIO_ResetBits(LCD_PORT, LCD_RW);//读写信号=0 #define LCD_RW_H GPIO_SetBits(LCD_PORT, LCD_RW); //读写信号=1
#define LCD_RS_L GPIO_ResetBits(LCD_PORT, LCD_RS);//寄存器选择信号=0 #define LCD_RS_H GPIO_SetBits(LCD_PORT, LCD_RS); //寄存器选择信号=1
//-------------------------------------------------------- //函数声明 //-------------------------------------------------------- //内部函数,不建议外部调用 extern void GPIO_Config_LCD_OUT(void) ; //LCD IO口 配置 (控制口=输出,数据口=输出) extern void GPIO_Config_LCD_IN(void) ; //LCD IO口 配置 (控制口=输出,数据口=输入)
extern void CheckBusy_LCD(void) ; //检测LCD忙信号函数 extern void WriteCommand_LCD(u8 wclcd,u8 busyc) ; //向LCD发送指令函数 extern void WriteData_LCD(u8 wdlcd) ; //向LCD发送数据函数
//外部函数,允许外部调用 extern void Init_LCD(void) ; //LCD初始化函数 extern void DisplayOneChar_LCD(u8 x,u8 y,u8 ddata); //显示指定坐标的字符函数(入口:x=字符坐标(0~15),y=行坐标(0~1),ddata=待显示字符) extern void DisplayString_LCD(u8 x,u8 y,u8 *ddata); //显示指定坐标的字符串函数(入口:x=字符坐标(0~15),y=行坐标(0~1),*ddata=待显示字符串的指针)
//-------------------------------------------------------- // // THE END // // 版权所有:程序匠人(引用者请保留原作者姓名) // //--------------------------------------------------------
|