ds1302.h
来自「该实验是用proteus仿真的单片机万年历」· C头文件 代码 · 共 69 行
H
69 行
#define uchar unsigned char
sbit DS1302_CLK = P2^4; //实时时钟时钟线引脚
sbit DS1302_IO = P2^5; //实时时钟数据线引脚
sbit DS1302_RST = P2^3; //实时时钟复位线引脚
void write_1302(uchar data_1302)//向1302中写入一个字节
{
uchar i;
for(i=0;i<8;i++)
{
DS1302_IO=(bit)(data_1302&0x01);
DS1302_CLK=1;
DS1302_CLK=0;
data_1302>>=1;
}
}
uchar read_1302(void) //从1302中读取一个字节
{
uchar i,data_1302;
for(i=0;i<8;i++)
{
data_1302>>=1;
if(DS1302_IO)
{
data_1302|=0x80;
}
DS1302_CLK=1;
DS1302_CLK=0;
}
return (data_1302);
}
//读出1302的时间序列
void read_serial(uchar j[8])
{
uchar i;
DS1302_RST = 0;
DS1302_CLK = 0;
DS1302_RST = 1;
write_1302(0xbf);//0xbf为连续读出的命令代码
for(i=0;i<8;i++)
{
j[i] = read_1302();
}
DS1302_CLK = 1;
DS1302_RST = 0;
}
//写入1302的时间序列
void write_date_time(uchar j[8])
{
uchar i;
DS1302_RST = 0;
DS1302_CLK = 0;
DS1302_RST = 1;
write_1302(0xbe);//0xbe为连续写入的命令代码
for(i=0;i<8;i++)
{
write_1302(j[i]);
}
DS1302_CLK = 1;
DS1302_RST = 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?