51单片机,ds1302时钟,1602显示,可调时钟剖析.pdfVIP

  • 13
  • 0
  • 约1.54万字
  • 约 23页
  • 2021-04-03 发布于湖南
  • 举报

51单片机,ds1302时钟,1602显示,可调时钟剖析.pdf

基于 proteus 的 51 单片机仿真实例八十一、 实时时钟芯片 DS1302应用 实例 1、DS1302引脚排列 : 如下图 引脚说明: 1)Vcc1 :后备电源, VCC2:主电源。在主电源关闭的情况下,也能保持时钟的连续运行。 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于 Vcc1 +0.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1 时, DS1302 由 Vcc1 供电。 2 )X1、X2 :振荡源,外接 32.768kHz 晶振。 3)RST:复位 / 片选线,通过把 RST输入驱动置高电平来启动所有的数据传送。 RST输入有 两种功能:首先, RST接通控制逻辑,允许地址 / 命令序列送入移位寄存器;其次, RST提供 终止单字节或多字节数据的传送手段。 当 RST为高电平时, 所有的数据传送被初始化, 允许 对 DS1302进行操作。如果在传送过程中 RST置为低电平,则会终止此次数据传送, I/O 引 脚变为高阻态。上电运行时,在 Vcc2.0V 之前, RST必须保持低电平。只有在 SCLK为低电 平时,才能将 RST置为高电平。 4 )I/O 为串行数据输入输出端 ( 双向)。 5)SCLK为时钟输入端。 2、 DS1302 的控制字节 DS1302 的控制字如下图所示。 控制字节的最高有效位 ( 位 7) 必须是逻辑 1,如果它为 0 ,则不能把数据写入 DS1302 中,位 6 如果为 0,则表示存取日历时钟数据, 为 1 表示存取 RAM数据 ; 位 5 至位 1 指示操作单元的 地址 ; 最低有效位 ( 位 0) 如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从 最低位开始输出。 3 、数据输入输出 (I/O) 在控制指令字输入后的下一个 SCLK时钟的上升沿时,数据被写入 DS1302,数据输入从 低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。 DS1302 的寄存器 DS1302有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD码 形式 , 其日历、时间寄存器及其控制字见数据手册。 此外, DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与 RAM相关的寄存器分为两类:一类是单个 RAM单元,共 31 个,每个单元组态为一 个 8 位的字节,其命令控制字为 C0H~ FDH,其中奇数为读操作,偶数为写操作;另一类为 突发方式下的 RAM寄存器,此方式下可一次性读写所有的 RAM的 31 个字节,命令控制字为 FEH(写 ) 、FFH(读 ) 。 下面是其 C程序(独家转售): #includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int #define LCDIO P2 sbit rs=P3^0; sbit rd=P3^1; sbit lcden=P3^2; sbit acc0=ACC^0; // 移位时的第 0 位 sbit acc7=ACC^7;

文档评论(0)

1亿VIP精品文档

相关文档