先容美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的构造、事情事理及其在实时显示韶光中的运用。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。给出DS1302在读写中的C51程序及流程图,以及在调试过程中的把稳事变。
关键词:时钟电路;实时时钟;单片机;
编辑本段1 弁言
现在盛行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口大略、价格低廉、利用方便,被广泛地采取。本文先容的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,紧张特点是采取串行数据传输,可为掉电保护电源供应可编程的充电功能,并且可以关闭充电功能。采取普通32.768kHz晶振。
编辑本段2 DS1302的构造及事情事理
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,事情电压为2.5V~5.5V。采取三线接口与CPU进行同步通信,并可采取突发办法一次传送多个字节的时钟旗子暗记或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时供应了对后备电源进行涓细电流充电的能力。
2.1 引脚功能及构造
DS1302的引脚排列,个中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情形下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通掌握逻辑,许可地址/命令序列送入移位寄存器;其次,RST供应终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,许可对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止这次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细解释。SCLK为时钟输入端。 下图为DS1302的引脚功能图:
DS1302封装图
2.2 DS1302的掌握字节
DS1302 的掌握字如图2所示。掌握字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,掌握字节总是从最低位开始输出。
2.3 数据输入输出(I/O)
在掌握指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位登基0开始。同样,在紧跟8位的掌握指令字后的下一个SCLK脉冲的低落沿读出DS1302的数据,读出数据时从低位0位到高位7。
2.4 DS1302的寄存器
DS1302有12个寄存器,个中有7个寄存器与日历、时钟干系,存放的数据位为BCD码形式,其日历、韶光寄存器及其掌握字见表1。
此外,DS1302 还熟年份寄存器、掌握寄存器、充电寄存器、时钟突发寄存器及与RAM干系的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM干系的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令掌握字为C0H~FDH,个中奇数为读操作,偶数为写操作;另一类为突发办法下的RAM寄存器,此办法下可一次性读写所有的RAM的31个字节,命令掌握字为FEH(写)、FFH(读)。
编辑本段3 DS1302实时显示韶光的软硬件
DS1302与CPU的连接须要三条线,即SCLK(7)、I/O(6)、RST(5)。图3示出DS1302与89C2051的连接图,个中,时钟的显示用LCD。
3.1 DS1302与CPU的连接
实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,偏差也较大。其余,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以利用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2μA (范例值),省电模式时小于1μA,事情电压为2.4V~3.3V,显示清晰。
3.2 DS1302实时韶光流程
图4示出DS1302的实时韶光流程。根据此流程框图,不难采集实时韶光。下面结合流程图对DS1302的基本操作进行编程:
编辑本段4 调试中问题解释
DS1302 与微处理器进行数据交流时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,不才2个SCLK周期的上升沿输入数据字节,或不才8个SCLK周期的低落沿输出数据字节。
DS1302与RAM干系的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令掌握字为C0H~FDH,个中奇数为读操作,偶数为写操作;再一类为突发办法下的RAM寄存器,在此办法下可一次性读、写所有的RAM的31个字节。
要特殊解释的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要永劫光担保时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电韶光较短(几小时或几天)时,就可以用泄电较小的普通电解电容器代替。100 μF就可以担保1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调度韶光。
编辑本段5 结论
DS1302 存在时钟精度不高,易受环境影响,涌现时钟混乱等缺陷。DS1302可以用于数据记录,特殊是对某些具有分外意义的数据点的记录,能实现数据与涌现该数据的韶光同时记录。这种记录对永劫光的连续测控系统结果的剖析及对非常数据涌现的缘故原由的查找具有主要意义。传统的数据记录办法是隔时采样或定时采样,没有详细的韶光记录,因此,只能记录数据而无法准确记录其涌现的韶光;若采取单片机计时,一方面须要采取计数器,占用硬件资源,另一方面须要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不许可。但是,如果在系统中采取时钟芯片DS1302,则能很好地办理这个问题。