基于DS1302与数码管设计的可调数字钟

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习情境2-可调式数字钟

之基于DS1302与数码管设计的可调数字钟

☆点名,复习

1、定时器的工作方式有哪些?如何对定时器进行初始化。

2、数码管动态显示技术的原理?

☆新课讲授

2.2 基于DS1302与数码管设计的可调数字钟

前面我们用定时器产生1秒的时间,从而也设计出了可以调节数字钟,但用这种方法设计出来的电子钟不够准确。这节课我们用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路DS1302 ,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。同时,我们还是用数码管作为显示时间的硬件。

2.2.1 DS1302芯片技术资料

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

图1 DS1302引脚

图2 DS1302内部结构

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引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),SCLK始终是输入端。

2 、DS1302的寄存器和控制命令

对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。

小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM,当为0时,表示AM。在24小时模式时,位5是第二个10小时位。

秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。

控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。

日历、时间寄存器及控制字如表1所示:

表1日历、时钟寄存器与控制字对照表

寄存器名称7 6 5 4 3 2 1 0 1 RAM/CK A4 A3 A2 A1 A0

RD/

W

秒寄存器 1 0 0 0 0 0 0 0/1 分寄存器 1 0 0 0 0 0 1 0/1 小时寄存器 1 0 0 0 0 1 0 0/1 日寄存器 1 0 0 0 0 1 1 0/1 月寄存器 1 0 0 0 1 0 0 0/1 星期寄存器 1 0 0 0 1 0 1 0/1 年寄存器 1 0 0 0 1 1 0 0/1 写保护寄存器 1 0 0 0 1 1 1 0/1 慢充电寄存器 1 0 0 1 0 0 0 0/1 时钟突发寄存器 1 0 1 0 1 1 1 0/1

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

此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。DS1302

内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制

字为COH~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

表2 DS1302内部主要寄存器分布表

寄存器名称

命令字

取值范围

寄存器定义

写读7 6 5 4 3 2 1 0

秒寄存器80H 81H 00-59

C

H

10 SEC SEC

分寄存器82H 83H 00-59 0 10 MIN MIN

小时寄存器84H 85H 01-12或

00-23

12/24 0

10 H

R

HR

A/P

日寄存器86H 87H 01-28,29,30,

31

0 10 DATE DATE

月寄存器88H 89H 01-12 0 0 0 10M MONTH

星期寄存器8AH 8BH 01-07 0 0 0 0 DAY

年寄存器8CH 8DH 00-99 10year year

写保护寄存器8EH 8FH WP 0 0 0 0 0 0 0 慢充电寄存器90H 91H TCS TCS TCS TCS DS DS DS DS

我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如图3所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。

相关文档
最新文档