目录
前言
DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以通过简单的串行接口与微处理器通讯。内部包含的实时时钟/日历和31字节静态RAM可以提供年月日,时分秒信息。对于少于 31 天的月份月末会自动调整,还有闰年校正功能。
基于51单片机来对简单芯片的学习可以极大的增强初学者的信心,使广大学者有继续坚持下去的动力。
一、初学者需要了解DS1302的一些基本特性
DS1302基本特性详解(学习篇):
1、实时时钟计算能力,与精确度不高的定时器不同,它能精确的计算秒、分、时、月、年,还具有平闰年调节功能。但它也不是永久计时,最终寿命将在2100年结束。
2、操作范围在2.0V至2.5V之间,在2.0V时工作电流小于300nA,使用的是31*8通用暂存RAM。拥有简单的3线接口,与TTL兼容(VCC=5V)
3、读写时钟RAM数据时有单字节或者多字节(脉冲串模式)数据传送方式!!!重点。
4、典型工作电路:串行计时器的主要元素:移位寄存器,控制逻辑,实时时钟,RAM
这里只介绍实现本节时钟实现最重要的几点:
①:CE在信号读写时必须保持高电平!CE输入实现两个功能。第一, CE 开启允许对地址/命令序 列的移位寄存器进行读写的控制逻辑.。第二 CE提供终止数据传输的方法。
②:IO让寄存器知道,接下来是写入还是读出以及数据的存入
③:SCLK用来同步串行接口上的数据动作,上文提到的脉冲传输模式就是通过SCLK的上升沿以及下降沿控制完成,如何进行实现下文将详细阐述。
5、总而言之,操作DS1302的基本步骤就是:我要在哪? 做什么事?做的这个事是什么?
简单理解:在哪 写入or读出 数据
二、脉冲串模式数据传输
1.单字节写入
图2-1
如图2-1,CE在数据写入中一定要保持高电平,直至脉冲串结束。
①:首先IO口的数据读取规则按照的是低位优先!以左半边为例
图2-2
如图2-2:正常的逻辑应该是,从右往左依次是0位—7位。最低为则是二级制中的0000 0001,也就是图2-1中的R/W,这就能解释为什么图一中的R/W是在最前但十六进制用的则是0x01了。理解这个对接下来的学习很有帮助。
值得注意的是:原图中(R/W—1)左半边为命令,(D0—D7)右半边为数据,SCLK进入到指定的脉冲后就由命令行转入数据行。何为命令何为数据如图所示:
图2-3
(R/W—1)左半边为命令:例如:如果你要进行读取操作,那么左半边的命令行字节为0x81对时钟的秒钟进行读取,也就是该图的第二行。同理如果你要进行写入秒钟,命令字节就为0x80。分,时,月,年皆同理。
②:写入中的SCLK脉冲如何操作?SCLK口处于低电平时也就是下降沿,此时R/W字节还没有正式被写入,一旦SCLK进入上升沿,字节立马被推进存储,随后进入下降沿等待下一次数据的推入。
图2-4
2.单字节读取
了解了单字节的写入,那么对单字节的读取那便是手到擒来:
图2-5
读取与单字节的写入基本类似,只是读取是把写入的字节拿出来而已。不过仔细的同学可能会发现单字节读取中的SCLK脉冲比写入少一个,这里也很有意思,可谓是Live to old ,Study to old。