📄 mainproc.h
字号:
/*********************************************************************
*Description: System Main Function Head File,
Define System Const , variable And MACRO
*File Name: Mainproc.h
*Use Compile Lanague: KEIL C51
*Version : V1.0
*Code Author: zhouhuanxi
*Date: 2005-01-14
CopyRight(C) 2005 -- SHENZHEN XINSANWEI Machine&Electronics CO.,LTD.
*********************************************************************/
#define FOSC_12MHZ
#undef FOSC_24MHZ
#undef FOSC_6MHZ
//=========================================================
//==================== 按键键值定义 =======================
//=========================================================
//Function Key Define Table
#define PAGEDOWN 0xEF //AN17上移
#define PAGEUP 0xFE //AN24下移
#define MOVE 0xFD //AN23移动(目前未使用)
#define BACK 0xDF //AN18返回
#define ENTER 0xFB //AN19确认
#define ESC 0xDF //AN18返回
#define CLEAR 0xD9
//无键按下返回键
#define NOKEY_PRESS 0xFF
//====================================================================
//================== 按键键值定义结束 ======================
//====================================================================
//====================================================================
//==================== 系统协议定义宏 ======================
//====================================================================
//定义消息框内容列表序号
#define WelcomeNo 0
#define PWDERR 1
#define InputPwdNo 2
//定义逻辑符号值
#define TRUE 1
#define FALSE 0
#define NULL 0
#define ERROR 0
#define RIGHT 1
//定义读ROM宏
#define CBYTE ((unsigned char volatile code *)0)
//====================================================================
//========== Define System Public Variable =============
//====================================================================
// 系统定时时间常数定义
#define T0_1S 34
#define T0_2S 67
#define T0_3S 100
#define T0_6S 200
#define T0_12S 400
#define T0_15S 500
#define T0_30S 1000
#define T0_60S 1000
#define T0_90S 1500
#define T0_NOUSE 0x00 //定时关闭背光无效
#define BEEP_OPEN 0x01
#define BEEP_CLOSE 0x00
#define MENUITEMONELCD 4 //一屏菜单数
#define MAINMENUITEMNUM 4 //主菜单条数
//====================================================================
// 定义DS1302RAM地址数据
#define DS1302Init_Flag0 0x55
#define DS1302Init_Flag1 0xAA
// 定义DS1302RAM地址分配表
#define DS1302Init_Addr0 0xC0
#define DS1302Init_Addr1 0xC2
#define DS1302Init_Addr2 0xC4
#define DS1302Init_Addr3 0xC6
#define Light_RAMAddr 0xCA
#define Beep_RAMAddr 0xCC
//====================================================================
//开背光
#define Light_On() \
{ \
Count_BG = 0; \
LCD_LED = 0; \
}
//====================================================================
//关背光
#define Light_Off() \
{ \
if(LightOnOff) \
{ \
LCD_LED = 1; \
Count_BG = 0; \
} \
}
#define Key_Continue(DTimer) \
{ \
KeyBool=0; \
KeyCount=DTimer; \
}
//====================================================================
//清看门狗
#define Clear_Dog() \
{ \
; \
}
//====================================================================
//启动并初始化延时返回
#define Delay_Ret(DelayTimev) \
{ \
ret_Flag = FALSE; \
Light_Destory = 0; \
RetDelay = DelayTimev; \
HaveKey_Flag = TRUE; \
}
//====================================================================
//加长返回时间
#define NoDelay_Ret() \
{ \
ret_Flag = FALSE; \
Light_Destory = 0x00; \
}
//====================================================================
//不启动延时返回功能
#define NoRet() \
{ \
ret_Flag = FALSE; \
Light_Destory = 0; \
HaveKey_Flag = FALSE; \
}
//===================================================================
//--------------------- 定时器T0初始化定时为60ms---------------------
#define Frequry_Sys_Osd 12000000 //系统主频率12MHz
#define TIMES_V 6000 //单位定时时间us
#define TIME_VMS 6
#define TIME_60ms_COUNT TIMES_V*Frequry_Sys_Osd/12
#define Set_Timer0_60ms() \
{ \
TH0=TIME_60ms_COUNT/256; \
TL0=TIME_60ms_COUNT%256; \
TR0=1; \
}
//=================================================
//MACRO: Delay
//Description: Delay Function
// TotalDelayTime0 = 10uS*250+1uS=2501uS=2.5mS
// SYSTEM Oscillate: Fosc=12MHz
//Parameters: No.
//Returns: NO.
//Side Effects: NO.
//=================================================
#define Delay2ms5() \
uint8 i=250;\
do \
{ \
_NOP_();\
_NOP_();\
_NOP_();\
_NOP_();\
_NOP_();\
_NOP_();\
_NOP_();\
_NOP_();\
}while(--i!=0);
//=================================================
//MACRO: DelayS
//Description: Delay Function
// TotalDelayTime0 = 6uS*40+1uS=2501uS=2.5mS
// SYSTEM Oscillate: Fosc=12MHz
//Parameters: No.
//Returns: NO.
//Side Effects: NO.
//=================================================
#define DelayS() \
uint8 i=40; \
do \
{ \
_NOP_(); \
_NOP_(); \
_NOP_(); \
_NOP_(); \
}while(--i!=0);
//====================================================================
//一点定时的结构
typedef struct
{
uint8 BitEnable;
uint8 Hour;
uint8 Minute;
}TimerType;
//引用的外部全局变量
extern bool ret_Flag; //延时返回标志1-- 延时返回
extern bool HaveKey_Flag; //延时返回标志1-- 开,0--关
extern bool LightOnOff; //背光开或关标志1--关,0--开
#if MAINMENUITEMNUM>4
extern bool First_Showmenu;
#endif
extern bool BeepOnOff;
extern idata uint16 volatile Count_BG;
extern idata uint16 volatile Light_Destory;
extern idata uint8 volatile Cursor_Count;
extern idata uint16 volatile RetDelay;
extern idata uint8 volatile Light_DelayTime;//背光由亮到灭的时间以秒为单位,当设为0时为背光不灭
//默认为3S
extern idata uint16 volatile Light_DT;
extern xdata TimerType TimerArray[36];
extern void _NOP_(void);
extern void Delay1(uint8 Interval);
extern void Delay(uint8 Interval);
extern void Beep(uint8 num);
extern void Status_Beep(void);
extern void BeepLing(void);
extern bool KeyBool;
extern idata uint8 volatile KeyCount;
/************************************************************************************************************
***************************************** END OF FILE *******************************************************
************************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -