当前位置:文档之家› 基于51单片机电子万年历设计

基于51单片机电子万年历设计

基于51单片机电子万年历设计专业:机电设备维修与管理姓名:杜洪浦指导老师:摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3到5V电压供电。

万年历的设计过程在硬件与软件方面进行同步设计。

硬件部分主要由AT89C52单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。

在单片机的选择上使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。

显示器使用液晶LCD1602。

软件方面主要包括日历程序、液晶驱动程序,显示程序等。

程序采用汇编语言编写。

所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。

关键词时钟电钟,DS1302,液晶LCD1602,单片机目录1设计要求与方案论证 (2)1.1 设计要求 (2)1.2 系统基本方案选择和论证 (2)1.2.1单片机芯片的选择方案和论证 (2)1.2.2 显示模块选择方案和论证 (3)1.2.3时钟芯片的选择方案和论证: (3)1.3 电路设计最终方案决定 (3)2系统的硬件设计与实现 (3)2.1 电路设计框图 (4)2.2 系统硬件概述 (4)2.3 主要单元电路的设计 (4)2.3.1单片机主控制模块的设计 (4)2.3.2时钟电路模块的设计 (5)2.3.3显示模块电路 (6)2.3.4串口下载电路 (6)2.3.5复位电路 (7)2.3.6稳压电路 (8)3系统的软件设计 (8)3.1程序流程框图 (9)3.2 子程序的设计 .......................................... 错误!未定义书签。

3.2.1读写DS1302子程序 (9)3.2.1读写LCD1602子程序 (10)4软件测试及分析 (11)4.1软件测试 (12)4.2分析与结论 (12)4.2.1 调试分析 (12)4.2.2调试和结论 (13)5总结 (13)6参考文献 (13)1设计要求与方案论证1.1设计要求①具有年、月、日、星期、时、分和秒等功能;②具备年、月、日、星期、时、分和秒校准功能;1.2 系统基本方案选择和论证系统方案包括单片机的选型、时钟芯片的选择和显示模块的确定等。

1.2.1单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二: 采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89C52作为主控制系统控制整个系统的正常工作。

1.2.2 显示模块选择方案和论证方案一:采用数码管显示,数码管是由八个发光二极管组成,对于显示数字字符比较适合,但对于电子万年历需要的数码管位数多,编程麻烦,且不稳定,存在抖动现象,需要通过软件延时进行消抖。

方案二:采用LCD1602液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,易于编程,稳定可靠。

通过对比,本课程设计采用LCD1602作为显示模块。

1.2.3时钟芯片的选择方案和论证:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。

采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。

所以不采用此方案。

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

同时在外加电源和外加晶振电路下,掉电后走时准确。

本课程设计采用DS1302作为时钟的芯片。

1.3 电路设计最终方案决定综上各方案所述,对此次设计的方案选定: 采用AT89S52作为主控制系统; DS1302提供时钟;LCD1602作为显示。

2系统的硬件设计与实现2.1 电路设计框图2.2 系统硬件概述本电路是由AT89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分和秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

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

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

可产生年、月、日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部分由LCD1602显示,精度高,显示稳定。

2.3 主要单元电路的设计单元电路的设计包括主控制系统、时钟电路模块、显示模块、串口下载模块、复位电路和稳压电路的设计。

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

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和30PF电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和30PF电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端. 如图2-1 所示图2-1 主控制系统2.3.2时钟电路模块的设计图2-2示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。

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

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

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

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

X1和X2是振荡源,外接32.7、68KHz晶振。

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

I/O为串行数据输入端(双向)。

SCLK始终是输入端。

如图2-2所示。

图2-2 DS1302的引脚图2.3.3显示模块电路如图2-3所示,采用液晶1602数据端由P0提供实现8位并行通信,其数据交换的速率比较快VL是调整液晶显示的亮度,E是使能端口,RW是读写控制端口,高电平读信号,低电平写信号;RS是读写命令与数据控制端口,高电平写数据,低电平写命令。

图2-3 LCD1602电路2.3.4串口下载电路经过KEIL C51编译的汇编程序必须下载到单片机内部运行,才能实现所需要的功能。

然而单片机得1、0是用5V、和0V表示的,而电脑中的1、0用的电压并不是5V、和0V,因此,必须用MAX232进行电压转化,于是设计的串口下载电路。

如图2-4所示。

图2-4 串口下载电路2.3.5复位电路在单片机中运行程序时,如果程序跑飞,即程序运行的地址出现混乱时,可以用复位电路,在低电平时程序从零地址从新开始运行。

同时也可以使用看门狗,定时的喂狗,使程序每次从零地址开始运行。

防止程序跑飞。

如图2-5所示。

图2-5 复位电路2.3.6稳压电路当输入的电压高于或者低于51v时,可以用L7805CV稳压到5V,保证单片机稳定的性能和可靠的稳定性,其中的二极管是利用了单片机的单向导电性,导致单片机被烧毁或者系统不能正常工作。

如图2-6所示。

图2-6 稳压电路3系统的软件设计3.1程序流程框图3.2子程序的设计子程序设计包括两部分:DS1302底层代码的设计和LCD1602底层代码的设计,同时又是DS1302和LCD1602的驱动程序。

3.2.1读写DS1302子程序DS1302_WRB:MOV 40H,#8MOV A,BRRC AMOV B,AMOV DS1302_IO,CSETB DS1302_CLKCLR DS1302_CLKDJNZ 40H,LPWRETDS1302_RDB:MOV 40H,#8LPR:MOV C,DS1302_IORRC ASETB DS1302_CLKCLR DS1302_CLKDJNZ 40H,LPRRETDS1302_READSEC:CLR DS1302_RSTCLR DS1302_CLKSETB DS1302_RSTMOV B,#81HCALL DS1302_WRBCALL DS1302_RDBMOV 30H,ASETB DS1302_CLKCLR DS1302_RSTRET3.2.1读写LCD1602子程序LCD1602_WRC:CLR LCD1602_RWCLR LCD1602_RSCLR LCD1602_RWMOV P0,ACALL DELAYSETB LCD1602_ECALL DELAYCLR LCD1602_ECALL DELAYRETLCD1602_INIT:MOV A,#01HCALL LCD1602_WRCMOV A,#38HCALL LCD1602_WRCMOV A,#08HCALL LCD1602_WRCMOV A,#06HCALL LCD1602_WRCMOV A,#0cHCALL LCD1602_WRCRETLCD1602_WRD:SETB LCD1602_RSCLR LCD1602_RWCLR LCD1602_EMOV P0,ACALL DELAYSETB LCD1602_ECALL DELAYCLR LCD1602_ERET4软件测试及分析4.1软件测试电子万年历是多功能的数字显示仪器。

由于功能很多,所以对于它的程序也较为复杂,因此本次设计采用简化模型,即只显示年月日,时分秒。

但在程序调试时出现了相对较多的错误。

最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。

相关主题