当前位置:网站首页 > 技术博客 > 正文

ds1320时钟芯片介绍



在这里插入图片描述

数据:

DS1302是一个可充电实时时钟芯片,包含时钟(24小时格式或12小时格式)、日历(年,月,日,星期)、31字节RAM(断电数据丢失)。

供电:

DS1302采用两组供电,一组主电,由外部供电,一组备电,一般由纽扣电池供电。当主电存在时,由主电供电,当主电不存在时由备电供电。

功能:

DS1302,通过外部晶振自动对时间进行计数,对月末日期进行调整,以及闰年矫正。MCU可对其时间日期进行设置及读取,显示正确的当前时间。同时可借用31字节的RAM临时保存重要数据(因为外部断电后,纽扣电池供电保证数据不丢失)。

连接:

与MCU连接只需要三个普通GPIO口即可,DS1302芯片的通讯方式接近于SPI,其中将SPI的MISO和MOSI合并为I/O引脚。但是并不需要使用SPI复用引脚进行连接,只需要普通GPIO引脚即可。

在这里插入图片描述
这里是常用国产有替代型号:DS1302,插件;DS1302Z+T,贴片;DS1302N温度范围从(0 ~ +70℃)提高到 (-40~ +85℃),插件;DS1302ZN+T温度范围从(0 ~ +70℃)提高到 (-40~ +85℃),贴片。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

正常使用时完全可以安照下图进行连接,非常简单,任意的3个GPIO口连接CE、I/O、SCLK(这里的SCLK只是提供一个上升沿做时钟信号,设低再设高之后数据即被DS1302读取,并非SPI或IIC的CLK)。晶振直接近距离连接DS1302即可,不需要接对地的匹配电容。VCC2接外部供电,VCC1接纽扣电池。
在这里插入图片描述
下图,晶振近距离连接DS1302,斜线部分的不要走信号线,会对晶振信号产生影响。
在这里插入图片描述


在这里插入图片描述

首先是寄存器地址:

寄存地址最后一位表示读写,前边按正常数值。如秒钟地址,读地址为0b1000 0001 = 0x81;写地址为0b1000 0000 = 0x80,所以读地址比写地址大1。

寄存器定义:
RAM操作:

和时间寄存器一样,最后一位表示读写,前边按正常数值。如RAM 0地址,读地址为0b1100 0001 = 0xC1;写地址为0b1100 0000 = 0xC0。数据内容不限,任意单字节数值。

在这里插入图片描述
首先是读写时序图:
RST 即CE,为数据传输控制,数据传输时设高电平,不用时设低电平;
SCLK即DS1302 读写数值控制信号,上升沿触发, 即SCLK的GPIO由低电平设置到高电平时,DS1302读取或写出一个数据。
I/O即DS1302读取或写出的数据。在MCU写入数据时,连接的GPIO设置为一般输出模式,通过高低电平切换,写入数据;在MCU写入数据时,连接的GPIO设置为一般读取电平模式,通过获取DS1302 I/O输出的高低电平,读取数据。
I/O数据的寄存器地址由低位到高位的顺序进行写入;数据也是由低位到高位写入,或读出。 其中R/W 即为读写控制位0为读,1为写,A0-A4为地址数据,R/C为时间寄存器还是RAM寄存器控制位,D0-D7为写入数据,读取时该位置为读出数据。
在进行写时间数据操作时,MCU先向DS1302输出写寄存器地址,再紧跟着输出时间数据;在进行读时间数据操作时,MCU先向DS1302输出读寄存器地址,再紧跟着读取DS1302输出的时间数据;该数据输入输出流程时序由SCLK上升沿控制。





ds1302.h文件

 
  

ds1302.c文件

 
  

main.c文件

 
  

调试效果:
在这里插入图片描述

  • 上一篇: python编译成pyd
  • 下一篇: linux udp mtu
  • 版权声明


    相关文章:

  • python编译成pyd2025-09-28 23:01:04
  • 杜邦树脂和陶氏树脂对比2025-09-28 23:01:04
  • 背包问题代码2025-09-28 23:01:04
  • 01背包问题c++实现2025-09-28 23:01:04
  • 关闭高危端口命令2025-09-28 23:01:04
  • linux udp mtu2025-09-28 23:01:04
  • 新闻发布管理系统前端设计2025-09-28 23:01:04
  • swap函数写法2025-09-28 23:01:04
  • nlp的相关产品2025-09-28 23:01:04
  • js中的引用数据类型有哪些2025-09-28 23:01:04