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

📄 mainproc.h

📁 Keil C51完整的128X64LCD显示的电子打铃仪代码,内含DS1302X5045等操作代码
💻 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 + -