
一、时钟信号参考读写电路:
时钟信号读写电路图
时钟信号读写电路部分主要由时钟芯片DS1302进行时间的计时,通过单片机与三个按键开关对DS1302进行时间的读取与时间的写入,并且通过按键开关控制路灯开关的时间设置。
⑴ 通过一个32.768M的晶振与两个22pF左右的电容构成DS1302的起振电路接到DS1302的2号管脚与3号管脚;
⑵ DS1302的7号SCLK(串行时钟),6号I/O(数据传输线),5号RST或(CE)(输入信号)管脚分别接单片机的P1^0,P1^1,P1^2端口相接,构成DS1302与单片机之间的数据传输电路;
⑶ DS1302的1号管脚接主电源VCC,8号管脚接备用电源充电干电池,之间再接一个二极管,当主电源通电时还可以对干电池进行充电;主电源断电后,由干电池对DS1302供电,保证DS1302的正常计时。
⑷ 三个按键开关分别接单片机的P2^5,P2^6,P3^2端口,用来设定时间,控制路灯开关时间。
二、时钟芯片DS1302简介
DS1302是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态 RAM,采用 SPI三线接口与 CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电 方式,提供了对后背电源进行涓细电流充电的能力。
DS1302的外部引脚分配
1.各引脚的功能为:
Vcc1: 主电源; Vcc2:备份电源。
当 Vcc2>Vcc1+0.2V 时,由 Vcc2向 DS1302供电,当 Vcc2< Vcc1时,由 Vcc1向 DS1302供电。
SCLK: 串行时钟,输入,控制数据的输入与输出;
I/O: 三线接口时的双向数据线;
CE: 输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。
2.DS1302有下列几组寄存器:
(1)DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h-8Fh,写时80h-8Eh)。放的数据格式为 BCD 码形式, 如图所示。
DS1302寄存器
DS1302有关日历、时间的寄存器:
小时寄存器(85h、84h)的位7用于定义 DS1302是运行于12小时 模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是上下午控制,当为1时,表示 PM。在24小时模式时,位5是第二个10小时位。
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该 位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。
控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和 RAM 的写操作之前,WP 位必须为0。当WP 位为1时,写保护位防止对任一寄存器的写操作。
(2)DS1302有关的RAM的地址
DS1302中附加31字节静态RAM的地址如图所示。
| 读地址 | 写地址 | 数据范围 | |
| C1h | C0h | 00-FFh | |
| C3h | C2h | 00-FFh | |
| C5h | C4h | 00-FFh | |
| …… | …… | …… | |
| FDh | FCh | 00-FFh |
所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如图所示。
| 工作模式寄存器 | 读寄存器 | 写寄存器 | |
| 时钟突发模式寄存器 | CLOCK BURST | BFh | BEh |
| RAM突发模式寄存器 | RAM BURST | FFh | FEh |
DS1302是 SPI 总线驱动方式。它不仅要向寄存器写入控制字, 还需要读取相应寄存器的数据。
要想与 DS1302通信,首先要先了解 DS1302的控制字。
如图:
控制字(即地址及命令字节)
位7: 必须是逻辑1,如果它为0,则不能把数据写入到 DS1302中。
位6: 如果为0,则表示存取日历时钟数据,为1表示存取 RAM 数据;
位5至1: 指示操作单元的地址;
位0: 如为0,表示要进行写操作,为1表示进行读操作。
控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0 位)开始。同样,在紧跟8位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302的数据,读出的数据也是从最低位到最高位。
日历、时间寄存器及控制字如下表:
| 寄存器名称 | 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 | |
| 分寄存器 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | |
| 小时寄存器 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | |
| 日寄存器 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | |
| 月寄存器 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | |
| 星期寄存器 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | |
| 年寄存器 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | |
| 写保护寄存器 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | |
| 慢充电寄存器 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | |
| 时钟突发寄存器 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
数据读写时序图如图:
