DS1302断电标志位程序编写(已加锂电池电动车突然断电,且正常走时)

联系人:左克俭 &nbsp
公司名称:
DS1302 实时时钟模块 带电池CR2032 掉电走时
最近被加入的企业
名片夹还没有企业信息,赶紧查看企业联系方式加入吧!
『深圳市佳明丰电子经营部』的联系方式为2, 0,联系人:左克俭 &nbsp
品牌/型号:funduino/DS1302品牌:funduino型号:DS1302加工定制:是
以上是DS1302 实时时钟模块 带电池CR2032 掉电走时的详细介绍,包括DS1302 实时时钟模块 带电池CR2032 掉电走时的价格、型号、图片、厂家等信息!
DS1302实时时钟模块DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年...
商机库包括所有采购、招标信息的汇总
与DS1302 实时时钟模块 带电池CR2032 掉电走时相关的产品信息
DS1302 实时时钟模块 带电池CR2032 掉电走时产品相关搜索
最新PLC/可编程控制系统产品
按排行字母分类:
我需要采购PLC/可编程控制系统,请供应商联系我....
马可波罗&&全心服务
*联系电话:
*短信验证:
允许同品类其他优质供应商联系我您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
学位论文_课程设计(论文)基于单片机的电子日历设计.doc 30页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:300 &&
学位论文_课程设计(论文)基于单片机的电子日历设计
你可能关注的文档:
··········
··········
基于单片机的电子日历设计一、设计目的和要求单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。单片机是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 通过对一个基于单片机的能实现电子日历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。系统由主控制器AT89C51、时钟电路DS1302、显示电路、和复位电路等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示。系统设计要求:电子日历能显示,能调整。基于51系列的单片机进行的电子万年历设计可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。具体实现功能:显示年月日时分秒及星期信息,具有可调整日期和时间功能,与即时时间同步。 主要使用到的工具和器件:Keilc51ProtuesDSLCD12864 二、方案设计每一系统都有几个核心的模块。它对整个系统的性能有非常大的影响。比如系统的主控。2.1 主控芯片选择方案论证 方案一:选择51系列的单片机;AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 方案二:选择msp430系列单片机;MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。MSP430 系列单片机的各系列都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O端口、基本定时器(Basic Timer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出A/D 转换器;16 位定时器(Timer_A 和 Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、PWM等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,P0、P1、P2 端口能够接收外部上升沿或下降沿的中断输入;10/12位硬件 A/D 转换器有较高的转换速率,最高可达200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位D/A转换;硬件I2C串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用的DMA模块。MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。 方案对比:运算周期:时钟显示最小单位为秒,51和msp430的运算周期都在1秒之内,这一点都满足要求。IO口是否满足系统设计要求:51有32个IO口,msp430的IO口则更多。这一点都满足要求。是否需要外加时钟芯片:采用定时器,误差较大。Msp430内部就有时钟RTC单元,51单片机需要外加。选择51单片机作为系统的主控;2.2 显示模块方案选择 方
正在加载中,请稍后...实时时钟芯片DS1302
查看: 48327|
摘要: 本节课的DS1302是个实时时钟芯片,我们可以用单片机写入时间或者读取当前的时间数据,我也会带着大家通过阅读这个芯片的数据手册来学习和掌握这个器件。
由于IT技术国际化比较强,因此数据手册绝大多数都是英文的 ...
& & & &&本节课的DS1302是个实时时钟芯片,我们可以用写入时间或者读取当前的时间数据,我也会带着大家通过阅读这个芯片的数据手册来学习和掌握这个器件。
& & & &&由于IT技术国际化比较强,因此数据手册绝大多数都是英文的,导致很多英语基础不好的同学看到英文手册头就大了。这里我要告诉大家的是,只要精神不退缩,方法总比困难多,很多英语水平不高的,看数据手册照样完全没问题,因为我们的专业词汇也就那么几个,多看几次就认识了。我们现在不是考试,因此大家可以充分利用一些英文翻译软件,翻译过来的中文意思有时候可能不是那么准确,那你就把翻译的内容和英文手册里的一些图表比较参考学习。此外数据手册除了介绍性的说明外,一般还会配相关的图形或者表格,结合起来看也有利于理解手册所表达的意思。这节课我会把DS1302的英文资料尽可能的用比较便于理解的方式给大家表达出来,同学们可以把我的表达和英文手册多做一下对比,尽可能快的慢慢开始学会了解英文手册。
1、DS1302的特点
& & & &&DS1302是DALLAS(达拉斯)公司出的一款涓流充电时钟芯片,2001年DALLAS被MAXIM(美信)收购,因此我们看到的DS1302的数据手册既有DALLAS的标志,又有MAXIM的标志,大家了解即可。
& & & &&DS1302实时时钟芯片广泛应用于电话、传真、便携式仪器等产品领域,他的主要性能指标如下:
1、DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软件自动调整的能力,可以通过配置AM/PM来决定采用24小时格式还是12小时格式。
2、拥有31字节数据存储RAM。
3、串行I/O通信方式,相对并行来说比较节省IO口的使用。
4、DS1302的工作电压比较宽,大概是2.0V~5.5V都可以正常工作。
5、DS1302这种时钟芯片功耗一般都很低,它在工作电压2.0V的时候,工作电流小于300nA。
6、DS1302共有8个引脚,有两种封装形式,一种是DIP-8封装,芯片宽度(不含引脚)是300mil,一种是SOP-8封装,有两种宽度,一种是150mil,一种是208mil。我们看一下DS1302的引脚封装图,如图1所示。
图1&DS1302封装图
& & & &所谓的DIP封装Dual&In-line&Package,也叫做双列直插式封装技术,就如同我们开发板上的STC89C52RC单片机,就是个典型的DIP封装,当然这个STC89C52RC还有其他的封装,为了方便学习使用,我们采用的是DIP封装。而74HC245、74HC138、24C02、DS1302我们用的都是SOP封装Small&Out-Line&Package,是一种芯片两侧引出L形引脚的封装技术,大家可以看看开发板上的芯片,了解一下这些常识性知识。
7、当供电电压是5V的时候,兼容标准的TTL电平标准,这里的意思是,可以完美的和单片机进行通信。
8、由于DS1302是DS1202的升级版本,所以所有的功能都兼容DS1202。此外DS1302有两个输入,一个是主电源,另外一个是备用电源,比如可以用电池或者大,这样是为了保证系统掉电的情况下,我们的时钟还会继续走。如果使用的是充电电池,还可以在正常工作时,设置充电功能,给我们的备用电池进行充电。
& & &&&DS1302的特点第二条“拥有31字节数据存储RAM”,这是DS1302额外存在的资源。这31字节的RAM相当于一个存储器一样,我们编写单片机程序的时候,可以把我们想存储的数据存储在DS1302里边,需要的时候读出来,这块功能和EEPROM有点类似,相当于一个掉电丢失数据的“EEPROM”,如果我们的时钟电路加上备用电池,那么这31个字节的RAM就可以替代EEPROM的功能了。这31字节的RAM功能使用很少,所以在这里我不讲了,大家了解即可。
2、DS1302的硬件信息
& &&我们平时所用的不管是单片机,还是其他一些器件,根据使用条件的约束,可以分为商业级和工业级,DS1302的购买信息如下图2所示。
图2&DS1302订购信息
  我们在订购DS1302的时候,就可以根据图15-4所标识的来跟销售厂家沟通,商业级的工作电压略窄,是0到70度,而工业级可以工作在零下40度到85度。TOP&MARK就是指在芯片上印的字。
  DS1302一共有8个引脚,下边要根据引脚分布图和典型来介绍一下每个引脚的功能,如图3和图4所示。
&图3&DS1302引脚图
& & & & & & & & & & & & & & & & & & & & & & & & & &&
图4&DS1302典型电路
& & & &&1脚VCC2是主电源正极的引脚,2脚X1和3脚X2是晶振输入和输出引脚,4脚GND是负极,5脚CE是使能引脚,接单片机的IO口,6脚I/O是数据传输引脚,接单片机的IO口,7脚SCLK是通信时钟引脚,接单片机的IO口,8脚VCC1是备用电源引脚。考虑到KST-51开发板是一套以学习为目的的板子,加上备用电池对航空运输和携带不方便,所以8脚可以直接悬空,断电后不需要DS1302再运行了,或者是在8脚接一个10uF的电容,经过试验可以运行1分钟左右的时间,如果大家想运行时间再长,可以加大电容的容量,如图5和图6所示。
& & & && 图5&DS1302无备用电源 & & & & & & &&& &&
图6&DS1302电容作备用电源
  涓流充电功能,课程也不讲了,大家也作为选学即可,我们使用的时候直接用5V电源接一个,在有主电源的情况下给电容充电,在主电源掉电的情况下,这个电容可以给DS1302大约供电1分钟左右,这种电路的最大用处是在电池供电系统中更换主电池的时候保持实时时钟的运行不中断,1分钟的时间对于更换电池足够了。此外,通过我们的使用经验,在DS1302的主电源引脚串联一个1K电阻可以有效的防止电源对DS1302的冲击,R6就是,而R9,R26,R32都是上拉电阻。
  我们把8个引脚功能分别介绍,如表1所示。
  表1&DS1302引脚功能图
主电源引脚,当Vcc2比Vcc1高0.2V以上时,DS1302由VCC2供电,当Vcc2低于Vcc1时,由Vcc1供电。
这两个引脚需要接一个32.768K的晶振,给DS1302提供一个基准。特别注意,要求这个晶振的引脚负载电容必须是6pF,而不是要加6pF的电容。如果使用有源晶振的话,接到X1上即可,X2悬空。
DS1302的输入引脚。当读写DS1302的时候,这个引脚必须是高电平,DS1302这个引脚内部有一个40k的下拉电阻。
这个引脚是一个双向通信引脚,读写数据都是通过这个引脚完成。DS1302这个引脚的内部含有一个40k的下拉电阻。
输入引脚。SCLK是用来作为通信的时钟信号。DS1302这个引脚的内部含有一个40k的下拉电阻。
备用电源引脚。
& & & &DS1302的电路一个重点就是时钟电路,它所使用的晶振是一个32.768k的晶振,晶振外部也不需要额外添加其他的电容或者电阻电路了。时钟的精度,首先取决于晶振的精度以及晶振的引脚负载电容。如果晶振不准或者负载电容过大过小,都会导致时钟误差过大。在这一切都搞定后,最终一个考虑因素是晶振的温漂。随着温度的变化,晶振往往精度会发生变化,因此,在实际的系统中,其中一种方法就是经常校对。比如我们所用的的时钟,通常我们会设置一个选项“将计算机设置于internet时间同步”。选中这个选项后,一般可以过一段时间,我们的计算机就会和internet时间校准同步一次。
  3、DS1302寄存器介绍
& & & &&DS1302的一条指令一个字节8位,其中第七位(即最高位)是固定1,这一位如果是0的话,那写进去是无效的。第六位是选择RAM还是CLOCK的,我前边说过,我们这里主要讲CLOCK时钟的使用,它的RAM功能我们不用,所以如果选择CLOCK功能,第六位是0,如果要用RAM,那第六位就是1。从第五到第一位,决定了寄存器的5位地址,而第零位是读写位,如果要写,这一位就是0,如果要读,这一位就是1,如图7所示。
图7&DS1302命令字节
& & & &&DS1302时钟的寄存器,其中8个和时钟有关的,5位地址分别是00000一直到00111这8个地址,还有一个寄存器的地址是01000,这是涓流充电所用的寄存器,我们这里不讲。在DS1302的数据手册里的地址,直接把第七位、第六位和第零位值给出来了,所以指令就成了80H、81H那些了,最低位是1,那么表示读,最低位是0表示写,如图8所示。
图8&DS1302的时钟寄存器
& & & &&寄存器一:最高位CH是一个时钟停止标志位。如果我们的时钟电路有备用电源部分,上电后,我们要先检测一下这一位,如果这一位是0,那说明我们的时钟在系统掉电后,由于备用电源的供给,时钟是持续正常运行的;如果这一位是1,那么说明我们的时钟在系统掉电后,时钟部分不工作了。若我们的Vcc1悬空或者是电池没电了,当我们下次重新上电时,读取这一位,那这一位就是1,我们可以通过这一位判断时钟在单片机系统掉电后是否持续运行。剩下的7位高3位是秒的十位,低4位是秒的个位,这里注意再提一次,DS1302内部是BCD码,而秒的十位最大是5,所以3个二进制位就够了。
& & & &&寄存器二:bit7没意义,剩下的7位高3位是分钟的十位,低4位是分钟的个位。
& & & &&寄存器三:bit7是1的话代表是12小时制,是0的话代表是24小时制,bit6固定是0,bit5在12小时制下0代表的是上午,1代表的是下午,在24小时制下和bit4一起代表了小时的十位,低4位代表的是小时的个位。
& & & &&寄存器四:高2位固定是0,bit5和bit4是日期的十位,低4位是日期的个位。
& & & &&寄存器五:高3位固定是0,bit4是月的十位,低4位是月的个位。
& & & &&寄存器六:高5位固定是0,低3位代表了星期。
& & & &&寄存器七:高4位代表了年的十位,低4位代表了年的个位。这里特别注意,这里的00到99年指的是2000年到2099年。
& & & &&寄存器八:bit7是一个保护位,如果这一位是1,那么是禁止给任何其他的寄存器或者那31个字节的RAM写数据的。因此在写数据之前,这一位必须先写成0。
4、DS1302通信时序介绍
DS1302我们前边也有提起过,是三根线,分别是CE、I/O和SCLK,其中CE是使能线,SCLK是时钟线,I/O是数据线。前边我们学过SPI通信,同学们发现没发现,这个DS1302的通信线定义和SPI怎么这么像呢?
事实上,DS1302的通信是SPI的变异种类,它用了SPI的通信时序,但是通信的时候没有完全按照SPI的规则来,下面我们一点点解剖一下DS1302的变异SPI通信方式。
先看一下单字节写入操作,如图9所示。
图9&DS1302单字节写操作
然后我们在对比一下再对比一下CPOL=0并且CPHA=0的情况下的SPI的操作时序,如图10所示。
图10&CPOL=0/CPHA=0通信时序
图9和图10的通信时序,其中CE和SSEL的使能控制是反的,对于通信写数据,都是在SCK的上升沿,从机进行采样,下降沿的时候,主机发送数据。DS1302的时序里,单片机要预先写一个字节指令,指明要写入的寄存器的地址以及后续的操作是写操作,然后再写入一个字节的数据。
对于单字节读操作,我就不做对比了,把DS1302的时序图贴出来给大家看一下,如图11所示。
图11&DS1302单字节读操作
& & & &&读操作有两处特别注意的地方。第一,DS1302的时序图上的箭头都是针对DS1302来说的,因此读操作的时候,先写第一个字节指令,上升沿的时候DS1302来锁存数据,下降沿我们用单片机发送数据。到了第二个字数据,由于我们这个时序过程相当于CPOL=0/CPHA=0,前沿发送数据,后沿读取数据,第二个字节是DS1302下降沿输出数据,我们的单片机上升沿来读取,因此箭头从DS1302角度来说,出现在了下降沿。
& & & &&第二个需要注意的地方就是,我们的单片机没有标准的SPI接口,和I2C一样需要用IO口来模拟通信过程。在读DS1302的时候,理论上SPI是上升沿读取,但是我们的程序是用IO口模拟的,所以数据的读取和时钟沿的变化不可能同时了,必然就有一个先后顺序。通过实验发现,如果先读取IO线上的数据,再拉高SCLK产生上升沿,那么读到的数据一定是正确的,而颠倒顺序后数据就有可能出错。这个问题产生的原因还是在于DS1302的通信协议与标准SPI协议存在的差异造成的,如果是标准SPI的数据线,数据会一直保持到下一个周期的下降沿才会变化,所以读取数据和上升沿的先后顺序就无所谓了;但DS1302的IO线会在时钟上升沿后被DS1302释放,也就是撤销强推挽输出变为弱下拉状态,而此时在51单片机引脚内部上拉的作用下,IO线上的实际电平会慢慢上升,从而导致在上升沿产生后再读取IO数据的话就可能出错。因此这里的程序我们按照先读取IO数据,再拉高SCLK产生上升沿的顺序。
& & & &&下面我们就写一个程序,先将号星期二12点30分00秒这个时间写到DS1302内部,让DS1302正常运行,然后在不停的读取DS1302的当前时间,并显示在我们的液晶屏上。
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:

我要回帖

更多关于 锂电池突然断电 的文章

 

随机推荐