达内嵌入式培训单片机的多功能电子万年历设计.pdf
文本预览下载声明
【达内嵌入式培训】单片机的多功能电子万年历设计
引言
随着生活节奏的日益加快,人们的时间观也越来越重,同时对电子钟表、日历的需求也随之提高。因此,
研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值。
本系统程序由主程序、中断服务函数和多个子函数构成。主函数主要完成各子函数和中断函数的初始化。
定时中断函数主要完成时钟芯片的定时扫描及键盘扫描。时钟芯片的读写函数主要是将时间、日历信息读
出来,并把要修改具体值写入时钟芯片内部。
系统的硬件设计与电路原理
电路设计框图
系统硬件概述
本电路是由 AT89S52 单片机为控制核心,具有在线编程功能、低功耗、能在 3V 的超低压工作。时钟电路
由DS1302 提供,它是一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周日、时、
分、秒进行计时,工作电压为 2.5V~5.5V 。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传
送多个字节的时钟信号或 RAM 数据。DS1302 内部有一个31×8 的用于临时性存放数据的RAM 寄存器。
可产生年、月、日、周日、时、分、秒,具有使用寿命长、精度高和低功耗等特点,同时具有掉电自动保
存功能。
主控制模块
单片机主控制模块的设计
AT89S52 单片机为 40 引脚双列直插芯片,有四个I/O 口P0 ,P1 ,P2 ,P3 ,MCS-51 单片机共有 4 个 8 位的
I/O 口(P0、P1 、P2 、P3) ,每一条I/O 线都能独立地作输出或输入。
时钟电路模块
时钟电路模块的设计
DS1302 的引脚排列如图 3 所示,其中 Vcc1 为后备电源,Vcc2 为主电源。在主电源关闭的情况下,也能保
持时钟的连续运行。DS1302 由Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于 Vcc1+0.2V 时,Vcc2 给
DS1302 供电;当Vcc2 小于 Vcc1 时,DS1302 由Vcc1 供电。X1 和 X2 是振荡源,外接 32.768KHz 晶振。RST
是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST
接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。
图 1 整体电路框图
图2 主控制系统
图3 时钟控制系统
时钟电路模块工作原理
DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置“0” ,接着把RST 端置“1” ,最后才给予 SCLK
脉冲;读/写时序如图 4 所示。表 1 为 DS1302 的控制字,此控制字的位7 必须置 1,若为0 则不能对 DS1302
进行读写数据。对于位 6,若对程序进行读/写时 RAM=1 ,对时间进行读/写时,CK=0 。位 1 至位 5 指操作
单元的地址。位 0 是读/写操作位,进行读操作时,该位为 1;该位为 0 则表示进行的是写操作。控制字节总
是从最低位开始输入/输出的。表 2 为 DS1302 的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位
为 1 时,时钟振荡器停止,DS1302 处于低功耗状态;当该位为 0 时,时钟开始运行。“WP”是写保护位,在
任何的对时钟和 RAM 的写操作之前,WP 必须为 0 。当“WP”为 1 时,写保护位防止对任一寄存器的写操
作。【达内嵌入式培训】
DS1302 的控制字
DS1302 的控制字如表 1 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为0 ,则不能把数据写入
DS1302 中,位6 如果为 0 ,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元
的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输
出。
数据输入输出(I/O)
在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302 ,数据输入从低位即位 0 开始。
同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位0
位到高位 7 。如图4 所示。
表 1 DS1302 的控制字格式
图4 DS1302 读/写时序图
DS1302 的寄存器
DS1302 有 12 个寄存器,其中有 7
显示全部