当前位置:文档之家› 简易万年历的设计说明

简易万年历的设计说明

目录第一部分设计任务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充电,它两端电压上升使得RST电位下降,最终使单片机退出复位状态。

正常运行时,可按复位按钮对单片机复位。

图4 单片机复位电路2.3 1602液晶模块1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端。

第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。

15脚背光正极,16脚背光负极。

主要参数及RAM地址映射图如图5和图6所示。

图5控制器部带有80*8(80字节)的RAM缓冲区。

显示容16×2个字符芯片工作电压 4.5~5.5工作电流 2.0MA(5.0V)模块最佳工作电压 5.0V字符尺寸 2.95×4.35(WXH)mm图62.4 时钟芯片DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或 Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc≥2.5V之前,RST 必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入输出端(双向),SCLK始终是输入端。

Vcc1X1I/OX2CE图7 时钟芯片DS1302的引脚图其中:X1、X2:32.768KHz晶振接入引脚。

GND:地。

RST:复位引脚,低电平有效,操作时高电平。

I/O :数据输入/输出引脚,具有三态功能。

SCLK :串行时钟输入引脚。

Vcc1:工作电源引脚。

Vcc2:备用电源引脚。

图8 时钟芯片DS1302的部结构DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;DS1302中与时间、日期有关的寄存器共有12个,其中7个存放数据的格式为BCD码格式。

第三部分系统软件的设计与实现3.1 主程序主程序负责系统的初始化,数据由液晶显示器输出显示,同时检测按键是否按下,没有按键按下就进入DS1302中的时间来日期。

相关主题