【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读出,数据的读出也是从最低位到最高位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/796552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.1.k8s的pod-创建,数据持久化,网络暴露,env环境变量

目录 一、Pod介绍 二、指令创建和管理Pod 三、资源清单创建pod 1.挂载hostPath存储卷 2.NFS存储卷 所有节点安装nfs k8s3编辑NFS配置文件 k8s1,k8s2节点开机挂载 编辑pod资源清单,挂载nfs 四、pod网络暴露 1.hostNetwork使用宿主机的网络 2.…

【单片机】74HC4052电路图,单片机端口复用电路

74HC4052电路图 如下图,还是很好理解,PA9、PA10是单片机引脚。 当A和B是00,那么就是X-COM和0X短路,Y-COM和0Y短路。 当A和B是01,那么就是X-COM和1X短路,Y-COM和1Y短路。 以此类推。 74HC 工艺可以直接3.…

【Android】图解View的工作流程原理

文章目录 入口DecorView如何加载到Window中MeasureSpec MeasureView的测量ViewGroup的测量 LayoutView的layout() Draw1、绘制背景3、绘制View内容4、绘制子View6、绘制装饰 入口 DecorView如何加载到Window中 MeasureSpec 该类是View的内部类,封装View的规格尺寸…

FlutterFlame游戏实践#08 | 打砖块 -关卡设计

theme: cyanosis 本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究! Flutter\&Flame 游戏开发系列前言: 该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲…

CTF之矛盾

这一题就是php的弱比较“” 这里要求输入的不是数字,并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符,因为php的弱比较将字符与数字进行比较的时候,会把字符转换成数字再比较,当转换到字符时后面便都为空了 flag{…

域名应该如何实名?域名应该如何备案?域名如何解析到服务器

大家好欢迎来到易极赞,今天我们来跟大家聊一下“域名应该如何实名以及备案”这个话题。 域名实名认证是验证域名所有者身份的过程,以确保域名的合法性,通常需要登录到域名服务商后台,进行域名的注册,注册后创建域名模…

linux 安装 pptp 协议

注意:目前iOS已不支持该协议 yum -y install ppp wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/p/pptpd-1.4.0-2.el7.x86_64.rpm yum -y install pptpd-1.4.0-2.el7.x86_64.rpm vi /etc/pptpd.conf 去除 localip 和 remoteip的注释 …

Python | Leetcode Python题解之第13题罗马数字转整数

题目&#xff1a; 题解&#xff1a; class Solution:SYMBOL_VALUES {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000,}def romanToInt(self, s: str) -> int:ans 0n len(s)for i, ch in enumerate(s):value Solution.SYMBOL_VALUES[ch]if i < n - 1 and value < S…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--wordpress中的著名循环

wordpress中的著名循环 首先&#xff0c;在深入研究任何代码之前&#xff0c;我们首先要确保我们有不止一篇博客文章可以工作。因此&#xff0c;我们要去自己的wordpress站点&#xff0c;从侧边栏单机Posts(文章)&#xff0c;进行创建 在执行代码的时候会优先执行single.php如…

【Web应用技术基础】JavaScript(2)——案例:切换按钮的文本

视频已发。截图如下&#xff1a; 很简单的&#xff0c;只需要实现一个按钮的点击方法 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…

【六 (2)机器学习-EDA探索性数据分析模板】

目录 文章导航一、EDA&#xff1a;二、导入类库三、导入数据四、查看数据类型和缺失情况五、确认目标变量和ID六、查看目标变量分布情况七、特征变量按照数据类型分成定量变量和定性变量八、查看定量变量分布情况九、查看定量变量的离散程度十、查看定量变量与目标变量关系十一…

ubuntu20.04.6安装sshd服务,并连接到远程服务器

文章目录 sshd 是 OpenSSH 服务器的守护进程OpenSSH下载在 Ubuntu 上&#xff0c;可以按照以下步骤来管理 sshd 服务 防火墙开启22端口使用Mobaxterm链接服务器 sshd 是 OpenSSH 服务器的守护进程 它负责提供远程登录和安全的 shell 服务。通过启动 sshd 服务&#xff0c;可以…

html骨架以及常见标签

推荐一个网站mdn。 html语法 双标签&#xff1a;<标签 属性"属性值">内容</标签> 属性&#xff1a;给标签提供附加信息。大多数属性以键值对的形式存在。如果属性名和属性值一样&#xff0c;可以致谢属性值。 单标签&#xff1a;<标签 属性"属…

openharmony launcher 调研笔记(02)UI 调用逻辑

最近在看launcher&#xff0c;把自己调研的点做个笔记&#xff0c;持续修改更新中&#xff0c;个人笔记酌情参考。 EntryView Column() { PageDesktopLayout(); } .height(this.workSpaceHeight) // this.mWorkSpaceHeight this.mScreenHe…

Java | Leetcode Java题解之第14题最长公共前缀

题目&#xff1a; 题解&#xff1a; class Solution {public String longestCommonPrefix(String[] strs) {if (strs null || strs.length 0) {return "";}int minLength Integer.MAX_VALUE;for (String str : strs) {minLength Math.min(minLength, str.length…

008 CSS盒子模型

文章目录 盒子模型内容-宽度和高度内边距-padding边框-border圆角-border-radius 外边距-margin上下margin的传递上下margin的折叠块级元素的水平居中行内级元素(包括inline-block元素)的水平居中 外轮廓-outline盒子阴影-box-shadow文字阴影-text-shadow行内非替换元素的特殊性…

第四百四十四回

文章目录 1. 问题描述2. 优化方法2.1 缩小范围2.2 替代方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取AppBar的高度"相关的内容&#xff0c;本章回中将介绍关于MediaQuery的优化.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 问题描述 我们在…

【.Net】DotNetty

文章目录 概述NIO和BIO、AIODotNetty适用场景DotNetty的整体架构和模块DotNetty的使用示例来源 概述 本系列文章主要讲述由微软Azure团队研发的.net的版本的netty&#xff0c;Dotnetty。所有的开发都将基于.net core 3.1版本进行开发。 Dotnetty是什么&#xff0c;原本Netty是…

QT 线程之movetothread

上文列举了qt中线程的几种方法&#xff0c;其中2种方法最为常见。 本文以实例的方式描述了movetothread&#xff08;&#xff09;这种线程的方法&#xff0c;将QObject的子类移动到指定的线程。 一、例子 1. Worker类 1.1Worker类头文件 #ifndef WORKER_H #define WORKER_H…

【前端】JavaScript(概念+语法+形式+变量+数组+函数+作用域)

文章目录 JavaScript一、JavsScript概念1.JavaScript的开发方向2.JavaScript和CSS、HTML的关系3.JavaScript运行过程4.JavaScript的组成 二、JavaScript的语法1.JS的书写形式1.行内式2.内嵌式3.外部式4.注释5.输入输出1.prompt和alert2.输出: console.log 2.变量的使用1.创建变…