📄 ds12c887.h
字号:
#define DS_A_REGISTER 10
#define DS_B_REGISTER 11
#define DS_C_REGISTER 12
#define DS_D_REGISTER 13
#define IN_RAM_PARA_TEMP 0XE5
sbit DSDS =P3^4;
sbit DSRW =P3^5;
sbit DSAS =P3^6;
sbit DSCS =P3^7;
unsigned char
hoursetup,
minutesetup,
secondsetup,
monthsetup,
datesetup,
yearsetup,
minutesetup1,
hoursetup1,
datesetup1;
unsigned char read_ds12887_char(unsigned char address)
{
unsigned char dsdata;
DSDS=1;
DSRW=1;
DSAS=1;
DSCS=0;
P2=address;
DSAS=0;
DSDS=0;
P2=0xff;
delay(10);
dsdata=P2;
DSDS=1;
DSCS=1;
DSAS=1;
return (dsdata);
}
/*********************************************************************
* 函数原型:write_ds12887_char(unsigned char adress,unsigned char temp) *
* 功能: 在ds12887指定地址写一个char的数据 *
*********************************************************************/
/**************************************************************/
void write_ds12887_char(unsigned char address,unsigned char dsdata)
{
DSCS=0;
DSDS=1;
DSAS=1;
DSRW=1;
P2=address;
DSAS=0;
DSRW=0;
P2=dsdata;
DSAS=1;
DSRW=1;
DSCS=1;
}
void time_set1(unsigned char adress,unsigned char time_data)
{
write_ds12887_char(DS_A_REGISTER,0x70);
write_ds12887_char(DS_B_REGISTER,0xA2);
write_ds12887_char(adress,time_data);
write_ds12887_char(DS_B_REGISTER,0x26);
write_ds12887_char(DS_A_REGISTER,0x20);
}
void time_init()//初始化,设定时间
{
time_set1(0x09,yearsetup); //年
time_set1(0x08,monthsetup); //月
time_set1(0x07,datesetup); //日
time_set1(0x04,hoursetup);
time_set1(0x02,minutesetup);
time_set1(0x00,secondsetup);
}
void time_iv()//读取时间
{
yearsetup=read_ds12887_char(0x09);
monthsetup=read_ds12887_char(0x08);
datesetup=read_ds12887_char(0x07);
hoursetup=read_ds12887_char(0x04);
minutesetup=read_ds12887_char(0x02);
secondsetup=read_ds12887_char(0x00);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -