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

📄 lcd.h

📁 手机液晶3310驱动程序的中文说明
💻 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 + -