📄 ds1302.h
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dsrst=P2^0;
sbit dssclk=P2^1;
sbit dsio=P2^2;
uint a[24]={0,0,0,0,0,0,1,0,1,0,9,0,0,0,0,0,0,0,1,0,1,0,9,0};
//分别对应秒秒分分时时日日月月年年
//后12位为闹钟位,用于存储闹钟数据
//1302write DS1302写数据
void dswrite(uchar dswrite)
{
uchar i,temp;
delay(1);
temp=dswrite;
for(i=0;i<8;i++)
{
dsio=temp&0x01;
delay(1);
dssclk=1;
delay(1);
dssclk=0;
temp=temp>>1;
}
}
//1302read Ds1302读数据
uchar dsread()
{
uchar i,temp;
delay(1);
temp=0;
for(i=0;i<8;i++)
{
temp=temp>>1;
if(dsio==1)temp=temp+0x80;
delay(1);
dssclk=1;
delay(1);
dssclk=0;
}
return temp;
}
//1302addshuju DS1302向某地址写入某数据
void dsaddshuju(uchar add,uchar dsshuju)
{
dsrst=0;
dssclk=0;
dsrst=1;
dswrite(add);// 地址,命令
dswrite(dsshuju);// 写1Byte数据
dssclk=1;
dsrst=0;
dsio=0;
}
//1302on DS1302初始化
void dson()
{
uchar i;
dsaddshuju(0x8c,(a[11]<<4)+a[10]);
for(i=0;i<5;i++)
{
dsaddshuju(0x88-i*2,(a[9-i*2]<<4)+a[8-i*2]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -