📄 ds1302.c
字号:
#include <at89x51.h>
#include <ds1302.h>
void delay_ds1302_3xns(unsigned char x)
{
unsigned char i;
for(i=0;i<x;i++);
}
void delay_ds1302_1s()
{
unsigned char i,j,z;
for(z=0;z<5;z++)
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void init_ds1302()
{
IO_ds1302=0;
SCLK_ds1302=0;
REST_ds1302=0;
}
void Write_c_ds1302(unsigned char x)
{
unsigned char i,j;
void init_ds1302();
j=x;
REST_ds1302=1;
delay_ds1302_1s();
for(i=0;i<=6;i++)
{
if(j&0x01==1) IO_ds1302=1;
else IO_ds1302=0;
j=j>>1;
delay_ds1302_3xns(20);
SCLK_ds1302=1;
delay_ds1302_3xns(84);
SCLK_ds1302=0;
delay_ds1302_3xns(70);
}
if(j&0x01==1) IO_ds1302=1;
else IO_ds1302=0;
j=j>>1;
delay_ds1302_3xns(20);
SCLK_ds1302=1;
delay_ds1302_3xns(84);
SCLK_ds1302=0;
delay_ds1302_3xns(70);
}
unsigned char Read_ds1302()
{
unsigned char i,x;
x=0;
IO_ds1302=1;
for(i=0;i<=6;i++)
{
if(IO_ds1302==1)
{
x=x+0x80;
x=x>>1;
}
else x=x>>1;
SCLK_ds1302=1;
delay_ds1302_3xns(25);
SCLK_ds1302=0;
delay_ds1302_3xns(70);
}
if(IO_ds1302==1)
x=x+0x80;
else x=x>>1;
IO_ds1302=0;
SCLK_ds1302=0;
REST_ds1302=0;
return x;
}
void Write_d_ds1302(unsigned char x)
{
unsigned char i,j;
j=x;
for(i=0;i<=7;i++)
{
if(j&0x01==1) IO_ds1302=1;
else IO_ds1302=0;
j=j>>1;
delay_ds1302_3xns(20);
SCLK_ds1302=1;
delay_ds1302_3xns(84);
SCLK_ds1302=0;
delay_ds1302_3xns(70);
}
IO_ds1302=0;
REST_ds1302=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -