基于DS1302的万年历毕业论文 数码管显现 附程序 硬件电路图(3)

2019-02-15 21:25

在编程过程中要注意DS1302的读写时序。DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表2.4。

表2.4 DS1302控制字(即地址及命令字节) BIT7 BIT6 BIT5 BIT4 BIT 3 BIT 2 BIT 1 BIT 0 RAM 1 CK RD A4 A3 A2 A1 A0 WR 控制字的作用是设定DS1302的工作方式、传送字节数等。每次数据的传输都是由控制字开始。控制字各位的含义和作用如下:

1. BIT7:控制字的最高有效位,必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。

2. BIT 6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据; 3. BIT 5至BIT 1(A4~A0):用A4~A0表示,定义片内寄存器和RAM的

地址。

定义如下:

当BIT 6位=0时,定义时钟和其他寄存器的地址。A4~A0=0~6,顺序为秒、分、时、日、月、星期、年的寄存器。当A4~A0=7,为芯片写保护寄存器地址。当A4~A0=8,为慢速充电参数选择寄存器。当A4~A0=31,为时钟多字节方式选择寄存器。

当BIT 6=1时,定义RAM的地址,A4~A0=0~30,对应各子地址的RAM,地址31对应的是RAM多字节方式选择寄存器。

4. BIT 0(最低有效位):如为0表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。在控制字指令输入后的下 一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。

5

图2.5 DS1302数据读写时序

DS1302的数据读写方式有两种,一种是单字节操作方式,一种是多字节操作方式。每次仅写入或读出一个字节数据称为单字节操作,每次对时钟/日历的8字节或31字节RAM进行全体写入或读出的操作,称其为多字节操作方式。当以多字节方式写时钟寄存器时,必须按数据传送的次序依次写入8个寄存器。但是,当以多字节方式写RAM时,不必写所有31字节。不管是否写了全部31字节,所写的每一个字节都将传送至RAM。

为了启动数据的传输,CE引脚信号应由低变高,当把CE驱动至逻辑1的状态时,SCLK必须为逻辑0,数据在SCLK的上升沿串行输入。无论是读周期还是写周期,也无论送方式是单字节传送还是多字节传送,都要通过控制字指定40字节中的哪个将被访问。在开始8个时钟周期把命令字(具有地址和控制信息的8位数据)装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据,所有的数据在时钟的下降沿变化。所有写入或读出操作都是先向芯片发送一个命令字节。对于单字节操作,包括命令字节在内,每次为2个字节,需要16个时钟;对于时钟/日历多字节模式操作,每次为7个字节,需要72个时钟;而对于RAM多字节模式操作,每次则为32字节,需要多达256个时钟。这里仅给出单字节读写时序,如图2.5。多字节操作方式与其类似,只是后面跟的字节数不止一个。 4. DS1302的片内寄存器

6

表2.6 DS1302有关日历、时间的寄存器 读寄 写寄 存器 存器 81H 83H 85H 87H 89H 80H 82H 84H 86H 88H BIT7 CH 12/24 BIT6 BIT5 10秒 10分 BIT4 BIT3 BIT2 BIT1 BIT0 范围 秒 分 时 时 日 月 0 0 周日 年 00-59 00-59 1-12 0-23 1-31 1-12 1-7 00-99 0 0 — 0 0 0 0 10 AM/PM 10日 10月 0 10年 0 0 0 8BH 8AH 8DH 8CH 8FH 8EH WP 0 0 0 0 0 通过控制字对DS1302片内寄存器进行寻址之后,即可就所选中寄存器的各位进行操作。片内各寄存器及各位的功能定义如表2.6。

DS1302有关日历、时间的寄存器共有10个,时钟/日历包含在其中的7个写/读寄存器内,这7个寄存器分别是秒、分、小时、日、月、星期和年。

小时寄存器(85H、84H)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为12小时制式时,位5为“0”表示AM;为“1”表示PM。在24小时制式下,位5是第二个10小时位(20~23时)。

秒寄存器(81H、80H)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。一般在设置时钟时,可以停止其工作,设定完之后,再启动其工作。

控制寄存器(8FH、8EH)的位7是写保护位(WP),其它7位均置为0。在任何片内时钟/日历寄存器和RAM,在写操作之前,WP位必须为0,否则将不可写入。当WP位为1时,写保护位防止对任一寄存器的写操作。因此,通过置写保护位,可以提高数据的安全性。另外,还有慢速充电控制寄存器和RAM寄存器。如表2.7。

表2.7充电控制寄存器和RAM寄存器各位定义

BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 TCS — TCS — TCS — DS — DS — RS — RS — 充电控制寄存器 TCS RAM寄存器 — 慢速充电寄存器控制着DS1302的慢速充电特性。寄存器的BIT4~BIT7(TCS)

7

决定是否具备充电性能:仅在编码为1010的条件下才具备充电性能,其他编码组合不允许充电。

BIT2和BIT3选择在VCC2和VCC1之间是一个还是两个二极管串入其中。如果编码DS是01,选择一个二极管;如果编码是10,选择两个二极管;其他编码将不允许充电。该寄存器的BIT0和BIT1用于选择与二极管相串联的电阻值。其中编码RS=01为2 KΩ,RS=10为4 KΩ,RS=11为8 KΩ,而RS=00将不允许进行充电。因此,根据慢速充电寄存器的不同编码可得到不同的充电电流。

RAM寄存器寻址空间一次排列的31字节静态RAM可为用户使用,备用电源位RAM提供了掉电保护功能。寄存器和RAM的操作通过命令字节的BIT6加以区别。当BIT6为“0”时对RAM区进行寻址;否则将对时钟/日历寄存器寻址。其操作方法与前述相同。

2.2 万年历硬件电路设计

万年历包括时间显示电路、按键电路、供电电源、时钟电路等几部分。硬件电路框图参照图2.8。

该系统使用AT89C51单片机作为核心,通过读取时钟日历芯片DS1302,万年历的主要功能——时钟/日历。使用比较通用的8段共阳数码管,做6位显示,分别显示时/年,分/月,秒/日。

时钟日历芯片 DS1302 AT89C51 六位共阳LED显示 按键 +5电源 图2.8 多功能电子时钟硬件系统框图

键盘是为了完成时钟/日历的校对和日历/时间的切换显示功能。

+5V电源将为整个电路供电,具体电路图请参见附录A。

8

2.2.1 时钟电路设计

系统时钟应用了实时时钟日历芯片DS1302,其连接如图2.9。该硬件电路设计简单,抗干扰能力强。AT89C51单片机P1.0直接接DS1302的RST端,上电后,AT89C51的P1.0脚自动输出高电平。P1.2作为串行时钟接口,P1.1作为时钟数据的I/O。DS1302采用单电源供电,平时由+5V电源供电,备用电池脚接空。 特别需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz。

图2.9 系统时钟电路

2.2.2 显示电路

动态显示方式:动态显示采用多路复用技术的动态扫描显示方式,动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素,硬件电路简单,占用的I/O少硬件电路简单,电路采用PNP9012三极管做位选的驱动,如图2.10。

图2.10 显示面板LED分布图

9


基于DS1302的万年历毕业论文 数码管显现 附程序 硬件电路图(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中原城市群旅游合作问题研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: