📄 ds1302.c
字号:
/*
* Copyright (C) 2007, 华中科技大学电气与电子科技创新中心
* All Rights Reserved.
*
* 文件名: DS1302.c
* 文件描述: DS1302驱动程序
*
* 当前版本: 1.0
* 作者: Zuowenping(fmku007@163.com)
* 完成日期: 2008年10月20日
*
*/
#include "DS1302.h"
/**************************************
///////////////写DS1302,(地址/数据)
***************************************/
void wr_ds1302(unsigned char addr1,unsigned char data1)
{unsigned char i;
CE=0;
nop();
CE=1;
for(i=0;i<8;i++) //////address
{ SCLK=0;
DATA=(bit)((addr1>>i)&0x01);
nop();
SCLK=1;
nop();
}
for(i=0;i<8;i++) //////data
{ SCLK=0;
DATA=(bit)((data1>>i)&0x01);
nop();
SCLK=1;
nop();
}
SCLK=0;
CE=0;
}
/**************************************
///////////////读DS1302,(地址/数据)
***************************************/
unsigned char rd_ds1302(unsigned char addr1)
{unsigned char i,dataout;
CE=0;
nop();
CE=1;
for(i=0;i<8;i++) //////address
{ SCLK=0;
DATA=(bit)((addr1>>i)&0x01);
nop();
SCLK=1;
nop();
}
dataout=0;
for(i=0;i<8;i++) //////data out
{ SCLK=1;
nop();
DATA=1;
SCLK=0;
nop();
dataout|=(((char)DATA)<<i);
}
CE=0;
return(dataout);
}
/**************************************
///////////////充电控制,(地址/数据)
***************************************/
void ChargeCtrl(bit Ctrl)
{
unsigned char temp=rd_ds1302(RdSec);
if(Ctrl)
wr_ds1302(WrSec,temp|0x80);
else
wr_ds1302(WrSec,temp&0x7f);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -