基于AT89C51单片机的电子万年历的设计 下载本文

本程序涉及的模块较多,所以程序编写也采用模块化设计,C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用C51编写。

具体程序见附件一:程序

4.3软件调试

在软件调试过程中,当调节时间和日期后,单片机上电后更新的是PC的时间,后来查找资料发现,是设置ds1302的问题,

对于开发板上的液晶一般RW都接的地,故不需要读液晶状态,也不需要读忙,但在仿真中还是加上了这一部分。

还有一个问题,在按键操作时有时会出现功能不稳定,这是由于按键存在抖动,所以后来加个去抖动的延时后在判断,基本就可以解决问题,

12

5整体电路与仿真结果分析

电子万年历硬件电路图及仿真如图(13)所示,系统由AT89C52单片机,按键扫描电路、显示电路、时钟电路、晶振电路、复位电路及电源指示电路。

仿真正确显示了时间,在LCD1602中正确显示了当前日期、时间,通过按按键K1,就可以开始设置时间,依次按K1依次在年、月、日、时、分之间切换,,按K2键用于加1操作,K3键用于减1操作,K4是确定按钮。仿真正确显示了时间和日期,符合设计的要求。

图(13) 电子万年历硬件电路图

13

结论与心得

在这学期的课程序设计中,收获知识的同时,还收获了阅历,收获了成熟,通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、 动手制作的能力,在各种其它能力上也都有了提高。更重要的是,在课程序设计里,我们学会了很多学习的方法,知道了理论和实践的巨大差别。而这是以后最实用的,真的是受益匪浅。要面 对社会的挑战,只有不断的学习、实践,再学习、再实践。同时在与老师和同学的交流过程中,互动学习,将知识融会贯通。通过自己的努力,做出了一个万年历,对以后的学习是一个莫大的鼓舞,激起了我的学习兴趣和开发创新思维。

14

致谢

从一定程度上说,通过本次的电子万年历的设计,让我懂得了许多光靠书本阅读学不来的知识,并且,在整个设计的过程中,发现自己还有好专业的基础知识还没有掌握,这让自己有了很深的醒悟,在接下来的学习中,应该告诫自己多花时间放在学习上,尽可能的让自己的专业知识扎实一些,最后能够勉强成功完成本次的课程设计。

在这里,我要衷心的谢谢我的父母给与我上大学的机会,让我有机会接触这方面的知识,丰富自己的专业知识其次,我要感谢学校的教育方针,是学校一起组织我们大家开展此项课程设计课程,并且严格要求我们独立做出实物来,严格把好了质量这一关;再者,我还要感谢单片机技术的授课老师王老师,在她的带领和指导下,让我们学习和了解了单片机方面的知识,在此基础上,我们才能完成本设计的所有任务,也是她让我知道我应该利用自己尽可能多的时间用知识来充实自己,不要浪费现在学习新知识的大好时光,由衷的谢谢王老师,您辛苦。最后,我要感谢身边的同学在课程设计的过程中给予我的很多帮助,在设计的过程中,遇到的许多问题也都得益于身边同学的帮助,我真诚的感谢你们每一个人,生活在这样的一个集体,我感觉很快乐很充实,这是一个既能让我们感觉温暖又能学到知识的好地方。

15