sejwy

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

51时钟实验——DS1302芯片

关于DS1302芯片:

1、引脚说明:

 Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V Vcc2>Vcc1+0.2V Vcc2>Vcc1+0.2V Vcc2>Vcc1+0.2V时,由Vcc2 向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。

SCLK:串行时钟,输入,控制数据的输入与输出;

I/O:三线接口时的双向数据线;

CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次, CE 提供结束单字节或多字节数据传输的方法。

GND:接地。                                             

X1~X2:外接 32.768kHz 32.768kHz 32.768kHz 32.768kHz 晶振, 为芯片提供计时脉冲。

 

2、DS1302 的内部主要组成部分虽然有:移位寄存器、控制逻辑、振荡器、实时时 钟以及 RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的, 就是对特定的地址进行读写操作。

 

3、控制字:

 控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入 到DS1302中。                                                                                                                                                                                     位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据。                                                                                                                                                                                                                       位5至位1(A4~A0):指示操作单元的地址。                                                                                                                                                                                                                                                         位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。

 

4、芯片时序:

单字节写时序:

 此为一个数据输出过程:前八个周期完成控制字的写入,接下来的后八个周期芯片要进行读操作(即所给地址内容的输出)。注意:控制字从低到高一次写入。                                                                       代码展示:

 注:当写入控制字最后一位的上升沿结束后便会立即在接下来的下降沿写入数据,故在写入数据的循环中便先读出最低位,再设置下一次读写的下降沿。

 

单字节读时序:

此为一个数据输入过程:前八个周期完成控制字的写入,表明接下来的后八个周期芯片要进行写操作(即向所给地址写入数据)。

数据输入和输出的总结:1、CE为高电平时进行数据的输入与输出。                                                                                                                                                                                                                                                                2、上升沿时进行写入,下降沿时进行输出。

复位时序:即在CE(RST)引脚产生一个正脉冲,在整个读写期间,CE要保持高电平,一次字节读写完毕后,要把CE恢复为低电平·,为下一次读写做准备。

代码展示:

 

5、关于寄存器:

各寄存器的控制字:(D0位为1表示读,为0表示写)

 各寄存器的内容格式:

 DS1302共有十二个寄存器,其中共有7个与日历、时钟相关,其存放的数据为BCD码形式。

 设计思路:首先在向芯片写入数据前,先向控制字写入写保护寄存器的地址,并向其写入数据使WP为0,使其可读可写。然后才可写入数据。数据写入后即可开始读出数据以便显示时间,同样,读数据前,也应该先向控制字写入写保护寄存器的地址,并向其写入数据使WP为1,确保只读不写。

posted on   小小卷心菜  阅读(328)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示