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

📄 lcd2002.h

📁 一个LCD2002液晶屏驱动程序,对于想对LCD想对LCD编程的朋友可以参考.
💻 H
字号:

#ifndef  LCDDRIVE_H
#define  LCDDRIVE_H

/*定义LCM控制字*/

#define LCD2002_MODE       0x3C                 /* 接口数据8位,显示2行,字体为1号 */ 
    
#define LCD2002_NO_FLASH   0x0C                 /* 屏幕显示开,无光标 */ 
       
#define LCD2002_HIDE       0x08                 /* 屏幕显示关 */       

#define LCD2002_FLASH      0x0D                 /* 屏幕显示开,并打开闪烁光标 */    

#define LCD2002_SHIFT      0x07                 /* 模块数据输入为增量方式,显示内容移动 */      

#define LCD2002_NO_SHIFT   0x06                 /* 模块数据输入为增量方式,显示光标移动 */     

#define LCD2002_SH         0x14                 /* 移动光标及整体显示 */ 
     

/* LCD地址相关控制宏 */

#define LCD2002_LINE1      0x80                 /* 第一行DDRAM起始地址 */   

#define LCD2002_LINE2      0xC0                 /* 第二行DDRAM起始地址 */  

#define LCD2002_CGRAM      0x40                 /* 定义CGRAM的起始地址 */ 

/*********************************************************************************************************
** 函数名称: Lcd2002Clr()
** 功能描述: 清除lcd的指定行
**
** 输 入: y : 清除的行号(最上方为1)
** 
** 输 出: 无
** 全局变量: 无
** 调用模块: Lcd2002DispStr()
********************************************************************************************************/

extern void Lcd2002Clr(INT8U y); 

/*********************************************************************************************************
** 函数名称: Lcd2002Init()
** 功能描述: lcd初始化
**
** 输 入: 无
** 
** 输 出: 无
** 全局变量: 无
** 调用模块: Lcd2002SendComm(),Lcd2002Clr()
********************************************************************************************************/
extern  void  Lcd2002Init(void);

/*********************************************************************************************************
** 函数名称: Lcd2002DispStr()
** 功能描述: 在lcd指定位置显示一个字符串,此函数可以自动换行。
**
** 输 入: x,y : 显示的开始坐(作上角为(1,1))
**         Data: 将要显示的字符串
** 输 出: 无
** 全局变量: 无
** 调用模块: Lcd2002SendComm(),Lcd2002SendDate()
********************************************************************************************************/
extern  void  Lcd2002DispStr(INT8U x, INT8U y, INT8S *Data);

extern  void  Lcd2002DispCha(INT8U x, INT8U y, INT8U Data);

/*********************************************************************************************************
** 函数名称: Lcd2002LoadC()
** 功能描述: 从lcd指定地址处写多个字节数据
**
** 输 入: Addr : 指定的地址
**         Data : 将要写入的数据开始地址
**         NChar: 写入的直接数
** 输 出: 无
** 全局变量: 无
** 调用模块: Lcd2002SendComm(),Lcd2002SendDate()
********************************************************************************************************/
extern  void  Lcd2002LoadC(INT8U Addr, INT8U *Data, INT8U Nchar);

/*********************************************************************************************************
** 函数名称: Lcd2002DispStr()
** 功能描述: 在lcd指定位置显示一个字符串,此函数可以自动换行。
**
** 输 入: x,y : 显示的开始坐(作上角为(1,1))
**         Data: 将要显示的字符串
** 输 出: 无
** 全局变量: 无
** 调用模块: Lcd2002SendComm(),Lcd2002SendDate()
********************************************************************************************************/
#define OSLcd2002DispStr(x, y, Data)              \
{                                                 \
    //OSSemPend(LCD2002_SEM, 0);                    \
    Lcd2002DispStr((x), (y), (Data));             \
    //OSSemPost(LCD2002_SEM);                       \
}

#define OSLcd2002DispCha(x, y, Data)              \
{                                                 \
    //OSSemPend(LCD2002_SEM, 0);                    \
    Lcd2002DispCha((x), (y), (Data));             \
    //OSSemPost(LCD2002_SEM);                       \
}

/*********************************************************************************************************
** 函数名称: OSLcd2002LoadC()
** 功能描述: 多任务中从lcd指定地址处写多个字节数据
**
** 输 入: Addr : 指定的地址
**         Data : 将要写入的数据开始地址
**         NChar: 写入的直接数
** 输 出: 无
** 全局变量: 无
** 调用模块: Lcd2002SendComm(),Lcd2002SendDate()
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define OSLcd2002LoadC(addr, dstr, no)            \
{                                                 \
//    OSSemPend(LCD2002_SEM, 0);                    \
    LCMLoadC((addr), (dstr), (no));               \
//    OSSemPost(LCD2002_SEM);                       \
}

/*********************************************************************************************************
** 函数名称: OSLcd2002Clr()
** 功能描述:
** 输 入: 
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
********************************************************************************************************/
#define OSLcd2002Clr(y)                           \
{                                                 \
//    OSSemPend(LCD2002_SEM, 0);                    \
    Lcd2002Clr(y);                                \
//    OSSemPost(LCD2002_SEM);                       \
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -