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

📄 lcdm_hd61202_128d64.h

📁 基于AVR开发系统的DS12887操作程序
💻 H
字号:
/* 
****************************************************************************************
头部文件名:        LCDM_HD61202_128D64.H
头部文件名称:      128×64液晶模块(控制芯片:HD61202/3)的头部文件
文件版本:        1.0
文件功能:          
    本文件是对 ATmega16 控制128×64液晶模块(控制芯片:HD61202/3)显示
    源程序文件的常量、数据结构类型进行定义和函数原型声明的头部文件。
文件说明:

编译工具软件:      CodeVision AVR C 版本:1.24.6 以上
链接文件:          LCDM_HD61202_128D64.lib

编作者:            磊元
编作者 E-Mail:     PTZSW@163.COM
编制日期:          2005年5月18日
------------------------------------------------------------------------------
头部文件版本历史:
2005年5月18日 -------- 版本 1.0 :发行版本
****************************************************************************************
*/


/*======================================================================================
下面两条指令是本头部文件条件编译的预处理指令,用于防止本头部文件被其他文件重复引用。
======================================================================================*/
#ifndef LCDM_HD61202_128D64_H         /* "LCDM_HD61202_128D64_H" 条件编译开始 */
#define LCDM_HD61202_128D64_H


/*======================================================================================
              本头部文件包括的其他头部文件
======================================================================================*/
#include "MCU8Bit_C_DataType.H"       /* 包含数据类型和位名定义的头部文件 */


/*======================================================================================
下面这三条指令是用于区分编译系统为 C++ 或 C 的预处理指令。
"__cplusplus" 为 C++ 预处理器名字,这三条指令表明接在其下面的那些指令为 C 程序特征。
======================================================================================*/
#ifdef __cplusplus
extern "C" {
#endif

//#define LCDM_DI_RW_EN_PinShare        /* "液晶模块的 DI、RW、EN 三个控制引脚与 */
                                      /*  共它器件共用I/O口" 条件定义       */
/*======================================================================================
控制液晶模块显示功能的输入/输出引脚定义:
注:下列这些定义与硬件设计相关,如需改变控制的输入/输出引脚仅在此重新定义即可。
======================================================================================*/
#define LCDM_BL_DDR        DDRD       /* 液晶的背景灯控制端口 */
#define LCDM_BL_PORT       PORTD      /* 液晶的背景灯控制端口数据寄存器 */
#define LCDM_BL_PINNum     BIT7       /* 液晶的背景灯控制引脚数字 */
#define LCDM_DI_DDR        DDRB       /* 液晶的寄存器选择控制端口 */
#define LCDM_DI_PORT       PORTB      /* 液晶的寄存器选择控制端口数据寄存器 */
#define LCDM_DI_PINNum     BIT4       /* 液晶的寄存器选择控制引脚数字 */
#define LCDM_RW_DDR        DDRB       /* 液晶的读/写选择控制端口 */
#define LCDM_RW_PORT       PORTB      /* 液晶的读/写选择控制端口数据寄存器 */
#define LCDM_RW_PINNum     BIT5       /* 液晶的读/写选择控制引脚数字 */
#define LCDM_EN_DDR        DDRB       /* 液晶的使能信号控制端口 */
#define LCDM_EN_PORT       PORTB      /* 液晶的使能信号控制端口数据寄存器 */
#define LCDM_EN_PINNum     BIT6       /* 液晶的使能信号控制引脚数字 */
#define LCDM_CS1_DDR       DDRC       /* 液晶的片选1控制端口 */
#define LCDM_CS1_PORT      PORTC      /* 液晶的片选1控制端口数据寄存器 */
#define LCDM_CS1_PINNum    BIT7       /* 液晶的片选1控制引脚数字 */
#define LCDM_CS2_DDR       DDRC       /* 液晶的片选2控制端口 */
#define LCDM_CS2_PORT      PORTC      /* 液晶的片选2控制端口数据寄存器 */
#define LCDM_CS2_PINNum    BIT6       /* 液晶的片选2控制引脚数字 */
#define LCDM_DATA_DDR      DDRA       /* 液晶模块的数据端口 */
#define LCDM_DATA_PORT     PORTA      /* 液晶模块的数据端口输出数据寄存器 */
#define LCDM_DATA_PIN      PINA       /* 液晶模块的数据端口输入数据寄存器 */
//#define LCDM_RST_DDR       DDRD       /* 液晶的复位信号控制端口 */
//#define LCDM_RST_PORT      PORTD      /* 液晶的复位信号控制端口数据寄存器 */
//#define LCDM_RST_PINNum    BIT2       /* 液晶的复位信号控制引脚数字 */
//#define LCDM_Use_ResetPin             /* 系统使用液晶复位控制引脚的条件定义 */

/*======================================================================================
控制液晶模块显示的特定控制数据常数定义:
======================================================================================*/
#define LCDM_DataBits      8          /* 液晶模块显示数据的字符位长 */
#define LCDM_MaxColumnDot  64/8       /* 液晶屏幕上可显示的最大列点阵数 */
#define LCDM_MaxRowDot     64         /* 液晶屏幕上可显示的最大行点阵数 */
#define LCDM_ON_Display    63         /* 打开液晶显示的控制指令字 */
#define LCDM_OFF_Display   62         /* 关闭液晶显示的控制指令字 */
#define LCDM_DataPage_1    184        /* 显示数据为第1页的控制指令字 */
#define LCDM_Yaddress_1    64         /* 显示数据的Y地址为1的控制指令字 */
#define LCDM_StartLine_1   192        /* 开始显示行数为1的控制指令字 */


/*======================================================================================
源程序文件中的字符化常数定义:
======================================================================================*/
#ifndef DEFINE_ON_AND_OFF_VALUE       /* "DEFINE_ON_AND_OFF_VALUE" 条件编译开始 */
#define DEFINE_ON_AND_OFF_VALUE
  #define ON                 1          /* 定义 ON 字符值为 1 */
  #define OFF                0          /* 定义 OFF 字符值为 0 */
#endif                                /* "DEFINE_ON_AND_OFF_VALUE" 条件编译结束 */

#define LCDM_CS1           1          /* 定义液晶模块 CS1 字符值为 1 ,即选中片1 */
#define LCDM_CS2           2          /* 定义液晶模块 CS2 字符值为 2 ,即选中片2 */


/*======================================================================================
下面这三条指令是用于与上面三条区分编译系统为 C++ 或 C 的预处理指令相对应。用于指定
 extern "C" 链接指示符作用域,此处的"}"与上面的"{"相对应,为链接指示符作用结束符。
======================================================================================*/
#ifdef __cplusplus
}
#endif


/*======================================================================================
LCDM_HD61202_128D64.lib 库文件中的函数原型声明:
======================================================================================*/
#pragma used+
/*----------------------------------------------------------------------------
函数功能:    本函数用于控制液晶模块的MCU输入/输出引脚的初始化操作。
备注:        本函数仅在主函数中调用一次即可,除非释放各控制引脚作为其他用途,
              如要再使用这些控制引脚来控制液晶模块则需在主函数中再调用一次本函数。
----------------------------------------------------------------------------*/
void LCDM_initialization(void);

/*----------------------------------------------------------------------------
函数功能:    本函数用于控制液晶模块背景灯打开/关闭的操作。
函数入口参数:BL_status ------ 仅可取二个值 ON 或 OFF 中的一个。
----------------------------------------------------------------------------*/
void LCDM_BackgroundLight(Uchar8 BL_status);

/*----------------------------------------------------------------------------
函数功能:    本函数用于控制液晶模块显示打开/关闭的操作。
函数入口参数:Dpy_status ------ 仅可取二个值 ON 或 OFF 中的一个。
----------------------------------------------------------------------------*/
void LCDM_Display(Uchar8 Dpy_status);

/*----------------------------------------------------------------------------
函数功能:    本函数用于控制液晶模块设置显示开始行的操作。
函数入口参数:line_num ------ 开始行数值。(数值范围:line_num ≤63)
----------------------------------------------------------------------------*/
void LCDM_SetStartLine(Uchar8 line_num);

/*----------------------------------------------------------------------------
函数功能:    本函数用于向液晶模块写入控制指令代码。
函数入口参数:WriteCode ------ 向液晶模块写入的控制指令代码 。
              WC_CSNum ------- 片选数值,仅可取二个值 CS1 或 CS2 中的一个。
----------------------------------------------------------------------------*/
void LCDM_WriteCode(Uchar8 WriteCode, Uchar8 WC_CSNum);

/*----------------------------------------------------------------------------
函数功能:    本函数用于向液晶模块写入显示数据。
函数入口参数:WriteData ------ 向液晶模块写入的显示数据 。
              WD_CSNum ------- 片选数值,仅可取二个值 CS1 或 CS2 中的一个。
----------------------------------------------------------------------------*/
void LCDM_WriteData(Uchar8 WriteData, Uchar8 WD_CSNum);

/*----------------------------------------------------------------------------
函数功能:    本函数用于在液晶屏幕上在指定坐标位置(x,y)显示单个点阵字符的操作。
函数入口参数:x ----------------- X轴坐标,其数值范围:x ≤63。
              y ----------------- Y轴坐标,其数值范围:y ≤7。
              *pdc_address ------ 显示字符点阵数据存储地址,即指向存储点阵数据的指针。
              dc_row_num -------- 显示字符行点数,其数值范围:x ≤127。
              dc_column_num ----- 显示字符列点数,其数值范围:x ≤63。
备注:        ①.参数 y(Y轴坐标)的数值范围:y ≤7。
              ②.在移植程序时,请注意 *pdc_address 参数前的 flash 关键字,此关键字
			      为 CodeVision AVR C 所扩充,在移植时要做相应修改。
----------------------------------------------------------------------------*/
void LCDM_Display_Character(Uchar8 x,                        /* X轴坐标 */ 
                            Uchar8 y,                        /* Y轴坐标 */ 
                            const Uchar8 flash *pdc_address, /* 字符点阵数据存储地址 */ 
                            const Uchar8 dc_row_num,         /* 显示字符行点数 */ 
                            const Uchar8 dc_column_num);     /* 显示字符列点数 */

/*----------------------------------------------------------------------------
函数功能:    本函数用于在液晶屏幕上全屏幕填充单一字符数据的操作。
函数入口参数:all_data ------------ 填充的字符数据,例:清屏操作的字符数据可能为 0x00 。
              max_row_num --------- 最大行点数值,为63。
       max_column_num ------ 最大列点数值,为63。
备注:        对于片选数值的定义必须从 1 到 n 连续排列,如下所示 1,2,3,……,n-1,n 。
----------------------------------------------------------------------------*/
void LCDM_AllScreenData(const Uchar8 all_data,           /* 填充的字符数据 */
                        const Uchar8 max_row_num,        /* 最大行点数 */
                        const Uchar8 max_column_num);    /* 最大列点数 */

#pragma used-


/*======================================================================================
本头部文件链接的库文件。用于通知编译器从下面库文件中编译或链接函数:
======================================================================================*/
#pragma library LCDM_HD61202_128D64.lib


#endif                                /* "LCDM_HD61202_128D64_H" 条件编译结束 */



/*
****************************************************************************************
                             本头部文件到此结束
****************************************************************************************
*/

⌨️ 快捷键说明

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