您的当前位置:首页正文

DS1302完整程序

来源:帮我找美食网


sbit ds1302_RST =P1^6;

sbit ds1302_IO =P1^5;

sbit ds1302_SCLK=P1^4;

sbit ACC0=ACC^0;

sbit ACC7=ACC^7;

uchar initial_time[]={0x05,0x00,0x09,0x03,0x06,0x02,0x99,0x00};

uchar now_time[5],ring_time[3];

void init_ds1302();

void get_ds1302() ;

void set_ds1302(uchar taddr,uchar *P1302);

uchar read_data_ds1302(uchar taddr);

void write_data_ds1302(uchar taddr,uchar tdata);

void write_Byte(uchar tdata);

uchar read_Byte();

void read_ring();

uchar read_Byte() //功能: 从DS1302读取1Byte数据,返回值: ACC

{

uchar i;

for(i=8;i>0;i--)

{

ACC=ACC>>1;

ACC7=ds1302_IO; //相当于汇编中的 RRC

ds1302_SCLK=1;

ds1302_SCLK=0;

}

return(ACC);

}

void write_Byte(uchar tdata) // 往DS1302写入1Byte数据,返回值: 无

{

uchar i;

ACC=tdata;

for(i=8;i>0;i--)

{

ds1302_IO=ACC0; ds1302_SCLK=1;

ds1302_SCLK=0;

ACC=ACC>>1;

}

}

//相当于汇编中的RRC

void write_data_ds1302(uchar taddr,uchar tdata) //功能: 往DS1302写入数

据,返回值: 无

{

ds1302_RST=0;

ds1302_SCLK=0;

ds1302_RST=1;

write_Byte(taddr); /* 地址,命令 */

write_Byte(tdata); /* 写1Byte数据*/

ds1302_RST=0;

ds1302_SCLK=1;

}

uchar read_data_ds1302(uchar taddr) 值: ucDa :读取的数据

{

//功能: 读取DS1302某地址的数据,返回

uchar tdata;

ds1302_RST=0;

ds1302_SCLK=0;

ds1302_RST=1;

write_Byte(taddr);/* 地址,命令 */

tdata=read_Byte(); /* 读1Byte数据 */

ds1302_RST=0;

ds1302_SCLK=1;

return(tdata);

}

void set_ds1302(uchar taddr,uchar *P1302) 初始时间数组首地址。

{

uchar i;

//功能: 设置初始时间,输入: P1302:

write_data_ds1302(0x8e,0x00); // 控制命令,WP=0,允许写操作

for(i =3; i>0; i--)

{

write_data_ds1302(taddr,*P1302); //秒 分 时 日 月 星期 年

P1302++;

taddr+=2;

}

write_data_ds1302(0x8e,0x80); // 控制命令,WP=1,写保护

}

void get_ds1302() // 功能: 读取DS1302当前时间,输入: 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 k;

uchar taddr=0xc1;

for(k=0;k<3;k++)

{

ring_time[k]=read_data_ds1302(taddr);

taddr+=2;

}

}

void init_ds1302() //功能: 初始化DS1302

{

ds1302_RST=0;

ds1302_SCLK=0;

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top