📄 rtc_ds12887.h
字号:
#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" 条件编译结束 */
/*======================================================================================
下面这三条指令是用于与上面三条区分编译系统为 C++ 或 C 的预处理指令相对应。用于指定
extern "C" 链接指示符作用域,此处的"}"与上面的"{"相对应,为链接指示符作用结束符。
======================================================================================*/
#ifdef __cplusplus
}
#endif
/*======================================================================================
RTC_DS12887.C 源程序文件中的函数原型声明:
======================================================================================*/
#pragma used+
/*----------------------------------------------------------------------------
全局静态变量声明:
----------------------------------------------------------------------------*/
extern volatile Uchar8 tasks_time; /* 时间消息的任务变量 */
/* 时间消息的任务变量的各位定义如下:
┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃ BIT7 ┃ BIT6 ┃ BIT5 ┃ BIT4 ┃ BIT3 ┃ BIT2 ┃ BIT1 ┃ BIT0 ┃
┣━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━┫
┃ 保留 ┃ 保留 ┃ 保留 ┃ 保留 ┃ 保留 ┃蜂鸣声响┃闹钟告警┃时间更新┃
┗━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━┛
*/
extern volatile Uint16 buzzer_alarm_counter; /* 蜂鸣器发出声响次数 */
extern volatile BCD_TIME time; /* 系统时间结构变量 */
/*----------------------------------------------------------------------------
函数功能: 本函数用于控制蜂鸣器发出声响告警的操作,设定蜂鸣器频率为 2000Hz 。
备注: 蜂鸣器设置为相应的控制引脚高电平时,蜂鸣器发出声响。
----------------------------------------------------------------------------*/
void Buzzer(void);
#ifdef MCU_No_ExtendedParallelBus /* 无扩展并行总线结构单片机的条件编译 */
/*----------------------------------------------------------------------------
函数功能: 本函数用于虚拟扩展并行总线结构的向外围器件写入数据操作。
函数入口参数:AccessAddress ------ 访问的外围器件地址。
WriteData ---------- 写入的数据。
备注: 本函数仅可访问外围器件的地址数不超过256个。
----------------------------------------------------------------------------*/
void VEPB_WriteData(volatile Uchar8 AccessAddress, volatile Uchar8 WriteData);
/*----------------------------------------------------------------------------
函数功能: 本函数用于虚拟扩展并行总线结构的从外围器件读取数据操作。
函数入口参数:AccessAddress ------ 访问的外围器件地址。
函数出口参数:读取的数据。
备注: 本函数仅可访问外围器件的地址数不超过256个。
----------------------------------------------------------------------------*/
Uchar8 VEPB_ReadData(volatile Uchar8 AccessAddress);
#endif /* "MCU_No_ExtendedParallelBus" 条件编译结束 */
/*----------------------------------------------------------------------------
函数功能: 本函数用于外部中断请求0中断向量的初始化操作。
备注: ①.本函数仅在主函数中调用一次即可。
②.要使能中断还必须在主程序中打开全局中断使能功能,推荐其指令如下:
SREG |= BIT7; / * 使能全局中断 * /
----------------------------------------------------------------------------*/
void external_INT0_initialization(void);
/*----------------------------------------------------------------------------
函数功能: 本函数用于 DS12887 闹钟中断请求和更新周期结束中断请求处理的中断服务程序。
备注: ①.注意:由于本函数为中断函数,故在调用和返回时无法进行明式数值传递,
因此将在函数体中隐式修改下面这几个全局静态变量数值。
⑴.时间消息的任务变量(tasks_time),用以通知系统执行相应的处理操作。
⑵.系统时间结构变量(time),从 DS12887 中读取更新的系统时间数值。
②.本函数需在设置的 DS12887 中断请求的中断向量函数中调用。在调用之前
需对该中断向量进行初始化,以使能该中断。例:如使用外部中断请求0,
可使用上面提供的 external_INT0_initialization() 函数进行初始化,
而将本本函数放在外部中断请求0服务程序中。
----------------------------------------------------------------------------*/
void DS12887_INT_ISR(void);
/*----------------------------------------------------------------------------
函数功能: 本函数用于 DS12887 的各控制输入/输出引脚定义和初始状态设置的初始化操作。
备注: 本函数仅在主函数中调用一次即可。
----------------------------------------------------------------------------*/
void RTC_DS12887_initialization(void);
/*----------------------------------------------------------------------------
函数功能: 本函数用于修改设置 DS12887 各个时标寄存器的时间数值(BCD 码)操作。
函数入口参数:SET_BCD_Year_H ------ 设置的年前两位时间数值(BCD码)。
SET_BCD_Year -------- 设置的年时间数值(BCD码)。
SET_BCD_Month ------- 设置的月份时间数值(BCD码)。
SET_BCD_Date -------- 设置的日期时间数值(BCD码)。
SET_BCD_Hour -------- 设置的小时时间数值(BCD码)。
SET_BCD_Minute ------ 设置的分钟时间数值(BCD码)。
SET_BCD_Second ------ 设置的秒时间数值(BCD码)。
SET_BCD_Week -------- 设置的星期时间数值(BCD码)。
备注:
----------------------------------------------------------------------------*/
void SET_DS12887_TimeRegister(volatile Uchar8 SET_BCD_Year_H, /* 年前两位 */
volatile Uchar8 SET_BCD_Year, /* 年 */
volatile Uchar8 SET_BCD_Month, /* 月份 */
volatile Uchar8 SET_BCD_Date, /* 日期 */
volatile Uchar8 SET_BCD_Hour, /* 小时 */
volatile Uchar8 SET_BCD_Minute, /* 分钟 */
volatile Uchar8 SET_BCD_Second, /* 秒 */
volatile Uchar8 SET_BCD_Week); /* 星期 */
/*----------------------------------------------------------------------------
函数功能: 本函数用于控制 DS12887 闹钟打开/关闭的操作。
函数入口参数:AC_status ------ 仅可取二个值 ON 或 OFF 中的一个。
----------------------------------------------------------------------------*/
void DS12887_AlarmClock(Uchar8 AC_status);
/*----------------------------------------------------------------------------
函数功能: 本函数用于设置 DS12887 闹钟各个时标寄存器的时间数值(BCD 码)操作。
函数入口参数:SET_BCD_HouAlm ------ 设置的分钟闹钟时间数值(BCD码)。
SET_BCD_MinAlm ------ 设置的小时闹钟时间数值(BCD码)。
备注: ①.设置 DS12887 闹钟各个时标寄存器的时间数值后,将打开闹钟告警中断。
②.本函数将秒闹钟时间数值自动设置为0秒。
----------------------------------------------------------------------------*/
void SET_DS12887_AlarmClock(Uchar8 SET_BCD_HouAlm, Uchar8 SET_BCD_MinAlm);
/*----------------------------------------------------------------------------
函数功能: 本函数用于闹钟告警中断的任务时间消息处理操作。
函数入口参数:BAC_number ------ 蜂鸣器发出声响次数值。
本函数还将在函数体中检查隐含的全局静态变量参数变量 tasks_time
(时间消息的任务)位1的布尔值而执行发出声响告警操作。
备注: ①.本函数需要放在主函数的不间断循环体中运行。
②.本函数在执行过程中将修改 tasks_time(时间消息的任务)变量的位1
和位2,与 buzzer_alarm_counte(蜂鸣器发出声响次数)变量的数值。
----------------------------------------------------------------------------*/
void Tasks_AlarmClock(Uint16 BAC_number);
/*----------------------------------------------------------------------------
函数功能: 本函数用于时间更新中断的任务时间消息处理操作。
函数入口参数:LCDM_ShowMode --- 在液晶上显示日期和时间的点阵字符样式选择值。
共有下列两种选择值和点阵字符样式供选择:
入口参数= 8 :8×16点阵字符样式。
入口参数= 16 :16×16点阵字符样式。
本函数还将在函数体中检查隐含的全局静态变量参数变量 tasks_time
(时间消息的任务)位0的布尔值而执行时间更新操作。
备注: ①.本函数需要放在主函数的不间断循环体中运行。
②.本函数在执行过程中将修改 tasks_time(时间消息的任务)变量的位0。
----------------------------------------------------------------------------*/
void Tasks_TimeUpdate(Uchar8 LCDM_ShowMode);
#pragma used-
/*======================================================================================
本头部文件链接的库文件。用于通知编译器从下面库文件中编译或链接函数:
======================================================================================*/
#pragma library RTC_DS12887.lib
#endif /* "RTC_DS12887_H" 条件编译结束 */
/*
****************************************************************************************
本头部文件到此结束
****************************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -