数字电子钟课程设计--基于arm的简易电子闹钟设计内容摘要:

三章 结 论 综合效果图: 以上为 protues 部分设计的, ads 程序见附录。 14 心得体会 回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与 实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。 在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。 15 参考文献 [1] 谢自美,电子线路设计、实验、测试,华中理工大学出版社, 2020。 [2] 宋春荣,通用集成电路速查手册,山东科学技术出版社, 1995。 [3] Arnold Berger, 嵌入式系统设计 , 吕 骏 译 , 北京 : 电子工业出版社 , 2020 [4] 桑楠 . 嵌入式系统原理及应用开发技术 , 北京 : 北京航空航天大学出版社 , 2020 16 附 录 成品展示 17 源程序 include define uint unsigned int define uchar unsigned char sbit key1=P1^0。 sbit key2=P1^1。 sbit key3=P1^2。 sbit key4=P1^3。 sbit lcden=P2^2。 sbit lcdrs=P2^0。 sbit lcdrw=P2^1。 sbit jdq=P2^3。 sbit led=P2^4。 sbit sound=P2^5。 int a,b,i,min,hour,minge,minshi,hourge,hourshi,amin,ahour,aminge,aminshi,ahourge,ahourshi,sec,secshi,secge。 //unsigned char code x[]={0xFF,0xC7,0x83,0x01,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF}。 //unsigned char code z[]={0xFF,0xE3,0xC1,0x80,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF 18 C,0x7F,0xFF,0xFF}。 uchar code table1[]={39。 039。 ,39。 139。 ,39。 239。 ,39。 339。 ,39。 439。 ,39。 539。 ,39。 639。 ,39。 739。 ,39。 839。 ,39。 939。 }。 uchar code table2[]=Time:00:00:00。 uchar code Alarm_1[]=Alarm:00:00。 uchar code nul[]=。 uchar num1,num2。 bit flag=0。 void delay(unsigned int xms) //延时程序 { uint i,j。 for(i=xms。 i0。 i) for(j=124。 j0。 j)。 } void write_(uchar ) //LCD 命 令控制,写指令函数 { delay(5)。 lcdrs=0。 P0=。 delay(5)。 lcden=1。 delay(5)。 19 lcden=0。 } void write_data(uchar date) //LCD 数据控制,写数据函数 { delay(5)。 lcdrs=1。 P0=date。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } void time() //设置时间函数 { while(1) { if(key1==0) { delay(10)。 if(key1==0) { 20 if(hour==23) //时 设置 hour=0。 else hour++。 hourge=hour%10。 hourshi=hour/10。 write_(0x0f)。 delay(2)。 write_(0x80+6)。 write_data(table1[hourge])。 //时 个位写入 LCD第二行第 6 位 delay(5)。 write_(0x80+5)。 delay(2)。 write_data(table1[hourshi])。 //时 十位写入 LCD第二行第 5 位 while(!key1)。 //delay(1)。 } } if(key2==0) { 21 delay(10)。 if(key2==0) { if(min==59) //分 设置 min=0。 else min++。 minge=min%10。 minshi=min/10。 write_(0x0f)。 write_(0x80+9)。 write_data(table1[minge])。 //分 个位写入 LCD 第二行第 9 位 delay(1)。 write_(0x80+8)。 write_data(table1[minshi])。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。