欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:2700479       资源大小:206.89KB        全文页数:13页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计基于Proteus多功能电子万年历的设计与实现摘 要本文基于Proteus多功能电子万年历的设计并实现了其功能。主要是借助电路仿真软件Proteus,在硬件方面主要采用AT89S51单片机作为主控核心,由LCD1点阵液晶显示屏显示。可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,可以同时显示年、月、日、时、分、秒等信息。在软件方面,主要包括日历程序、时间调整程序和显示程序。关键词:Proteus ;AT89S51;单片机;电子万年历Design and Realization of multi functio

    2、n electronic calendar based on ProteusAbstractIn this paper, the design of multi function electronic calendar based on Proteus and the realization of its function. By means of circuit simulation software Proteus, in terms of control center, by LCD dot matrix LCD display. For years, month, day, week,

    3、 and other functions, can display year, month, day, time, minutes, seconds and other information. In the software aspect, mainly includes calendar program time to adjust procedures and display program.Key words:Proteus;AT89S51;Single chip microcomputer;Electronic calendar目录1 综 述 11.1 单片机及多功能电子万年历的发展

    4、简述 11.2 单片机及电子万年历国内外发展状况 22 开发平台 32.1 KeiluVision3介绍 32.2 单片机仿真软件Proteus 43 硬件设计 53.1 AT89S51引脚及功能 53.2 AT89S51的内部结构 63.2.1 电路设计框图 73.2.2 主要单元电路设计 83.2.3 单片机中断 93.3 LCD液晶显示器 93.4 按键系统 114 程序设计 124.1 定时器模块 124.2 外部中断响应模块 134.3 主函数模块 144.4 判断闰年每月天数 154.5 时间调整 165 系统仿真与调试 185.1 系统仿真 185.1.1 系统原理电路图绘制 1

    5、85.1.2 Keil 工程的建立 195.2 系统调试 205.2.1 LCD液晶显示调试 205.2.2 定时器调试 215.2.3 中断函数调试 216 测试结果与分析 226.1 代码的功能 226.2 测试结果分析 257 实验总结 28致 谢 29参考文献 30附 录 31绪论随着科技的快速发展,自从观太阳、摆钟到现在电子钟,在人们的不断研究,不断创新之下一步步进步。本次课题主要介绍了基于Proteus的多功能电子万年历的设计与实现,多功能电子万年历是这一发展趋势中的代表,它顺应了时代的进步,符合人们对时间方面的要求。它的出现给人们的日常生活带来的诸多方便,在时间极显宝贵的现代已经

    6、广泛应用于各个领域,其作用更是不言而喻。而且多功能电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒等信息,还具有时间校准等功能。本次课题主要研究液晶显示器LCD与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。其功耗小,可选用46V电压为其供电,更符合消费者的生活需求。1.1 单片机及多功能电子万年历的发展简述单片微型计算机简称单片机,是典型的嵌入式微控制器,其英文缩写为MCU,它最早是用在工业控制领域。从1972年至今单片机经历了四个阶段的发展,从Inter公司推出的MCS-8为代表的单片机到第二阶段的部分功能优化,再到8位至

    7、16的转变,衍生到今天的单片机用于生活和各个工业用途。自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录,科学技术的不断提高,计算机科学技术的日渐成熟,为人类的高品质生活提供了强有力的后盾。科学技术介入人类的生活,这是社会发展的必然趋势,而万年历是这一发展趋势中的代表,万年历顺应了人们对时间方面的要求,它的出现给人们的生活带来的诸多方便,在时间极显宝贵的现代生活中,已经广泛应用于各个领域,其作用更是不言而喻。相比起传统的时间工具,本系统有着精确显示时间计算,清晰、全面的显示信息界面,没有厌余数据,且具有温度、农历显示等功能,这些是传统时间工具无法达到的。而相比市场出售的其他高科技时间工具

    8、,本系统有着制作简单,成本低廉等市场优势。1.2单片机及电子万年历国内外发展状况随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。在国内:单片机的学习呈上升趋势,但很多人学习是无头绪,不知道从何入手,行业发展迅速,国内生产技术不断提升。国内企业为了获得更大的投资收益,在生产规模和产品质量上不断提升,开发单片机呈必然趋势。我国生产的多功能电子万年历有很多,总体上来说是研究多功能电子万年历为主,商家生产的电子万年历更从质量、价格、实用上考虑不断改变电子万年历的设计,使其更有市场。在科技发达

    9、的今天,智能化必将是以后的发展趋势,所以开发活和学习单片机是社会发展的必然需求。在国外:最具有代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。前两次革命是摆和摆轮游丝的发明,以及石英晶体振荡器的应用,第三次革命就是单片机数码计时技术的应用,使得从原来传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期,星期,温度以及农历等显示功能,它更符合消费者的生活需求。因此,电子万年历的出现带来了钟表计时业界跨越性的进步。当前,电子万年历技术已经进入了优化人-家庭-环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展,并为电子万年历上

    10、的集中控制提供了基础。目前,市场上出售的万年历品种很多,其中大部分是基于单片机技术设计的电子系统。当今,数字万年历主要还是用于计时、自动报时、定时、日期查询以及自动控制等方面。由于单片机技术以及数字集成电路技术的发展和采用了先进的石英技术,使得如今的数字万年历系统具有体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、携带方便等优点,此外,现在市场上已有现成的数字万年历集成电路芯片出售,而且价格便宜、使用也很方便。2 开发平台本节主要介绍开发平台,兼容单片机C语言软件开发系统Keil uVision3软件和单片机仿真软件Proteus。2.1 KeiluVision3介绍 图2.1Keil

    11、 uVision3软件Keil uVision3是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。KeiluVision3工具包为forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ

    12、)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。相比起其他单片机的开发软件,KeiluVision3生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。编译后能生成. for target出现第二个对话框选择目标 CPU(本次设计选择 Atmel 公司的 AT89C52 芯片)。此时,在工程窗口的

    13、文件页中出现了“Target 1”,点击“Source Group1”右键,选中其中的“Add file to GroupSource Group1”,出现一个对话框,要求寻找源文件(注意,该对话框下面的“文件类型” 默认为 C source file(*.c),也就是以 C 为扩展名 的文件),双击该文件,将文件加入项目。双击文件名,即打开该源程序。工程建立好以后,对工程进行进一步的设置,以满足要求。 首先点击左边Project窗口的Target 1,然后使用菜单“Project-Option for target target1” 设置对话框中的Target页面,Xtal后面的数值是晶振频

    14、率值,本次设计设置为12MHz;Memory Model用于设置RAM使用情况选择Small;Compact是可以使用一页外部扩展RAM,而Larget则是可以使用全部外部的扩展RAM。Code Model 用于设置ROM空间的使用选择none。设置对话框中的OutPut页面中Creat Hex file用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX)。3.编译、连接选择菜单 Project-Build target,对当前工程进行连接, 获得*.() SFR_Init(); CAL_Init(); GUI_Init(); TR1=1; while(

    15、1) GetTime(&sys); 获得时间 LCD_ShowWNL(); 显示万年历 Time_Set(); 时间设置 2. 万年历显示函数,设置刷新模式,代码如下。void LCD_ShowWNL()秒,每秒钟刷新 if(!sys.cSec | State_Set) 分,普通模式每分钟刷新 LCD_ShowTime(sys.cMin,6,87,Min_Flag,UpLine,UnderLine); 处于设置模式状态每次刷新 if(!sys.cSec & !sys.cMin | State_Set) 时,普通模式每小时刷新LCD_ShowTime(sys.cHour,6,63,Hour_Fl

    16、ag,UpLine,UnderLine); 处于设置模式状态每次刷新 if(!sys.cSec & !sys.cMin & !sys.cHour | State_Set )公历农历的年、月、日、星期 Show_YMD();普通模式每天刷新 if(State_Set=7) State_Set=0; 处于设置模式状态每次刷新 3. 年、月、日、星期、农历、天干地支显示函数,代码如下。void Show_YMD()uchar uiTempDat; uiTempDat=RDS1302(0x88|0x01); sys.cMon=(uiTempDat&0x1f)4)*10+(uiTempDat&0x0f)

    17、; 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%100) 显示十,例如十四而不是一四 (uint)(2000+SpDat.cYear)%10,1,NoUpLine,NoUnderLine); 天干 1;else return 0;6. 计算目标日期是星期几。uchar GetWeekDay(uchar cYea

    18、r,uchar cMon,uchar cDay) char i; uint Sum=0,tmpyear; cYear=(cYear4)&0x0f)*10)+(cYear&0x0f);temp1+temp2; tmpyear=2000+cYear; cMon=(cMon4)&0x0f)*10)+(cMon&0x0f);temp1+temp2; cDay=(cDay4)&0x0f)*10)+(cDay&0x0f);temp1+temp2; for(i=1;i=cMon-1;i+) Sum+=Mon1YearFlag(cYear)i; Sum+=cDay-1; return (tmpyear-1)+

    19、(tmpyear-1)4-(tmpyear-1)100+(tmpyear-1)400+Sum)%7)+1;7. LCD图形初始化函数。描绘框架布局,并获取初始化时间,代码如下。void GUI_Init() LCD12864_init(); ClearLCD(); SetTime(sys); 设置时间 GetTime(&sys); 获得时间 Show_YMD(); LCD_ShowTime(sys.cMin,6,87,Min_Flag,UpLine,UnderLine); LCD_ShowTime(sys.cHour,6,63,Hour_Flag,UpLine,UnderLine);6.2测试

    20、结果分析在Proteus软件和Keil uVision3软件相结合调试的,完全用仿真软件在PC机上对目标电路原理图和程序进行检测和调试。调试过程中单片机相应输入端由通用键盘和鼠标设定,运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,以确定程序运行有无错误。整体程序调试:即把各子程序整体连起来进入到综合电路调试,看是否能实现预计的功能显示。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,数据缓冲单元是否发生冲突,标志位的建立和清除在设计上是否失误,堆栈是否溢出,输入输出状态是否正常等。其中测试结果主要看“秒”这位的跳动是否精确,这个是需要长时间的验证。同时,在定时器内

    21、处理的数据要精确,因为定时器内处理数据也花费时间,而这段时间没有算到定时器内。经过长时间的调试、运行,最后把误差范围尽可能的缩减。在调试过程中,出现过以下三种问题:(1)显示的数据秒并没有变化,是因为没有启动定时器,而我又不断地去读取DS1302时钟芯片寄存器中的数据导致。启动定时器后,就不会出现这种问题。(2)调整时间后应该先去掉写保护,如果存在写保护,那么在初始化写入初始时间时,是写不进去初始化的时间的。因而会看见显示的时间并不随着设置的初始化的值变化而变化,甚至我们看见的时间并不按着一秒一秒的增加。(3)液晶显示不稳定,甚至出现乱码现象。这是因为液晶显示的时候,由于采用的并行总线,显然传

    22、输速度快,但是数据端口必须接1K的排阻,以实现驱动。因此,排阻的作用很大。写程序时要严格按照时序就行,否则,也不会显示。经过多次修改程序最后调试出来理想的效果,如下图所示。(a)(b)图6.1 系统仿真结果图但是也有其的缺陷,现将日期调成31日,再调整到2月,显示会出现问题,如下图所示。图6.2 系统仿真结果图7 实验总结在这次的毕业设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。从系统问题的提出,总体的功能模块设计,硬件选型,程序设计,到最后系统是仿真实现,达到预想的目的。在功能模块设计的时候,我做了查阅了大量的资料,最后确定几个我们日常生

    23、活中息息相关的功能,使用市场上比较廉价高效的元件,并能在我的能力上能完成。最终确定使用AT89S51这个多功能的核心板。虽然在过程中断断续续地遇到了很多问题,但都通过查阅书籍,浏览网页,老师的指导找到了问题所在,并顺利地解决了问题。在现在科技的发展,单片机的功能与外接电路的配合已经相当成熟,遇到问题的时候,可以多想,多问,多看书,以解决问题。这也是四年来在大学所学到对资料的获取能力。通过这次毕业设计,我了解了整个嵌入式单片机系统的开发流程和设计技巧。对过去4年所学习的知识是一种巩固,更是一种温故而知新。很多以前不甚了解的问题都得到了很全面的信息。同时,也培养了我独立完成系统项目设计的能力,以前

    24、都是团队的方式完成项目的,而这次让我从软硬件选型到系统实现的一次亲生经历,获益良多。这段时间的学习和实践,使我了解到了理论和实际之间的差别,第一次真正接触到了实际中的问题,并通过查阅资料、和老师、同学交流,加强了自身的分析问题、解决问题的能力。同时,我也发现了自己在某些方面的不足,尤其是程序编写和考虑问题不够全面,这是我以后要加以改进的方面。也为以后的工作学习打下了结实的基础。致 谢感谢我的导师王华本老师的亲切关怀,我的毕业设计是在她的悉心指导下完成的,她给予我在学术上的谆谆教诲。我不仅学到了知识,而且学到了做人的准则和严谨的治学作风。没有王华本老师的指导我想我不可能顺利地完成此次课程设计,在

    25、此我想对她表示由衷的感谢。在此我还要感谢学校为我带来的一切,没有学校为我提供的平台,我更不可能完成本次毕业设计。 在论文即将完成之际,到开始进入课题到论文的完成,再到顺利完成了课程论文答辩稿,有很多老师,同学,朋友向我提供的帮助,在此,我向他们表示最真诚的谢意。参考文献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. 实验室研究与附 录


    注意事项

    本文(完整版基于Proteus多功能电子万年历的设计与实现本科毕业设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开