电子万年历.docx

上传人:b****4 文档编号:5284153 上传时间:2023-05-08 格式:DOCX 页数:30 大小:264.88KB
下载 相关 举报
电子万年历.docx_第1页
第1页 / 共30页
电子万年历.docx_第2页
第2页 / 共30页
电子万年历.docx_第3页
第3页 / 共30页
电子万年历.docx_第4页
第4页 / 共30页
电子万年历.docx_第5页
第5页 / 共30页
电子万年历.docx_第6页
第6页 / 共30页
电子万年历.docx_第7页
第7页 / 共30页
电子万年历.docx_第8页
第8页 / 共30页
电子万年历.docx_第9页
第9页 / 共30页
电子万年历.docx_第10页
第10页 / 共30页
电子万年历.docx_第11页
第11页 / 共30页
电子万年历.docx_第12页
第12页 / 共30页
电子万年历.docx_第13页
第13页 / 共30页
电子万年历.docx_第14页
第14页 / 共30页
电子万年历.docx_第15页
第15页 / 共30页
电子万年历.docx_第16页
第16页 / 共30页
电子万年历.docx_第17页
第17页 / 共30页
电子万年历.docx_第18页
第18页 / 共30页
电子万年历.docx_第19页
第19页 / 共30页
电子万年历.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电子万年历.docx

《电子万年历.docx》由会员分享,可在线阅读,更多相关《电子万年历.docx(30页珍藏版)》请在冰点文库上搜索。

电子万年历.docx

电子万年历

浙江海洋学院

单片机课程设计报告

设计题目电子万年历

摘要

随着科技的发展,在市场上出现了各种电子产品,电子万年历的功能也越来越强大,也有很多不同类型的电路能够成不同种功能的电子万年历。

单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。

单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。

将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。

本设计就是应用单片机强大的控制功能制作而成的电子万年历,该电子万年历能

实时显示年、月、日、时、分、秒

本设计采用的是AT89S52单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在烧写功能,使得烧写程序更加方便。

计时芯片采显示器件采用通用型1602液晶,可显示32个字符,如果使用数码管来做显示器件需消耗大量的系统资源,因此采用低功耗的1602液晶,该液晶显示方便,功能强大,完全能满足数字万年历的显示要求。

用DALLAS公司的涓细充电时钟芯片DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。

通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。

 

关键词:

单片机DS13021602液晶

 

目录

1引言………………………………………………………………………………1

2方案设计

2.1设计要求………………………………………………………………1

2.2系统基本方案选择………………………………………………………1

2.2.1单片机芯片的选择方案…………………………………………………1

2.2.2显示模块选择方案方案…………………………………………………1

2.2.3时钟芯片的选择方案……………………………………………………1

2.2.4电路设计最终方案决定…………………………………………………1

3系统硬件设计及实现

3.1主要单元电路的设计……………………………………………………2

3.2显示电路的设计…………………………………………………………3

3.3时钟电路的设计…………………………………………………………4

3.4时钟振荡电路的设计……………………………………………………5

3.5复位电路的设计…………………………………………………………5

4系统软件设计

4.1流程图设计…………………………………………………………………6

5Proteus软件仿真

5.1实验仿真……………………………………………………………………7

5.2结果讨论……………………………………………………………………8

6课程设计体会……………………………………………………………………8

7参考文献…………………………………………………………………………………7

8附录,源程序………………………………………………………………………7

1引言

随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。

为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。

伴随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

由其是单片机技术的应用产品已经走进了千家万户。

电子万年历的出现给人们的生活带来的诸多方便,作为一种附加功能,现在越来越广泛的被应用于各种电子产品中,具有广阔的市场前景。

电子万年历作为电子类小产品不仅是市场上的宠儿,也是是单片机设计培训中一个很实用的题目。

本电子万年历的设计在硬件方面主要采用AT89S52片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCM点阵液晶显示屏显示。

AT89S52片机功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。

此外,该电子万年历还具有时间校准等功能。

在软件方面,主要包括日历程序、时间调整程序,显示程序等。

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

2系统总体方案

2.1方案要求

用单片机(8052)来实现电子万年历的功能,共具备两个功

(1)显示年月日及分秒信息

(2)具有可调整日期和时间功能

(3)合理安排数码管位置,并显示结果

该电子万年历能够成功实现时钟运行,且精确度经调试一天的误差在2S内。

2.2系统基本方案选择

2.2.1单片机芯片的选择方案:

STC89C52,宏晶公司的52系列单片机,价格便宜,在国内使用者非常多。

支持串口下载,使用非常方便,且具有很大的价格优势。

缺点是仅支持串口下载,不支持在线下载,使用中会有些不方便。

由于本设计对控制芯片的要求不高,因此选用此方案

2.2.2显示模块选择方案:

LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少;LCD1602液晶显示屏,显示功能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管较多,而且不利于控制,因此选择LCD1602作为显示模块。

2.2.3时钟芯片的选择方案:

DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。

单片机有定时器的功能,但时间误差较大,且需要编写时钟程序,因此采用DS1302作为时钟电路。

综上各方案所述,对此次作品的方案选定:

采用AT89S52作为主控制系统;DS1302提供时钟;;LCD1602液晶显示屏作为显示。

图2-1系统设计图

3硬件设计

3.1主要单元电路的设计

单片机中央处理系统的方案设计,选用AT89C52单片机作为中央处理器,如图3-1所示。

该单片机除了拥有MCS-51系列单片机的所有优点外,内部还具有8K的在系统可编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。

整个系统结构紧凑,抗干扰能力强,性价比高。

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

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,第9引脚为复位输入端,接上电容,电阻及开关后够电复位电路,20引脚为接地端,40引脚为电源端。

图3-1AT89S52单片机

3.2显示电路的设计

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。

显示电路采用LCD1602液晶显示,如图3-2所示图中只画出了其相应的接口,3脚用于调节LCD1602的背光,4、5、6为LCD1602的控制口,用于控制其写入或是读出指令,7至14脚为LCD1602的数据口,将数传送到LCD1602中

图3-2LCD显示电路

LCD1602液晶显示屏

图3-3LCD1602液晶显示屏

 

(1)LCD1602的特性

+5V电压,对比度可调;内含复位电路;9/23提供各种控制命令,如:

清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器DDRAM;内建有160个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM;

(2)基本操作时序:

读状态:

输入:

RS=L,RW=H,E=H;输出:

DB0~DB7=状态字;

写指令:

输入:

RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码;输出:

无。

读数据:

输入:

RS=H,RW=H,E=H;输出:

DB0~DB7=数据;

写数据:

输入:

RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据;输出:

无。

3.3时钟电路模块的设计

时钟电路主要由时钟芯片DS1302、备用电池、晶振等几部分组成,如图3-3所示。

DS1302采用3线串行接口,占用引脚少,内部集成了可编程日历时钟,用户可以根据需要通过单片机的控制来自行设置,支持双电源供电,可以使用外部主电源和备用电源,备份电源能够使时钟芯片继续工作

图3-3DS1302时钟电路

DS1302时钟芯片:

图3-4DS1302芯片

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

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

工作电压与单片机的输入电压比较适合。

上面是它的一些基本的应用介绍。

图3-5是它的引脚介绍。

图3-5DS1302引脚

DS1302和单片机的连接很简单。

只需一根复位线,一根时钟线,一根数据线即可。

同时它本身还需要接一个32.768KHz的晶振来提供时钟源。

对于晶振的两端可以分别接一个6PF左右的电容以提高晶振的精确度。

同时可以在第8脚接上一个3.6V的可充电的电池。

当系统正常工作时可以对电池进行涓流充电。

当系统掉电时DS1302由这个电池提供的能量继续工作。

3.4时钟振荡电路的设计

图3-6所示,时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。

此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,

其振荡频率主要由石英晶振的频率决定。

电路中两个电容C1、C2的作用使电路快速起振,提高电路的运行速度,对于AT89S52其工作频率为0至33MHz,在这个范围内单片机能够正常的工作。

图3-6时钟振荡电路

3.5复位电路的设计

复位电路由电阻和极性电容组成,如图3-7,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约2us时,即可实现复位。

此复位电路同时具备了上电复位和手动复位的功能,上电复位发生在开机加电时,由系统自动完成,手动复位通过一个按键来实现,在程序运行时,若遇到死机,死循环或程序“跑飞”等情况,通过手动复位就可以实现重新启动的操作。

手动按钮复位需要人为在复位输入端RST上加入高电平。

一般采用的办法是在RST端和正电源Vcc之间接一个按钮和一个电阻,如图所示,当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端,由于人的动作再快也会使按钮保持接通达数十豪秒,所以,完全能够满足复位的时间要求。

上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间,由图可知充电时间为:

T=2.3RC=2.3*10*10-6*5.1*103=0.1173s,保证系统能够可靠地复位。

图3-7复位电路

 

4软件设计

程序流程框图:

Y

N

 

 

图4-1主程序流程图

 

5Proteus软件仿真

5.1实验仿真

依据各功能模块的功能要求和工作过程画出程序的流程图,然后根据流程图和系统的硬件连接写出详细的程序,接着对各个子程序进行编译,调试,运行,看看是否能达到其功能,然后再将整个程序糅合在一起进行整体软件调试。

实验仿真如图所示。

图5-1电子万年历仿真总电路

图5-2实验仿真结果

 

5.2结果讨论

本设计以AT89C52片机为系统的控制核心,采用proteus仿真软件进行测试。

Proteus是一款比较常用的单片机仿真软件,用proteus和keil配合进行仿真提高系统运行效率与稳定性。

由于采用了动态扫描的方式实现对LED电子显示屏的控制,使系统能够稳定、清晰地显示文字。

 

6课程设计体会

在这学期的单片机课程序设计中,我通过查找大量资料,请教老师,在各种其它能力上也都有了提高。

更重要的是,在课程序设计里,我学会了很多学习的方法。

而这是以后最实用的,真的是受益匪浅。

要面对社会的挑战,只有不断的学习、实践,再学习、再实践。

同时将知识融会贯通,提高自己了的能力,提高自己的学习意思。

我不会忘记这难忘的几个月的时间。

在我查找资料的日子里,面对无数书本的罗列,最难忘的是每次找到资料时的激动和兴奋;记忆最深的是每一步小小思路实现时那幸福的心情;这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏。

我从资料的收集中,掌握了很多单片机及其接口应用的知识,让我对我所学过的知识有所巩固和提高,并且让我对当今单片机的最新发展技术有所了解。

在整个过程中,我学到了新知识,增长了见识。

在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。

 

7文献资料

[1]李凤霞.C语言程序设计教程(第二版):

北京理工大学出版社

[2]楼然苗,李光飞单片机课程设计指导:

北京航航天大学出版社

[3]张毅刚单片机原理及应用。

高等教育出版社

[4]张毅刚MCS-51单片机应用设计。

哈张尔滨工业大学出版社

[5]彭伟.单片机C语言程序设计实训100例.电子工业出版社

[6]赵亮侯国锐.单片机C语言编程与实例:

人民邮电出版社

 

8附录源程序

#ifndef__AT89X52_H__

#define__AT89X52_H__

sfrP0=0x80;

sfrSP=0x81;

sfrDPL=0x82;

sfrDPH=0x83;

sfrPCON=0x87;

sfrTCON=0x88;

sfrTMOD=0x89;

sfrTL0=0x8A;

sfrTL1=0x8B;

sfrTH0=0x8C;

sfrTH1=0x8D;

sfrP1=0x90;

sfrSCON=0x98;

sfrSBUF=0x99;

sfrP2=0xA0;

sfrIE=0xA8;

sfrP3=0xB0;

sfrIP=0xB8;

sfrT2CON=0xC8;

sfrT2MOD=0xC9;

sfrRCAP2L=0xCA;

sfrRCAP2H=0xCB;

sfrTL2=0xCC;

sfrTH2=0xCD;

sfrPSW=0xD0;

sfrACC=0xE0;

sfrB=0xF0;

sbitP0_0=0x80;

sbitP0_1=0x81;

sbitP0_2=0x82;

sbitP0_3=0x83;

sbitP0_4=0x84;

sbitP0_5=0x85;

sbitP0_6=0x86;

sbitP0_7=0x87;

#defineIDL_0x01

#defineSTOP_0x02

#definePD_0x02/*Alternatedefinition*/

#defineGF0_0x04

#defineGF1_0x08

#defineSMOD_0x80

sbitIT0=0x88;

sbitIE0=0x89;

sbitIT1=0x8A;

sbitIE1=0x8B;

sbitTR0=0x8C;

sbitTF0=0x8D;

sbitTR1=0x8E;

sbitTF1=0x8F;

#defineT0_M0_0x01

#defineT0_M1_0x02

#defineT0_CT_0x04

#defineT0_GATE_0x08

#defineT1_M0_0x10

#defineT1_M1_0x20

#defineT1_CT_0x40

#defineT1_GATE_0x80

#defineT1_MASK_0xF0

#defineT0_MASK_0x0F

sbitP1_0=0x90;

sbitP1_1=0x91;

sbitP1_2=0x92;

sbitP1_3=0x93;

sbitP1_4=0x94;

sbitP1_5=0x95;

sbitP1_6=0x96;

sbitP1_7=0x97;

sbitT2=0x90;/*ExternalinputtoTimer/Counter2,clockout*/

sbitT2EX=0x91;/*Timer/Counter2capture/reloadtrigger&dirctl*/

sbitRI=0x98;

sbitTI=0x99;

sbitRB8=0x9A;

sbitTB8=0x9B;

sbitREN=0x9C;

sbitSM2=0x9D;

sbitSM1=0x9E;

sbitSM0=0x9F;

sbitP2_0=0xA0;

sbitP2_1=0xA1;

sbitP2_2=0xA2;

sbitP2_3=0xA3;

sbitP2_4=0xA4;

sbitP2_5=0xA5;

sbitP2_6=0xA6;

sbitP2_7=0xA7;

sbitEX0=0xA8;/*1=EnableExternalinterrupt0*/

sbitET0=0xA9;/*1=EnableTimer0interrupt*/

sbitEX1=0xAA;/*1=EnableExternalinterrupt1*/

sbitET1=0xAB;/*1=EnableTimer1interrupt*/

sbitES=0xAC;/*1=EnableSerialportinterrupt*/

sbitET2=0xAD;/*1=EnableTimer2interrupt*/

sbitEA=0xAF;/*0=Disableallinterrupts*/

sbitP3_0=0xB0;

sbitP3_1=0xB1;

sbitP3_2=0xB2;

sbitP3_3=0xB3;

sbitP3_4=0xB4;

sbitP3_5=0xB5;

sbitP3_6=0xB6;

sbitP3_7=0xB7;

sbitRXD=0xB0;/*Serialdatainput*/

sbitTXD=0xB1;/*Serialdataoutput*/

sbitINT0=0xB2;/*Externalinterrupt0*/

sbitINT1=0xB3;/*Externalinterrupt1*/

sbitT0=0xB4;/*Timer0externalinput*/

sbitT1=0xB5;/*Timer1externalinput*/

sbitWR=0xB6;/*Externaldatamemorywritestrobe*/

sbitRD=0xB7;/*Externaldatamemoryreadstrobe*/

sbitPX0=0xB8;

sbitPT0=0xB9;

sbitPX1=0xBA;

sbitPT1=0xBB;

sbitPS=0xBC;

sbitPT2=0xBD;

sbitCP_RL2=0xC8;/*0=Reload,1=Captureselect*/

sbitC_T2=0xC9;/*0=Timer,1=Counter*/

sbitTR2=0xCA;/*0=Stoptimer,1=Starttimer*/

sbitEXEN2=0xCB;/*Timer2externalenable*/

sbitTCLK=0xCC;/*0=SerialclockusesTimer1overflow,1=Timer2*/

sbitRCLK=0xCD;/*0=SerialclockusesTimer1overflow,1=Timer2*/

sbitEXF2=0xCE;/*Timer2externalflag*/

sbitTF2=0xCF;/*Timer2overflowflag*/

#defineDCEN_0x01/*1=Timer2canbeconfiguredasup/downcounter*/

#defineT2OE_0x02/*Timer2outputenable*/

sbitP=0xD0;

sbitF1=0xD1;

sbitOV=0xD2;

sbitRS0=0xD3;

sbitRS1=0xD4;

sbitF0=0xD5;

sbitAC=0xD6;

sbitCY=0xD7;

#defineIE0_VECTOR0/*0x03ExternalInterrupt0*/

#defineTF0_VECTOR1/*0x0BTimer0*/

#defineIE1_VECTOR2/*0x13ExternalInterrupt1*/

#defineTF1_VECTOR3/*0x1BTimer1*/

#defineSIO_VECTOR4/*0x23Serialport*/

#defineTF2_VECTOR5/*0x

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2