当前位置: 首页 > news >正文

【51单片机入门记录】RTC(实时时钟)-DS1302概述

目录

一、基于三线通信的RTC-DS1302

(1)简介

(2)特性

(3)引脚介绍

(4)控制字的格式

(5.0)日历时钟寄存器介绍

(5.1)日历时钟寄存器编写介绍

(5.2)什么是BCD码

(6)小时寄存器(85H和84H)的位7是12/24小时制切换控制位

二、三线通信协议概述

(1)引脚介绍

(2)接口时序的实现

(3)单字节写的时序

(4)单字节读的时序



一、基于三线通信的RTC-DS1302

(1)简介

DS1302是美国DALLAS公司推出的高性能、低功耗的实时时钟,附加31字节的静态RAM,采用三线接口与MCU进行同步通信,并可采用突发方式一次传送多个字节的时钟参数和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,并具有闰年补偿功能。

(2)特性

  • 实时时钟计算秒、分、小时,日期,月,日、周,年与闰年补偿有效期至2100年
  • 31x8支持电池的通用RAM
  • 2.0V至5.5V都可运行
  • 在2.0V时使用小于300nA电流
  • 单字节或多字节(突发模式)用于时钟或计算机读-写的数据传输内存数据
  • 简单的3线接口
  • (3)引脚介绍

  • 引脚

    名字

    功能

    1

    Vcc2

    主电源引脚双电源配置。Vcc连接到备用电源,以在没有主电源的情况下保持时间和日期。

    2

    X1

    晶振引脚

    3

    X2

    晶振引脚

    4

    GND

    5

    CE

    输入。在读或写过程中必须将CE信号变为为高电平。这个引脚有一个内部的40k2(typ)下拉电阻到地。

    6

    1/0

    输入/推挽式输出。10引脚是3线接口的双向数据引脚。这个引脚有一个内部的40k2(typ)下拉电阻到地。

    7

    SCLK

    输入。SCLK用于同步串行接口上的数据移动。这个引脚有一个内部的40k2(typ)下拉电阻到地。

    8

    Vcc1

    单电源和电池供电系统的低功耗操作和低功耗电池备份。

(4)控制字的格式

DS1302将地址和读写控制放到一个字节里面,形成一个控制字,格式如下:

B7:必须为1,若为0,则不能把数据写入到DS1302中

B6:0为表示存取日历时钟数据,1表示存取RAM数据。

B5~B1:表示操作单元地址。

B0:0表示写操作,1表示读操作。

(5.0)日历时钟寄存器介绍

  • 时间和日历信息是通过读取适当的寄存器字节获得的。“通过写入适当的寄存器字节来设置或初始化时间和日历。
  • 时间和日历寄存器的内容采用二进制编码的十进制(BCD)格式与星期对应的值是用户定义的,必须是连续的(例如,如果1等于星期天,那么2等于星期一,以此类推)。不合逻辑的时间和日期条目会导致未定义的操作。
  • 当读取或写入时间和日期寄存器时,用户缓冲区用于防止内部寄存器更新时发生错误。当读取时间和日期寄存器时,用户缓冲区被同步到内部寄存器(CE的上升边缘)每当写入秒寄存器时,就会重置倒计时链
  • 第5位是第二个10小时(20-23 小时)位。小时数据必须在 12/24位改变时重新初始化

(5.1)日历时钟寄存器编写介绍

秒寄存器(80H和81H)的位7是时钟暂停标志

        ··CH为1时,时钟振荡停止CH为0时,时钟开始运行

控制寄存器(8EH和8FH)的位7(WP)是写保护位

        ··WP为0时,可以对任何的时钟和RAM寄存器进行写操作

        ··WP为1时,禁止对任意寄存器进行写操作

(5.2)什么是BCD码

用一位十六进制数表示十进制的0-9数字。例如,十六进制数0x13的值为19,但BCD码表示的是整数13。

举例:秒如何表示。

秒钟的个位放在81h的低四位,秒钟的十位放在4、5、6位。即假设我们要表示10秒,1就需要存在4、5、6位中,而0需要存在低四位中。

同理,日期的个位放在低四位,日期的十位放在4、5位表示。

同理,星期只用了0、1、2三位来表示。

同理,年份信息的低四位是个位,高四位是十位。

(6)小时寄存器(85H和84H)的位7是12/24小时制切换控制位

        ··该位为1时,代表12小时制,位5是上下午标识位:1为下午,0为上午

        ··该位为0时,代表24小时制。比赛时一般为24小时制度,如果考到12小时制,可以进行投机取巧(bushi),将给的时间减去12。

        ··小时数据必须在12/24小时制进行切换时必须重新进行初始化

(7)时钟\日期突发模式

二、三线通信协议概述

(1)引脚介绍

引脚

名字

功能

5

CE

输入。在读或写过程中必须将CE信号变为为高电平。这个引脚内部的40k2(typ)下拉电阻到地。

6

1/0

输入/推挽式输出。I0引脚是3线接口的双向数据引脚。这个引脚有一个内部的40k2(typ)下拉电阻到地。

7

SCLK

输入。SCLK用于同步串行接口上的数据移动。这个引脚有一个内部的40k2(typ)下拉电阻到地。

CE管脚:

驱动CE为高,则启动所有数据传输。如果CE输入低,所有的数据传输终止,I/O引脚进入高阻抗状态。CE输入有两个功能:CE打开控制逻辑,允许访问地址/命令序列的移位寄存器。E信号可以终止单字节或多字节数据传输。

I/O管脚:也称SDA引脚,数据传输管脚

SCLK管脚:时钟管脚;时钟周期是由上升沿和下降沿组成的序列。

(2)接口时序的实现

DS1302的基本操作实际上只有两个:其一是设定时间参数,其二是读取实时时间。不管是那个操作,MCU都要通过三线接口进行数据交互。无论是写入还是读出,控制字总是从最低位开始输出。

(3)单字节写的时序

  • CE引脚被设置为高电平的第一个时钟周期的上升沿开始,控制字节/数据被写入DS1302
  • 在控制字指令输入后的下一个SCLK时钟信号的上升沿,数据被写入DS1302数据的输入从最低位开始。

(4)单字节读的时序

  • 在CE引脚被设置为高电平的第一个时钟周期的上升沿开始,控制字节开始被写入DS1302。
  • 在控制字指令输入后的下一个SCLK时钟信号的下降沿,数据从DS1302读出,数据的读出也是从最低位到最高位。

相关文章:

【51单片机入门记录】RTC(实时时钟)-DS1302概述

目录 一、基于三线通信的RTC-DS1302 (1)简介 (2)特性 (3)引脚介绍 (4)控制字的格式 (5.0)日历时钟寄存器介绍 (5.1)日历时钟寄存…...

Lua热更新(AssetBundle)

AssetBundle 新版本导入ab包报错,则删除其中的Tests文件夹。 给资源分组 打包设置:平台、路径、重复打包清空文件夹、复制到streaming文件夹 建议勾选 建议使用LZ4压缩方式 用来观察文件中的包大小,不常用 参数总结: 这六个只做了解,重要的是上面的...

互联网人才现状分析

作者:哈哥撩编程(视频号、抖音、公众号同名) 新星计划全栈领域优秀创作者博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅…...

高级IO——多路转接

高级IO——五种IO模型 首先我们之前在基础IO部分就学过IO的过程分等待过程和读写过程! 比如我们的scanf除了从键盘缓冲区读取数据所花的时间,主要的时间花费放在了等你输入的过程! 所以我们如果想提高我们的IO效率,我们除了要缩…...

TypeScript常用知识点整理

介绍 TypeScript 是 JavaScript 的一个超集,添加了静态类型支持和更多现代编程特性,提高了代码的可靠性和可维护性。最终会被编译成标准的 JavaScript 代码运行。 使用npm install -g typescript进行全局安装 将编写好的ts代码进行运行,第…...

【Unity实战100例】Unity入门小地图位置同步(第一第三人称)

unity小地图制作包括第一人称控制器和第三人称控制器 目录 一.选择合适自身的人称控制器 二.小地图制作...

蓝桥杯简单模板

目录 最大公约数 两个数的最大公约数 多个数的最大公约数 最小公倍数 两个数的最小公倍数 多个数的最小公倍数 素数 ​编辑 位数分离 正写 ​编辑 反写 闰年 最大公约数 两个数的最大公约数 之前看见的是辗转相除法,例如现在让算一个49,21…...

单例模式(饿汉模型,懒汉模型)

在着里我们先了解什么是单例模式。 就是某个类在进程中只能有单个实例,这里的单例模式需要一定的编程技巧,做出限制,一旦程序写的有问题,创建了多个实例,编程就会报错。 如果我们学会了单例模式,这种模式…...

torchvision中的数据集使用

torchvision中的数据集使用 使用和下载CIFAR10数据集 输出测试集中的第一个元素(输出img信息和target) 查看分类classes 打断点–>右键Debug–>找到classes 代码 import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./data…...

linux 迁移home目录以及修改conda中pip的目录,修改pip安装路径

1)sudo rsync -av /home/lrf /data/home/lrf 将/home目录下的文件进行复制(假设机械硬盘挂载在/data目录下)** 2)usermod -d /data/home/lrf -m lrf 修改用户$HOME变量** 3)vi /etc/passwd 查看对应用户的$HOME变量是…...

解析大语言模型训练三阶段

大语言模型的训练过程一般包括3个阶段:预训练(Pre-training)、SFT(有监督的微调,Supervised-Finetuning)以及RLHF(基于人类反馈的强化学习,Reinforcement Learning from Human Feedb…...

知识图谱的最新进展与未来趋势

知识图谱的最新进展与未来趋势 一、引言 在过去的几年中,知识图谱已经从一个前沿的研究概念发展成为现代信息技术不可或缺的一部分。作为结构化知识的存储和表示形式,知识图谱通过组织信息和数据提供了深刻的洞见,它已被广泛应用于搜索引擎优…...

Facebook直播延迟过高是为什么?

在进行Facebook直播 时,高延迟可能会成为一个显著的问题,影响观众的观看体验和互动效果。以下是一些导致Facebook直播延迟过高的可能原因: 1、网络连接问题 网络连接不稳定或带宽不足可能是导致Facebook直播延迟的主要原因之一。如果您的网络…...

CentOS 7.9 额外安装一个Python3.x版本详细教程

Centos7默认的python版本是2.7,根据需要我们额外安装一个Python3.x版本。 1、安装基础环境 yum update -yyum -y groupinstall "Development tools"yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc …...

uml时序图中,消息箭头和消息调用箭头有什么区别

在UML时序图中,消息箭头和消息调用箭头是用来表示不同类型的消息传递关系的符号。 1. 消息箭头:消息箭头用来表示消息在不同对象之间的传递,通常是实例方法之间的调用关系。消息箭头从消息发送者指向消息接收者,表示消息的传递方…...

12.C++常用的算法_遍历算法

文章目录 遍历算法1. for_each()代码工程运行结果 2. transform()代码工程运行结果 3. find()代码工程运行结果 遍历算法 1. for_each() 有两种方式&#xff1a; 1.普通函数 2.仿函数 代码工程 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vect…...

hadoop:案例:将顾客在京东、淘宝、多点三家平台的消费金额汇总,然后先按京东消费额排序,再按淘宝消费额排序

一、原始消费数据buy.txt zhangsan 5676 2765 887 lisi 6754 3234 1232 wangwu 3214 6654 388 lisi 1123 4534 2121 zhangsan 982 3421 5566 zhangsan 1219 36 45二、实现思路&#xff1a;先通过一个MapReduce将顾客的消费金额进行汇总&#xff0c;再通过一个MapReduce来根据金…...

2024年华为OD机试真题-孙悟空吃蟠桃-Python-OD统一考试(C卷)

题目描述: 孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有N颗桃树,每颗树上都有桃子,守卫将在H小时后回来。 孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉K个,如果树上的桃子少于K个,则全部吃掉,并且这一小时剩余的时间…...

vue3 开发中遇到的问题

1. element-plus的el-popover内置el-select组件&#xff0c;如何避免关闭el-popover 在el-select内置上面添加:teleported"false"就可以避免在点击el-select时候&#xff0c;把el-popver给关闭了 2. validate-on-rule-change&#xff1a;是否在 rules 属性改变后…...

Vue input密码输入框自定义密码眼睛icon

我们用的饿了么UI组件库里,密码输入框的icon是固定不变的,如下所示: 点击"眼睛"这个icon不变,现在需求是UI给的设计稿里,密码输入框的"眼睛"有如下两种: 代码如下: <el-input:key="passwordType"ref="password"...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...