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

📄 clock8025.h

📁 基于单片机的多费率电能表源程序
💻 H
字号:
#ifdef	CLOCK_GLOBALS
#define	CLOCK_EXT
#else
#define	CLOCK_EXT extern
#endif

/*******************************************
时钟设备从地址定义
*******************************************/
#define CLOCK8025_DEVICE_ADDRESS	0X64

/**************************************

RX8025寄存器地址宏定义

**************************************/
#define	SECONDS_REG_ADR   		0X00
#define	MINUTES_REG_ADR   		0X10
#define	HOURS_REG_ADR   		0X20
#define	WEEKDAYS_REG_ADR   		0X30
#define	DAYS_REG_ADR   			0X40
#define	MONTHS_REG_ADR  		0X50
#define	YEARS_REG_ADR   		0X60
#define	PRECISION_REG_ADR  		0X70
#define	DALARM_MINUTE_REG_ADR 		0X80
#define	DALARM_HOUR_REG_ADR 		0X90
#define	DALARM_DAY_REG_ADR 		0XA0
#define	WALARM_MINUTE_REG_ADR 		0XB0
#define	WALARM_HOUR_REG_ADR 			0XC0

#define	CONTROL1_REG_ADR 				0XE0
#define	CONTROL2_REG_ADR 				0XF0

/****************************************
设置寄存器宏定义
*****************************************/
/*********控制寄存器1******************/
#define	ALARM_W_ENABLE       			0X80
#define	ALARM_W_DISABLE					0X00

#define	ALARM_D_ENABLE       			0X40
#define	ALARM_D_DISABLE					0X00

#define	CLOCK_MODE_12					0X00
#define	CLOCK_MODE_24					0X20

#define	INTA_OUTPUT_OFF					0X00
#define	INTA_OUTPUT_FIXEDLOW			0X01
#define	INTA_OUTPUT_PULSE_2HZ			0X02
#define	INTA_OUTPUT_PULSE_1HZ			0X03
#define	INTA_OUTPUT_LEVEL_SECOND		0X04
#define	INTA_OUTPUT_LEVEL_MINUTE		0X05
#define	INTA_OUTPUT_LEVEL_HOUR			0X06
#define	INTA_OUTPUT_LEVEL_MONTH			0X07
/********控制寄存器2*****************/

#define	POWER_DROP_DETECT_VOLTAGE_2DOT1	0X00
#define	POWER_DROP_DETECT_VOLTAGE_1DOT3	0X80

#define	POWER_DROP_DETECTION_MAP		0X40
#define POWER_DROP_IS_DETECTED			0X40
#define POWER_DROP_IS_UNDETECTED		0X00
#define POWER_DROP_SIGN_CLEAR			0X00

#define OSC_STOP_DETECTION_MAP			0X20
#define OSC_STOP_IS_DETECTED			0X00
#define OSC_STOP_IS_UNDETECTED			0X20
#define OSC_STOP_SIGN_CLEAR				0X20

#define	POWER_RESET_DETECTION_MAP		0X10
#define POWER_RESET_IS_DETECTED			0X10
#define POWER_RESET_IS_UNDETECTED		0X00
#define POWER_RESET_SIGN_CLEAR			0X00


#define	INTA_OUTPUT_STATE_MAP			0X04
#define	INTA_OUTPUT_STATE_OFF			0X00
#define	INTA_OUTPUT_STATE_ON			0X04
		
#define ALARM_W_MATCH_MAP				0X02
#define ALARM_W_IS_MATCH				0X02
#define ALARM_W_IS_UNMATCH				0X00
#define ALARM_W_SIGN_CLEAR				0X00


#define ALARM_D_MATCH_MAP				0X01
#define ALARM_D_IS_MATCH				0X01
#define ALARM_D_IS_UNMATCH				0X00
#define ALARM_D_SIGN_CLEAR				0X00

//current date and time
struct StrTime
{
	unsigned char Second;
	unsigned char Minute;
	unsigned char Hour;
	unsigned char Weekday;
	unsigned char Day;
	unsigned char Month;
	unsigned char Year;
};
CLOCK_EXT struct StrTime CurrentTime;
CLOCK_EXT struct StrTime OldCurrentTime;
/****************************************
函数原型定义
******************************************/
CLOCK_EXT void Clock8025Init(void);
CLOCK_EXT void GetCurrentDateAndTime(void);
CLOCK_EXT void SetSystemDate(INT8U *PtTime);
CLOCK_EXT void SetSystemTime(INT8U *PtTime);
CLOCK_EXT void SetSystemDateAndTime(INT8U *PtTime);
CLOCK_EXT void AdjustClockPrecision(INT8U AdjustValue);

⌨️ 快捷键说明

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