📄 ds12887.c
字号:
#include "at89x52.h"
#include "absacc.h" //包含 XBYTE 类型的头文件
#define YEAR_IN_RTC 0
#define MONTH_IN_RTC 1
#define DAY_IN_RTC 2
#define HOUR_IN_RTC 3
#define MINUTE_IN_RTC 4
#define SECOND_IN_RTC 5
#define SECOND_ALARM_IN_RTC 6
#define MINUTE_ALARM_IN_RTC 7
#define HOUR_ALARM_IN_RTC 8
#define RTC_SECONDS XBYTE[0xfe00]
#define RTC_SECONDS_ALARM XBYTE[0xfe01]
#define RTC_MINUTES XBYTE[0xfe02]
#define RTC_MINUTES_ALARM XBYTE[0xfe03]
#define RTC_HOURS XBYTE[0xfe04]
#define RTC_HOURS_ALARM XBYTE[0xfe05]
#define RTC_DAY_OF_WEEK XBYTE[0xfe06]
#define RTC_DAYS XBYTE[0xfe07]
#define RTC_MONTHS XBYTE[0xfe08]
#define RTC_YEARS XBYTE[0xfe09]
#define RTC_DSA XBYTE[0xfe0a]
#define RTC_DSB XBYTE[0xfe0b]
#define RTC_DSC XBYTE[0xfe0c]
#define RTC_DSD XBYTE[0xfe0d]
void RTC_Init(void)
{
RTC_DSA=0x2f;
// RTC_DSB=RTC_DSB|0x80; //禁止更新
RTC_DSB=0x46; //更新中断,闹钟中断,周期中断允许 24时制
// RTC_DSB=RTC_DSB&0x7f; //允许更新
// RTC_DSC=0x00;
// ACC=RTC_DSD;
}
unsigned char Read_RTC(unsigned char option)
{
switch(option)
{
case YEAR_IN_RTC: return(RTC_YEARS); break;
case MONTH_IN_RTC: return(RTC_MONTHS); break;
case DAY_IN_RTC: return(RTC_DAYS); break;
case HOUR_IN_RTC: return(RTC_HOURS); break;
case MINUTE_IN_RTC:return(RTC_MINUTES);break;
case SECOND_IN_RTC:return(RTC_SECONDS);break;
default: break;
}
}
void Write_RTC(unsigned char option,unsigned char j)
{
// RTC_DSB=RTC_DSB|0x80; //禁止更新
switch(option)
{
case YEAR_IN_RTC:RTC_YEARS=j; break;
case MONTH_IN_RTC:RTC_MONTHS=j; break;
case DAY_IN_RTC:RTC_DAYS=j; break;
case HOUR_IN_RTC:RTC_HOURS=j; break;
case MINUTE_IN_RTC:RTC_MINUTES=j;break;
case SECOND_IN_RTC:RTC_SECONDS=j;break;
case SECOND_ALARM_IN_RTC:RTC_SECONDS_ALARM=j;break;
case MINUTE_ALARM_IN_RTC:RTC_MINUTES_ALARM=j;break;
case HOUR_ALARM_IN_RTC:RTC_HOURS_ALARM=j;break;
default: break;
}
// RTC_DSB=RTC_DSB&0x7f; //允许更新
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -