📄 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 + -