根据本人在调试中遇到的问题,特作如下说明:
ds1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位msb(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在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。
4 结论
ds1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。ds1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用 单片机 计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片ds1302,则能很好地解决这个问题。
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机
上一篇:基于AT89S51的液位控制系统