概括
本文介绍了美国DALLAS公司推出的具有涓流充电功能、具有实时显示时间的低功耗实时时钟电路DS1302的结构、工作原理和应用实例。可测量年、月、日、周、日、时、分、秒,并具有闰年校正等多种功能。包含读写C51程序和DS1302的流程图,以及调试注意事项。
关键词:时钟电路,单片机。
编辑本段1简介
目前流行的串行时钟电路有DS1302、DS1307、PCF8485等。这些电路因其接口简单、成本低、易于使用而被广泛应用。本文介绍的实时时钟电路DS1302是一款具有涓流充电功能的DALLAS电路,其主要特点是采用串行数据传输,可为断电保护电源提供可编程充电功能。充电功能。它使用常规的32.768kHz 晶体振荡器。
编辑本段2 DS1302的结构及工作原理
DS1302是美国DALLAS公司推出的一款配备RAM的高性能、低功耗实时时钟电路,能够测量年、月、日、时、分、秒,并具有闰年功能。修正功能。工作电压为2.5V至5.5V。 3线接口用于与CPU同步通信,允许以突发模式一次发送多个字节的时钟信号和RAM数据。 DS1302内部有31×8 RAM寄存器用于临时存储数据。 DS1302 是DS1202 的升级版,与DS1202 兼容,但增加了主/备用电源的双电源引脚,并且还提供了对备用电源进行涓流充电的功能。
2.1 端子功能及结构
DS1302 引脚排列。 Vcc1 为备用电源,VCC2 为主电源。即使主电源关闭,时钟仍继续运行。 DS1302 由Vcc1 或Vcc2 中较大者供电。如果Vcc2大于Vcc1+0.2V,Vcc2为DS1302供电。如果Vcc2低于Vcc1,则DS1302由Vcc1供电。 X1和X2为振荡源,外接32.768kHz晶振。 RST 是复位/片选线,将RST 输入驱动为高电平可启动所有数据传输。 RST 输入有两个功能。首先,RST打开控制逻辑以允许地址/命令序列输入到移位寄存器中。其次,RST 提供了一种终止单字节或多字节数据传输的方法。当RST 为高电平时,所有数据传输均已初始化,并且DS1302 已准备好运行。如果在传输过程中将RST设置为低电平,则数据传输结束,I/O引脚变为高阻态。当使用电源供电时,RST 必须在Vcc2.0V 之前保持低电平。只有当SCLK为低电平时RST才能设置为高电平。 I/O是串行数据输入/输出端子(双向),稍后详细介绍。 SCLK是时钟输入引脚。 下图为DS1302的引脚功能图。
DS1302封装图
2.2 DS1302 控制字节
DS1302 控制字如图2 所示。控制字节的最高有效位(位7)必须是逻辑1。位6 0 表示访问日历时钟数据,1 表示访问RAM。数据;位5至1表示计算单元的地址;0用于写操作,1用于读操作作为控制字节输出。
2.3 数据输入/输出(I/O)
输入控制指令字后,数据在SCLK 时钟的下一个上升沿写入DS1302,从最低有效位或位0 开始。同样,DS1302 上的数据在8 位控制命令字之后的下一个SCLK 脉冲的下降沿上读取,从最低有效位0 到最高有效位7 读取数据。
2.4 DS1302 寄存器
DS1302有12个寄存器,其中7个与日历和时钟有关,存储的数据位都是BCD码的形式。表1 显示了日历和时间寄存器及其控制字。
此外,DS1302还具有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器和RAM相关寄存器。时钟突发寄存器可以一次顺序读取和写入除充电寄存器之外的所有寄存器的内容。 DS1302 RAM相关寄存器分为两类。一种是单个RAM 单元,共31 个,每个单元配置为8 位字节,其命令控制字为C0H 至FDH,其中奇数为偶数写操作,另一种为突发模式RAM 中寄存器中,命令控制字可以在FEH(写)和FFH 处同时读写。 (读)。
编辑本段。 DS1302软硬件3小时实时显示
DS1302 和CPU 之间的连接需要三根线:SCLK(7)、I/O(6) 和RST(5)。图3所示为DS1302与89C2051之间的连接图。时钟使用LCD 显示。
3.1 DS1302与CPU的连接
事实上,在调试程序时,可以只添加32.768kHz晶振,而不需要添加任何电容。选择晶振时,不同的晶振会有较大的误差。另外,还可以在上述电路中添加一个DS18B20,同时显示实时温度。只占用CPU的一根端口线。您还可以将LCD 替换为LED。或者,也可以使用北京维信杰科技发展有限公司生产的10位多功能8段液晶模块LCM101。该模块包括一个看门狗(WDT)/时钟发生器和两个时钟发生器。它具有内置显示RAM 和3-4 线串行接口,可连接到任何微控制器或IC。功耗低,显示状态时电流为2A(典型值),省电模式工作电压为2.4V至3.3V,显示清晰。
3.2 DS1302实时时间流程
图4显示了DS1302的实时时间流程。根据这个流程图,采集实时时间并不困难。使用以下内容结合流程图对DS1302 的基本操作进行编程。
编辑本段4 您正在调试的问题描述
当DS1302与微处理器交换数据时,微处理器首先向电路发送命令字节。命令字节的最高有效位写保护(D7) 必须是逻辑1。如果D7=0,则禁止写入DS1302。D6=0,指定时钟数据,D6=1,指定RAM数据,D5-D1指定用于输入或输出的特定寄存器,最低有效位LSB(D0)指定写入。指定操作(输入),D0=1,读操作(输出)。
当从DS1302 的时钟日历或RAM 传输数据时,DS1302 必须首先发送一个命令字节。进行单字节传输时,8位命令字节发送完毕后,在下一个2个SCLK周期的上升沿输入数据字节,或者在接下来的8个SCLK周期的下降沿输出数据字节。循环。
DS1302 RAM相关寄存器在:中分为两类。第一类是一个RAM单元,每个单元组织为8位字节,其命令控制字为C0H至FDH和奇数。偶数用于读取操作,另一种类型是突发模式RAM 寄存器,它允许您一次读取和写入所有31 个字节的RAM。
特别值得一提的是备用电源B1,可以是电池或超级电容器(0.1F或更高)。 DS1302在主电源关闭后消耗的电量非常少,但如果想让手表长时间工作,最好使用小型充电电池。较旧的计算机主板接受3.6V 可充电电池。如果停电时间较短(数小时至数天),可更换为漏电较小的常规电解电容。 100F可保证1小时的正常工作时间。 DS1302首次上电后必须进行初始化。初始化完成后,您可以照常调整时间。
编辑本段5 结论
DS1302存在时钟精度低、对环境影响敏感、时钟混乱等缺点。 DS1302可用于记录数据,尤其是具有特殊意义的特定数据点,并且可以同时记录数据和该数据发生的时间。这些记录对于分析长期连续测量和控制系统的结果以及调查异常数据的原因极其重要。传统的数据记录方式是间隔采样或定时采样,没有具体的时间记录,因此可以记录数据,但另一方面,使用单片机计时时,无法准确记录其发生的时间。这就占用了硬件资源,一方面需要使用计数器,另一方面需要配置中断、查询等,这也消耗了单片机资源和一些测量。控制系统可能不允许。然而,在您的系统中使用时钟芯片DS1302可以成功解决这个问题。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/82397.html