完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx

上传人:b****2 文档编号:5048041 上传时间:2023-05-04 格式:DOCX 页数:13 大小:206.89KB
下载 相关 举报
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第1页
第1页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第2页
第2页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第3页
第3页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第4页
第4页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第5页
第5页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第6页
第6页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第7页
第7页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第8页
第8页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第9页
第9页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第10页
第10页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第11页
第11页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第12页
第12页 / 共13页
完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx

《完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计文档格式.docx

3硬件设计5

3.1AT89S51引脚及功能5

3.2AT89S51的内部结构6

3.2.1电路设计框图7

3.2.2主要单元电路设计8

3.2.3单片机中断9

3.3LCD液晶显示器9

3.4按键系统11

4程序设计12

4.1定时器模块12

4.2外部中断响应模块13

4.3主函数模块14

4.4判断闰年每月天数15

4.5时间调整16

5系统仿真与调试18

5.1系统仿真18

5.1.1系统原理电路图绘制18

5.1.2Keil工程的建立19

5.2系统调试20

5.2.1LCD液晶显示调试20

5.2.2定时器调试21

5.2.3中断函数调试21

6测试结果与分析22

6.1代码的功能22

6.2测试结果分析25

7实验总结28

致谢29

参考文献30

附录31

绪论

随着科技的快速发展,自从观太阳、摆钟到现在电子钟,在人们的不断研究,不断创新之下一步步进步。

本次课题主要介绍了基于Proteus的多功能电子万年历的设计与实现,多功能电子万年历是这一发展趋势中的代表,它顺应了时代的进步,符合人们对时间方面的要求。

它的出现给人们的日常生活带来的诸多方便,在时间极显宝贵的现代已经广泛应用于各个领域,其作用更是不言而喻。

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

本次课题主要研究液晶显示器LCD与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。

其功耗小,可选用4~6V电压为其供电,更符合消费者的生活需求。

1.1单片机及多功能电子万年历的发展简述

单片微型计算机简称单片机,是典型的嵌入式微控制器,其英文缩写为MCU,它最早是用在工业控制领域。

从1972年至今单片机经历了四个阶段的发展,从Inter公司推出的MCS-8为代表的单片机到第二阶段的部分功能优化,再到8位至16的转变,衍生到今天的单片机用于生活和各个工业用途。

自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录,科学技术的不断提高,计算机科学技术的日渐成熟,为人类的高品质生活提供了强有力的后盾。

科学技术介入人类的生活,这是社会发展的必然趋势,而万年历是这一发展趋势中的代表,万年历顺应了人们对时间方面的要求,它的出现给人们的生活带来的诸多方便,在时间极显宝贵的现代生活中,已经广泛应用于各个领域,其作用更是不言而喻。

相比起传统的时间工具,本系统有着精确显示时间计算,清晰、全面的显示信息界面,没有厌余数据,且具有温度、农历显示等功能,这些是传统时间工具无法达到的。

而相比市场出售的其他高科技时间工具,本系统有着制作简单,成本低廉等市场优势。

 

1.2单片机及电子万年历国内外发展状况

随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。

单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

在国内:

单片机的学习呈上升趋势,但很多人学习是无头绪,不知道从何入手,行业发展迅速,国内生产技术不断提升。

国内企业为了获得更大的投资收益,在生产规模和产品质量上不断提升,开发单片机呈必然趋势。

我国生产的多功能电子万年历有很多,总体上来说是研究多功能电子万年历为主,商家生产的电子万年历更从质量、价格、实用上考虑不断改变电子万年历的设计,使其更有市场。

在科技发达的今天,智能化必将是以后的发展趋势,所以开发活和学习单片机是社会发展的必然需求。

在国外:

最具有代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。

前两次革命是摆和摆轮游丝的发明,以及石英晶体振荡器的应用,第三次革命就是单片机数码计时技术的应用,使得从原来传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期,星期,温度以及农历等显示功能,它更符合消费者的生活需求。

因此,电子万年历的出现带来了钟表计时业界跨越性的进步。

当前,电子万年历技术已经进入了优化人-家庭-环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展,并为电子万年历上的集中控制提供了基础。

目前,市场上出售的万年历品种很多,其中大部分是基于单片机技术设计的电子系统。

当今,数字万年历主要还是用于计时、自动报时、定时、日期查询以及自动控制等方面。

由于单片机技术以及数字集成电路技术的发展和采用了先进的石英技术,使得如今的数字万年历系统具有体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、携带方便等优点,此外,现在市场上已有现成的数字万年历集成电路芯片出售,而且价格便宜、使用也很方便。

2开发平台

本节主要介绍开发平台,兼容单片机C语言软件开发系统KeiluVision3软件和单片机仿真软件Proteus。

uVision3介绍

图2.1 

KeiluVision3软件

KeiluVision3是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

Keil 

uVision3工具包为for 

Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及C51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

相比起其他单片机的开发软件,Keil 

uVision3生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

编译后能生成.fortarget出现第二个对话框选择目标CPU(本次设计选择Atmel公司的AT89C52芯片)。

此时,在工程窗口的文件页中出现了“Target1”,点击“SourceGroup1”右键,选中其中的“AddfiletoGroup‘SourceGroup1’”,出现一个对话框,要求寻找源文件(注意,该对话框下面的“文件类型”默认为Csourcefile(*.c),也就是以C为扩展名的文件),双击该文件,将文件加入项目。

双击文件名,即打开该源程序。

工程建立好以后,对工程进行进一步的设置,以满足要求。

首先点击左边Project窗口的Target1,然后使用菜单“Project->

Optionfortarget‘target1’”设置对话框中的Target页面,Xtal后面的数值是晶振频率值,本次设计设置为12MHz;

MemoryModel用于设置RAM使用情况选择Small;

Compact是可以使用一页外部扩展RAM,而Larget则是可以使用全部外部的扩展RAM。

CodeModel用于设置ROM空间的使用选择none。

设置对话框中的OutPut页面中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX)。

3.编译、连接

选择菜单Project->

Buildtarget,对当前工程进行连接,获得*.(){

SFR_Init();

CAL_Init();

GUI_Init();

TR1=1;

while

(1){

GetTime(&

sys);

获得时间

LCD_ShowWNL();

显示万年历

Time_Set();

时间设置

}

}

2.万年历显示函数,设置刷新模式,代码如下。

voidLCD_ShowWNL(){

秒,每秒钟刷新

if(!

sys.cSec||State_Set)

分,普通模式每分钟刷新

LCD_ShowTime(sys.cMin,6,87,Min_Flag,UpLine,UnderLine);

处于设置模式状态每次刷新

sys.cSec&

&

!

sys.cMin||State_Set)

时,普通模式每小时刷新

LCD_ShowTime(sys.cHour,6,63,Hour_Flag,UpLine,UnderLine);

sys.cMin&

sys.cHour||State_Set){

公历农历的年、月、日、星期

Show_YMD();

普通模式每天刷新

if(State_Set==7)State_Set=0;

}}

处于设置模式状态每次刷新

3.年、月、日、星期、农历、天干地支显示函数,代码如下。

voidShow_YMD(){

ucharuiTempDat;

uiTempDat=RDS1302(0x88|0x01);

sys.cMon=((uiTempDat&

0x1f)>

>

4)*10+(uiTempDat&

0x0f);

LCD_ShowTime(sys.cMon,2,5,Mon_Flag,NoUpLine,NoUnderLine);

sys.cDay);

获得农历

if(SpDat.cMon==1)显示农历月

==11)

==12)

],1,UpLine,NoUnderLine);

"

二"

~"

十"

if(SpDat.cDay10==1&

SpDat.cDay%10>

0)显示"

,例如"

十四"

而不是"

一四"

[(uint)(2000+SpDat.cYear)%10],1,NoUpLine,NoUnderLine);

天干

1;

elsereturn0;

6.计算目标日期是星期几。

ucharGetWeekDay(ucharcYear,ucharcMon,ucharcDay){

chari;

uintSum=0,tmpyear;

cYear=(((cYear>

4)&

0x0f)*10)+(cYear&

temp1+temp2;

tmpyear=2000+cYear;

cMon=(((cMon>

0x0f)*10)+(cMon&

cDay=(((cDay>

0x0f)*10)+(cDay&

for(i=1;

i<

=cMon-1;

i++)

Sum+=Mon1[YearFlag(cYear)][i];

Sum+=cDay-1;

return(((tmpyear-1)+(tmpyear-1)4-(tmpyear-1)100+(tmpyear-1)400+Sum)%7)+1;

7.LCD图形初始化函数。

描绘框架布局,并获取初始化时间,代码如下。

voidGUI_Init(){

LCD12864_init();

ClearLCD();

SetTime(sys);

设置时间

获得时间

Show_YMD();

LCD_ShowTime(sys.cHour,6,63,Hour_Flag,UpLine,UnderLine);

6.2测试结果分析

在Proteus软件和KeiluVision3软件相结合调试的,完全用仿真软件在PC机上对目标电路原理图和程序进行检测和调试。

调试过程中单片机相应输入端由通用键盘和鼠标设定,运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,以确定程序运行有无错误。

整体程序调试:

即把各子程序整体连起来进入到综合电路调试,看是否能实现预计的功能显示。

在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,数据缓冲单元是否发生冲突,标志位的建立和清除在设计上是否失误,堆栈是否溢出,输入输出状态是否正常等。

其中测试结果主要看“秒”这位的跳动是否精确,这个是需要长时间的验证。

同时,在定时器内处理的数据要精确,因为定时器内处理数据也花费时间,而这段时间没有算到定时器内。

经过长时间的调试、运行,最后把误差范围尽可能的缩减。

在调试过程中,出现过以下三种问题:

(1)显示的数据秒并没有变化,是因为没有启动定时器,而我又不断地去读取DS1302时钟芯片寄存器中的数据导致。

启动定时器后,就不会出现这种问题。

(2)调整时间后应该先去掉写保护,如果存在写保护,那么在初始化写入初始时间时,是写不进去初始化的时间的。

因而会看见显示的时间并不随着设置的初始化的值变化而变化,甚至我们看见的时间并不按着一秒一秒的增加。

(3)液晶显示不稳定,甚至出现乱码现象。

这是因为液晶显示的时候,由于采用的并行总线,显然传输速度快,但是数据端口必须接1K的排阻,以实现驱动。

因此,排阻的作用很大。

写程序时要严格按照时序就行,否则,也不会显示。

经过多次修改程序最后调试出来理想的效果,如下图所示。

(a)

(b)

图6.1系统仿真结果图

但是也有其的缺陷,现将日期调成31日,再调整到2月,显示会出现问题,如下图所示。

图6.2系统仿真结果图

7实验总结

在这次的毕业设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

从系统问题的提出,总体的功能模块设计,硬件选型,程序设计,到最后系统是仿真实现,达到预想的目的。

在功能模块设计的时候,我做了查阅了大量的资料,最后确定几个我们日常生活中息息相关的功能,使用市场上比较廉价高效的元件,并能在我的能力上能完成。

最终确定使用AT89S51这个多功能的核心板。

虽然在过程中断断续续地遇到了很多问题,但都通过查阅书籍,浏览网页,老师的指导找到了问题所在,并顺利地解决了问题。

在现在科技的发展,单片机的功能与外接电路的配合已经相当成熟,遇到问题的时候,可以多想,多问,多看书,以解决问题。

这也是四年来在大学所学到对资料的获取能力。

通过这次毕业设计,我了解了整个嵌入式单片机系统的开发流程和设计技巧。

对过去4年所学习的知识是一种巩固,更是一种温故而知新。

很多以前不甚了解的问题都得到了很全面的信息。

同时,也培养了我独立完成系统项目设计的能力,以前都是团队的方式完成项目的,而这次让我从软硬件选型到系统实现的一次亲生经历,获益良多。

这段时间的学习和实践,使我了解到了理论和实际之间的差别,第一次真正接触到了实际中的问题,并通过查阅资料、和老师、同学交流,加强了自身的分析问题、解决问题的能力。

同时,我也发现了自己在某些方面的不足,尤其是程序编写和考虑问题不够全面,这是我以后要加以改进的方面。

也为以后的工作学习打下了结实的基础。

致谢

感谢我的导师王华本老师的亲切关怀,我的毕业设计是在她的悉心指导下完成的,她给予我在学术上的谆谆教诲。

我不仅学到了知识,而且学到了做人的准则和严谨的治学作风。

没有王华本老师的指导我想我不可能顺利地完成此次课程设计,在此我想对她表示由衷的感谢。

在此我还要感谢学校为我带来的一切,没有学校为我提供的平台,我更不可能完成本次毕业设计。

在论文即将完成之际,到开始进入课题到论文的完成,再到顺利完成了课程论文答辩稿,有很多老师,同学,朋友向我提供的帮助,在此,我向他们表示最真诚的谢意。

参考文献

[1]王海燕,杨艳华.Proteus和Keil软件在单片机实验教学中的应用[J].实验室研究与探[2]陈世琼.单片机教学多功能实验开发板设计与实现[D].西南交通大学,2011:

5-6.

[3]刁宇清.基于PROTEUS的单片机仿真实验系统研究及应用[D].西安工业大学,2011:

5-7.

[4]李杰.基于工学结合一体化教学模式的技工院校《单片机应用技术》课程实践研究[D].四川师范大学,2014:

6-7.

[6]许超,吴新杰,张丹.基于Proteus和Keil的单片机课程教学改革[J].辽宁大学学报(自然科[9]郭金影.基于单片机的LED显示屏系统设计与PROTEUS仿真[D].大连交通大学,2010.

[11]滕辉公茂法李玉午.基于Proteus的51单片机系统电路设计与仿真[J].电子技术[14]许超,吴新杰,张丹.基于Proteus和Keil的单片机课程教学改革[J].辽宁大学学报(自然科[15]朱向庆,胡均万,陈宏华,钟耀骏,黄锦鹏.多功能单片机实验系统的研制[J].实验室研究与

附录

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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