简易万年历的设计说明

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

第一部分设计任务

1.1 设计题目及要求 (1)

1.2.1 方案一 (1)

1.2.2 方案二 (1)

第二部分系统硬件平台的设计

2.1 总体设计方案说明 (2)

2.2 单片机最小系统 (2)

2.2.1 STC89C52单片机介绍 (2)

2.2.2 时钟电路 (4)

2.2.3 复位电路 (4)

2.3 1602液晶模块 (5)

2.4 时钟芯片DS1302 (6)

第三部分系统软件的设计与实现

3.1 主程序 (8)

3.2.1 Protues 仿真软件介绍 (8)

3.2.2 仿真电路图 (9)

第四部分安装调试

4.1 系统软、硬件调试 (10)

4.1.1 调试步骤 (11)

4.1.2 故障及处理 (11)

课程设计总结 (12)

参考文献 (12)

第一部分设计任务

1.1 设计题目及要求

设计一个基于单片机的简易万年历。

(1)可以在LCD液晶上显示秒、分、时、星期、日、月、年;

(2)能够判断平年、润年;

(3)秒、分、时、星期、日、月、年可调;

(4)具有单片机断电记忆功能,在单片机掉电后无需重新设置。

1.2 备选方案设计与比较

1.2.1 方案一

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数,并用程序判断平年和闰年,用数码管显示时、分、秒、年、月、日、星期。由于需要显示的数字比较多,则需要的数码管个数比较多,采用数码管显示显得太浪费,并且多的数码管焊接时也比较复杂,此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,最主要的问题是些方法在单片机主电源断电后,计时将恢复初始值。所以不采用此种方法作为显示。

1.2.2 方案二

采用DS1302时钟芯片实现时钟,用1602LCD液晶显示屏显示时、分、秒、年、月、日、星期。DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,不需要在程序中采用定时,而且精度高,工作电压2.5V~5.5V围,2.5V时耗电小于300nA,此芯片最主要的特点是具有备用电源引脚,在单片机主电源掉电后,备用电源供电,使得DS1302继续工作,时钟继续运行,即具备掉电记忆功能,符合课程设计要求,液晶显示屏的显示功能强大,可显示大量数字和英文字母,以及一些特殊字符,并且显示多样,清晰可见,且价格适中,固采用此方案。

第二部分系统硬件平台的设计

2.1 总体设计方案说明

本电路以STC89C52单片机系统为控制核心,时钟电路由高精度低功耗的DS1302提供,采用三线接口与CPU进行同步通信,输入部分采用四个独立式按键S1、S2、S3、S4,即单片机的P2.1、P2.2、P2.3、P2.4。1602液晶显示部分,D0-D7口与单片机P1口相连,系统原理图如图2-1所示。

图1系统原理图

当第一次按下S1时,1602液晶显示器上光标在秒地址上闪烁,液晶显示器是时间停止,表示秒可调;当第二次按下S1时,1602液晶显示器上光标在分地址上闪烁,表示分可调;当第三次按下S1时,1602液晶显示器上光标在时地址上闪烁,表示时可调;依次类推,当第八次按下S1时,液晶显示器是时间启动,光标不出现。

当按一下S2时,可对时、分、秒、年、月、日、星期加一。

当按一下S3时,可对时、分、秒、年、月、日、星期减一。

当按一下S4时,1602液晶显示初始化时间。

2.2 单片机最小系统

2.2.1 STC89C52单片机介绍

STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

图2 STC89C52接口电路

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。

P1 口:P1 口是一个具有部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在线系统编程用)

P1.6 MISO(在线系统编程用)

P1.7 SCK(在线系统编程用)

P2 口:P2 口是一个具有部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出

P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。 P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INTO(外中断0)

P3.3 INT1(外中断1)

P3.4 TO(定时/计数器0)

P3.5 T1(定时/计数器1)

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

2.2.2 时钟电路

单片机引脚18和引脚19外接晶振及电容, STC89C52芯片的工作频率可在2~33MHz围之间选,单片机工作频率取决于晶振XT的频率,通常选用11.0592MHz 晶振。两个小电容通常取值30pF,以保证振荡器电路的稳定性及快速性。

图3 单片机时钟电路

2.2.3 复位电路

一般若在引脚RST上保持24个工作主频周期的高电平,单片机就可以完成复位,但为了保证系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。如图复位电路带有上电自动复位功能,当电路上电时,由于C3电容两端电压值不能突变,电源+5V会通过电容向RST提供充电电流,因此在RST引脚上产生一高电平,使单片机进入复位状态。随着电容C3充电,它两端电压上升使

相关文档
最新文档