📄 time.c
字号:
//*****************************************************************
//DS12C887程序
//*****************************************************************
#include <stdio.h> /* standard I/O .h-file */
#include <reg51f.h>
#include <absacc.h>
#include "time.h"
#include "lcd.h"
/* 检查12c887是否处于忙状态 */
void CheckRTC(void)
{
unsigned char i;
i = RegA;
while(i&0x80) //REGA。7 UIP 为0表示至少在244US内芯片不会更新,此时,可以读写时间信息。
i = RegA;
}
void Init12c887(void)
{
RegB = 0x80; //芯片更新被禁止
CENTURY = 21; //century
RegA = 0x2f; //square wave with 2 Hz,pin SQW
RegB = 0x0e; //square wave enable,binary data mode,24-hour mode
}
/*取系统时间*/
void GetTime(struct TIME *S )
{
CheckRTC(); /* 检查12c887是否处于忙状态,忙则等待 */
S->sec = SECOND;
CheckRTC();
S->min = MINUTE;
CheckRTC();
S->hour = HOUR;
}
/*取系统日期*/
void GetDate(struct DATE *D )
{
CheckRTC();
D->day = DAY;
CheckRTC();
D->mon = MONTH;
CheckRTC();
D->year = YEAR;
// CheckRTC();
// D->week = Week;
}
/*设置系统日*/
/*void SetDate(year,month,day)
unsigned char year,month,day;
{
unsigned char i;
i = RegB;
RegB = 0x80; //REGB。7=1 芯片更新被禁止,禁止后进行日期参数的设置
DAY = day; //day
MONTH = month; //month
YEAR = year; //year
RegB= i;
}*/
/*设置系统时*/
/*void SetTime(hour,min,sec)
unsigned char hour,min,sec;
{
unsigned char i;
i = RegB; //REGB。7=1 芯片更新被禁止,禁止后进行时间参数的设置
SECOND = sec; //second
MINUTE = min; //minute
HOUR = hour; //hour
RegB = i;
}*/
/******************************************************
功能:12C887定闹子程序。
描述:clock_time(t_min,t_sec);
参数:定闹时间t(1-120)分钟
返回:无
影响:无
*******************************************************/
/*void clock_time(t_min,t_sec)
unsigned char t_min,t_sec;
{
unsigned char sec_t,min_t,hour_t,t1;
t1 = t_min/60;
t_min = t_min%60;
CheckRTC();
sec_t = SECOND;
min_t = MINUTE;
hour_t = HOUR;
sec_t = sec_t+t_sec;
if(sec_t>=60)
{
min_t += sec_t/60;
sec_t = sec_t%60;
}
SEC_ALM = sec_t;
min_t = min_t + t_min;
if(min_t<60)
{
MIN_ALM = min_t;
HOUR_ALM = hour_t+t1;
}
else
{
MIN_ALM = min_t-60;
hour_t = hour_t + 1 +t1;
if(hour_t<24)
HOUR_ALM = hour_t;
else
HOUR_ALM = hour_t-24;
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -