单片机电子时钟课设论文 1.docx

上传人:飞**** 文档编号:44324397 上传时间:2022-09-21 格式:DOCX 页数:24 大小:157.34KB
返回 下载 相关 举报
单片机电子时钟课设论文 1.docx_第1页
第1页 / 共24页
单片机电子时钟课设论文 1.docx_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《单片机电子时钟课设论文 1.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟课设论文 1.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第1页 共24页第 1 页 共 24 页电子时钟课程设计班级:机自 081学号:200880724102姓名:罗兰秀完成日期:2011 年 06 月 18 日编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第2页 共24页第 2 页 共 24 页摘要随着电子技术的飞速发展,单片机以体积小,性价比高,面向实时应用为特征;以不求规模大,力争小而全为宗旨;以在一块芯片上集成一台计算机为目的,而广泛应用于工业自动化、智能化仪表、电子产品等领

2、域。单片机模块中最常见的是电子时钟,电子时钟是一种用 DS1302 芯片实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得电子时钟的精度,远远超过老式钟表,同时也扩展了钟表原先的报时功能。如定时自动报警、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,都是以钟表数字化为基础的。因此,研究电子时钟及扩大其应用,有着非常现实的意义。编号:时间:2021 年 x 月

3、 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第3页 共24页第 3 页 共 24 页目录1、0课程设计的功能描述2、0课程设计分析设计3、0绘制硬件电路图并进行说明4、0绘制软件流程图并进行说明5、0程序的源代码清单6、0上机调试运行结果分析7、0课程设计经验教训总结8、0参考文献编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第4页 共24页第 4 页 共 24 页1.0 课程设计功能描述该课程设计是利用 MCS-51 单片机内部的定时计数器、中断系统、LED 显示器等部件设计的一个单片机电子时钟。设计的

4、电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。具体如下:在启动初,LED 显示器可以显示设计学号,接下来显示在设计时设定的初始时间。K 是复位开关,K0 是移位开关,用于设置时间时的定位,从而可以分别对时、分、秒进行设置和校准,K1 对时、分、秒进行增加调制,K2 对时、分、秒进行减小调制,并通过 LED 显示器显示出来,从而完成对时间的设置,启动,暂停等控制。2、0 课程设计分析设计单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO 接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。电子时钟是利用单片机内部的定

5、时器计数器来实现的,它的处理过程如下:首先设定单片机内部的一个定时器计数器工作于定时方式,对机器周期计数形成基准时间,然后用另一个定时器计数器或软件计数的方法对基准时间计数形成秒,秒计 60 次形成分,分计 60 次形成小时,小时计 24 次则计满一天。然后通过数码管把它们的内容在相应位置显示出来。数码管有静态显示方法和动态显示方法。本科舍采用动态显示方法。编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第5页 共24页第 5 页 共 24 页在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。在主程序中只需对

6、定时器计数器初始化、调用显示子程序和控制子程序。3、0 绘制硬件电路图,并对硬件电路进行说明硬件电路图如下:编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第6页 共24页第 6 页 共 24 页编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第7页 共24页第 7 页 共 24 页3、1 开关按钮K0 是选择键,按第一次选择时,按第二次选择分,按第三次选择选择秒;K1 递增开关,每按下一次数值增一;K2 为递减开关,每按下一次数值减一。3 3、2 2 蜂鸣器驱动电路蜂鸣器驱动电

7、路为了使电子时钟能够进行整点报时,需要通过蜂鸣器的报警来提醒,因此在电路图中需要加入蜂鸣器。电路如下图所示:3、3 上拉电阻:对电路和芯片起保护作用,防止电流过大造成损害。3、4 复位电路复位电路分两种方式,分别是上电自动复位和按键手动复位。该课设应用的是手动复位。电路如下图所示:3、5 电源电路单片机正常工作是+5V 电压,采用 USB 供电。4、0 绘制软件流程图并对软件流程图进行说明编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第8页 共24页第 8 页 共 24 页该课程设计采用 C 语言编程程序,程序设计框图如下:编号:时间

8、:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第9页 共24页第 9 页 共 24 页编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第10页 共24页第 10 页 共 24 页编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第11页 共24页第 11 页 共 24 页5、0 程序源代码清单#include#include ds1302.h#define KeyPort P3/按键端口#define DataPort P0/数据端

9、口sbit LATCH1=P22;/段锁存sbit LATCH2=P23;/位锁存sbit P2_0=P20;/报警sbit P2_5=P25;sbit P2_7=P27;unsigned int panduan,baojing;unsigned intbian1;/调时unsigned intbian2,bian3,bian4,bian5,bian6;/闹钟bit ReadTimeFlag;/定义读时间标志unsigned int xianshi,shijian;/显示学好是用unsignedcharcodedofly_DuanMa10=0 x3f,0 x06,0 x5b,0 x4f,0 x

10、66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/显示段码值 09unsignedcharcodedofly_WeiMa=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/位码unsigned char TempData8;/存储显示值的全局变量void DelayUs2x(unsigned char t);/us 级延时函数声明void DelayMs(unsigned char t);/ms 级延时void Display(unsigned char FirstBit,unsigned char Num);/数码管显示函数+

11、报警函数unsigned char KeyScan(void);/键盘扫描void Init_Timer0(void);/定时器初始化/*-主函数-*/void main(void)unsigned char num;/键盘扫描Init_Timer0();/定时器初始化Ds1302_Init();/DS1302 初始化Ds1302_Write_Time();/向 DS1302 写入时钟数据while(1)/主循环num=KeyScan();switch(num)编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第12页 共24页第 12

12、页 共 24 页case 1:bian1+;if(bian1=4)bian1=0;break;/设置时间case 2:if(bian1=1)/设置时间加 1time_buf14+;if(time_buf14=24)time_buf14=0;Ds1302_Write_Time();/小时elseif(bian1=2)time_buf15+;if(time_buf15=60)time_buf15=0;Ds1302_Write_Time();/分elseif(bian1=3)time_buf16+;if(time_buf16=60)time_buf15=0;Ds1302_Write_Time();/

13、秒break;case 3:if(bian1=1)/设置时间减 1time_buf14-;if(time_buf14=255)time_buf14=23;Ds1302_Write_Time();/小时elseif(bian1=2)time_buf15-;if(time_buf15=255)time_buf15=59;Ds1302_Write_Time();/分elseif(bian1=3)time_buf16-;if(time_buf16=255)time_buf15=59;Ds1302_Write_Time();/秒break;case 4:bian2+;if(bian2=2)bian2=0

14、;break;/切换显示、闹铃case 5:bian3+;if(bian3=4)bian3=0;break;/设置闹钟时间case 6:if(bian3=1)/加 1bian4+;if(bian4=24)bian4=0;/小时elseif(bian3=2)bian5+;if(bian5=60)bian5=0;/分elseif(bian3=3)bian6+;if(bian6=60)bian6=0;/秒break;编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第13页 共24页第 13 页 共 24 页case 7:if(bian3=1)

15、/减 1bian4-;if(bian4=255)bian4=23;/小时elseif(bian3=2)bian5-;if(bian5=255)bian5=59;/分elseif(bian3=3)bian6-;if(bian6=255)bian6=59;/秒break;case 8:panduan+;if(panduan=2)panduan=0;if(panduan=1)baojing=1;else baojing=0;default:break;if(ReadTimeFlag=1)ReadTimeFlag=0;Ds1302_Read_Time();if(shijian=0)/显示制作着学好前六

16、位TempData0=0 x5b;/2TempData1=0 x3f;/0TempData2=0 x3f;/0TempData3=0 x7f;/8TempData4=0 x7f;/8TempData5=0 x3f;/0else if(shijian=1)/显示制作着学好后六位TempData0=0 x07;/7TempData1=0 x5b;/2TempData2=0 x66;/4TempData3=0 x66;/1TempData4=0 x3f;/0TempData5=0 x5b;/2else if(shijian=2)/显示制作年、月、日编号:时间:2021 年 x 月 x 日书山有路勤为

17、径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第14页 共24页第 14 页 共 24 页TempData0=dofly_DuanMatime_buf11/10;/年TempData1=dofly_DuanMatime_buf11%10;TempData2=dofly_DuanMatime_buf12/10;/月TempData3=dofly_DuanMatime_buf12%10;TempData4=dofly_DuanMatime_buf13/10;/日TempData5=dofly_DuanMatime_buf13%10;else if(shijian=3)/显示周秒TempDa

18、ta0=0 x40;TempData1=dofly_DuanMatime_buf17%10;/周TempData2=0 x40;/加入-TempData3=0;TempData4=dofly_DuanMatime_buf16/10;/秒TempData5=dofly_DuanMatime_buf16%10;else if(shijian=4)if(bian2=0)/设置时间if(bian1=0)/正常显示TempData0=dofly_DuanMatime_buf14/10;/时TempData1=dofly_DuanMatime_buf14%10;TempData2=dofly_DuanMa

19、time_buf15/10;/分TempData3=dofly_DuanMatime_buf15%10;TempData4=dofly_DuanMatime_buf16/10;/秒TempData5=dofly_DuanMatime_buf16%10;else if(bian1=1)/调时TempData0=dofly_DuanMatime_buf14/10;/时TempData1=dofly_DuanMatime_buf14%10;TempData2=0 x40;/分TempData3=0 x40;TempData4=0 x40;/秒TempData5=0 x40;else if(bian1

20、=2)/调分TempData0=0 x40;/时编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第15页 共24页第 15 页 共 24 页TempData1=0 x40;TempData2=dofly_DuanMatime_buf15/10;/分TempData3=dofly_DuanMatime_buf15%10;TempData4=0 x40;/秒TempData5=0 x40;else if(bian1=3)/调秒TempData0=0 x40;/时TempData1=0 x40;TempData2=0 x40;/分TempDa

21、ta3=0 x40;TempData4=dofly_DuanMatime_buf16/10;/秒TempData5=dofly_DuanMatime_buf16%10;else if(bian2=1)/设置闹钟if(bian3=0)TempData0=dofly_DuanMabian4/10;/时TempData1=dofly_DuanMabian4%10;TempData2=dofly_DuanMabian5/10;/分TempData3=dofly_DuanMabian5%10;TempData4=dofly_DuanMabian6/10;/秒TempData5=dofly_DuanMab

22、ian6%10;else if(bian3=1)/设置小时TempData0=dofly_DuanMabian4/10;/时TempData1=dofly_DuanMabian4%10;TempData2=0;/分TempData3=0;TempData4=0;/秒TempData5=0;else if(bian3=2)/设置分钟TempData0=0;/时TempData1=0;TempData2=dofly_DuanMabian5/10;/分编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第16页 共24页第 16 页 共 24 页

23、TempData3=dofly_DuanMabian5%10;TempData4=0;/秒TempData5=0;else if(bian3=3)/设置秒TempData0=0;/时TempData1=0;TempData2=0;/分TempData3=0;TempData4=dofly_DuanMabian6/10;/秒TempData5=dofly_DuanMabian6%10;void DelayUs2x(unsigned char t)/uS 延时函数 T=tx2+5 uSwhile(-t);void DelayMs(unsigned char t)/mS 延时while(t-)Del

24、ayUs2x(245);DelayUs2x(245);void Display(unsigned char FirstBit,unsigned char Num)/显示+报警函数static unsigned char i=0;DataPort=0;/清空数据,防止有交替重影LATCH1=1;/段锁存LATCH1=0;DataPort=dofly_WeiMai+FirstBit;/取位码LATCH2=1;/位锁存LATCH2=0;DataPort=TempDatai;/取显示数据,段码编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第1

25、7页 共24页第 17 页 共 24 页LATCH1=1;/段锁存LATCH1=0;i+;if(i=Num)i=0;if(time_buf15=00)P2_5=0;else P2_5=1;if(time_buf16=00)P2_7=0;else P2_7=1;if(time_buf14=bian4)if(time_buf15=bian5)if(baojing=0)P2_0=1;else P2_0=0;else P2_0=0;else P2_0=0;void Init_Timer0(void)/定时器初始化TMOD|=0 x01;/使用模式 1,16 位定时器EA=1;/总中断打开ET0=1;/

26、定时器中断打开TR0=1;/定时器开关打开void Timer0_isr(void)interrupt 1/定时器中断static unsigned int num1;TH0=(65536-2000)/256;/赋值 2msTL0=(65536-2000)%256;编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第18页 共24页第 18 页 共 24 页Display(0,8);/调用数码管扫描+报警函数num1+;if(num1=500)/大致 1snum1=0;ReadTimeFlag=1;/读标志位置 1xianshi+;if(

27、xianshi=3)/大致 3sxianshi=0;shijian+;if(shijian=5)/大致 3sshijian=4;unsigned char KeyScan(void)/按键扫描unsigned char keyvalue;if(KeyPort!=0 xff)DelayMs(10);if(KeyPort!=0 xff)keyvalue=KeyPort;while(KeyPort!=0 xff);switch(keyvalue)case 0 xfe:return 1;break;case 0 xfd:return 2;break;case 0 xfb:return 3;break;

28、case 0 xf7:return 4;break;case 0 xef:return 5;break;case 0 xdf:return 6;break;case 0 xbf:return 7;break;case 0 x7f:return 8;break;default:return 0;break;编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第19页 共24页第 19 页 共 24 页return 0;6、0 上机调试运行结果及分析上机调试时显示和按键运行正常,首先出现学号即:724102,接下来是系统设定的日期即:11061

29、2,然后是系统设定的时间。但在调试的过程中显示反应较慢,同时在测量数字钟精度时,在数字钟正常工作时,会出现秒与秒之间不相等的情况,比如在 5 分钟之内我们与标准时间进行比较会发现,有时发现时间走的快,有时时间走的慢。原因是由于程序中的 if 判断语句,在判断过程中当满足条件时,会执行更多的语句,这样会有相应的机器周期的延时,所以会出现时间一会走的快一会走的慢的情况。所以在编程时尽量减少 if 语句的使用。7、0 课程设计经验总结单片机电子时钟系统是一个相对简单的程序设计,但由于在学习单片机课程时并没有学扎实,因此在进行电路设计时遇到了一系列的问题,翻看了不少相关书籍才把问题解决。而这次的课设用

30、到的软件也都是我们不曾接触的软件,并且是英文版的,虽然进行了汉化,但用起来仍然觉得挺困难。由于以前接触过关于时钟的设计,因此在设计时并没有特别的注意,好多的实际性的问题也没有考虑,使得在进行仿真时出现了问题,模式选择键 K0 在加载之后只能运行一次,数字钟精度不高,并且存在好多其他的问题。在以前编程时实现的都是小功能,或只是部分功能,所以按照自己的想法直接写下去就可以实现,但这次我们不但要实现数字钟的正常工作,而且需要加上定时报警,在这个设计过程中出现了一系列的矛盾,当然更重要的是在解决矛盾时我们要确保时间的准确性,这又需要我们计算机器周期和处理一些延时程序的延时,这可能是我们本次设计中最困难

31、的问题,我们在解决这个问题中更深入的理解了单片机的内部结构,也学会了合理利用单片机中的定时器和中断处理。这次课设在设计的过程中遇到了很多的问题,但也学到了很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时,编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第20页 共24页第 20 页 共 24 页通过这次课程设计使我懂得了理论与实际相结合的重要性,以及做事要认真态度要端正的道理。在贾老师的指导下,我们完成了这次课设,感谢贾老师的指导和同学们的帮助,同时也感谢学校给我们的这次实践机会,希望学校在以后的课

32、程安排中能够给我们更多的实习机会,让我们通过动手来提到自己的实际操作能力。8、0 参考文献【1】单片机原理及接口技术(第 3 版)李朝青 编著北京航空航天大学出版社2008 年 5 月【2】C 语言编程(第三版)(美)Stephen G.Kochan 著 张小潘译电子工业出版社2006 年 3 月【3】51 单片机 C 语言教程 郭天祥 编著电子工业出版社【4】单片机原理与接口技术教程 倪晓军,章韵 编著清华大学出版社编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第21页 共24页第 21 页 共 24 页编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第22页 共24页第 22 页 共 24 页编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第23页 共24页第 23 页 共 24 页编号:时间:2021 年 x 月 x 日书山有路勤为径,学海无涯苦作舟书山有路勤为径,学海无涯苦作舟页码:第24页 共24页第 24 页 共 24 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁