简介

DS1302是一个时钟芯片,可以记录时间日历,包括年、月、日、时、分、秒、星期,并能自动计算闰年,很多对时间敏感的设备都有该设备,该设备可以有主备两个电源输入,主电源用外接电源供电,备电源接电池,保证在断电的情况下,时钟芯片可以正常工作,重新上电后时间正确。

主要性能指标

(1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。
(2)内部含有31个字节静态RAM,可提供用户访问。
(3)采用串行数据传送方式,使得管脚数量最少,简单SPI 3线接口。
(4)工作电压范围宽:2.0~5.5V。
(5)工作电流:2.0V时,小于300nA。
(6)时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。
(7)采用8脚DIP封装或SOIC封装。
(8)与TTL兼容,Vcc=5V。
(9)可选工业级温度范围:-40C~+85C。
(10)具有涓流充电能力。
(11)采用主电源和备份电源双电源供应。
(12)备份电源可由电池或大容量电容实现。

引脚功能


X1、X2:32.768KHz晶振接入引脚。
GND:地。
RST:复位引脚,低电平有效,操作时高电平。
I/O:数据输入/输出引脚,具有三态功能。
SCLK:串行时钟输入引脚。
Vcc1:工作电源引脚。
Vcc2:备用电源引脚。 接入电池断电时提供1302电源

寄存器及片内RAM

DS1302内部有一个控制寄存器,12个日历时钟寄存器和31个RAM.

  1. 控制寄存器
    控制寄存器于存放DS1302的控制命令,DS1302的RST引脚回到高电平后写入的第一个字节就是控制命令,用于对DS1302的读写过程进行控制,具体格式如下:

    D7:固定为1
    D6:RAM/CK位,=1片内RAM,=0日历、时钟寄存器选择位。
    D5~D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择见表。
    D0: 读写选择,=0写,=1读
    下图为每个寄存器的地址:


    根据上面的地址和控制位,RST回复高电平后,首先写入控制字节,确定要操作的寄存器和读写操作。然后根据再发送第二个字节,实现读写操作。第二个字节的内容每个寄存器个不相同,下一小节内容就是将每个寄存器的内容。

  2. 日历时钟寄存器
    本小节是介绍日历时钟寄存器的内容,结合控制寄存器一起,即可以实现对日历时钟寄存器的读写操作。
    日历时钟寄存器中存放的数据是使用BCD码形式,即每4个bit存放一个十进制数字,进0000至1001分别代表0至9,即存放0x23表示十进制数23.



    说明:
    (1)数据都以BCD码形式。
    (2)小时寄存器的D7位为12小时制/24小时制的选择位,当为1时选12小时制,当为0时选24小时制。当12小时制时,D5位为1是上午,D5位为0是下午,D4为小时的十位。当24小时制时,D5、D4位为小时的十位。
    (3)秒寄存器中的CH位为时钟暂停位,当为1时钟暂停,为0时钟开始启动。
    (4)写保护寄存器中的WP为写保护位,当WP=1,写保护,当WP=0未写保护,当对日历、时钟寄存器或片内RAM进行写时WP应清零,当对日历、时钟寄存器或片内RAM进行读时WP一般置1。
    (5)慢充电寄存器的TCS位为控制慢充电的选择,当它为1010才能使慢充电工作。DS为二极管选择位。DS为01选择一个二极管,DS为10选择二个二极管,DS为11或00充电器被禁止,与TCS无关。RS用于选择连接在VCC2与VCC1之间的电阻,RS为00,充电器被禁止,与TCS无关,电阻选择情况见表.

片内RAM

DS1302片内有31个RAM单元,对片内RAM的操作有两种方式:单字节方式和多字节方式。当控制命令字为C0H-FDH时为单字节读写方式,命令字中的D5~D1用于选择对应的RAM单元,其中奇数为读操作,偶数为写操作。

当控制命令字为FEH、FFH时为多字节操作(表中的RAM突发模式),多字节操作可一次把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。


DS1302是通过SPI串行总线跟单片机通信的,当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉DS1302是读还是写操作,是对RAM还是对CLOK寄存器操作。第二个字节就是要读或写的数据了。

单字节读写:只有在SCLK为低电平时,才能将CE置为高电平。所以在进行操作之前先将SCLK置低电平,然后将CE置为高电平,接着开始在IO上面放入要传送的电平信号,然后跳变SCLK。数据在SCLK上升沿时,DS1302读写数据,在SCLK下降沿时,DS1302放置数据到IO上

【51单片机】DS1302时钟芯片相关推荐

  1. 51单片机DS1302时钟芯片应用Proteus仿真

    系列文章目录 第一章 51单片机Proteus仿真(一) DS1302使用 文章目录 系列文章目录 前言 一.DS1302时序解读 二.BCD码转十进制解读 三.Proteus仿真 四.详细代码 前言 ...

  2. (给自己看)51单片机DS1302时钟芯片

    老规矩先上DS1302.c的代码 #include <regx52.h>//首先 DS1302_Init(); // DS1302_SetTime();//再在while中DS1302_R ...

  3. 基于51单片机ds1302时钟、ds18b20、lcd12864的恒温器

    目录 项目:基于51单片机ds1302时钟.ds18b20的恒温器 功能说明: 运行流程: 效果展示: 供电方式: 用途: 提高: 附: ​                              ...

  4. 蓝桥杯单片机DS1302时钟芯片驱动代码注释

    蓝桥杯单片机DS1302时钟芯片驱动代码之前的疑惑注释了下 /* DS1302 芯片包含一个 实时时钟/日历和 31 字节的静态 RAM. 与时钟/RAM 通讯只需要三根线: CE,I/O (数据线) ...

  5. 51单片机——DS1302时钟

    目录 1.前言 1.1 实验现象 2. DS1302的介绍 2.1 DS1302的引脚定义以及应用电路 2.2 DS1302内部结构 2.21  DS1302内部特殊寄存器 2.22 时序 2.3 B ...

  6. 共阳极数码时钟c语言程序,51单片机_DS1302时钟芯片_共阴数码管_时钟实例【中为电子科技工作室】_51单片机ds1302数码管时钟...

    该文档包括原理图.源代码,系统的介绍了51单片机和DS1302的应用,显示方式为4位共阴时钟数码管,具有调时功能,原理图和源代码都已验证是可用的. E:\Demo\Keil3\IS EB51M V10 ...

  7. (九)51单片机——DS1302时钟

    目录 DS1302介绍 引脚定义和应用电路 寄存器定义 命令字 时序定义 代码编写 今天,我们的任务是要编写一个用51开发板编写的可调小时钟,接下来就让我们一步一步来实现它吧! DS1302介绍 DS ...

  8. 51单片机DS1302时钟LCD1602显示(可以按键设置时钟)

    DS1302实时时钟具有能计算2100年之前的秒.分.时.日.日期.星期.月.年的能力,还有闰年调整的能力. 图1:DS1302引脚示意图 其中: X1.X2:32.768KHz晶振接入引脚. GND ...

  9. 51单片机DS12C887时钟芯片和1602液晶显示完善前人例程版本

    1.实现显示年月日,星期,时间 2.功能键,调整加,调整减,闹钟设置键4个按键 3.改进按键误入时钟或闹钟调整界面 ,时钟会停止计时. 改进后,如果不发生实际调整,时间不会停止计时. 4.改进闹钟没打 ...

  10. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

最新文章

  1. boost::strict_lock相关的测试程序
  2. 云将与行业走向深度融合
  3. JVM——类加载机制
  4. python2转python3代码_2to3 - 自动将 Python 2 代码转为 Python 3 代码
  5. 某合资源网4.5主题 完美无错版 emlog模板
  6. java类的加载机制简述
  7. 如何明晰定位与责任_公司股权决定公司决策,如何设计合理公司股权架构?
  8. lssvm回归 matlab,lssvm回归预测的程序运行不了 求高手修改指点
  9. 第二阶段团队进展报告(3)
  10. Sql Server获取数据库名,表信息,字段信息,主键信息等
  11. jsp常用内置对象---response
  12. docker tensorflow_Docker环境下如何使用TensorBoard
  13. 如何用DETR(detection transformer)训练自己的数据集
  14. 【Arduino】基础传感器使用
  15. log4cpp输出为html文件,Log4cpp学习记录
  16. 云计算与虚拟化有什么区别?
  17. 计算车号Java,汽车VIN码校验算法 java版
  18. iOS 15 新功能:即使手机关闭,也能找到丢失的iPhone
  19. 一次服务器沦陷为肉鸡后的实战排查过程!
  20. 让IE浏览器支持HTML5标准的方法(转)

热门文章

  1. vs2012程序打包部署下载InstallShield2015LimitedEdition的下载及安装打包整套教程
  2. 一个TCP FIN_WAIT2状态细节引发的感慨
  3. Proptech崛起,房地产产业数智化,成了2020年的新风口
  4. 大数据领域常用算法总结
  5. 使用 PhyML 构建进化树
  6. 刘晓艳老师的考研单词记忆
  7. C学习笔记之---八皇后算法
  8. 电商技术解密之商品详情页
  9. 怎么用计算机编写圆的面积,圆面积计算器.doc
  10. 第23次CSP认证题解