📄 pcf8563.c
字号:
#ifndef _Include
#include "Include.h"
#endif
unsigned char TIME[16]={0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x03,0x01};//P8563时钟芯片初始化数据
//1普通模式,时钟运行,电源复位无效;2报警中断无效,定时器中断有效INT 脉冲有效;10、11、12、13所有报警无效;14频率输出无效;15倒计数定时器有效,禁止定时器时钟频率为1HZ;16定时器倒计数值为1
TIME_STRUC TIME8563;
/****************************************************************************
* 名称:PCF8563Init()
* 功能:初始化
* 入口参数:
* 出口参数:无
****************************************************************************/
void PCF8563Init(void)//取默认值
{
unsigned char i;
IRcvStr(PCF8563_ADD,0x0f,&i,1);
if(i!=0x01)
{
ISendStr(PCF8563_ADD,0x00,TIME,16);
// UART_SendByte('5');
}
}
/****************************************************************************
* 名称:TimeSet()
* 功能:设置时间及控制寄存器
* 入口参数:
* 出口参数:无
****************************************************************************/
void PCF8563TimeSet(void)//
{
ISendStr(PCF8563_ADD,0x00,TIME,16);
}
/****************************************************************************
* 名称:TimeGet()
* 功能:获到时间
* 入口参数:
* 出口参数:无
****************************************************************************/
unsigned char PCF8563TimeGet(void)//
{
unsigned char i;
i=IRcvStr(PCF8563_ADD,0x02,&TIME[2],7);
TIME8563.year=TIME[8];
TIME8563.month=TIME[7];
TIME8563.day=TIME[5];
TIME8563.weekday=TIME[6];
TIME8563.hour=TIME[4];
TIME8563.min=TIME[3];
TIME8563.sec=TIME[2];
return(i);
}
/****************************************************************************
* 名称:RTCSet()
* 功能:设置时间
* 入口参数:
* 出口参数:无
****************************************************************************/
void PCF8563RTCSet(void)//
{
TIME[8]=TIME8563.year;
TIME[7]=TIME8563.month;
TIME[5]=TIME8563.day;
TIME[6]=TIME8563.weekday;
TIME[4]=TIME8563.hour;
TIME[3]=TIME8563.min;
TIME[2]=TIME8563.sec;
PCF8563TimeSet();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -