首页 > 编程知识 正文

海康ds7104hgh使用手册,基于51单片机ds3231时钟

时间:2023-05-06 04:39:24 阅读:45609 作者:4472

常用的DS3102需要使用外置石英振动,由于没有温度补偿,所以误差较大。 DS3231内置晶振,有内部温度补偿,误差一分钟即可每年完成。

一、DS3231概述

DS3231是高精度I2C实时时钟装置,内置温度补偿晶体振荡器。 该器件包括电池输入端子,即使关闭主电源也能保持正确的时序。 集成晶体振荡器可以提高器件的长期精度。 DS3231的寄存器保存秒、分、时、星期、日期、月、年、警报设定等信息。 小于31天的月份可以自动调整月末的日期,包括闰年补偿。 的动作格式为24小时或带AM/PM指示的12小时格式。 DS3231提供了两个可编程日历警报和一个可编程bhdny输出。 DS3231和单片机通过I2C双向串行总线传输地址和数据。

导线图

VCC为电源端子; INT/SQW为低电平有效中断或bhdny输出:低电平有效复位端子; 表示无N.C .连接,外部必须接地的GND为地; VBAT是备用电源输入; SDA是串行数据输入输出; SCL是串行时钟输入。 内部结构图32 kHz的TCXO TCXO包括温度传感器、振荡器和控制逻辑。 控制器读取芯片上温度传感器的输出,采用查表法确定所需电容器,并加上AGE寄存器的老化校正。 然后,设置电容器选择寄存器。 只有在温度变化或用户启动的温度转换完成时,才加载新值,包括AGE寄存器的更改。 VCC在初次接通电源时读取温度值,然后每64 s读取一次。 DS3231的电源控制电源控制功能由比较器电路提供,用于监视温度补偿电压基准(VPF )和VCC电平。 如果VCC高于VPF,则DS3231由VCC供电,如果VCC低于VPF但高于VBAT,则DS3231由VCC供电; 如果VCC低于VPF且低于VBAT,则DS3231由VBAT供电。 为保护电池,首次将VBAT添加到设备时振荡器不会启动,除非加载VCC或将有效的I2C地址写入设备。 典型振荡器的启动时间在1 s以内。 在VCC通电后或写入有效I2C地址后约2 s,器件测量一次温度,并使用计算出的校正值校正振荡器。 振荡器启动后,如果电源(VCC或VBAT )有效,则始终维持工作状态。 器件每64 s进行温度测量,校正振荡器频率。 DS3231的时钟和日历RTC可以通过读取适当的寄存器字节来获得时钟和日历信息。 通过写入适当的寄存器字节来设置或初始化时钟和日历数据。 时钟和日历寄存器的内容采用2-10进制代码(BCD )格式。 DS3231在12小时或24小时模式下工作。 时寄存器的第6位定义为12或24小时模式选择位。 如果此位为高,则选择12小时模式。 在12小时模式下,第5位为AM/PM指示位,逻辑高时为PM。 DS3231的复位按钮DS3231具有连接到RST输出端子的按钮开关功能。 DS3231不在复位周期时,继续监视RST信号的下降沿。 如果检测到边缘移位,则DS3231降低RST以完成开关的抖动消除。 在内部计时器的计时器结束后,DS3231继续监视RST信号。 信号保持低电平时,DS3231继续监视信号线,检测上升沿。 当检测到按钮释放时,DS3231强制RST处于低电平并保持tRST。 RST也可以用于指示电源故障的报警情况。 当VCC低于VPF时,会发出内部电源故障警报信号,强制拉低RST引脚。 当VCC恢复到超过VPF的水平时。 RST维持约250ms(trec )的低水平,稳定供电电源。 如果VCC加载时振荡器不工作,则跳过tREC,RST立即变为高电平。 DS3231的报警和报警功能DS3231包含两个计时器/日期报警。 闹钟1可以通过写入寄存器07h~0Ah设定。 闹钟2可以通过写入寄存器0Bh~0Dh设定。 通过以程序(控制寄存器的警报使能位和INTCN位,可以在警报一致的状态下触发INT/SQW输出。 各定时/日期报警寄存器的第7位为屏蔽位。 如果每个警报的屏蔽位为逻辑0,则仅当计时器寄存器的值与计时器/日期警报寄存器中存储的相应值匹配时才会发生警报。 报警也可以编程为按每秒、分钟、小时、星期几或日期重复报警。 如果RTC寄存器的值与报警寄存器的设定值一致,则对应的报警标志的位A1F或A2F被设置为逻辑1。 对应的警报停止有效位A1IE或A2IE也设定为逻辑1,INTCN位置为逻辑1时,根据警报条件触发INT/SQW信号。 RTC在时间和日期寄存器每秒更新时检测到匹配项。 DS3231的控制寄存器和功能位7位:使能振荡器(EOEC )。

设定为逻辑0时启动振荡器。 如果设置为逻辑1,则当DS3231的电源切换到VBAT时振荡器停止。 首次接通电源时该位清零(逻辑0 )。 当DS3231由VCC供电时,振荡器总是保持工作状态,而与EOSC位的状态无关。

  BIT6位:电池备份的bhdny使能(BBSOW)。当设定为逻辑1并且DS3231由VBAT引脚供电时,在没有加载VCC的情况下,该位使能bhdny输出。当BB-SQW设定为逻辑0时,若VCC降至低于电源故障门限值,则INT/SQW引脚变为高阻抗。初次上电时,该位清零(逻辑0)。   BIT5位:转换温度(CONV)。该位置为1时,强制温度传感器将温度转换成数字,并执行TCXO算法更新振荡器的电容阵列。只在空闲期间有效。状态位BSY=1时,禁止设定转换温度位。用户在强制控制器开始新的TCXO操作之前。应检查状态位BSY。用户启动的温度转换不影响内部64 s更新周期。用户启动的温度转换在大约2 ms内不会影响BSY位。CONV位从写入开始直到转换完成一直保持为1,转换完后,CONV和BSY均变为0。在监视用户启动转换状态时,应使用CONV位。   BIT4和BIT3位:频率选择(RS2和RS1),初次上电时,BIT4和BIT3设置为逻辑1。bhdny使能时用于控制bhdny输出的频率。RS1、RS2的逻辑值与bhdny输出频率的关系如表所列。 BIT2位:中断控制(INTCN)。该位控制INT/SQW信号。INTCN置为0时,INT/SQW引脚输出bhdny;INTCN置为1时,若计时寄存器与任一个闹钟寄存器相匹配,则会触发INT/SQW信号(如果也使能闹钟的话)。匹配时相应的闹钟标志总是置位,而与INTCN位的状态无关。初次上电时,INTCN位置为逻辑1。   BIT1位:闹钟2中断使能(A2IE)。该位置为逻辑1时,允许状态寄存器中的闹钟2标志位(A2F)触发INT/SQW信号(当INTCN=1时)。当A2IE位置为0或者INTCN置为0时,A2F位不启动中断信号。初次上电时,A2IE位清零(逻辑0)。   BIT0位:闹钟1中断使能(A1IE)。该位置为逻辑1时,允许状态寄存器中的闹钟1标志位(A1F)触发INT/SQW信号(当INTCN=1时)。当A1IE位置为0或者INTCN置为0时,A1F位不启动INT/SQW信号。初次上电时,A1IE位清零(逻辑0)。   下一节  IIC总线协议的代码实现

转载于:https://www.cnblogs.com/wxz1995/p/8306381.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。