DS1302用纽扣电池,断电后,可以让时间不丢失,寄存器哪.....

2020-02-02 09:29发布

请问下,DS1302要用到纽扣电池,程序里面要怎么设置呢?
要操作什么呢?谢谢啦!
  1. void  DS1302_Init(void)      
  2. {                                                         
  3.      RST  = 0;
  4.      SCK  = 0;
  5.      write_ds1302( 0x8E, 0x00 );           //关写保护
  6.     write_ds1302( 0x90, 0xA7 );           //充电(1个二极管 + 8K电阻)
  7.     write_ds1302( 0x8E, 0x80 );           //开写保护
  8.   if( read_ds1302(0x81) & 0x80 )      
  9. {
  10.         set_time(&time);                  
  11.   }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
s3c2440
2020-02-02 19:27
//设置1302的初始时间(自动初始化)
void Init_1302(void){//-设置1302的初始时间(2007年1月1日00时00分00秒星期一)
        unsigned char f;
        if(read_clock(0xc1) != 0xaa){
                write_clock(0x8e,0x00);//允许写操作
                write_clock(0x8c,0x07);//年
                write_clock(0x8a,0x01);//星期
                write_clock(0x88,0x01);//月
                write_clock(0x86,0x01);//日
                write_clock(0x84,0x00);//小时
                write_clock(0x82,0x08);//分钟
                write_clock(0x80,0x00);//秒
                write_clock(0x90,0xa5);//充电       
                write_clock(0xc0,0xaa);//写入初始化标志RAM(第00个RAM位置)
                for(f=0;f<60;f=f+2){//清除闹钟RAM位为0
                        write_clock(0xc2+f,0x00);
                }
                write_clock(0x8e,0x80);//禁止写操作
        }
}
/**
我用的是杜洋的程序用着还行

一周热门 更多>