DS1302 原理及操作方法

  • DS1302 特征
  • 典型连接电路和结构简图
  • 引脚说明
  • 地址/命令字节
  • 读写操作地址
  • 读写发送的时序
  • 代码阐述

DS1302 特征

  1. 实时时钟显示秒、分钟、小时、月、月、日、周、年的秒、分钟、小时,最多可获得2100年的飞跃补偿。
  2. 31 x 8电池支持通用RAM。
  3. 最小针数系列I/O。
  4. 2.0V至5.5V全面运作。
  5. 2.0V时使用少于300nA。
  6. 单字节或多字节(突发模式)数据传输,用于读取或写入时钟或RAM数据。
  7. 8PinDIP或可选的8Pin,所以表面安装。
  8. 简单的3线接口。
  9. TTL兼容(V CC=5V)。
  10. 可选工业温度范围:-40°C至85°C。
  11. DS1202兼容。
  12. 承销商实验室(UL®认可)
    建议大家去看DS1302的芯片手册。

典型连接电路和结构简图


可以看到DS132由电源控制,输入移位寄存器,命令和控制逻辑,延时时钟,31×8 RAM和晶振输入模块构成。

引脚说明

值得注意的是当使用有源晶振时,只接X1引脚,而X2引脚悬空。
Vcc2 为主供电。 在没有主电源的情况下,VCC1连接到备份源,以维护时间和日期。 DS1302是从较大的VCC1或VCC2运行的。 当VCC2大于VCC1时 0.2V,VCC2为DS1302供电。 当VCC2小于VCC1时,VCC1为DS1302供电。

地址/命令字节

当对DS1320进行读操作时,需要发送地址字节,而进行写操作时,则需要发送地址和命令字节。
A4 A3 A2 A1 A0 是表示的是DS1320内部地址编号,如 下一部分的读写操作地址。81H — 10000001B 对应上图的地址字节。第1位因为是读操作,所以为1,第1位到第5位表示地址为00000,第六位为RAM/CK,这里我们选择时钟,第七位固定为1。可以对照下一部分的读写操作地址联系一下。

读写操作地址


大家可能疑惑的是10 Seconds 是什么意思?其实就是十位。例如:58 — 十位为 5 各位为 8。
写保护寄存器
WP:0允许写入,1禁止写入。
涓流充电寄存器
慢充电寄存器,用于管理对备用电源的充电
TCS:当4位TCS=1010时,才允许使用涓流充电寄存器,其他任何状态都将禁止使用涓流充电器。
DS:两DS位用于选择连接在VCC2和VCC1间的二极管数目。

读写发送的时序


时序图分析:找开始点,结束点和转折点。
在最下面有参考的 bilibili网址,老师讲的特别好,所以就不再赘述。

代码阐述

我们这里用蓝桥杯竞赛提供的底层驱动参考代码。
.h 文件声明函数

#ifndef __DS1302_H
#define __DS1302_Hvoid Write_Ds1302(unsigned char temp);
void Write_Ds1302_Byte( unsigned char address,unsigned char dat );
unsigned char Read_Ds1302_Byte( unsigned char address );
#endif
#include <reg52.h>
#include <intrins.h>sbit SCK=P1^7;
sbit SDA=P2^3;
sbit RST = P1^3;   // DS1302复位                                             void Write_Ds1302(unsigned  char temp)
{unsigned char i;for (i=0;i<8;i++)        { SCK=0;SDA=temp&0x01;temp>>=1; SCK=1;}
}   void Write_Ds1302_Byte( unsigned char address,unsigned char dat )
{RST=0;    _nop_();SCK=0; _nop_();RST=1;     _nop_();  Write_Ds1302(address);    Write_Ds1302(dat);      RST=0;
}unsigned char Read_Ds1302_Byte ( unsigned char address )
{unsigned char i,temp=0x00;RST=0; _nop_();SCK=0; _nop_();RST=1; _nop_();Write_Ds1302(address);for (i=0;i<8;i++)   {       SCK=0;temp>>=1; if(SDA)temp|=0x80; SCK=1;} RST=0;    _nop_();SCK=0; _nop_();SCK=1; _nop_();SDA=0; _nop_();SDA=1; _nop_();return (temp);
}

需要特别注意的是,在写地址和数据前需要对总线初始化

RST=0;  _nop_();SCK=0; _nop_();RST=1; _nop_();

同时结束读操作时,需要对总线进行如下操作。

RST=0;  _nop_();SCK=0; _nop_();SCK=1; _nop_();SDA=0; _nop_();SDA=1; _nop_();

如若没有则传输错误。

参考文献
DS1302芯片手册
https://www.bilibili.com/video/av37386236

DS1302 原理及操作方法相关推荐

  1. 源表的原理以及操作方法和远程控制方法

    系列文章目录 第一章 源表 Series 2400 SourceMeter 的使用 第二章 源表 Series 2600B SourceMeter 的使用 文章目录 系列文章目录 第一章 源表 Ser ...

  2. 万级送风天花工作原理以及操作方法

    万级送风天花又称为洁净送风天花,净化送风天花,层流送风天花,无尘送风天花,手术室送风天花. 万级送风天花是现代医院手术室必用的一种净化装置.万级层流送风天花它的装置是根据国内外*的阻漏层技术,依托手术 ...

  3. mysql 回收高水位_Oracle 高水位(HWM)回收原理及操作方法

    一.  高水位(HWM)及其产生原因 High Water Mark,HWM) 是Oracle(Segment)级别的概念.在仅有DML(比如delete,insert)操作时,高水位线只会增长,不会 ...

  4. 数据中心实现高效运维的秘诀

    随着2017年中国"量子卫星""量子计算机"等重大科研技术的突破,2018年云计算进入2.0的飞速发展时代,智慧城市信息化建设.应用数据量的井喷,使数据中心基础 ...

  5. 计算机组装与维护预实验报告,计算机组装与维护实验报告.doc

    计算机组装与维护实验报告计算机组装与维护实验报告 江西公安专科学校 实 验 报 告 课程名称 年级专业 学 号 姓 名 \ 实 验 报 告 说 明 1.实验项目名称:要用最简练的语言反映实验的内容.要 ...

  6. dict keys 取最后一个_一步一步学Python3(小学生也适用) 第十三篇: 字典Dict类型

    前面我们已经学习了Python的字符串,列表,元组,这一篇我们将学习字典,字典的使用频率是非常高,跟前面几篇一样,只要你用Python编程,就避不开Python字典. 一.创建字典 字典由键(key) ...

  7. 我是一个工资涨不上去的失败程序员

    编程行业,不进则退.几年都处在一个水平,一直干相同的事情,是一件很可怕的情况,是一个工资涨不上去的失败程序员. 接触实际项目,开发真实"产品",已经有一年多的时间.虽然自己还没有毕 ...

  8. python字典添加数组_一步一步学Python3(小学生也适用) 第十三篇: 字典Dict类型

    前面我们已经学习了Python的字符串,列表,元组,这一篇我们将学习字典,字典的使用频率是非常高,跟前面几篇一样,只要你用Python编程,就避不开Python字典. 一.创建字典 字典由键(key) ...

  9. MYSQL基本知识:TRUNCATE和DELETE的区别

    目录 1.条件删除 2. 事务回滚 3. 清理速度 4. 高水位重置 MYSQL中TRUNCATE和DELETE都能够清理表中的数据,那它们的基本区别是什么呢? 1.条件删除 这个比较好理解,因为DE ...

  10. 软件工程大学大三课表_专业选修课 | 面向大二、大三同学的专业选修课全面介绍来啦!...

    点击蓝字 关注我们 开学在即,又到了一年一度的选课时间,大家想好下学期要怎样选择课程了吗? 相信大家都知道在大学的学习生活中,专业选修课之于咱们工科生的重要性!所以,这一次的课程推荐,我们就来为大家盘 ...

最新文章

  1. 解决【Bootstrap‘s JavaScript requires jQuery】的问题
  2. upgrade mysql client_The mysql_upgrade client is now deprecated(mysql_upgrade客户机现在已经弃用)...
  3. linux sh文件case,Shell脚本case语句简明教程
  4. listView动态加载数据分页
  5. power design教程
  6. indesign中调出字符样式快捷键_Word中十大黄金快捷键,你会用几个?
  7. js优化工具:ECMAScript Cruncher
  8. python布尔运算可以比较浮点数吗_Python3 基础之:令人困惑的浮点数运算
  9. python 迭代器 生成器_python 迭代器与生成器
  10. 大数据如何助力农业发展
  11. 我的blog终于开张啦 :)
  12. matlab计算机械臂素的,机械臂动力学——动力学建模
  13. 火狐扩展教程_Firefox扩展模板
  14. VMware与xshell安装教程
  15. JESD204B调试1
  16. spurious wakeup -- 多线程之虚假唤醒
  17. 标准正态分布怎么算_标准正态分布值计算器
  18. IT:如何把骨干留住
  19. linux报错Loading mirror speeds from cached hostfile解决方法
  20. 家用 NAS 服务器搭建 | 网络 | DNS域名解析

热门文章

  1. soapUI工具使用方法、简介、接口测试
  2. 1.1 Mysql安装包 windows
  3. android设计常用字体,界面设计必备!全方位科普常用的字体规范
  4. 2014最新苹果开发者账号注册流程图解分享
  5. 软考网络工程师笔记-分值分布
  6. 软件项目管理第4版课后习题[附解析]第一章
  7. 手把手教你彻底卸载MySQL
  8. matlab的默认字体_matlab画图字体 matlab默认的字体是什么
  9. 神经网络绘图软件推荐合集
  10. EXCEL拆分单元格代码