这里需要简单提一下的,我们只需要找到SCK,SDA,RST,
SCK--P17
SDA--P23(这里的I/O就是SDA)
RST--P13
我们先来读手册


1、秒寄存器(80H和81H)的位7 (CH)为时钟暂停标志。
CH为0时,时钟振荡停止;
CH为1时,时钟开始运行。
2、控制寄存器(8EH 和8FH)的位7 (WP)为写保护位。
WP为0时,可对任何的时钟或RAM寄存器进行写操作;
WP为1时,禁止对任一寄存器进行写操作。
此时我们也知道我 从秒到年每一位的地址,于是我们可以把用数组把地址都装填到数组的每一位中,由下图可知,Write_DS1302_adrr数组是指写入的各个地址,Read_DS1302_adrr数组则是读出的各个地址。

我们在使用DS1302时只需要进行两个操作,一个是写入,一个是读取,而写入时间的操作我们往往只需要上电进行一次,所以我们也可以把写入操作称之为对DS1302的初始化。
首先,我们需要利用到官方给的两个底层函数,我们可以不用修改,直接利用就可以
讯享网
利用以上官方给的这两个函数我们就可以写初始化函数了
思路:定义一个数组,用来存放年,月,日,时,分,秒;先关闭写入保护,否则地址就写不进去数据了;利用循环向每一位地址中写入数据;开启写入保护,保护地址中的数据不被修改。
讯享网
直接利用for循环 访问每一个地址,读出的数据赋值给存放时间的数组即可,访问每一个地址的函数由官方提供
以下代码一定要牢记!
讯享网
先在while外面初始化函数,再在while里面调用读出函数
main.c
顺便分享一下数码管的文件
display.c
讯享网
接着再分享一下总初始化函数ALL_Init.c


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/146487.html