单片机毕业设计-电子钟内容摘要:

整 时间月调整 时间年调整 显示周 显示日 显示月 显示年 时间显示 时间显示主界面 四川信息职业技术学院毕业设计说明书 (论文 ) 第 13 页 LCD 的初始化与及 显示 程序 1 LCD 的初始化 void ini()/*LCD 的初始化 函数 { rw=0。 en=0。 P1=0xff。 writeCG()。 write_order(0x38)。 /*端口写入 write_order(0x0c)。 /*端口写入 write_order(0x06)。 /*端口写入 write_order(0x01)。 /*端口写入 } 2 LCD 的 显示 程序 void open()/*定义一个 LCD 显 示 函数 { uchar num。 /*定义一个无符号的字符变量 num write_order(0x80+0x10)。 /*调用 write_order 函数 for(num=0。 opens[num]!=39。 \039。 num++)/*循环打开 { write_date(opens[num])。 delay(20)。 } for(num=0。 num16。 num++)/*对端口 0x1c 写入 { write_order(0x1c)。 delay(200)。 } for(num=0。 num5。 num++)/*对端口 0x18 写入 { write_order(0x18)。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 14 页 delay(200)。 } for(num=0。 num4。 num++)/*对端口 0x18 写入 { write_order(0x1c)。 delay(200)。 } for(num=0。 num3。 num++)/*对端口 0x18 写入 { write_order(0x18)。 delay(200)。 } for(num=0。 num2。 num++)/*对端口 0x1c 写入 { write_order(0x1c)。 delay(200)。 } for(num=0。 num1。 num++)/*对端口 0x18 写入 { write_order(0x18)。 delay(100)。 } write_order(0x80+0x53)。 for(num=0。 opens1[num]!=39。 \039。 num++)/*循环延时写入数据 { write_date(opens1[num])。 delay(500)。 } } 四川信息职业技术学院毕业设计说明书 (论文 ) 第 15 页 第五章 系统 调试 软件调 试 打开程序调试软件 keil uVision2,在里面新建一个工程,命名为: 数字时钟 .Uv2。 接着新建文件,编写相应程序。 编写好的各个程序进行编译与连接。 但若是在该过程中,看见我们编好的程序有错误,那么就根据他相应的提示来修改错误,直到该程序能够正确编译为止。 能够正常编译的程序说明没有什么问题了,此时我们在点击相关栏目,让它生成我们在硬件仿真时所需要的 .HEX 文件。 到此步,我们的软件调试就完成了。 硬件调试 打开 Proteus 7 Professional 软件,按照方案所选的电路元件来设计整体电路,线把个芯片按一定的位置放好,然后对相应的对象进行连接,连接时需仔细,以免调试时发生错误。 做好之后把编程所生成的。 HEX 文件加载到 AT89C52 中,运行仿真软件,查看运行效果。 如果运行出错 那么就根据他相应的提示来修改错误 ,直到仿真成功为止。 这样,整个设计过程就到此结束, 剩下的就是撰写论文。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 16 页 结论 通过本次毕业设计的制作,我较为全面地回顾了 ,大学三年所学的硬件知识与软件知识。 同时,单片机原理与应用及电子技术方面的相关知识,在这次毕业设计中得到了较好地实践。 在本次毕业设计中我也学到了很多东西,比如说: 我学会 了使用 Proteus 7 Professional 软件进行硬件原理图的绘制、利用 KILE 软件对我设计的程序的检查与生成 .HEX 文件及遇到问题怎么解决等。 首先,在这次毕业设计中,在我遇到过很多我自己不理解的问题及书本上或是我以前没有看见过的知识点。 在面对这些问题时,我首先采用的是上网搜寻的方法来查看别人是否和我一样遇到过相类似的问题,并且查看一下别人是怎样解决这个问题的。 当别人有了解决它问题的方法时,我在根据别人的提示,想想自己的问题出在哪里,该怎么解决。 当我还是无法想到解决的办法是,我就带着自己的问题到图 书馆查阅资料,如果我的问题还是没有解决,我就带着问题去问我们的指导老师,让他帮我解决。 采用这样的方法,我的很多问题都迎刃而解了。 其次,就是在本次毕业设计过程中,我不但努力解决自己遇到的问题,还积极帮助同学解决他们遇到的问题。 这样一来,我的知识得到了进一步的巩固,同学的问题也得到了相应的解决,我达到的一举双收的效果,我为此而感到高兴。 最后,让我觉得这次毕业设计的最大成果是 :我知道了将理论用到实际中时,会遇到很多的问题。 因此,在此时我们一定要先沉着的找出问题出现的原因,在对症下药,来解决问题。 我相信只要我们 面对问题沉着、冷静,我们的问题都会被解决。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 17 页 致谢 在论文即将完成,敲下“致谢”两个字的时候,我心中感慨万千。 回眸过去,一路走来,需要感谢的人太多,实在是 用 这些简单的文字所不能表达和承载的。 首先,我应当感谢的是这一块与北大清华比起来并不十分肥沃的土壤 —— 我亲爱的母校四川信息职业技术学院对我的 哺育。 衷心地祝愿我所留恋的母校,在建设和谐校园的过程中,在外延拓展和内涵提高方面,同时取得丰硕的成果,创建成为世界一流的专科学院。 其次,我要特别感谢的是:让我感动,让我敬佩的我的指导导师 —— 母中旭。 他拥有深厚的学 术研究功底和学术涵养,同时他待人和蔼可亲。 在我论文撰写过程中,母 老师对我的积极鼓励和耐心、细致的指导,给我了许多的信心与帮助,使我的论文由十分粗糙,结构和思路相当混乱,我自己非常不满意的论文逐渐转变成为语言组织比较紧凑、思路比较清晰、材料有序排列,硬件和软件有机地融合的论文。 因而,我要特别感谢指导老师 —— 母中旭 老师对我的指导。 我真心地祝愿我的导师身体健康、工作顺利、家庭幸福,在学术研究上取得更为辉煌的成就,为我等晚辈做出更好的引航作用,桃李满天下。 最后,谨以此文献给我最最挚爱的父母,是你们让我有机会、有毅 力完成了全部的学业,鼓励我、支持我一步步走到了今天,愿你们一生平安。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 18 页 参考文献 [1]边春远 、 王志强《 MCS51单片机应用开发实用子程序》人民邮电出版社 [2]马忠梅 、 主编《单片机的 C语言应用程序设计马忠梅》北京航空航天大学出版社 [3]李朝青 、 主编《单片机原理及接口技术》第 3版 北京航空航天大学出版社 [4]谭浩强《 C语言程序设计》第四版 清华大学出版 [5]马忠梅 、 张凯《单片机的 C语言应用程序设计》北京航空航天大学出版社 [6]廖先芸《电子技术实践与实训》高等教育出版社 附件: 四川信息职业技术学院毕业设计说明书 (论文 ) 第 19 页 附录 主 程序 : include define uchar unsigned char define uint unsigned int sbit lcdrs=P3^5。 sbit lcden=P3^4。 sbit dula=P2^6。 sbit wela=P2^7。 sbit s0 =P1^0。 sbit s1 =P1^1。 sbit s2 =P1^2。 sbit s3 =P1^3。 uchar code table1[]=20200828 Wen。 uchar code table2[]=21:31:30。 uchar num,t0。 char sec,minute,hour,day,week,month。 uint year。 void delay(uchar z) { uchar x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } //写入指令子函数 void write_order(uchar order) { lcdrs=0。 P0=order。 delay(2)。 lcden=1。 delay(2)。 lcden=0。 } //写入数据子函数 void write_data(uchar data1) { 附件: 四川信息职业技术学院毕业设计说明书 (论文 ) 第 20 页 lcdrs=1。 P0=data1。 delay(2)。 lcden=1。 delay(2)。 lcden=0。 } //初始化子函数 void init() { sec=0。 minute=0。 hour=0。 week=0。 day=1。 month=1。 year=2020。 TMOD=0x01。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 EA=1。 ET0=1。 TR0=1。 wela=0。 dula=0。 lcden=0。 write_order(0x38)。 //设置显示模式 write_order(0x0c)。 //开显示开光标,光标闪烁 write_order(0x01)。 //显示清屏 write_order(0x06)。 //光标显示效果 write_order(0x80)。 //定义第一行写入数据的地址 for(num=0。 num14。 num++) { write_data(table1[num])。 delay(2)。 } write_order(0x80+0x43)。 //定义第一行写入数据的地址 for(num=0。 num8。 num++) { write_data(table2[num])。 delay(2)。 } } void change(uchar addr,uchar data1) //改变 时 分 秒 天 月 的子 函数 附件: 四川信息职业技术学院毕业设计说明书 (论文 ) 第 21 页 { uchar x,y。 x=data1/10。 y=data1%10。 write_order(0x80+addr)。 delay(1)。 write_data(0x30+x)。 delay(1)。 write_data(0x30+y)。 delay(1)。 } void yearchange(uchar addr,uint year) //改变年的子函数 { uchar x,y,z,w。 x=year/1000。 y=year%1000/100。 z=year%100/10。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。