欢迎来到天天文库
浏览记录
ID:25155490
大小:80.01 KB
页数:10页
时间:2018-11-18
《ATSD单片机多功能电子万历设计().doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机应用系统设计课题:基于AT89S51D单片机的多功能电子万年历设计姓名:班级:学号:指导老师:日期:基于AT89S51单片机的多功能电子万年历的设计目录:第一章绪论设计背景及意义第二章系统总体方案设计1、系统设计硬件框图2、系统实现的基本原理第三章硬件系统设计1、选择元器件2、硬件原理图第四章软件系统设计1、软件流程图1.1主函数流程图1.2LCD显示流程图(孙慧)1.3DS1302流程图2、系统的仿真调试2.1运行步骤2.2调试过程第五章设计总结第六章参考文献第七章附录1、源程序代码1.1主函数源程序代码1.2LCD显示源程序代码(孙慧)1.3DS1302源程序代码第
2、一章绪论单片机技术是现代电子工程领域一门迅速发展的技术,它的应用已经渗透到各种嵌入式系统中。可以毫不夸张地说:掌握单片机技术是电子信息类专业学生就业的一个重要条件。同时单片机技术又是一门实践性很强的学科。课程设计教学环节的设计和实施,在很大程度上决定了学生对单片机技术的掌握程度。为了更好地完成课程设计这一重要教学环节,我们采用Proteus软件与Keil软件整合构建单片机虚拟实验平台。学生首先在PC上利用Proteus软件自己搭建硬件电路,并利用系统提供的功能完成电路分析、系统调试和输出显示的硬件设计部分;同时在Keil软件中编制程序,进行相应的编译和仿真,完成系统的软件设计
3、部分。当系统的设计工作完成后,学生可以在PC上看到最终的运行效果。最后再通过proteus设计PCB,再完成真正硬件的调试。本次任务完成基于AT89S51单片机的多功能电子万年历的设计,可以让我们在学习理论知识的基础上,更进一步的了解单片机,认识单片机,运用单片机。目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。要知道当前的时间,必须先开灯,故较为不便。现在市场上也出现了一些电子钟,它以六只LED数码管来显示时分秒,与传统的以指针显示秒的方式不同,违背了人们传统的习惯与理念,而且这类电子钟一般是采用大型显示器件,适用于银行、车站等公共场所,且外观设计欠
4、美观,很少进入百姓家庭。此外,无论是机械钟、石英钟还是电子钟,都存在着共同的问题:时间误差。针对以上存在的问题,我们设计了一款采用LCD显示器件显示的电子时钟,有效克服了时钟存在的误差问题。第二章系统总体方案设计2-1、电子钟的原理框图如图2-1所示。它由以下几个部件组成:单片机89C2051、DS1302芯片、LCD显示部件。运行时,时间由DS1302芯片实时输出当前到单片机中,在通过单片机写入到LCD显示器中,通过LCD实时显示当前时间。用LCD显示可以更加清晰看到显示结果,而如果用LED则看到的结果不能很清楚的表示。2-1原理框图2-2、DS1302引脚(如图2-2)的
5、功能:X1,X2:2.768KHZ晶振接入引脚I/O:数据输入/输出引脚,具有三态功能SCLK:串行时钟输入引脚VCC1、VCC2:工作电源引脚、备用电源引GND:接地:复位引脚,低电平有效2-2DS1302的引脚图第三章硬件系统设计本设计主要用到单片机AT89C51、时钟芯片DS1302和LCD显示器,还需要按钮、导线、电阻、电容等器件。总的电路连接图3-1所示:3-1硬件原理图用P1.0到P1.4选择和控制时间的校准,P1.0到P1.4可分别对年月、月、日、时、分进行加、减运算,通过P2.4口进行控制这5个口是加还是减。而DS1302芯片只能有2位的年份,故加一变量qn,
6、并赋值为20作为年份的头部,和DS1302的年份拼起来可一得到20XX年,如超过2099年可通过P2.3口对qn进行加一操作,使其显示21XX年的时间,其他连线如图。第四章系统软件设计4-1、设计原理启动DS1302,初始化芯片,设置初始时间,读出时间,存放在结构体SYSTEMTIME中,然后将时间转化为字符数组,送往LCD显示器。每隔1S读出时间,重复以上步骤。这样可以实现时钟的正常显示。也可以通过按下按钮对时间进行修改校正。4-2、DS1302流程图4-3、仿真调试1)主要步骤:Ⅰ、在keil软件中新建项目,名位clock;Ⅱ、在项目中新建文件,写入所有程序代码;Ⅲ、编译
7、、连接可生成clock.hex文件;Ⅳ、在Proteus中设计好硬件电路,将clock.hex文件加载到单片机中去;Ⅴ、运行硬件电路。2)调试Ⅰ、起初,运行时只能显示末两位的年份,而且LCD中的Print函数一次最多只能输出8个字符,因此加入YearToStr()函数,在年份前面拼上20后与DS1302输出的时间一起转换为字符数组YearString[],然后在LCD上显示,可以看到20XX的显示格式,之后在显示剩下的数值。Ⅱ、校时函数起初没有复0功能,以至月份等能加到最大值以上,如月份可以达到14,因
此文档下载收益归作者所有