第18章 实时时钟芯片应用

对于一个完善的单片机系统,经常需要对时间进行操作。例如,记录当前采集数据的时间、显示当前时间、设定关机时间等。为了能够对时间进行控制,通常需要在硬件电路中集成实时时钟芯片。实时时钟芯片一般均内置了可编程的实时日历时钟,用于设定以及保存时间,它采用备份电池供电,在系统断电时仍可以工作,因此时间值不会丢失。另外,实时时钟芯片一般内置闰年补偿系统,计时很准确。实时时钟芯片的这些优点,使其被广泛应用于需要时间显示的测控系统或者手持式设备中。

本章以美国DALLAS公司推出的实时时钟芯片DS1302为例,介绍实时时钟芯片的功能、控制指令以及时间的操作,并给出了相应的操作子函数供读者调用。本章最后通过一个具体的实例,讲解了如何使用51系列单片机来操作实时时钟芯片DS1302。

18.1 实时时钟芯片DS1302概述

DS1302是美国DALLAS SemICONductor公司推出的一款实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到了广泛的应用。DS1302的主要特点如下。

❑DS1302采用3线串行接口,占用引脚少。

❑DS1302内部集成了可编程日历时钟,用户可以根据需要设置。

❑DS1302内部集成了31个字节的静态RAM。

❑DS1302的日历时钟可自动进行闰年补偿。

❑DS1302支持双电源供电,可以使用外部主电源和备份电源。

❑DS1302芯片具有对备份电池进行涓流充电功能,可有效延长备份电池的使用寿命。

下面详细介绍实时时钟芯片DS1302的工作原理、操作及数据传输方式。

18.1.1 实时时钟芯片DS1302引脚

实时时钟芯片DS1302引脚结构,如图18.1所示,其中各个引脚功能如下所示。

❑VCC1(Pin1):电源输入引脚1,单电源供电时接VCC1脚,双电源供电时用于接备份电源。

❑X1,X2(Pin2、Pin3):时钟振荡输入引脚,外接32.768kHz石英晶振。

❑GND(Pin4):接地引脚。

❑VCC2(Pin8):电源输入引脚2,单电源供电时不接,双电源供电时用于接主电源,工作电压范围为2.5~5.5V。

❑SCLK(Pin7):串行时钟输入引脚。

❑I/O(Pin6):数据写入/读出引脚。

第18章 实时时钟芯片应用 - 图1

(Pin5):DS1302复位引脚。

第18章 实时时钟芯片应用 - 图2

图 18.1 DS1302的引脚排列

实时时钟芯片DS1302和单片机的典型连接,如图18.2所示。

第18章 实时时钟芯片应用 - 图3

图 18.2 DS1302的典型连接图

外部主控制器,例如8051单片机,可以通过RST、SCLK和I/O引脚来实现数据传送。其中,SCLK为串行数据的同步时钟信号,由外部主控制器产生,I/O为双向串行数据传送信号;RST为通信允许信号,低电平有效,即RST=0表示允许通信,RST=1表示禁止通信。

实时时钟芯片DS1302芯片内部计时电路振荡源由外部的晶振提供,一般在X1和X2引脚外接32.768kHz石英晶振。

V CC1除了外接供电电源之外,还可以为备份电池充电。DS1302内部的涓流充电器在主电源工作正常时向备份电池充电,这样可以延长电池的使用时间。备份电池可以选择可充电镉镍电池或者1µF以上的超容量电容。另外,备份电池电压应略低于主电源的工作电压。

实时时钟芯片DS1302通过内部的寄存器来对时间进行操作,分为日期操作、控制操作和RAM操作3种,下面分别进行介绍。