基于单片机的数字万年历设计毕业论文 下载本文

也不用此种作为显示. 方案三:

采用LCD12864液晶显示模块显示,由于其屏幕是四行八列的,可以显示很大的信息量。

2.3时钟芯片的选择方案和论证:

方案一:

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。 方案二:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.

2.4按键模块方案的选择与比较

方案一:

矩阵式键盘,行线的一端通过上拉电阻与单片机的P1口线的高四位相连,列线的一端也通过上拉电阻与单片机的P1口线低四位相连。矩阵式键盘结构性好,使用于按键较多时的情况。 方案二:

独立式键盘, 每个按键的电路是独立的,都有单独一根数据线输出键的通断状态。单片机一条I / O口线对应一个按键。独立式键盘结构简单,易于编程,适用本实验按键较少的情况。

由于这次设计中,使用的功能键比较多,若采用独立式键盘占有的I/O口比较多,所以在这里采用矩阵式键盘。

综上各方案所述,对此次作品的方案选定: 采用AT89S52作为主控制系统; DS1302提供时钟; LCD12864液晶显示模块作为显示;矩阵式键盘。

5

3 硬件电路设计

3.1 系统总体方案设计

万年历采用LCD12864液晶显示时间。LCD12864液晶和矩阵式键盘都是单片

机用扩展I/O接口实现的,当把程序下载到单片机,就显示年、月、日、星期并且电子钟开始走时。按调试键按秒、分、时、星期、日、月、年的调整运算。按加减进行调整,每次调整时询问“秒分”单元不能满60、“时”单元是不能满24、“日”单元是否满30以及“月”单元是否12。若满足条件则清零并向高位进1,若不满足则继续计数。以“秒分”单元为例,当满60秒时“秒”单元便清零,同时“分”单元加1。当满60分时“分”单元清零,同时“时”单元加1。修改完时间后按下确定键,时钟继续走。,

3.2 系统框图

显示采用LCD12864液晶显示模块,设置时间按键采用矩阵式键盘,时间生成采用DS1302时钟芯片,系统框图如下:

LCD液晶显示屏 显示模块 AT89S52 DS1302时钟模块

主控制模 块 键盘模块 6

图1 系统设计框图

3.3 系统硬件概述

本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、星期、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;用液晶显示。

3.4 主要单元电路的设计

3.4.1 系统核心部分--单片机主控模块

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

AT89S52具有下列主要性能:

·8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期) ·全静态工作:0Hz~24MHz ·三级程序存储器保密 ·128×8字节内部RAM ·32条可编程I/O线 ·2个16位定时器/计数器 ·6个中断源 ·可编程串行通道 ·片内时钟振荡器 AT89S52的引脚及功能

AT89S52单片机的管脚说明如图2所示。

7

1234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0(RXD)P3.1(TXD)P3.2(INT0)P3.3(INT1)P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1GNDVCCP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)4039383736353433323130292827262524232221

图2 AT89S52的管脚

(1) 主要电源引脚 ①VCC 电源端 ②GND 接地端

(2) 外接晶体引脚XTAL1和XTAL2

①XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。

②XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。 (3) 控制或与其它电源复用引脚RST、ALE//PROG、/PSEN和/EA/VPP

①RST 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。

②ALE//PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个

[6]

ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。

③/PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

8