📄 1302.c
字号:
#include"1302.h"
#include"AT89X52.H"
#include"intrins.h"
/*#define WRITE_SECOND 0x80
#define READ_SECOND 0x81
#define WRITE_MINUTE 0x82
#define WRITE_HOUR 0x84
#define READ_MINUTE 0x83
#define READ_HOUR 0x85
#define WRITE_PROTECT 0x8E */
//一些初始化命令控制字地址 直接调用write_data_ds1302(uchar taddr,uchar tdata)函数
sbit ds1302_RST =P3^2;
sbit ds1302_IO =P3^3;
sbit ds1302_SCLK=P3^4;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
uchar read_Byte()
{
uchar i;
for(i=8;i>0;i--)
{ ACC=ACC>>1;
ACC7=ds1302_IO;
ds1302_SCLK=1;
ds1302_SCLK=0;
}
return(ACC);
}
void write_Byte(uchar tdata)
{
uchar i;
ACC=tdata;
for(i=8;i>0;i--)
{ds1302_IO=ACC0;
ds1302_SCLK=1;
ds1302_SCLK=0;
ACC=ACC>>1;
}
}
void write_data_ds1302(uchar taddr,uchar tdata)
{
ds1302_RST=0;
ds1302_SCLK=0;
ds1302_RST=1;
write_Byte(taddr);
write_Byte(tdata);
ds1302_RST=0;
}
uchar read_data_ds1302(uchar taddr)
{
uchar tdata;
ds1302_SCLK=0;
ds1302_RST=1;
write_Byte(taddr);
tdata=read_Byte();
ds1302_RST=0;
ds1302_SCLK=1;
return(tdata);
}
void set_ds1302(uchar taddr,uchar *P1302)
{
uchar i;
write_data_ds1302(0x8e,0x00);
while(*P1302!='\0')
{
write_data_ds1302(taddr,*P1302);
P1302++;
taddr+=2;
}
write_data_ds1302(0x8e,0x80);
}
void get_ds1302(uchar *now_time)
{
uchar k;
uchar taddr = 0x81;
for (k=0; k<5; k++)
{
now_time[k] = read_data_ds1302(taddr);
taddr+=2;
}
}
void read_ring( uchar *ring_time)
{
uchar k;
uchar taddr=0xc1;
for(k=0;k<3;k++)
{
ring_time[k]=read_data_ds1302(taddr);
taddr+=2;
}
}
void init_ds1302()
{
ds1302_RST=0;
ds1302_SCLK=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -