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

📄 lcd.h

📁 这个是黑白LCD的一个典型的驱动函数集 原创 请大家多支持下下!如果有什么问题请来信
💻 H
字号:
/********************************************************************************************************
* 文 件 名 : LCD.h
* 日    期 : 2006-03-02
* 说    明 : 这一版本的软件是针对  深圳市松山电子科技有限公司  的CA12864K 系列LCM 模块的驱动
*            可以兼容   OCMJ(奥可拉中文集成模块) C系列液晶显示器 (带汉字库LCD开发的驱动)
*            驱动芯片ST7920 ST7921组成的驱动组 及其兼容芯片
*            适用型号 : OCMJ12864C_1   OCMJ4X8C   OCMJ4X10C  OCMJ4X8C  OCMJ4X16A   OCMJ4X16B 等
*            松山公司资料
*            网站     : http://www.sunson.net.cn    Email : sunson@sunson.net.cn
*            电话     : 0755-27891155 /0755-27890697 /0755-27890723/10/16/19
*            技术支持 :
*            奥可拉公司资料
*            网站     : http://www.gptlcm.cn        Email : syl@gptlcm.cn
*            电话     : 0758-2317153/2317143
*            技术支持 : 0758-2317156
* 程 序 员 : 蔡杰(hnclcj@163.com)
********************************************************************************************************/


#ifdef   LCD_GLOBALS
#define  LCD_EXT
#else
#define  LCD_EXT  extern
#endif



/********************************************************************************************************
* 常数
********************************************************************************************************/
#define LCD_MODULS_EN             1               /* Enable LCM dirver moduls                          */

#if LCD_MODULS_EN > 0
                                                  /* ------------------- LCM的扩展命令 ----------------*/
#define DISP_CMD_LAMP_ON          0               // LCM背光打开命令
#define DISP_CMD_LAMP_OFF         1               // LCM背光关闭命令
#define DISP_CMD_LAMP_HALF        2               // LCD背光半亮
                                                  /* ---------------------- LCM颜色 -------------------*/
#define DISP_COLORS_BLACK         1               // 显示颜色为黑色
#define DISP_COLORS_WHITE         0               // 显示颜色为白色
#define DISP_CONST_SEL            FLASH           // 字库代码选择

                                                  /* ---------------- LCM 图形方式常数 ----------------*/
#define DISP_GRH_EN               1               // LCM 图形方式函数使能  0=不使用 1=使用 图形控制函数
#define DISP_GRH_MAX_X            128             // LCM 图形方式的X方向最大值
#define DISP_GRH_MAX_Y            64              // LCM 图形方式的Y方向最大值

#define DISP_GRH_BCD_EN           1               // BCD
#define DISP_GRH_HEX_EN           1               // Hex
#define DISP_GRH_CLR_SCR_EN       1               // LCD 图形方式清屏                              0禁止
#define DISP_GRH_CHAR_EN          1               // LCD 图形方式显示一个字符                      0禁止
#define DISP_GRH_STR_EN           1               // LCM 图形方式显示字符串                        0禁止
#define DISP_GRH_POINT_EN         0               // 图形方式显示一个点
#define DISP_GRH_LINE_EN          0               // 图形方式画一条直线
#define DISP_GRH_CIRCLE_EN        0               // 图形方式画一个圆

                                                  /* -------------------- LCM文本方式常数 -------------*/
#define DISP_TXT_EN               1               // LCM文本方式函数集总使能                       0禁止
#define DISP_TXT_MAX_ROWS         4               // Maximum number of rows for the display  (0...3)
#define DISP_TXT_MAX_COLS         16              // Maximum number of columns (i.e. characters per line)

#define DISP_TXT_CLR_ROW_EN       1               // 行清除函数使能                                0禁止
#define DISP_TXT_CLR_SCR_EN       1               // 清屏是嫩                                      0禁止
#define DISP_TXT_BCD_EN           1               // 显示BCD码函数使能                             0禁止
#define DISP_TXT_HEX_EN           1               // 显示HEX码函数使能                             0禁止
#define DISP_TXT_CHAR_EN          1               // 显示字符函数使能                              0禁止
#define DISP_TXT_STR_EN           1               // 显示字符串


#endif
/********************************************************************************************************
* 控制I/O 与硬件有关
********************************************************************************************************/
#if LCD_MODULS_EN > 0
#define LCDDATA_DDR                    IO2DIR
#define LCDDATA_PORT_HIGH              IO2SET
#define LCDDATA_PORT_LOW               IO2CLR
#define LCDDATA_PIN                    IO2PIN         //
#define LCDDATA                        16

#define LCDLAMP1_DDR                   IO2DIR
#define LCDLAMP1_PORT_HIGH             IO2SET
#define LCDLAMP1_PORT_LOW              IO2CLR
#define LCDLAMP1_PIN                   IO2PIN
#define LCDLAMP1                       24              // LCM背光控制I/O

#define LCDLAMP2_DDR                   IO2DIR
#define LCDLAMP2_PORT_HIGH             IO2SET
#define LCDLAMP2_PORT_LOW              IO2CLR
#define LCDLAMP2_PIN                   IO2PIN
#define LCDLAMP2                       25              // LCM背光控制I/O

#define LCDE_DDR                       IO2DIR
#define LCDE_PORT_HIGH                 IO2SET
#define LCDE_PORT_LOW                  IO2CLR
#define LCDE_PIN                       IO2PIN
#define LCDE                           29             // LCM 读或写使能I/O

#define LCDRS_DDR                      IO2DIR
#define LCDRS_PORT_HIGH                IO2SET
#define LCDRS_PORT_LOW                 IO2CLR
#define LCDRS_PIN                      IO2PIN
#define LCDRS                          30             // LCM 命令与数据识别I/O

#define LCDRW_DDR                      IO2DIR
#define LCDRW_PORT_HIGH                IO2SET
#define LCDRW_PORT_LOW                 IO2CLR
#define LCDRW_PIN                      IO2PIN
#define LCDRW                          31             // LCM 读与写识别I/O


#endif
/********************************************************************************************************
* 数据类型及变量
********************************************************************************************************/
#if LCD_MODULS_EN > 0 && DISP_GRH_EN > 0

typedef  BOOL    COLORS;                          // LCM 图形方式中关于颜色的数据类型

#endif
/********************************************************************************************************
* 函数
********************************************************************************************************/
#if LCD_MODULS_EN > 0

void   DispInit       (void);
void   DispSetLamp    (BOOL state);


#if DISP_GRH_EN > 0                               /* LCM 图形方式驱动函数列表 支持5*7  6*8两种ASCII字符*/
void   DispGrhAllFill (INT8U dat);
void   DispGrhBCD     (INT8U x0, INT8U y0, INT8U dat, COLORS colors);
void   DispGrhHex     (INT8U x0, INT8U y0, INT8U dat, COLORS colors);
void   DispGrhChar    (INT8U x0, INT8U y0, char  c, COLORS colors);
void   DispGrhCharExt (INT8U x0, INT8U y0, char  c, COLORS colors);
void   DispGrhChar57  (INT8U x0, INT8U y0, char  c, COLORS colors);
void   DispGrhClrScr  (void);
void   DispGrhStr     (INT8U x0, INT8U y0, const char *s, COLORS colors);


void   DispGrhCircle  (INT8U x0, INT8U y0, INT8U r, COLORS colors);
void   DispGrhLine    (INT8U x0, INT8U y0, INT8U x1, INT8U y1, COLORS colors);
void   DispGrhPixel   (INT8U x0, INT8U y0, COLORS colors);  // 不带OS支持
void   DispGrhPoint   (INT8U x0, INT8U y0, COLORS colors);  // 带OS支持
#endif


#if DISP_TXT_EN > 0                               /* LCM 文本方式驱动函数列表                          */
void   DispTxtBCD      (INT8U row, INT8U col, INT8U dat);
void   DispTxtChar     (INT8U row, INT8U col, char c);
void   DispTxtClrRow   (INT8U row);
void   DispTxtClrScr   (void);
void   DispTxtHex      (INT8U row, INT8U col, INT8U dat);
void   DispTxtStr      (INT8U row, INT8U col, const char *s);
void   DispTxtStrFlash (INT8U row, INT8U col, const char *s);
#endif


#endif
/********************************************************************************************************
*                                             End  of  File
********************************************************************************************************/

⌨️ 快捷键说明

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