ds12c887+ 断电后 再上电 发现时间是我上次断电时时间 断电这段时间没走!!!但是数据保存完好 电池检测也正常啊!!!郁闷?????谢谢指教!!!
上电是可以运行的 A也是 20h 晶振 也打开了 就是 一断外部电源 就停到哪了 下次上电,就接着上次断电时继续走!!!郁闷。。。是不是有什么资料中没有提到的寄存器可以控制???还是坏了?
12c887 断电时间不走???
答案:3 悬赏:30 手机版
解决时间 2021-02-06 17:38
- 提问者网友:两耳就是菩提
- 2021-02-06 13:04
最佳答案
- 五星知识达人网友:西岸风
- 2021-02-06 13:55
它的内部晶振默认是关闭的,因此初始化DS12C887时需要用指令打开内部晶振。
write_ds(0x0a,0x20)
write_ds 是写命令,因为引脚接法不同,需自己定义。
好像有个命令可以测试内部电池有否还有电,你查查看!
write_ds(0x0a,0x20)
write_ds 是写命令,因为引脚接法不同,需自己定义。
好像有个命令可以测试内部电池有否还有电,你查查看!
全部回答
- 1楼网友:独钓一江月
- 2021-02-06 16:28
得看你的程序了
一般都是程序
- 2楼网友:煞尾
- 2021-02-06 15:24
void write_ds(uchar add,uchar date)
{//写12c887函数
dscs=0;
dsas=1;
dsds=1;
dsrw=1;
p0=add;//先写地址
dsas=0;
dsrw=0;
p0=date;//再写数据
dsrw=1;
dsas=1;
dscs=1;
}
uchar read_ds(uchar add)
{//读12c887函数
uchar ds_date;
dsas=1;
dsds=1;
dsrw=1;
dscs=0;
p0=add;//先写地址
dsas=0;
dsds=0;
p0=0xff;
ds_date=p0;//再读数据
dsds=1;
dsas=1;
dscs=1;
return ds_date;
}
//*---首次操作12c887时给予寄存器初始化---
void set_time()
{//首次上电初始化时间函数
write_ds(0,0);
write_ds(1,0);
write_ds(2,0);
write_ds(3,0);
write_ds(4,0);
write_ds(5,0);
write_ds(6,1); //6 7 8 不能写为零
write_ds(7,1);
write_ds(8,1);
write_ds(9,0);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯