您好,欢迎访问三七文档
课程设计任务书题目数字时钟设计课程名称单片机原理与技术二级学院机电工程学院专业班级姓名学号设计地点指导教师设计起止时间:2015年12月5日至2015年12月19日目录一.设计任务与要求...............................1二.总体方案设计.................................1三.程序设计.....................................1四.总原理图及器件清单...........................6五.安装与调试...................................7七.结论与心得...................................9八.参考文献....................................101一.设计任务与要求设计要求:1.实现小时、分、秒的实时显示。2.能对小时、分进行校正。3.最小计时单位为1秒。4.用proteus对其仿真或作出实物。5.撰写课程设计论文要求符合模板的相关要求,字数要求4000字以上。设计要求:(1)根据功能要求选择设计方案,并进行论证;(2)画出电路的总体方框图和电路原理图。(3)说明系统工作原理,对系统进行调试。(4)写出课程设计报告。二.总体方案设计采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V范围内,功耗也较低,但价格比较贵,且目前市场上采购不到。三.程序设计参考程序如下:2#includereg51.h#includeLCD1602.h//液晶显示器LCD1602头文件#includeDS1302.h//时钟芯片DS1302头文件#defineucharunsignedchar#defineuintunsignedintbitkey_flag1=0,key_flag2=0;SYSTEMTIMEadjusted;//此处为结构体定义ucharsec_add=0,min_add=0,hou_add=0;ucharday_add=0,mon_add=0,yea_add=0;uchardata_alarm[7]={0};intkey_scan()//函数功能:键盘扫描,判是否有键按下{inti=0;uinttemp;P1=0xf0;temp=P1;if(temp!=0xf0){i=1;}else{i=0;}returni;}ucharkey_value()//函数功能:获取按下的按键值{uintm=0,n=0,temp;ucharvalue;ucharv[4][3]={'2','1','0','5','4','3','8','7','6','b','a','9'};P1=0xfe;temp=P1;if(temp!=0xfe)m=0;//采用分行、分列扫描的形式获取按键键值P1=0xfd;temp=P1;if(temp!=0xfd)m=1;P1=0xfb;temp=P1;if(temp!=0xfb)m=2;P1=0xf7;temp=P1;if(temp!=0xf7)m=3;P1=0xef;temp=P1;if(temp!=0xef)n=0;P1=0xdf;temp=P1;if(temp!=0xdf)n=1;3P1=0xbf;temp=P1;if(temp!=0xbf)n=2;value=v[m][n];returnvalue;}voidadjust(void)//函数功能:修改各参量{if(key_scan()&&key_flag1)switch(key_value()){case'0':sec_add++;break;case'1':min_add++;break;case'2':hou_add++;break;case'3':day_add++;break;case'4':mon_add++;break;case'5':yea_add++;break;default:break;}adjusted.Second+=sec_add;adjusted.Minute+=min_add;adjusted.Hour+=hou_add;adjusted.Day+=day_add;adjusted.Month+=mon_add;adjusted.Year+=yea_add;if(adjusted.Second59){adjusted.Second=adjusted.Second%60;adjusted.Minute++;}if(adjusted.Minute59){adjusted.Minute=adjusted.Minute%60;adjusted.Hour++;}if(adjusted.Hour23){adjusted.Hour=adjusted.Hour%24;adjusted.Day++;}if(adjusted.Day31)adjusted.Day=adjusted.Day%31;if(adjusted.Month12)4adjusted.Month=adjusted.Month%12;if(adjusted.Year100)adjusted.Year=adjusted.Year%100;}voidchanging(void)interrupt0using0//中断处理函数,修改参量,或修改确认{if(key_flag1)key_flag1=0;elsekey_flag1=1;}main()//主函数{uinti;ucharp1[]=D:,p2[]=T:;SYSTEMTIMET;EA=1;EX0=1;IT0=1;EA=1;EX1=1;IT1=1;init1602();Initial_DS1302();while(1){write_com(0x80);write_string(p1,2);write_com(0xc0);write_string(p2,2);DS1302_GetTime(&T);adjusted.Second=T.Second;adjusted.Minute=T.Minute;adjusted.Hour=T.Hour;adjusted.Week=T.Week;adjusted.Day=T.Day;adjusted.Month=T.Month;adjusted.Year=T.Year;for(i=0;i9;i++)5{adjusted.DateString[i]=T.DateString[i];adjusted.TimeString[i]=T.TimeString[i];}adjust();DateToStr(&adjusted);TimeToStr(&adjusted);write_com(0x82);write_string(adjusted.DateString,8);write_com(0xc2);write_string(adjusted.TimeString,8);delay(10);}}程序中,使用了自行编写的液晶显示器LCD1602的头文件“LCD1602.h”,由于液晶显示器LCD1602是单片机应用系统经常用到的器件,因此将其常用到的驱动函数等函数,写成一个头文件,如果以后在其他项目中也用到LCD1602,只需将该头文件包含进来即可,这样程序的编写提供了方便。同理涉及对时钟/日历芯片DS1302的控制,也可自行编写头文件“DS1302.h”,以后在其他项目中将该头文件包含进来即可。6四.总原理图及器件清单元器件清单:元器件个数AT89C511BUTTON7LM016L1RES8DS13021CRYSTAL1CELL2POWER3GROUND27五.安装与调试运用proteus软件进行仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。8六.测试结论与分析经过了多次的反复测试与分析,可以对电路原理及功能更加熟悉,同时提高了设计能力以及对电路的分析能力,同时在软件的编程方面得到更高的提高,对编程能力也得到了加强,同时对所学的只是得到了很到的提高与巩固。对于初学者来说,更是有更大的益处,能理论联系实际运用,学到更多的知识,真正将这门课程所包含的知识用于实际生活中的具体创造和设计中。该电子钟的功能虽少,但是程序也比较为复杂,所以在编写程序和调试程序时出现了相对较多的问题。最后,鉴于以前学过的单片机知识,一步一步的完成各个子程序,终于得到了最后的程序。解决了软件问题。在写中断程序和显示程序时遇到了很多的问题,如调试时显示乱码等等。但是经过努力,程序还是成功了。9七.结论与心得通过这次单片机课程设计,发现了自身所学知识存在许多的不足和问题,同时也学到了不少东西,提高了动手能力。在整个设计过程中,从设计方案的确定,到具体电路的设计,最后到总体电路的联接构建以及程序的编写烧写,整个设计工程量的比较大的,单靠个人能力,很多方面考虑不周,有的地方甚至毫无头绪,想不出具体方案,因此,绝对不能心急,不明白的地方和其他的同学讨教,毕竟群策力办法要多些,让自己也多个机会,碰上是在不能解决的问题,就去找辅导老师,用过老师的指点,把问题彻底搞清楚并加以掌握。另外,在这次的设计过程中,我还查阅了很多相关设计的资料,通过参考和研究别人的一些设计,使得自己的设计思路更加清晰和周密,从而使设计出来的产品也更加完善和高质量。尽管这次设计中遇到了很多问题,但是也都一一得以解决,比如软件设计时,遇到了很多问题,但是经过向同学讨教及想老师询问,静下心来思考,慢慢就理清了思路;在硬件电路板焊接过程中,也遇到了很多问题,在电路焊接虽然并没有什么大的问题,但是线多,需要一定的耐心,慢慢来,不能心急才能焊接成功。通过这次设计,也使我知道了无论做任何事情,都要有一颗平常心,不要急着想要成功、走捷径,要一步一个脚印,把每一部都认认真真的做好来,才能取得最后的成功,同时也练就了我的耐心,做什么事情都要有耐心,不要遇到困难就退10缩,而是要静下心来去寻找解决的方法,否则很难有最后的成功。在此过程中,充分发挥人的主观能动性,自主学习,学到了很多没有学到过的知识,另一方面,碰到问题注意与同学和老师写作、讨论、寻求解决的方案,最终完成作品,达到预期的目的[7]。虽然这次设计的课题有些简单,但是要真的做进去还是有一定的困难的,但是经过自己的努力,得出最后的作品,我个人还是蛮有成就感的,更重要的是学到了平时没有学到的知识。因此,我自己觉得这次的课程设计对我而言算的上是一次全新的尝试,也是一个小小的成功,更是一次很好的锻炼,让我有了全方位的提高和进步。八.参考文献1、张毅刚编著,单片机原理及应用,高等教育出版社,2012年2、郭天祥十天征服单片机和C语言(网上视频)11起止日期工作内容2015年12月7日-12月8日12月8日-6月9日12月9日-12月11日12月11日-12月13日题目分析,查阅资料与方案选择原理图的绘制编写软件程序并与仿真撰写设计报告6.成绩考核办法根据学生在实习中的表现、实习报告的质量,以及各项目实习老师给予的实习鉴定综合考核评分,按按优秀、良好、中等、及格和不及格五级计分。教研室审查意见:教研室主任签字:年月日二级学院意见:主管领导签字:年月日12
本文标题:单片机数字钟设计1
链接地址:https://www.777doc.com/doc-2594919 .html