ds1302工作原理_DS1302工作原理

ds1302工作原理_DS1302工作原理【51单片机系列】DS1302时钟模块本文是关于DS1302时钟芯片的相关介绍。一、 DS1302时钟芯片介绍DS1302是DALLAS公司推出的涓流充电时钟芯片,内部含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进

【51单片机系列】DS1302时钟模块
  本文是关于DS1302时钟芯片的相关介绍。

  一、 DS1302时钟芯片介绍

  DS1302是DALLAS公司推出的涓流充电时钟芯片,内部含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。该芯片是3线SPI接口。

  实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可以自动调整。

  时钟操作通过AM/PM只是决定采用24或12小时格式。

  DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需要用到三根通信线: ① RES复位;② I/O数据线;③ SCLK串行时钟。

  时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。

  DS1302工作时功耗很低,保持数据个时钟信息时功率小于1mW。

  DS1302的双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。它广泛应用与电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。

  DS1302主要的性能指标:实时时钟具有能计算2100年之前的秒、分、时、日、周、月、年的能力,还有闰年调整能力。31个8位暂存数据存储RAM。串行I/O口方式使得管脚数量最少。宽范围工作电压3.0~5.5V。工作在2.0V时,电流小于300nA。读/写时钟或RAM数据时有两种传送方式:单字节传送和多字节传送方式。8脚DIP封装或可选的8脚SOIC封装根据表面装配。简单3线接口。与TTL兼容Vcc=5V。可选工业级温度范围-40~+85。具有涓流充电能力。采用主电源和备份电源双电源供应,备份电源可用电池或大容量电容实现。

  DS1302芯片管脚如下:ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理DS1302管脚

  芯片管脚功能:管脚名称管脚标号说明Vcc21备用电源引脚,接入电池断电时提供1302电源X1、X22、3外部晶振引脚,通常需要外接32.768K晶振GND4电源地CE5使能引脚,也是复位引脚RST,低电平有效,操作时置为高电平I/O6串行数据引脚,数据输出或输入都使用该引脚,具有三态功能SCLK7串行时钟引脚Vcc18工作电源引脚

  二、DS1302的使用

  操作DS1302的大致过程,就是将各种数据写入DS1302的寄存器,来设置它当前的时间的格式;然后使DS1302开始运作,DS1302时钟会按照设置情况运转,再用单片机将其寄存器内的数据读出;最后用液晶显示,就是常说的简易电子时钟。

  简单来说DS1302的操作分2步,显示部分属于液晶显示的内容,不属于DS1302本身的内容。

  首先了解下寄存器,DS1302有一个控制寄存器、12个日历/时钟寄存器和31个RAM。

  2.1、DS1302的控制寄存器

  控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字节为控制命令,它用于对DS1302读写过程进行控制,格式如下:765432101RAM/CKA4A3A2A1A0RD/WR第7位固定是1。第6位,1表示片内RAM;0表示日历、时钟寄存器选择位。第5到1位,地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。第0位,1表示RD,即下一步的操作是读;0表示WR,即下一步的操作是写。

  第5到1位取值代表的RAM或寄存器如下表所示。根据下表可以知道,如果要读秒寄存器,命令为1000 0001,如果要写秒寄存器命令为1000 0000。寄存器名称D71D6RAM/CKD5A4D4A3D3A2D2A1D1A0D0RD/WR寄存器值秒寄存器10000000或180H/81H分寄存器10000010或182H/83H时寄存器10000100或184H/85H日寄存器10000110或186H/87H月寄存器10001000或188H/89H星期寄存器10001010或18AH/8BH年寄存器10001100或18CH/8DH写保护寄存器10001110或18EH/8FH慢充电寄存器10010000或190H/91H时钟突发模式10111110或1BEH/BFHRAM011000000或1C0H/C1H…11……………0或1…RAM3011111100或1FCH/FDHRAM突发模式11111110或1FEH/FFH

  2.2、DS1302的日历/时钟寄存器

  DS1302共有12个寄存器,其中7个与日历、时钟有关,存放的数据为BCD码形式,格式如下:寄存器名称取值范围D7D6~D4D3~D0秒寄存器00~59CH秒的十位秒的个位分寄存器00~590分的十位分的个位时寄存器01 ~ 12或00 ~ 2312或24D6-D5-D40-A/P-HR时的个位日寄存器01~310D6-D5D40-日的十位日的个位月寄存器01~120D6-D5-D40-0-1或0月的个位周寄存器01~070D6-D5-D40-0-0星期几年寄存器01~99年的十位年的十位年的个位写保护寄存器WP0-0-00-0-0-0慢充电寄存器TCSTCS-TCS-TCSDS-DS-RS-RS时钟突发寄存器

  寄存器说明: 秒寄存器:低四位为SEC,高的次三位为10SEC。CH位为时钟暂停位,当CH=1时,时钟暂停,CH=0时,时钟开始启动。 时寄存器:最高位为12/24小时的格式选择位,1表示12小时格式,0表示24小时格式; 当设置为12小时显示格式时,D5的高电平表示上午AM,D5低电平表示下午PM; 当设置为24小时格式时,D5、D4表示小时的十位。 写保护寄存器:最高位WP为1时,DS1302只读不写,一般在往DS1302写数据之前确保WP为0。 慢充电寄存器:TCS位为控制慢充电的选择,当为1010时才能使慢充电工作。 DS为二极管选择位。DS=01表示选择一个二极管,DS=10表示选择二个二极管,DS=11或00表示充电器被禁止,与TCS无关。 RS用于选择连接在Vcc2和Vcc1之间的电阻,RS=00,充电器被禁止,与TCS无关,电阻选择如下:RS位电阻器阻值00无无01R12K10R24K11R38K 从DS1302中读取出来的时钟数据均为BCD码格式,需要转换为习惯的十进制。 BCD码是通过4位二进制码来表示1位十进制中的0~9这10个数码。 二进制码转换为BCD码的方式为:4位二进制码大于1001时,加6。比如BCD码00001100的二进制码为:00001100+6=0010010。 如下所示: 十进制码二进制码00000100012001030011401005010160110701118100091001

  2.3、片内RAM

  DS1302片内有31个RAM单元,对片内RAM的操作方式有两种:单字节方式和多字节方式。

  当控制命令字位C0H~FDH时为单字节读写方式,命令字中的D5 ~ D1用于选择对应的RAM单元。

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

  2.4、DS1302的读写时序

  在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位开始。在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位到高位。时序图如下。DS1302通过SPI串行总线跟单片机通信,当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉DS1302是读还是写操作,是对RAM还是CLOCK寄存器操作。第二个字节是要读或要写的数据。单字节读写,只有在SCLK为低电平时,才能将CE置为高电平。所以在进行操作之前需要先将SCLK置低电平,然后将CE置为高电平,接着开始在IO上放入要传送的电平信号。然后跳变SCLK。数据在SCLK上升沿时,DS1302读写数据,在SCLK下降沿时,DS1302放置数据到IO上。ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理DS1302读写时序

  上图是DS1302的三个时序:复位时序、单字节写时序、单字节读时序。

  CE(RST):复位时序,在RST引脚产生一个正脉冲,在整个读写期间,RST保持高电平,一次字节读写完毕后,把RST返回低电平准备下次读写周期。

  单字节读时序:读之前要先对寄存器写命令,从最低位开始写;可以看到,写数据时在SCLK的上升沿实现,读数据在SCLK的下降沿实现。在单字节读时序中,写命令的第八个上升沿结束后紧接着的第八个下降沿就将要读寄存器的第一位数据读到数据线上了。读出来的数据也是最低位开始。

  单字节写时序:两个字节的数据配合16个上升沿将数据写入即可。

  需要注意的是:在操作DS1302之前需要关闭写保护。用延时来降低单片机的速度以配合器件时序。DS1302读出来的数据是BCD码形式,要转换成常用的10进制。读取字节之前,将IO设置为输入口,读取完之后,将IO改回输出口。写程序时,建议开辟数组集放置DS1302的一系列数据,方便扩展键盘输入。

  三、SPI总线介绍

  SPI,Serial Peripheral Interface,串行外围接口。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器之间。

  SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,可达几Mbps。

  SPI接口以主从方式工作,这种方式下通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:MOSI——主器件数据输出,从器件数据输入;MISO——主器件数据输入,从器件数据输出;SCLK——时钟信号,由主器件产生;/CE——从器件使能信号,由主器件控制;ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理SPI接口

  SPI接口内部硬件如下:ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理SPI接口内部硬件图

  SPI没有指定的流控制,没有应答机制确认是否接收到数据。

  四、DS1302使用示例

  本示例实现的功能是:系统运行时,数码管上显示电子时钟,格式为"xx-xx-xx"。

  使用到的资源有数码管以及DS1302时钟芯片,DS1302时钟模块设计如下,DS1302芯片的控制管脚接至单片机的P3.4~P3.6口上,在芯片的X1、X2管脚处外接了一个32.768KHz晶振,为时钟运行提供一个稳定的时钟频率。ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理proteus中DS1302时钟模块

  软件实现,按照上面介绍的时序编写DS1302的读、写时序代码,如下:

  在读取之前需要对DS1302初始化,写入设置的时间,然后可以读取时间,代码如下:

  主程序中,数据处理函数中读取时间,并将时间处理后赋值给显示数据的数组,如下

  数码管显示函数与温度传感器使用示例中类似。主函数如下:

  第一次初始化仿真结果:ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理初始化时钟芯片

  当注释调初始化函数时,会显示当前时间,如下:ds1302工作原理_DS1302工作原理ds1302工作原理_DS1302工作原理注释初始化函数显示当前时间

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

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

(0)
上一篇 2024年 5月 25日
下一篇 2024年 5月 25日

相关推荐

  • csstransparent怎么用

    csstransparent怎么用大学生就可以看懂的css基础实战系列,pre标签里是笔记总结,动手实际操作一下会加强理解。有疑问留言交流哦。可能比较枯燥,但是再坚持一下,前端知识的大门就会大开了。<!DOCTYPE html><html lang=”

    激活谷笔记 2024年 5月 17日
  • arduino时钟程序怎么编写_arduino怎么使用时钟模块

    arduino时钟程序怎么编写_arduino怎么使用时钟模块开源:花30元做了一个游戏机,Arduino开发教程十分详细事情是这样的,小编逛开源网站的时候,看到了一个很有创意的项目。它是糖果盒游戏机。看到封面的时候,小编是挺无感的。然而点进去后……牛啊!而且关键是,作者居然是第一次接触Arduino。第一次接触也就算了,他还边学边做,弄出了个保姆

    2024年 5月 26日
  • python安装教程CSDN_Python安装教程

    python安装教程CSDN_Python安装教程Python安装超详细教程本文将介绍以下几部分内容: 下载 python安装 python配置环境变量python 多版本共存配置python 编程工具推荐 一、下载 python 下载 python 点击这里 进入

    2024年 5月 14日
  • word文档手机版_如何把图片转换成word文档

    word文档手机版_如何把图片转换成word文档手机图片如何转化为word文档?5个技巧现如今手机已经是我们生活中不可或缺的一部分,不管是工作中还是出去玩的时候我们都会使用手机拍摄照片,但有时我们可能希望将这些照片转化为Word文档,以便更好地编辑或传输。那么伙伴们知道该怎么转换吗?下面我们就分享5个可以达成转

    2024年 5月 11日
  • mybatisplus 联表查询_工作中不推荐mybatisplus

    mybatisplus 联表查询_工作中不推荐mybatisplus工作中能用到Mybatis-plus吗?各位大佬,最近在学习java,我想问知道,目前工作中能用到Mybatis-plus吗,和jpa相比,那个使用会多些一. MP简介我们知道Mybatis属于一个半自动的O

    2024年 5月 15日
  • vscode和visualstudio区别知乎_vs studio code

    vscode和visualstudio区别知乎_vs studio codeVSCODE 插件推荐,前端必看海鲸AIChatGPT GPT-4 – 海鲸AI – Visual Studio Marketplace包含了ChatGPT(3.5/4.0)等多个AI模型。可以实现代码优化,代码解读,代码bug修复等功能,反应迅捷,体验出色,是一

    2024年 5月 15日
  • cpu性能测试软件有哪些_cpu性能测试软件有哪些

    cpu性能测试软件有哪些_cpu性能测试软件有哪些什么软件测试电脑性能好?想测试一下电脑的实际性能,刚装的,不知道怎么什么软件可靠,希望大神给点意见如今,手机平板等测评的视频和文章很多人都耳熟能详,那么对于这种测评的具体数据有哪些软件可以得来呢?今天给大家推荐三款测试软件。1,3DMarK,这款

    2024年 5月 24日
  • 分区表坏了怎么修复_分区表被破坏该怎么办

    分区表坏了怎么修复_分区表被破坏该怎么办高手恢复硬盘MBR分区表破坏、分区丢失后有妙招 操作系统是靠硬盘分区表(MBR)来识别出硬盘中的各个不同的分区。硬盘分区表中记录了各个分区的位置和大小以及类型等信息,如果这个分区表破坏了,那么这块硬盘里面的分区就会丢

    2024年 5月 27日
  • vscode设置中文界面不生效_vscode怎么设置中文

    vscode设置中文界面不生效_vscode怎么设置中文VSCode设置中文语言环境(实现语言切换自由)1、打开vs code,然后按快捷键ctrl+shift+p,输入configure language>回车2、选择Install Additional Languages…3、安装需要切换的语言包4、安装成功后,可按界面

    2024年 5月 14日
  • 如何给数组指针赋值数据_如何给数组指针赋值数据

    如何给数组指针赋值数据_如何给数组指针赋值数据最新腾讯面试题汇总C++后端开发岗(部分含答案)阻塞、非阻塞、同步、异步 的区别阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu 不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。对于同步调用来说,很多时候当前线程

    2024年 5月 29日
  • RubyMine激活2024.1(DataGrip 2024.1 版本永久激活激活成功教程教程,附最新DataGrip注册码(亲测好用))

    RubyMine激活2024.1(DataGrip 2024.1 版本永久激活激活成功教程教程,附最新DataGrip注册码(亲测好用))

    激活谷笔记 2024年 6月 7日
  • visio是什么软件 流程图_office画流程图的软件叫什么

    visio是什么软件 流程图_office画流程图的软件叫什么学术论文图表的绘制都用到那些工具?有些同学在写论文的时候光注意文字的阐述,忽略掉了一个重要因素——图表。插入的图表不仅无意义,有时候甚至造成图表影响了文章内容表达。一、图表的重要性作为一篇成熟的论文,就必须有简明扼要的图表来表达信息。打

    2024年 5月 17日
关注微信