ds1302时钟实验_ds1302时钟实验报告

ds1302时钟实验_ds1302时钟实验报告实现实时时钟在数码管上显示时间实验介绍DS1302 实时时钟在蓝桥杯单片机组比赛应用题中常考模块之一,我们需要学会 DS1302 实时时钟,准确在板子上显示时间。DS1302 模块是一种串行接口的实时时钟。在 DS1302 芯片的

实现实时时钟在数码管上显示时间
  实验介绍

  DS1302 实时时钟在蓝桥杯单片机组比赛应用题中常考模块之一,我们需要学会 DS1302 实时时钟,准确在板子上显示时间。DS1302 模块是一种串行接口的实时时钟。在 DS1302 芯片的内部具备有可编程的日历时钟。它是通过简单的串行接口与微处理器通信,实时时钟/日历提供秒数,分钟、小时、星期、日期、月份和年份信息。月末日期自动调整为少于 31 天的月份,包括闰年的更正,时钟以 24 小时制或带 AM/PM 指示器的 12 小时制。本节我们将会主要学习如何实现 DS1302 实时时钟。

  知识点

  DS1302 芯片原理图DS1302 芯片模块引脚含义时间寄存器位的含义实时时钟演示示例

  DS1302 芯片原理

  DS1302 芯片使用同步串行通信,简化了 DS1302 与微处理器的连接。只有三个与时钟 RAM 通信需要电线:CE、I/O(数据线)和 SCLK(串行时钟)。数据可以每次向时钟 RAM 传输 1 个字节或以最多 31 个字节的突发传输。DS1302 旨在以非常低的功耗运行,并在不到 1μs 的时间内保留数据和时钟信息。

  DS1302 是 DS1202 的后续产品。除了 DS1202 的基本计时功能外,DS1302 具有用于主电源和备用电源的双电源引脚的附加功能,可编程用于 VCC1 的涓流充电器,以及 7 个额外字节的暂存器存储器。另外 DS1302 是功耗比较低的时钟芯片,可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等功能。

  DS1302 模块在蓝桥杯单片机组板子上的原理图如下所示:

  ds1302时钟实验_ds1302时钟实验报告ds1302时钟实验_ds1302时钟实验报告

  P17:SCLK 为时钟输入端。P23:I/O 为串行数据输入输出端(双向)。P13:RST 是复位。

  下面是关于引脚的解释,大家可以初步了解一下即可。

  X1 与 X2:标准 32.768kHz 石英晶体的连接。内部振荡器是设计用于与具有 6pF 指定负载电容的晶体一起工作。DS1302 也可以由外部 32.768kHz 振荡器驱动。在这个配置,X1 引脚连接到外部振荡器信号和 X2 引脚是浮动的。

  工作电路原理图如下所示:显示串行计时器的主要元素有移位寄存器,控制逻辑,振荡器,实时时钟,和内存。

  ds1302时钟实验_ds1302时钟实验报告ds1302时钟实验_ds1302时钟实验报告

  日历时钟寄存器

  这个是大家学习的重点,只有把时钟寄存器牢牢地掌握之后,才更高效的控制时钟模块。需要知道每个 bit 位的含义。另外在蓝桥杯单片机组比赛时,会提供数据资源包,里面会有日历时钟寄存器,大家可以去参阅寄存器手册。

  ds1302时钟实验_ds1302时钟实验报告ds1302时钟实验_ds1302时钟实验报告

  第一行:秒的取值说明,秒的取值范围是 0 – 59,十位最大数为 5,需要三个 bit 位,即 bit4、bit5、bit6 表示秒的十位数值。个位数最大数为 9,需要四位,即 bit0、bit1、bit2、bit3。第二行:分钟的取值范围,取值范围为 0 – 59,与第一行一致。第三行:小时的取值范围,bit7 = 1 时,此时时钟以 12 小时制显示,当 bit7 = 0 时,此时 DS1302 时钟芯片以 24 小时制显示。当时钟以 12 小时制显示时,bit5 = 0 表示上午,bit5 = 1 时表示下午。当时钟以 24 小时制显示时,bit5 与 bit4 一起表示小时的十位。

  其余行同理可得。

  注意:倒数第二行,只看 bit7,当 bit7 = 1,即 WP = 1 时禁止写数据。所以必须写数据时,必须置 0。

  再了解一下 DS1302 芯片内部框图,然后开始在蓝桥杯单片机组板子上实战演练。

  ds1302时钟实验_ds1302时钟实验报告ds1302时钟实验_ds1302时钟实验报告

  官方提供 DS1302 芯片文件

  在蓝桥杯单片机组比赛时,官方会提供 DS1302 芯片操作 与 文件。

  ds1302时钟实验_ds1302时钟实验报告ds1302时钟实验_ds1302时钟实验报告

  文件如下:

  由于官方已经给出驱动文件,把驱动文件加以修改,在结合自己的显示代码,最终可以实现实时时钟。

  实时时钟部分只需要知道,如何读时间、如何写入初始值、转换公式是什么。

  BCD 码与十进制的转换

  对于 DS1302 实时时钟模块,写入或者读出的数据是 BCD 码,当需要写入数据时,需要把写入的十进制转换为 BCD 码。当需要读出数据时,需要把读取到的 BCD 码转换为十进制数。

  下面来看一下 BCD 码与十进制数值的对应关系。

  ds1302时钟实验_ds1302时钟实验报告ds1302时钟实验_ds1302时钟实验报告

  在上图中可以看出十进制数为 0 到 9 时 BCD 码都是以二进制数来计算的,但是从数值 10 以后 BCD 码开始变得不一样啦。

  十进制数从 10 以后,BCD 码以四位二进制数为一单位来表示一个数,例如数值 10 的 BCD 码是 00010000,可以看出前四位二进制数为 0001 表示十进制数值 1,后四位二进制数 0000 表示十进制数值 0。我们可以得出如下转换公式:

  十进制转换 BCD 码的公式为:BCD 码 = 十进制数 / 10 * 16 + 十进制数 % 10。

  例如:十进制数值 18 的转换为 。

  BCD 码转换十进制的公式为:十进制数 = BCD / 16 * 10 ^ 1 + BCD % 16。

  写入初始值操作

  例如:显示时间为 18:50:50,可以执行如下代码。

  记着转换公式为:((value/10)<<4|(value%10))。

  读出数据操作

  记着转换公式为:。

  另外写入、读出年、星期、月、日也是如此,只要修改写入、读出初始值就 OK 了。

  实时时钟示例

  用分模块实现 DS1302 时钟显示时间的代码层次架构更加清晰,以后多个功能的实现要分模块块处理,这样的代码修改比较方便。(建议模块化)

  各个模块代码

  文件代码:

  文件代码:

  文件代码:

  结果与体会

  运行后,结果如下所示:

  此代码和官方给出的驱动有所修改,增加了 DS1302 初始化函数和时间的函数,还有在向 DS1302 单字节写入一字节数据,修改:

  修改官方提供的实时时钟驱动文件,实时时钟 DS1302 单字节读出一字节数据函数修改为:

  上述代码只要注意转换公式就可以了,在 中要增加函数说明。ds1302时钟实验_ds1302时钟实验报告https://www.zhihu.com/video/1736154060712144896

  实验总结

  DS1302 是功耗比较低的时钟芯片,可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等功能。实时时钟章节需要大家熟悉 DS1302 芯片原理图连接方式,引脚含义等,另外还需要掌握寄存器 bit 位的含义。做到熟练使用。记得读写转换公式,做到这些便可进行下面章节的学习。

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/95903.html

(0)
上一篇 2024年 5月 23日 下午11:42
下一篇 2024年 5月 24日

相关推荐

  • 编曲 宿主_编曲宿主软件

    编曲 宿主_编曲宿主软件「科普」宿主软件那么多款,新手到底该学哪个?原标题:「科普」宿主软件那么多款,新手到底该学哪个?许多对编曲感兴趣的新手会问一个问题:“这么多种宿主软件,我该学哪个?”甚至会问:“有没有全能的宿主软件?这样我学一个就够了。”近二十年来,各种各样的音乐制作宿主软件层出不

    激活谷笔记 2024年 5月 24日
  • 用7zip怎么把文件夹压缩到最小_7zip如何把1G文件压缩到200M

    用7zip怎么把文件夹压缩到最小_7zip如何把1G文件压缩到200M7-zip把1G文件压缩到200M的方法7-zip是一款非常好用的压缩软件,很多时候我们会在电脑中保存一些比较大的文件,比如一些有趣的视频文件的收藏或者是大量的图片等,那么时间长久之后,堆积的文件越多,那么就会占用到电脑的很多空间,于是有的小伙伴就

    2024年 5月 9日
  • 函数指针数组用法及例题_函数指针数组用法及例题及答案

    函数指针数组用法及例题_函数指针数组用法及例题及答案数组指针、函数指针、指针数组、函数 指针数组、指针函数详细总结目录1.数组指针概念和应用2.函数指针概念和应用3.指针数组4.函数指针数组5.指针函数1.数组指针概念和应用首先数组指针应该是一个数组&#xff0

    激活谷笔记 2024年 6月 1日
  • vscode配置c/c++环境linux_linux安装vscode使用教程

    vscode配置c/c++环境linux_linux安装vscode使用教程Linux系统VsCode 配置C/C++环境要在Linux上配置C/C++环境,可以按照以下步骤进行操作:1. 首先,确保系统已经安装了gcc、g++和gdb这些必要的工具。可以使用以下命令在终端中检查它们的版本: “` gcc -v

    激活谷笔记 2024年 5月 9日
  • 红黑树的作用与功效_红黑树的作用与功效图片

    红黑树的作用与功效_红黑树的作用与功效图片图解:什么是红黑树?注:本文比较硬核但是很值得大家花心思看完,看完你一定会有所收获的红黑树是面试中一个很经典也很有难度的知识点,网传字节跳动面试官最喜欢问这个问题。很多人会觉得这个知识点太难,不想花太多功夫去了解,也有人会认为这个数据结构在日常开发中使用的很少,因此没必要多做掌握。在此我针对以

    2024年 5月 22日
  • JavaScript实现汉字转换为拼音及缩写的方法示例

    JavaScript实现汉字转换为拼音及缩写的方法示例这篇文章主要介绍了JavaScript实现汉字转换为拼音及缩写的方法,结合实例形式分析了javascript数组遍历、转换实现汉字转拼音相关操作技巧,需要的朋友可以参考下

    激活谷笔记 2024年 3月 24日
  • linux轻量级 Web 服务器

    linux轻量级 Web 服务器linux轻量级 Web 服务器

    2024年 3月 9日
  • Goland激活2024.1.2(JetBrains Pycharm Pro 2024.1.2 中文专业免费正式版(附汉化包+安装教程))

    Goland激活2024.1.2(JetBrains Pycharm Pro 2024.1.2 中文专业免费正式版(附汉化包+安装教程))

    2024年 6月 6日
  • uefi bios设置硬盘启动顺序_uefi bios 怎么设置硬盘启动项

    uefi bios设置硬盘启动顺序_uefi bios 怎么设置硬盘启动项华硕主板如何调整启动项启动顺序?0. 华硕主板启动项说明华硕主板 BIOS 支持针对多种类型的启动项进行引导启动,比如硬盘、U 盘、光驱、网络启动等等。如果同一种类型的设备同时支持 UEFI 和 Legacy 的方式引导启动,那么 BIOS 中在显示相应的启动项时会通过前缀加以区分,具

    2024年 6月 2日
  • 单片机原理及应用技术c语言版_单片机原理及应用技术c语言版答案

    单片机原理及应用技术c语言版_单片机原理及应用技术c语言版答案单片机原理及应用(C语言版)习题答案.doc单片机原理及应用(C语言版)习题答案第1章1.什么是单片机?答:将中央处理器(Central Processing Unit,CPU)、随机存储器、只读存储器、中断系统、定时器/

    激活谷笔记 2024年 5月 26日
  • linux配置环境变量在哪个文件

    linux配置环境变量在哪个文件在linux系统部署皕杰报表,因皕杰报表是一款纯java报表工具,运行时需要jre环境,所以要在服务器上配置三个jdk环境变量path、classpath、JAVA_HOME。那么为什么要配置jdk环境变量呢?因为java

    激活谷笔记 2024年 5月 19日
  • 人脸相似度对比软件叫什么_人脸相似度对比app软件

    人脸相似度对比软件叫什么_人脸相似度对比app软件人脸对比相似度软件人脸对比验证系统是一款可以对比人物照片相似度的软件,人脸对比验证系统主要包含人脸对比及身份认证两项功能,在远程视频时通过此软件可以分辨判断身份证照片是否为本人。相关软件软件大小版本说明下载地址闪电苹果HEIC图片转换器 v3.6.3.0官

    激活谷笔记 2024年 6月 1日
关注微信