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

📄 rtc_ds12887.h

📁 ATmega16开发,外围芯片LCDM_HD61202_128D64及RTC_DS12887
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -