📄 lcd.h
字号:
/********************************************************************************************************
* 文 件 名 : lcd.h
* 程 序 员 : (CaiJie) hnclcj@gmail.com
* (c) Copyright 2006-2006, CaiJie
* 所有版权保留 2006-2006
* All Rights Reserved
* 创建日期 : 2006-07-28
* 说 明 : Nokia 3310 显示LCD驱动函数集
* 1> 只简单的实现现实字符跟字符串 因这是测试版 很多函数我已经处理掉 但可是做基本的测试
* 2> 含标准图形驱动方式 (支持基本的图形操作)
* 3> 简化后的文本驱动方式 (只显示文本形式的信息时只调用此函数集即可)
* 4> 如果对程序中的一些问题 可以自己解决 也可以发邮件告诉我你更好的想法(邮箱见程序员说明)
* 5> 目前支持51(待加) AVR ARM(待加)驱动
* 修改日期 :
* 修改版本 :
********************************************************************************************************/
#ifdef LCD_GLOBALS
#define LCD_EXT
#else
#define LCD_EXT extern
#endif
/********************************************************************************************************
* 全局常数
********************************************************************************************************/
#define LCD_MODULE_EN 1 // LCD模块函数总使能控制 0禁止
#if LCD_MODULE_EN > 0
// --------------------功能部件选择------------------------
#define LCD_DRIVER_SEC_EN 0 // 0=AVR 1=MCS51 2=ARM 3=xx 0默认
#define LCD_EXT_EN 0 // 扩展的其他函数 0禁止
#define LCD_GRH_EN 0 // 图形方式显示驱动函数集总使能 0禁止
#define LCD_TXT_EN 1 // 文本方式显示驱动函数集总使能控制 0禁止
#define LCD_OS_EN 0 // 在OS环境下使用LCD 0禁止
#define LCD_LAMP_ON 1 // LCD背光开 (根据硬件设置)
#define LCD_LAMP_OFF 0 // LCD背光关 (根据硬件设置)
#if LCD_GRH_EN > 0
// ----------------- 图形方式全局常数 ---------------------
#define LCD_DISP_GRH_MAX_X 48 // 图形方式最大X坐标
#define LCD_DISP_GRH_MAX_Y 84 // 图形方式最大Y坐标
// ------------- 图形方式个体函数使能控制 -----------------
#define LCD_DISP_GRH_BCD_EN 0 // 图形方式显示BCD unsigned char类型 0禁止
#define LCD_DISP_GRH_CHAR_EN 0 // 图形方式显示一个字符 0禁止
#define LCD_DISP_GRH_CLR_LINE_EN 0 // 图形方式清除一行显示信息(ASCII码) 0禁止
#define LCD_DISP_GRH_CLR_SCR_EN 0 // 图形方式清除全屏 0禁止
#define LCD_DISP_GRH_HEX_EN 0 // 图形方式显示一个HEX数据 unsigned char 类型 0禁止
#define LCD_DISP_GRH_STR_EN 0 // 图形方式显示一串字符 0禁止
#endif
#if LCD_TXT_EN > 0
// ----------------- 文本方式全局常数 ---------------------
#define LCD_DISP_TXT_MAX_ROWS 6 // 文本方式最大行
#define LCD_DISP_TXT_MAX_COLS 14 // 文本方式最大列
// ------------- 文本方式个体函数使能控制 -----------------
#define LCD_DISP_TXT_BCD_EN 1 // 文本方式显示BCD unsigned char 类型 0禁止
#define LCD_DISP_TXT_CHAR_EN 1 // 文本方式显示一个字符 0禁止
#define LCD_DISP_TXT_CLR_LINE_EN 1 // 文本方式清除一行显示信息(ASCII码) 0禁止
#define LCD_DISP_TXT_CLR_SCR_EN 1 // 文本方式清除全屏 0禁止
#define LCD_DISP_TXT_HEX_EN 1 // 文本方式显示一个HEX数据 unsigned char 类型 0禁止
#define LCD_DISP_TXT_STR_EN 1 // 文本方式显示一串字符 0禁止
#endif
#if LCD_EXT_EN > 0
#define LCD_DISP_VOL_EN 1 // 显示音量
#define LCD_DISP_TIME_EN 1 // 显示播放时间
#endif
#endif
/********************************************************************************************************
* I/O
********************************************************************************************************/
#if LCD_MODULE_EN > 0
/*
LCD3310(PCD8544) C语言驱动
LCD引脚定义
1---VCC
2---SCLK
3---SDIN
4---D/C
5---SCE
6---GND
7---VOUT
8---RES
9---VCC*/
//定义MCU与LCD的接口
#define LCD_IO_DC 0 // 命令/数据选择I/O
#define LCD_IO_SCE 2 // 选择I/O
#define LCD_IO_RES 3 // LCD复位I/O
#define LCD_IO_SCLK 1 // 串行时钟I/O
#define LCD_IO_SDAT 2 // 串行数据I/O
#define LCD_IO_LAMP 0 // LCD背光(这里暂时未用)
#define LCD_DC_LOW() CLRBIT(PORTF, LCD_IO_DC)
#define LCD_DC_HIGH() SETBIT(PORTF, LCD_IO_DC)
#define LCD_RES_LOW() CLRBIT(PORTF, LCD_IO_RES)
#define LCD_RES_HIGH() SETBIT(PORTF, LCD_IO_RES)
#define LCD_SCE_LOW() CLRBIT(PORTF, LCD_IO_SCE)
#define LCD_SCE_HIGH() SETBIT(PORTF, LCD_IO_SCE)
#define LCD_LAMP_LOW() CLRBIT()
#define LCD_LAMP_HIGH() SETBIT()
#define LCD_DDR_DC_LOW() CLRBIT(DDRF, LCD_IO_DC)
#define LCD_DDR_DC_HIGH() SETBIT(DDRF, LCD_IO_DC)
#define LCD_DDR_RES_LOW() CLRBIT(DDRF, LCD_IO_RES)
#define LCD_DDR_RES_HIGH() SETBIT(DDRF, LCD_IO_RES)
#define LCD_DDR_SCE_LOW() CLRBIT(DDRF, LCD_IO_SCE)
#define LCD_DDR_SCE_HIGH() SETBIT(DDRF, LCD_IO_SCE)
#define LCD_DDR_LAMP_LOW() CLRBIT()
#define LCD_DDR_LAMP_HIGH() SETBIT()
#endif
/********************************************************************************************************
* 数据结构及LCD的全局变量
********************************************************************************************************/
#if LCD_MODULE_EN > 0
#define TCOLOR unsigned char
#endif
/********************************************************************************************************
* 函数 先分图形/文本类 然后按函数按字母先后顺序排列
********************************************************************************************************/
#if LCD_MODULE_EN > 0
#define LCDDispDelayNMs(a) DelayNMs(a)
void LCDDispInit (void);
void LCDDispSetLamp (BOOL state);
#if LCD_GRH_EN > 0
void LCDDispGrhBCD (INT8U x, INT8U y, INT8U dat);
void LCDDispGrhChar (INT8U x, INT8U y, char c);
void LCDDispGrhClrScr (void);
void LCDDispGrhClrLine (INT8U x);
void LCDDispGrhHex (INT8U x, INT8U y, INT8U dat);
void LCDDispGrhStr (INT8U x, INT8U y, char *str);
#endif
#if LCD_TXT_EN > 0
void LCDDispTxtBCD (INT8U row, INT8U col, INT8U dat);
void LCDDispTxtChar (INT8U row, INT8U col, char c);
void LCDDispTxtClrScr (void);
void LCDDispTxtClrLine (INT8U row);
void LCDDispTxtHex (INT8U row, INT8U col, INT8U dat);
void LCDDispTxtStr (INT8U row, INT8U col, char *str);
#endif
#endif
/********************************************************************************************************
* End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -