楼主你好:
DS1302有主副电源,当切断主电源时副电源会继续给DS1302供电,这就是为什么短时间断电时间不变的原因;
当长时间断电后,你的时间还是12-20,那是因为你的程序重新从主函数的第一步开始执行,因为你初始化DS1302时,把时间默认为了12-20哈,所以时间又从12-20开始执行
根据ds1302的命令表,先取消写保护,在写入数据前先用0x80命令暂停时钟,再写命令修改时间,像修改分钟就是,先发送0x80暂停ds1302,再发送0x82写分钟寄存器命令,再把新的分钟数据写进去。
赐教就不敢,我也是初学者。请问你是用什么芯片做的?我是用单片机M16做的,我是写时间进去了之后,在程序里不能再初始设定时间。