基于AT89S52单片机的万年历设计 下载本文

洛阳师范学院课程设计说明书(2015)

1 绪论

1.1设计背景

随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。

目前流行的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。然而,这些程序都千篇一律的局限在一个很短的时间范围内。(Windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,一个时间跨度较大的日历程序是很有参考价值的,本程序在这种背景下开始编辑,其中集成了国际通用日历和中国农历,此外还可以显

示星期和加载了部分节日,显示本机准确日期等功能。

1.2设计思想

众所周知,地球绕太阳公转,公转一周历时365天5小时48分46秒。现代国际上普遍采用罗马历法,在罗马历法中人为地规定一年365天,也就是我们所说的平年,为了弥补每一年多出的5小时48分46秒,同时又规定4年中有一年是闰年,闰年为366天(平年的2月份为28天,而闰年的2月份为29天),这样4年有365*3+366=1461天,而地球绕太阳公转4周历时1460天23小时15分4秒,这样,每4年又产生了44分56秒的误差,为了减小影响,历法上又规定,每400年中只存在97个闰年,这样400年中共有365*400+97=146097天,

而地球绕太阳公转400周历时146096天21小时6分40秒,较好的弥补了这一缺陷,这样几乎3300年才产生一天的误差。

5

洛阳师范学院课程设计说明书(2015)

1.3设计框图

本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。晶振电路是给主控模块提供脉冲信号;温度的采集由DS18B20构成;显示部分由8个数码管,MAX7219译码器构成。使用动态扫描显示方式对数字的显示。本设计系统框图如图1.1所示。

图1.1 基于AT89S52单片机的电子万年历系统框图

电源电路 复位电路 按键扫描模块 主控模块 ATS8952 晶振电路 驱动电路 LED显示模块 1302时钟芯片模块 18B20温度检测模块

6

洛阳师范学院课程设计说明书(2015)

2 系统硬件设计

2.1 最小化电路设计

在单片机使用中有必须的最小化电路,它是单片机工作的前提。其中包括电源电路、晶振电路、复位电路。下面就简单介绍最小化电路。 2.1.1 主控芯片简介

(1)主要功能的简介

? 拥有灵巧的8位CPU和在系统可编程Flash

? 晶片内部具有时钟振荡器(传统最高工作频率可至 12MHz) ? 内部 (ROM)程序存储)为 8KB ? 内部(RAM)数据存储器为 256字节 ? 32 个可编程I/O 口线 ? 8 个中断向量源

? 三个 16 位定时器/计数器 ? 三级加密程序存储器 ? 全双工UART串行通道 (2)引脚功能简介

图2.1 AT89S52单片机的引脚图

VCC:电源正端输入,接+5V。

7

洛阳师范学院课程设计说明书(2015)

VSS:电源地端。

XTAL1:单芯片系统时钟的反相放大器输入端。

XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET:重置引脚,高电平动作。

EA/Vpp:\表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。 ALE/PROG:ALE是表示地址锁存器启用信号。

PSEN:此为\的缩写,其意为程序储存启用。

PORT0(P0.0~P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。

PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。

PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:

P3.0:RXD,串行通信输入。 P3.1:TXD,串行通信输出。 P3.2:INT0,外部中断0输入。 P3.3:INT1,外部中断1输入。 P3.4:T0,计时计数器0输入。 P3.5:T1,计时计数器1输入。

P3.6:WR,外部数据存储器的写入信号。 P3.7:RD,外部数据存储器的读取信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

8

洛阳师范学院课程设计说明书(2015)

/EA/VPP:当/EA保持低电平时,在此期间外部程序存器(0000H-FFFFH),不管是否有内部程序存储器。 .2.1.2 复位电路、晶振电路的设计

单片机工作需要3个基本条件:接电源、接石英晶体振荡器和复位电路。如图2.2所示。

图2.2 单片机的基本电路

(1)接电源

将单片机第40脚Vcc接电源+5V,第20脚Vss接地(电源负极),为单片机工作提供电源。由于AT89S52片内带有程序存储器,当使用片内程序存储器时要将EA(31脚)接高电平,即接到电源+5V。 (2)接石英晶体振荡器

将单片机第19脚(XTAL1)与18脚(XTAL2)分别接外部晶体的两个引脚,由石英晶体组成振荡器,保证单片机内部各部

分有序工作。 图2.3 晶振电路

单片机运行程序的速度与振荡器的频率有关。单片机在读、写操作时都需要消耗一定的时间。机器周期是指单片机完成一个基本操作所用的时间,当外接石英晶体为12MHz时,1个机器周期为1ms;当外接石英晶体为6MHz时,1个机器周期为1ms。

9