基于AT89C51单片机的多功能电子万年历的设计(4)

2019-03-09 15:45

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

图3-8动态特性

Figure 3-8dynamic characteristics

[2]:fmax最大时钟频率。tPLH输出由低电平到高电平传输延迟时间tPHL输出由高电平到低电平传输延迟时间 3.1.4 ds1302

现在流行的串行时钟电路很多,例如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。以下介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要的特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并可以关闭充电功能。采用普通32.768kHz晶振。

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、周、日、时、分、秒进行计时,具有闰年补偿功能,工作电压范围为2.5V~5.5V。采用三线接口与CPU进行同步通信,并且可以采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302为DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,并且提供了对后背电源进行涓细电流充电的能力。

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.5V之前,RST必须保持低电平。在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。

DS1302 的控制字节的最高有效位必须是逻辑1,如果它为0,就不能把数据写入DS1302中,位6如果为0,就表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据会被写入DS1902,数据输入从低位即位0开始。同上,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时候从低位0位到高位7。

DS1302拥有12个寄存器,其中有7个寄存器和日历、时钟相关,存放的数据位为BCD码形式。

此外,DS1302 还有年份寄存器、充电寄存器、控制寄存器、时钟突发寄存器及和RAM相关的寄存器等。时钟突发寄存器可以一次性顺序读写除充电寄存器外的其他所有寄存器内容。 DS1302和RAM相关的寄存器分为两种:一种是单个RAM单元,共31个,每一个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中,奇数为读操作,偶数为写操作;另一种为突发方式下的RAM寄存器,在此方式下可一次性读写RAM的所有31个字节,命令控制字为FEH(写)、FFH(读)。

DS1302与CPU的连接共需要三条线,即SCLK(7)、I/O(6)、RST(5)。 DS1302与CPU的连接,实际上,在调试程序的时候可以不加电容器,只需加一个32.768kHz 的晶振即可。只是在选择晶振时,不同的晶振,误差也会较大。另外,也可以加入DS18B20,同时可以显示实时温度。只要占用CPU的一个口线即可。 LED也可以换成LCD,也可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器和两种频率的蜂鸣器驱动电路,并且有内置显示RAM,可以显示任意字段笔划,并具有3-4线串行接口,可以与任何单片机、IC接口。功耗较低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压范围为2.4V~3.3V,显示较清晰。

下面对DS1302的基本操作进行编程:

17

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

根据本人在调试中遇到的一些问题,特作如下说明:

DS1302 和微处理器进行数据交换时,首先是由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须是逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作, D0=1,指定读操作。

在DS1302的时钟日历或者RAM进行数据传送时,DS1302必须先发送命令字节。若进行单字节传送,在8位命令字节传送结束之后,在下两个SCLK周期的上升沿输入数据字节,或在下八个SCLK周期的下降沿输出数据字节。

DS1302和RAM相关的寄存器分为两种:一种是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数是读操作,偶数是写操作;再一种为突发方式下的RAM寄存器,在此方式下可一次性读、写RAM所有的31个字节。

要特别说明的是备用电源B1,可以使用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电极小,但是,如果要保证时钟长时间的正常,最好选用小型的充电电池。可以使用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)的时候,就可以使用漏电较小的普通电解电容器进行代替。100 μF就可以保证时钟1小时的正常走时。DS1302在第一次加电后,必须要进行初始化操作。初始化后就可以按照正常方法调整时间。

DS1302 存在时钟精度不高,较易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据的记录,特别是对某些具有特殊意义的数据点的记录,能够实现数据和出现该数据的时间同时记录。这种记录对于长时间的连续测控系统结果的分析和对异常数据出现原因的查找都具有很重要的意义。传统的数据记录方式是隔时采样或者定时采样,没有具体的时间记录,因此只能记录数据却无法准确记录其出现的时间;如果采用单片机计时,一方面需要采用计数器,会占用硬件资源,另一方面还需要设置中断、查询等,同样会耗费单片机的资源,而且,某些测控系统还可能不允许。但是,如果在系统中采用时钟芯片DS1302,就可以很好地解决这个问题。

青岛科技大学本科毕业设计(论文)

4. 系统的软件设计

电子数字万年历的功能是在程序控制下实现的。该系统的软件设计方法和硬件设计相对应,按照整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后再通过主程序将各程序模块连接起来。这样有利于程序的修改和调试,增强程序的可移植性。

4.1 主程序

主程序如图4-1所示:

开始 读年、月、日 送第一块LED显示 读星期、闰、年、日 送第二块LED显示 读时、分、秒 送第三块LED显示 返回 图4-1 主程序图

Figure 4-1main program diagram

19

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

4.2 从1302读取日期和时

读1302日期和时间 N 需要调整时间吗? Y 调整时间和日期 系统初始化 开 始

图4-2 从1302读取程序 Figure 4-2from1302 to read program


基于AT89C51单片机的多功能电子万年历的设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:轻资产运营模式财务分析的文献读书笔记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: