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

📄 ds12c887.c

📁 这是单片机系统中时钟芯片DS12c887的操作源代码,可以作为自己设计时钟系统的参考
💻 C
字号:
#include "D:\yang_protel\program\DS12C887.H"


/************************************************************* 
函数功能:该函数用来启动时钟芯片工作 
应用范围:仅在时钟芯片首次使用时用到一次 
入口参数: 
出口参数: 
*************************************************************/ 
void StartDs12c887(void) 
{ 
chRegA = CMD_START_DS12C887; 
} 

/************************************************************* 
函数功能:该函数用来关闭时钟芯片 
应用范围:一般用不到 
入口参数: 
出口参数: 
*************************************************************/ 
void CloseDs12c887(void) 
{ 
chRegA = CMD_CLOSE_DS12C887; 
} 

void InitDs12c887() 
{ 
StartDs12c887(); 
chRegB = chRegB | MASK_SETB_SET; /* 禁止刷新 */ 
chRegB = chRegB & MASK_CLR_DM | MASK_SETB_2412 \ 
& MASK_CLR_DSE; 

/* 使用BCD码格式、24小时模式、不使用 
夏令时 */ 
chCenturyChannel = 0x21; /* 设置为21世纪 */ 
chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */ 
} 

/************************************************************* 
函数功能:该函数用来从时钟芯片读取秒字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetSeconds(void) 
{ 
return(chSecondsChannel); 
} 

/************************************************************* 
函数功能:该函数用来从时钟芯片读取分字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetMinutes(void) 
{ 
return(chMinutesChannel); 
} 

/************************************************************* 
函数功能:该函数用来从时钟芯片读取小时字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetHours(void) 
{ 
return(chHoursChannel); 
} 

/************************************************************* 
函数功能:该函数用来从时钟芯片读取日字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetDate(void) 
{ 
return(chDateChannel); 
} 
/************************************************************* 
函数功能:该函数用来从时钟芯片读取月字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetMonth(void) 
{ 
return(chMonthChannel); 
} 

/************************************************************* 
函数功能:该函数用来从时钟芯片读取年字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetYear(void) 
{ 
return(chYearChannel); 
} 

/************************************************************* 
函数功能:该函数用来从时钟芯片读取世纪字节 
应用范围: 
入口参数: 
出口参数: 
*************************************************************/ 
unsigned char GetCentury(void) 
{ 
return(chCenturyChannel); 
} 

/************************************************************* 
函数功能:该函数用来设置时钟芯片的时间 
应用范围: 
入口参数:chSeconds、chMinutes、chHours是设定时间的压缩BCD码 
出口参数: 
*************************************************************/ 
void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned char 
chHours) 
{ 
chRegB = chRegB | MASK_SETB_SET; /* 禁止刷新 */ 
chSecondsChannel = chSeconds; 
chMinutesChannel = chMinutes; 
chHoursChannel = chHours; 
chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */ 
} 

/************************************************************* 
函数功能:该函数用来设置时钟芯片的日期 
应用范围: 
入口参数:chDate、chMonth、chYear是设定日期的压缩BCD码 
出口参数: 
*************************************************************/ 
void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear) 
{ 
chRegB = chRegB | MASK_SETB_SET; /* 禁止刷新 */ 
chDateChannel = chDate; 
chMonthChannel = chMonth; 
chYearChannel = chYear; 
chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */ 
}

⌨️ 快捷键说明

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