河南理工大学 2011毕业设计说明书
第4脚:串行时钟输入端。 第5脚:数据输入/输出端。
第6、7脚:X1、X2是32.768kHz晶振输入/输出端。
4.3 命令字节
表4-1所示为命令字节格式。命令字节启动每个字节的数据传输。该MSB(第7位)必须为逻辑1.如果是0,写入DS1302操作将被禁用。第6位是逻辑1时指定RAM数据。第1至第5位规定特定寄存器作为输入还是输出。LSB(第0位)如果是逻辑0,指定一个写操作(输入);如果是逻辑1,执行一个读操作。命令字节总是从LSB(第0位)输入。
表4-1 DS1302命令字节
7 RAM 1 6 5 4 3 2 1 RD A4 A3 A2 A1 A0 0 SCLK W (1)RST及时钟控制
驱动RST输入高电平可启动所有的数据传输。RST输入起到两种功能:第一,RST启动控制逻辑,允许地址/字节序列访问移位寄存器。第二,RST信号提供了一种终止单字节或多字节数据传输的方法。
一个时钟周期是一个上升沿序列,紧跟着下降沿。对于数据输入,在时钟周期的上升沿时间,数据必须正确;在时钟周期的下降沿,数据位输出。如果RST输入低电平所有数据传输中止。I/O引脚变成高阻状态。数据的传输如图4-2所示。在上电时,RST必须是逻辑0,直到Vcc>2.0V.此外,当RST被驱动到逻辑1状态时,SCLK必须为逻辑0。
a)单字节传送
31
河南理工大学 2011毕业设计说明书
b) 多字节传送 图4-2 数据传送时序
(2)数据输入
继输入写命令字节的8个SCLK周期后,在接下来的8个SCLK周期的上升沿输入数据字节。如果有额外的SCLK周期,将被忽略。数据输入从位0开始。 (3)数据输出
继输入写命令的8个SCLK周期后,在接下来的8个SCLK周期的下降沿输出数据字节。请注意,将被传输的第一个数据位出现在命令字节最后一位被写入后的第一个下降沿。只要RST维持高电平,如有附加的SCLK的周期,将重新转发数据字节。此操作允许连续多字节模式读取能力。此外,I/O引脚在每个SCLK的上升沿都是三态的。数据输出开始于第0位。 (4)多字节模式
时钟/日历或由十进制存储单元31(地址/命令1至5=逻辑1)寻址的RAM寄存器可以为多字节模式。如上所述,第6位指定时钟或RAM和第0位指定读或写。在日历/时钟寄存器的地址9至31或RAM寄存器中的地址31不能存储数据。在多字节模式中,读或写开始于地址0的第0位。
当在多字节模式下写时钟寄存器时,必须按数据传输的次序写入首八个寄存器。然而,当在多字节模式写入RAM时,为了数据的传输,没有必要写入所有的31个字节。每个被写入的字节都将被传输到RAM,无论31个字节是否都被写入。 (5)DS1302内部寄存器
DS1302内部寄存器地址及数据分配情况如表4-2所示。
1)时钟/日历:时钟/日历包含在7个写/读寄存器中。数据以BCD码形式包含在时钟/日历寄存器中。
2)时钟暂停标志:秒寄存器的第7位定义为时钟暂停标志。当此位置1时,时钟振荡器停止,DS1302进入低功耗备用模式,电源消耗小于100nA。当此位置0时,时钟将启动。初始上电状态未定义。
3)AM-PM/12-24模式:DS1302能运行于12小时制或24小时制模式下。小时寄存器的第7位被定义为12或24小时模式选择位。当其处于高电平时,选择12小时模式。
32
河南理工大学 2011毕业设计说明书
在12小时模式下,第5位是AM/PM位,其为逻辑高电平表示PM。在24小时模式下,第5位是第二个10小时位元(20-23)小时。当12/24位被改变时,小时数据一定要被重新初始化。
表4-2 DS1302的日历、时钟寄存器及控制字
寄存器名 秒寄存器 分寄存器 命令字格式 取值范围 写操作 读操作 80H 82H 81H 83H 00-59 00-59 01-12 小时寄存器 84H 85H 00-23 01-28/ 日期寄存器 86H 87H 29/30/31 月份寄存器 星期寄存器 年份寄存器 写保护寄存器 涓流充电寄存器 时钟多字节寄存器 RAM多字节寄存器 88H 8AH 8CH 8EH 90H BEH FEH 89H 8BH 8DH 8FH 91H BFH FFH 01-12 01-07 00-99 — — — — WP TCS — — 0 0 0 0 0 0 10M 0 0 MONTH DAY YEAR 0 DS RS 0 0 10DATE DATE 24 7 CH 0 12/ 0 A/P 6 5 10SEC 10MIN 10 HR HR 4 3 2 1 0 SEC MIN 位 内 容 10YEAR 4)写保护位:控制寄存器的第7位是写保护位。首7位(第0至第6位)必须为0, 读取时始终读0。对时钟或RAM进行任何操作前,第7位必须为0。当写保护位为高电 平时,该位阻止对任何其他寄存器的写操作。初始的上电状态没有定义。因此,在写入 该器件之前,应清除WP位。
5)涓流充电寄存器:该寄存器控制DS1302的涓流特性。涓流充电选择(TCS)位(第 4至第7位)控制涓流充电器的选择。为了阻止意外使能,只有1010模式使能涓流充电 器。所有其他模式都禁用涓流充电器。DS1302上电时,涓流充电器被禁用。DS为二极 管选择位,RS为电阻选择位。
6)时钟/日历多字节模式:该时钟/日历命令字节指定多字节触发模式操作。在此
33
河南理工大学 2011毕业设计说明书
模式下,首8个时钟/日历寄存器可以从地址0的第0位开始被连续地读取或写入。当 指定写时钟/日历多字节模式时,如果写保护位被设置为高电平,将没有数据传送到8 个时钟/日历寄存器(包括控制寄存器)的任意一个。在多字节模式下,涓流充电器不 可用。
7)RAM:静态RAM是RAM地址空间中连续编址的31×8字节。
8)RAM多字节模式:RAM命令字节指定多字节模式操作。在此模式下,31个RAM寄存器从地址0的第0位开始被连续读取或写入。 (6)晶振的选择
32.768kHz的晶振可通过引脚2和3(X1、X2)直接连接至DS1302。所选定的晶振应该加一个6pF的负载电容。 (7)电源控制
Vcc1在单电源与电池供电的系统中提供低电源的电池备份。Vcc2在双电源系统中提供主电源,此时Vcc1连接到备份电源,以便在没有主电源,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302由Vcc1 或Vcc2两者中较大者供电。它与单片机连接后,单片机便可读出其实时时间。连接示意图如图4-3所示[9]。
图4-3 DS1302与AT89C51连接图
4.4 DS1302的相关程序
DS1302的初始化、写入数据及读出数据的程序如下: ⑴ DS1302的头文件程序 sbit T_CLK=P1^5; sbit T_IO =P1^6; sbit T_RST=P1^7;
34
河南理工大学 2011毕业设计说明书
sbit ACC0=ACC^0; sbit ACC7=ACC^7;
⑵ DS1302读写程序:d 为写入的数据,无返回值 void RTInputByte(unsigned char d) {
unsigned char i; ACC = d;
for(i=8; i>0; i--) {
T_IO = ACC0; //相当于汇编中的 RRC T_CLK = 1; T_CLK = 0; ACC = ACC >> 1; } }
⑶ 从DS1302读取1Byte数据 (内部函数):ACC为返回值 unsigned char RTOutputByte(void) {
unsigned char i; for(i=8; i>0; i--) {
ACC = ACC >>1; //相当于汇编中的 RRC ACC7 = T_IO; T_CLK = 1; T_CLK = 0; }
return(ACC); }
⑷ 往DS1302写入数据:ucAddr为 DS1302地址, ucData为 要写的数据,无返回值void Write1302(unsigned char ucAddr, unsigned char ucDa)
35
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库盆花自动浇水系统的设计(8)在线全文阅读。
相关推荐: