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

📄 time.c

📁 LCD多级菜单显示程序!320*240的LCD显示器!全部调试通过的!
💻 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 + -