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

📄 ds12887.c

📁 自己以前编的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 + -