实时时钟芯片RTC DS1307的工作原理解析

描述

  实时时钟芯片RTCDS1307是一种广泛使用的芯片,可为外部应用提供准确的时间和日期信息。这些芯片提供秒,分钟,小时,日,月和年,它实际上用作数字日历。这种芯片只消耗更少的功率和空间,因此广泛用于许多嵌入式应用。

  RTC DS1307的特性:

  该芯片能够以 24 小时或 12 小时格式运行,并且可以由用户更改。

  月底会自动调整,减少 31 个月,包括闰年修正。

  它能够感应外部电源的电源切断,并自动切换到与其连接的替代电池电源。

  功耗更低,尺寸小,可用于所有级别的应用。

  DS1307的引脚图:

  实时时钟

  X1 和 X2:这些是用于连接外部晶体振荡器的引脚,为芯片提供时钟源。根据数据表,32.768 kHz的石英晶体应与该芯片一起使用。

  V蝙蝠 :该引脚用于连接+3V锂电池,以便在外部电源电压不可用时提供电源。不使用时,此引脚应接地。

  SQW/输出:该输出引脚提供频率范围为 1 kHz、4kHz、8 kHz 或 32 kHz 的脉冲,需要一个上拉电阻才能工作。

  标准及校正实验所及标准及校正实验所:这两个引脚用于在I2C总线中传输数据,必须连接到微控制器的SCL和SDA引脚。

  可变资本和接地:这些引脚是芯片的电源和接地引脚。

  DS1307的地址映射:

  实时时钟

  DS1307共有64字节RAM,地址范围为00H至3FH,其中前08个字节用于时间值,下一个字节是控制寄存器,用于控制芯片中的SQW/OUT引脚。从3H 到 《》FH 的其余字节可用于通用数据存储。

  控制寄存器:

  实时时钟

  寄存器指针:

  DS1307芯片包含一个寄存器指针,用于标记操作中接下来将要访问的字节。每次读/写操作后,寄存器指针会自动递增,这在多字节读写中非常有用。

  RTC DS1307中的时间格式:

  时间、分钟、年份等数据以 BCD

格式存储。正如您在地址映射中看到的那样,每个字节都被分配给秒、分钟、小时、天、月和年等值。由于数据的表示形式是BCD格式,因此较低的四位计数到顶部四/三位计算其余数据值的位置。

  例如,考虑“秒”的值为 52,表示为

  实时时钟

  通过从地址 00H 写入或读取此数据字节将给出秒值。在小时寄存器02H位5中,将小时设置为12小时AM/PM格式或23小时格式。

  相同类型的数据表示适用于分钟、小时、月份和年份,其值范围从

  秒 – 0 到 60

  分钟 – 0 到 60

  小时 – 0 到 12 或 0 到 23 取决于我们使用的格式。

  月份 – 0 到 12

  年份 – 0 到 99

  写入或读取DS1307:

  为了在DS1307中执行读或写操作,您需要按照以下步骤操作。

  为了访问DS1307,我们需要发送芯片地址+方向位,该地址指定控制器启动START条件后的读取或写入操作。

  发送地址DS1307 1101000(将在数据手册中指定)+“0”位用于写入操作或“1”位用于读取操作。

  您可以通过将相应的数据字节地址从 00H 传输到 06H 来设置寄存器指针地址,然后可以执行读/写操作。

  请记住,寄存器指针的值将自动递增,这将有助于多个读取或写入操作。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分