首页 > 编程知识 正文

8031单片机,ds1302时钟芯片与51单片机

时间:2023-05-04 01:46:53 阅读:165812 作者:472

ds1302时钟程序详情

图2示出DS1302的控制字。 控制字节的最高有效位(位7 )必须是逻辑1,如果它为0,则不能向DS1302写入数据,如果位6为0,则表示对日历时钟数据的存取,如果位6为0,则表示对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 (读取) )。

ds1302程序流程图

3.2 DS1302实时时间流程

图4表示DS1302的实时时间流程。 根据该流程图,收集实时时间并不容易。 按照流程图对DS1302的基本动作进行编程。

根据本人在调试中遇到的问题,特作如下说明。 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在首次接通电源后,必须进行初始化操作。 初始化后可以用通常的方法调整时间。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。