?? lcdm_hd61202_128d64.h
字號:
/*
****************************************************************************************
頭部文件名: LCDM_HD61202_128D64.H
頭部文件名稱: 128×64液晶模塊(控制芯片:HD61202/3)的頭部文件
文件版本: 1.0
文件功能:
本文件是對 ATmega16 控制128×64液晶模塊(控制芯片:HD61202/3)顯示
源程序文件的常量、數(shù)據(jù)結(jié)構(gòu)類型進行定義和函數(shù)原型聲明的頭部文件。
文件說明:
編譯工具軟件: CodeVision AVR C 版本:1.24.6 以上
鏈接文件: LCDM_HD61202_128D64.lib
編作者: 磊元
編作者 E-Mail: PTZSW@163.COM
編制日期: 2005年5月18日
------------------------------------------------------------------------------
頭部文件版本歷史:
2005年5月18日 -------- 版本 1.0 :發(fā)行版本
****************************************************************************************
*/
/*======================================================================================
下面兩條指令是本頭部文件條件編譯的預(yù)處理指令,用于防止本頭部文件被其他文件重復(fù)引用。
======================================================================================*/
#ifndef LCDM_HD61202_128D64_H /* "LCDM_HD61202_128D64_H" 條件編譯開始 */
#define LCDM_HD61202_128D64_H
/*======================================================================================
本頭部文件包括的其他頭部文件
======================================================================================*/
#include "MCU8Bit_C_DataType.H" /* 包含數(shù)據(jù)類型和位名定義的頭部文件 */
/*======================================================================================
下面這三條指令是用于區(qū)分編譯系統(tǒng)為 C++ 或 C 的預(yù)處理指令。
"__cplusplus" 為 C++ 預(yù)處理器名字,這三條指令表明接在其下面的那些指令為 C 程序特征。
======================================================================================*/
#ifdef __cplusplus
extern "C" {
#endif
//#define LCDM_DI_RW_EN_PinShare /* "液晶模塊的 DI、RW、EN 三個控制引腳與 */
/* 共它器件共用I/O口" 條件定義 */
/*======================================================================================
控制液晶模塊顯示功能的輸入/輸出引腳定義:
注:下列這些定義與硬件設(shè)計相關(guān),如需改變控制的輸入/輸出引腳僅在此重新定義即可。
======================================================================================*/
#define LCDM_BL_DDR DDRD /* 液晶的背景燈控制端口 */
#define LCDM_BL_PORT PORTD /* 液晶的背景燈控制端口數(shù)據(jù)寄存器 */
#define LCDM_BL_PINNum BIT7 /* 液晶的背景燈控制引腳數(shù)字 */
#define LCDM_DI_DDR DDRB /* 液晶的寄存器選擇控制端口 */
#define LCDM_DI_PORT PORTB /* 液晶的寄存器選擇控制端口數(shù)據(jù)寄存器 */
#define LCDM_DI_PINNum BIT4 /* 液晶的寄存器選擇控制引腳數(shù)字 */
#define LCDM_RW_DDR DDRB /* 液晶的讀/寫選擇控制端口 */
#define LCDM_RW_PORT PORTB /* 液晶的讀/寫選擇控制端口數(shù)據(jù)寄存器 */
#define LCDM_RW_PINNum BIT5 /* 液晶的讀/寫選擇控制引腳數(shù)字 */
#define LCDM_EN_DDR DDRB /* 液晶的使能信號控制端口 */
#define LCDM_EN_PORT PORTB /* 液晶的使能信號控制端口數(shù)據(jù)寄存器 */
#define LCDM_EN_PINNum BIT6 /* 液晶的使能信號控制引腳數(shù)字 */
#define LCDM_CS1_DDR DDRC /* 液晶的片選1控制端口 */
#define LCDM_CS1_PORT PORTC /* 液晶的片選1控制端口數(shù)據(jù)寄存器 */
#define LCDM_CS1_PINNum BIT7 /* 液晶的片選1控制引腳數(shù)字 */
#define LCDM_CS2_DDR DDRC /* 液晶的片選2控制端口 */
#define LCDM_CS2_PORT PORTC /* 液晶的片選2控制端口數(shù)據(jù)寄存器 */
#define LCDM_CS2_PINNum BIT6 /* 液晶的片選2控制引腳數(shù)字 */
#define LCDM_DATA_DDR DDRA /* 液晶模塊的數(shù)據(jù)端口 */
#define LCDM_DATA_PORT PORTA /* 液晶模塊的數(shù)據(jù)端口輸出數(shù)據(jù)寄存器 */
#define LCDM_DATA_PIN PINA /* 液晶模塊的數(shù)據(jù)端口輸入數(shù)據(jù)寄存器 */
//#define LCDM_RST_DDR DDRD /* 液晶的復(fù)位信號控制端口 */
//#define LCDM_RST_PORT PORTD /* 液晶的復(fù)位信號控制端口數(shù)據(jù)寄存器 */
//#define LCDM_RST_PINNum BIT2 /* 液晶的復(fù)位信號控制引腳數(shù)字 */
//#define LCDM_Use_ResetPin /* 系統(tǒng)使用液晶復(fù)位控制引腳的條件定義 */
/*======================================================================================
控制液晶模塊顯示的特定控制數(shù)據(jù)常數(shù)定義:
======================================================================================*/
#define LCDM_DataBits 8 /* 液晶模塊顯示數(shù)據(jù)的字符位長 */
#define LCDM_MaxColumnDot 64/8 /* 液晶屏幕上可顯示的最大列點陣數(shù) */
#define LCDM_MaxRowDot 64 /* 液晶屏幕上可顯示的最大行點陣數(shù) */
#define LCDM_ON_Display 63 /* 打開液晶顯示的控制指令字 */
#define LCDM_OFF_Display 62 /* 關(guān)閉液晶顯示的控制指令字 */
#define LCDM_DataPage_1 184 /* 顯示數(shù)據(jù)為第1頁的控制指令字 */
#define LCDM_Yaddress_1 64 /* 顯示數(shù)據(jù)的Y地址為1的控制指令字 */
#define LCDM_StartLine_1 192 /* 開始顯示行數(shù)為1的控制指令字 */
/*======================================================================================
源程序文件中的字符化常數(shù)定義:
======================================================================================*/
#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" 條件編譯結(jié)束 */
#define LCDM_CS1 1 /* 定義液晶模塊 CS1 字符值為 1 ,即選中片1 */
#define LCDM_CS2 2 /* 定義液晶模塊 CS2 字符值為 2 ,即選中片2 */
/*======================================================================================
下面這三條指令是用于與上面三條區(qū)分編譯系統(tǒng)為 C++ 或 C 的預(yù)處理指令相對應(yīng)。用于指定
extern "C" 鏈接指示符作用域,此處的"}"與上面的"{"相對應(yīng),為鏈接指示符作用結(jié)束符。
======================================================================================*/
#ifdef __cplusplus
}
#endif
/*======================================================================================
LCDM_HD61202_128D64.lib 庫文件中的函數(shù)原型聲明:
======================================================================================*/
#pragma used+
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于控制液晶模塊的MCU輸入/輸出引腳的初始化操作。
備注: 本函數(shù)僅在主函數(shù)中調(diào)用一次即可,除非釋放各控制引腳作為其他用途,
如要再使用這些控制引腳來控制液晶模塊則需在主函數(shù)中再調(diào)用一次本函數(shù)。
----------------------------------------------------------------------------*/
void LCDM_initialization(void);
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于控制液晶模塊背景燈打開/關(guān)閉的操作。
函數(shù)入口參數(shù):BL_status ------ 僅可取二個值 ON 或 OFF 中的一個。
----------------------------------------------------------------------------*/
void LCDM_BackgroundLight(Uchar8 BL_status);
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于控制液晶模塊顯示打開/關(guān)閉的操作。
函數(shù)入口參數(shù):Dpy_status ------ 僅可取二個值 ON 或 OFF 中的一個。
----------------------------------------------------------------------------*/
void LCDM_Display(Uchar8 Dpy_status);
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于控制液晶模塊設(shè)置顯示開始行的操作。
函數(shù)入口參數(shù):line_num ------ 開始行數(shù)值。(數(shù)值范圍:line_num ≤63)
----------------------------------------------------------------------------*/
void LCDM_SetStartLine(Uchar8 line_num);
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于向液晶模塊寫入控制指令代碼。
函數(shù)入口參數(shù):WriteCode ------ 向液晶模塊寫入的控制指令代碼 。
WC_CSNum ------- 片選數(shù)值,僅可取二個值 CS1 或 CS2 中的一個。
----------------------------------------------------------------------------*/
void LCDM_WriteCode(Uchar8 WriteCode, Uchar8 WC_CSNum);
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于向液晶模塊寫入顯示數(shù)據(jù)。
函數(shù)入口參數(shù):WriteData ------ 向液晶模塊寫入的顯示數(shù)據(jù) 。
WD_CSNum ------- 片選數(shù)值,僅可取二個值 CS1 或 CS2 中的一個。
----------------------------------------------------------------------------*/
void LCDM_WriteData(Uchar8 WriteData, Uchar8 WD_CSNum);
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于在液晶屏幕上在指定坐標(biāo)位置(x,y)顯示單個點陣字符的操作。
函數(shù)入口參數(shù):x ----------------- X軸坐標(biāo),其數(shù)值范圍:x ≤63。
y ----------------- Y軸坐標(biāo),其數(shù)值范圍:y ≤7。
*pdc_address ------ 顯示字符點陣數(shù)據(jù)存儲地址,即指向存儲點陣數(shù)據(jù)的指針。
dc_row_num -------- 顯示字符行點數(shù),其數(shù)值范圍:x ≤127。
dc_column_num ----- 顯示字符列點數(shù),其數(shù)值范圍:x ≤63。
備注: ①.參數(shù) y(Y軸坐標(biāo))的數(shù)值范圍:y ≤7。
②.在移植程序時,請注意 *pdc_address 參數(shù)前的 flash 關(guān)鍵字,此關(guān)鍵字
為 CodeVision AVR C 所擴充,在移植時要做相應(yīng)修改。
----------------------------------------------------------------------------*/
void LCDM_Display_Character(Uchar8 x, /* X軸坐標(biāo) */
Uchar8 y, /* Y軸坐標(biāo) */
const Uchar8 flash *pdc_address, /* 字符點陣數(shù)據(jù)存儲地址 */
const Uchar8 dc_row_num, /* 顯示字符行點數(shù) */
const Uchar8 dc_column_num); /* 顯示字符列點數(shù) */
/*----------------------------------------------------------------------------
函數(shù)功能: 本函數(shù)用于在液晶屏幕上全屏幕填充單一字符數(shù)據(jù)的操作。
函數(shù)入口參數(shù):all_data ------------ 填充的字符數(shù)據(jù),例:清屏操作的字符數(shù)據(jù)可能為 0x00 。
max_row_num --------- 最大行點數(shù)值,為63。
max_column_num ------ 最大列點數(shù)值,為63。
備注: 對于片選數(shù)值的定義必須從 1 到 n 連續(xù)排列,如下所示 1,2,3,……,n-1,n 。
----------------------------------------------------------------------------*/
void LCDM_AllScreenData(const Uchar8 all_data, /* 填充的字符數(shù)據(jù) */
const Uchar8 max_row_num, /* 最大行點數(shù) */
const Uchar8 max_column_num); /* 最大列點數(shù) */
#pragma used-
/*======================================================================================
本頭部文件鏈接的庫文件。用于通知編譯器從下面庫文件中編譯或鏈接函數(shù):
======================================================================================*/
#pragma library LCDM_HD61202_128D64.lib
#endif /* "LCDM_HD61202_128D64_H" 條件編譯結(jié)束 */
/*
****************************************************************************************
本頭部文件到此結(jié)束
****************************************************************************************
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -