您当前的位置:五五电子网电子知识单元电路时钟-定时电路基于DS1302的时钟电路 正文
基于DS1302的时钟电路

基于DS1302的时钟电路

点击数:7693 次   录入时间:03-04 11:36:41   整理:http://www.55dianzi.com   时钟-定时电路

  DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟,日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟,日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、UO数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于ImW。
  
  一、内部结构
  
  DS1302的外部引脚功能如上图所示,DS1302的内部结构如下图所示,其主要组成部分有:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。

DS1302的外部引脚功能

  DS1302含充电电路,可以对作为后备电源的可充电电池充电(一般为3.6V),并可选择串入的二极管数目,以调节电池充电电压。当vCC2>(Vccl+0.2V)时由vcc2供电,当vcc2<Vcc1时由Vcc1供电。涓流充电电流为

  其中,n=0、1、2...,VD为二极管压降0.6~ 0.7V,R由程序设定RS寄存器为∞、2k、4k、8k。
  
  二、工作原理
  
  DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址。命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输入数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下最多可达8+248。



www.55dianzi.com

 
  三、寄存器和控制命令
  
  对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。
  
  日历、时间寄存器及控制字如上表所示,内部寄存器列表如下表所示。
  
  DS1302内部的RAM分为两类:一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM,可一次性读写所有的RAM的31个字节,命令控制字分别为FEH(写)、FFH(读)。
  
  我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧。这个帧的格式如上表所示,最高位BIT7固定为l,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。

  注:最后一位RD/W为“0”时表示进行写操作,为“1”时表示读操作。


  
  物理上,DS1302的通讯接口由3个口线组成,即RST、SCLK、I/0。其中,RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序参考下图,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的。实验验证DS1302读写性能为数据写入有效是在上升沿,读出有效是在下降沿,但是在芯片手册里没有明确说明。如果不是特别确定,则把程序设计成这样:平时SCLK保持低电平,在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在SCLK保持为低电平的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。

DS1302命令字结构

  四、设计实例
  
  本例将实现对DS1302的读写操作,将时钟数据在LED数码管上显示出来。硬件原理图如下左图所示,软件流程图如下右图所示,调试时将功能选择开关调到DS1302的状态上。

硬件原理图




本文关键字:暂无联系方式时钟-定时电路单元电路 - 时钟-定时电路