1、 目 录 摘 要 3 关键词 3 一、设计任务与要求 3 二、方案设计与论证 3 方案一 3 方案二 4 方案三 4 三、 硬件单元电路设计与参数计算 5 1. 主控制系统 5 2. 时钟振荡电路 5 3. 复位 电路 6 4. DS1302 时钟电路 7 5. 按键电路 8 6. 显示电路 8 7. 蜂鸣器电路 9 四、 软件设计与流程图 9 五、 总原电路及元器件清单 13 1. 总原理图 13 2. PCB 制板图 13 3 整体电路仿真图以及仿真结果分析 14 4元件清单 14 六、安装与调试 15 1. 电路安装 15 2. 电路调试 15 3. 软件调试 16 七、性能测试与分析
2、16 八、结论与心得 16 九、参考文献 16 十、致谢 16 十一、程序清单 17 - 2 - 基于 AT89S52 的电子万年历设计 摘要: 随着社会的快速发展,时间的流逝,从观察太阳、摆钟到现在的单片机电子钟,人类不断研究,不断创造新纪录,单片机电子万年历已成为当今人类准确、快速获取时间信息的重要工具之一。本设计的电子万年历以 AT89S52 单片机为控制核心,采用 Dallas 公司的 DS1302 实时时钟构成时钟电路,能够实现时间 和日期的显示,还增加了闹钟报时的功能。设计详细地分析设计原理和制作的全过程 。 关键词: 单片机;实时时钟; DS1302 一、设计任务与要求: 基本要
3、求 : 1、 能够显示年、月、日、时、分。 2、 可以人为校正年、月、日、时、分。 3、 第一次开机显示: 2000 01 01 12.00。 4、 掉电信息不丢失。 创新扩展 : 5、 具有闹钟功能。 二、方案设计与论证 方案一: 按照系统设计的功能的要求,初步确定系统由主控模块、时钟模块、显示模块各键盘接口模块共 4 个模块组成,电路系统构成框图如图 1 所示。主控芯片使用 52 系列 AT89S52单片 机,时钟芯片使用美国 DALLAS公司推出的一款高性能、低功耗、带 RAM的实时时钟 DS1302。采用 DS1302 作为计时芯片,可以做到计时准确。更重要的是, DS1302 可以在
4、很小电流的后备电源( 2.5V-5.5V 电源,在 2。 5V 时耗电小于 300nA)下继续计时,而且 DS1302 可以编程选择多种充电电流来对后备电源进行慢速充电,可以 保证后备电源基本功不耗电。显示模块采用普通的共阳 LED 数码管,键输入采用查询法实现功能调整。 图 1 电子万年历电路系统构成框图 方案二: 主控模块AT89S52 键盘扫描电路 LED 显示电路 时钟电路 ( DS1302) - 3 - 按照系统设计的要求和功能 ,将系统分为主控模块、时钟电路模块、按键扫描模块, LCD显示模块,电源电路、复位电路、晶振电路几个模块,系统框图如图 2 所示。主控模块采用AT89S52
5、 单片机,按键模块用四个按键,用于调整时间和设定闹钟,显示模块采用 LCD1602,时钟电路模块采用 DS1302 实时时钟实现对时间,日期的操作。 图 2 基于 AT89S52 单片机的电子万年历系统框图 方案三: 按照系统设计的要求和功能,将系统分为主控制器模块、显示模块、按键开关模块、蜂鸣器电路模块。系统框图如图 3 所示,主控制模块采用 AT89S52 单片机为控制中心,显示模块采用液晶 LCD1602 显示,计时使用 AT89S52 单片机自带的定时器功能,实现对时间、日期的操作,通过按键盘开关实现对时间、日期的调整。 图 3 基于 AT89S52 单片机的电子万年历总体设计框图 方
6、案论证:上面提到的三个方案中,在电路原理方面大致相同,都能够达到设计任务与要求,在方案一款方案二中使用外部的时钟芯片 DS1302 来实现日期和时间的操作,方案三中则利用了单片机自身的定时器功能;在方案二和方案三在显示模块上都使用液晶显示屏LCD1602 作为显示,方案一则使用 LED 数码管作为显示,采用 LED 数码管动态扫描,数码管的价格适中,对于显示数字较好,而且使用单片机的端口也较少;采用 LCD1602 液晶显示屏,液晶显示屏的显示功能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED 数码管来说要昂贵些,但是基于本设计显示的东西较多,若采用 LED 数码管的话,所
7、需数码管较多,价格也相应的会提高,而且不利于控制,对于 LCD1602,随着现在制造的发展,价格也在下降,同时它所使用的端口也不很多,能够清晰的显示,比较适合显示大量的数字,主控模块 AT89S52 复位电路 晶振电路 按键扫描模块 LCD1602 显示模块 时钟电路 ( DS1302) 单片机 AT89S52 复位电路 晶振电路 按键电路 LCD1602 显示模块 蜂鸣器电路 - 4 - 因此选择 LCD1602 作为显示模块。 DS1302 是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的应用,同时可以对秒、时、分、日、月、年以及润年补偿
8、的年进行计数,而且在掉电时能够在外部纽扣电池的供电下继续工作,不会因为掉电后,其时间就要重新设置,方案三中使用定时器的功能,当在掉电的时候就会使时间和日期回到原来设定的初始值,同时直接采用单片机定时计数提供秒信号,使用程序实现年时间和日期,采用此种方案,节约成本,但是实现的时间误差较大,所以不采用这种方案。 通过对上述方案的论证分析,本次设计选择方案 二,采用 AT89S52 作为主控制系统,DS1302 提供时钟, LCD1602 液晶作为显示模块 三、硬件单元电路设计与参数计算 1、 主控制系统 单片机中央处理系统的方案设计,我们选用具有 ATMEL 公司的 AT89C52 单片机作为中央
9、处理器,如图 4 所示。该单片机除了拥有 MCS-51 系列单片机的所有优点外,内部还具有 8K的在系统可编程 FLASH 存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成 一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。是比较合适的方案。 图 4 AT89S52 主控制系统 2、时钟振荡电路 时钟振荡电路图 5 所示,时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个 30pF 的瓷片电容和一个 12MHz 的晶振组成,并接入到单片机的 X
10、TAL1 和 XTAL2引脚处,使单片机工作于内部振荡模式。此电路在加电后延迟大约 10ms振荡器起振,在 XTAL2引脚产生幅度为 3V 左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。电路中两个电容 C1、 C2 的作用使电路快速起振 ,提高电路的运行速度,对于 AT89S52 其工作频率为 0 至 33MHz,在这个范围内单片机能够正常的工作。 - 5 - 图 5 AT89S52 时钟振荡电路 3、复位电路 复位电路由电阻和极性电容组成,如图 6 所示,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约 2us 时,即可实现复位。此复位电路同时具备了上电复位和
11、手动复位的功能,上电复位发生在开机加电时,由系统自动完成,手动复位通过一个按键来实现,在程序运行时,若遇到死机,死循环或程序“跑飞”等情况,通过手动复位就可以实现重新启动的操作。手动按钮复位需 要人为在复位输入端 RST 上加入高电平。一般采用的办法是在 RST 端和正电源 Vcc 之间接一个按钮和一个电阻,如图所示,当人为按下按钮时,则 Vcc 的 +5V电平就会直接加到 RST端,由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。上电复位的工作过程是在加电时,复位电路通过电容加给 RST 端一个短暂的高电平信号,此高电平信号随着 Vcc 对电容的充电过程而逐渐
12、回落,即 RST 端的高电平持续时间取决于电容的充电时间,由图可知充电时间为:T=2.3RC=2.3*10*10-6*5.1*103=0.1173s ,保证系统能够可靠地复位。 - 6 - 图 6 AT89S52 复位电路 4、 DS1302 时钟电路 时钟电路主要由时钟芯片 DS1302、备用电池、晶振等几部分组成,如图 7 所示。 DS1302采用 3 线串行接口,占用引脚少,内部集成了可编程日历时钟,用户可以根据需要通过单片机的控制来自行设置,支持双电源供电,可以使用外部主电源和备用电源,备份电源能够使时钟芯片继续工作。 图 7 DS1302 时钟电路 - 7 - 5、按键电路 按键电路
13、由四个轻触开关组成,如图 8 所示。按键用来调整时间和设定闹钟,其一端直接接到单片机的端口, 另一端接地,当按下按键时,相应的端口变为低电平,通过检测这一低电平就可以判断是哪个键按下,从而作相应的操作 。 图 8 按键电路 6、显示电路 显示电路采用 LCD1602 液晶显示,图中只画出了其相应的接口,如图 9 所示。 3 脚用于调节 LCD1602 的背光 ,4、 5、 6 为 LCD1602 的控制口,用于控制其写入或是读出指令, 7 至14 脚为 LCD1602 的数据口,将数传送到 LCD1602 中。 图 9 LCD1602 接口电路 - 8 - 7、蜂鸣器电路 蜂鸣器电路由一个 2
14、20 欧的电阻,三极管 8550,及蜂鸣器组成,如图 10 所示。 通过控制三极管的导通和截止来实现蜂鸣器的响与不响。 图 10 蜂鸣器电路 四、软件设计与流程图 1、程序流程图 主程序首先初始化定时器、 LCD1602 及 DS1302,然后就开始查询按键,有键按下则开始调整时间和设置闹钟,若没有按下,则执行下面的时间、日期及闹钟时间的显示,最后依次循环这些相同的操作,相应流程图如图 11 所示: - 9 - 图 11 程序主流程图 按键的检测主要是通过查询的办法来实现,利用按键进行间调整及闹钟设置,首先检测K1 键是否按 下,当 K1 键按下时,并且 K2 键按下时,则设置初始的默认时间;
15、当 K1 按下,并且 K4 按下时,则是开启闹钟功能;若只是 K3 按下则开始设置时间及日期,同时被选择的时间和日期开始闪烁,第一次按下 K3 时,设置年份,若按下 K1,则是减 1 操作,按下 K2是加 1 操作,设置好年后,第二次按下 K3 时,则是设置月份,按 K1 减,按 K2则加 1,依次循环下去,则可以将时间和日期设置完毕;而当按下 K4 时,则是设置闹钟时间,第一次按下 K4,设置时,按 K1 时减 1,按 K2 时加 1,第二次按下时,设置分,同样的操作,按 K1分减 1,按 K2 分加 1,程序流 程图 12 所示: 开始 初始化 按键是否按下 显示时间、日期及闹钟时间 时间、日期、闹钟设定 结束 是 否 - 10 - 图 12 时间调整及闹钟设置程序流程图 2、软件设计