694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc

上传人:laozhun 文档编号:3894567 上传时间:2023-03-26 格式:DOC 页数:33 大小:535.50KB
返回 下载 相关 举报
694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc_第1页
第1页 / 共33页
694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc_第2页
第2页 / 共33页
694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc_第3页
第3页 / 共33页
694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc_第4页
第4页 / 共33页
694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc》由会员分享,可在线阅读,更多相关《694523444毕业设计(论文)基于51单片机的定时控制系统设计.doc(33页珍藏版)》请在三一办公上搜索。

1、四川信息职业技术学院毕业设计说明书设计题目:基于51单片机的定时控制系统设计专 业: 电子信息工程技术 班 级: 电信09-1 学 号: 姓 名: 指导教师: 二O一一年十二月十五日四川信息职业技术学院毕业设计任务书学生姓名学号0819019班级电信09-1专业电子信息工程技术设计(或论文)题目基于51单片机的定时控制系统设计指导教师姓名职 称工作单位及所从事专业联系方式备注曾宝国讲师/工程师四川信息职业技术学院电子系教师15883534429设计(论文)内容:以AT89C51单片机为核心,设计一款定时控制系统,可用于电饭煲定时煮饭控制,要求:1. 能以24小时方式显示时间,并能修改系统时钟基

2、准和设定定时时间;2. 定时时间自动报警,并完成继电器通断控制;3. 完成仿真或制作实物,并撰写设计报告。进度安排:1.收集有关资料并消化吸收-9月25日10月15日;2.制定设计方案-10月16日10月30日;3.硬件设计-11月1日11月15日;4.软件设计-11月16日11月30日;5.硬件制作-12月1日12月5日; 5.撰写设计报告-12月6日12月15日;6.准备毕业答辩-12月16日12月25日。主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1戴佳.戴卫.51单片机C语言应用程序设计实例精讲电子工业出版社.20062余宏生.吴建设.电子CAD技能实训.人民邮电出版社.

3、20063李贵庭.单片机应用技术及项目化训练.西南交通大学出版社.20094刘建清.从零开始学单片机C语言.国防工业.20065钟富昭等.8051单片机典型模块设计与应用M.人民邮电出版社,2007.6李平等.单片机入门与开发M.机械工业出版社,2008.审批意见教研室负责人:年 月 日备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份目录摘要1第1章方案设计2第2章硬件设计32.1单片机最小系统32.2 DS1302时钟电路42.3按键电路42.4中断触发电路52.5LCD1602液晶显示电路52.6继电器控制电路52.7报警电路62.8整机工作原理6第3章软件设计7第4章系统

4、仿真测试84.1仿真测试方法84.2仿真测试结果8总结9致谢10参考文献11附录1主要程序代码12附录2整机原理图29摘要在这个智能社会,对以往的很多设备都进行了智能化改进,比如降温系统等都从手动改进到了自动控制。在这里我们将常见的做饭工具电饭煲也进行了智能化控制,这里主要运用51单片机对原有非智能化电饭煲进行智能化控制,该系统具有定时功能,并且当时间到达定时时间时会自动报警,并且在报警一分钟后如果没有人操作电饭煲,会通过继电器将电饭煲的电源切断让并点亮绿灯提示它的工作完成。关键词AT89C51;DS1302;继电器第1章方案设计采用51单片机可以实现一些功能不多的控制环境,即节约经济又达到了

5、我们所需的职能化控制。本课题主要从以下三个方面入手:一是实现时间显示功能,可以查看日期时间星期;二是实现定时功能,当时间到达设定值时可以报警提示,并通过继电器控制电饭煲的电源,并通过指示灯提示任务的完成;三是考虑时间的准确性,在这里主要使用DS1302芯片进行时间计时。设计的总体方案如图1-1所示,由单片机最小系统、LCD1602液晶显示、继电器、DS1302时钟电路、报警电路、按键电路及5V直流供电电路组成。为了实现智能控制和简化设计,选用了AT89C52、DS1302等集成芯片。图1-1基于51单片机的定时控制系统框图第2章硬件设计2.1单片机最小系统1振荡电路AT89C51是内部具有振荡

6、电路的单片机,只需在18脚和19脚之间接上石英晶体,给单片机加工作所需直流电源,振荡器就开始振荡起来。振荡电路就为单片机工作提供了所需要的时钟脉冲信号,是单片机的内部电路、单片机的内部程序(若有)开始工作。振荡电路不工作,整个单片机电路都不能正常工作。AT89C51常外接6MHz、12MHz的石英晶体,18脚和19脚分别对地接了一个30pF的电容,目的是防止单片机自激。若从18脚输入外部时钟脉冲,则19脚接地。2复位电路复位电路就是在RST端(9脚)外接的一个电路,目的是使单片机上的电开始工作时,内部电路从初始状态开始工作,或者在工作中人为让单片机重新从初始状态开始工作。在时钟工作的情况下,只

7、要复位引脚高电平保持在两个机器周期以上的时间,AT89C51便能完成系统重置的各项工作,使得内部特殊功能寄存器的内容均被设置成已知状态,并且从地址0000H处读入程序代码而执行程序。单片机最小系统电路如图2-1所示。图2-1单片机最小系统2.2 DS1302时钟电路1DS1302简介芯片引脚功能图如图2-2所示。图2-2 DS1302引脚功能图DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,

8、DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向), SCLK为时钟输入端。2时

9、钟电路图时钟电路如图2-3所示,主要由DS1302及32.768KHz晶振组成。通过SPI三线方式可以很好的与51系列单片机进行通信,从内部读出时间,以及设置内部时间。图2-3 DS1302时钟电路图2.3按键电路按键电路如图2-4所示。图2-4 按键电路当没有按下按键时I/O口为高电平,当按下时I/O口电平会被拉低,通过电平的不同可以很轻松地判别是否有按键按下。2.4中断触发电路中断触发电路主要由与非门及非门构成,主要用于当按键按下之后触发中断,电路图如图2-5所示。图2-5中断触发电路2.5LCD1602液晶显示电路液晶显示电路如图2-6所示,具体液晶使用请查看相关手册。图2-6 LCD1

10、602液晶显示电路2.6继电器控制电路继电器控制电路如图2-7所示。由于单片机I/O口驱动能力有限,从图中可以看出我们利用三极管来控制,通过如图的连接方式,可以提高驱动负载的能力,并且利用三极管截至和饱和导通的性质可以很方便的用于单片机控制。图2-7 继电器控制电路2.7报警电路报警电路如图2-8所示。如2.6所述,我们在这里再次利用了三极管作为开关管驱动蜂鸣器发声。图2-8报警电路2.8整机工作原理整机仿真电路图如附录2所示,开启仿真开关后,我们可以看到时间和日期显示的界面,通过设置按钮,我们可以很方便的调节时间、日期、星期等。我们调整好时间后,并定时报警时间,后按确认键,当界面显示有大写字

11、母A时,说明我们开启了定时报警系统,通过确认键我们还可以查看当前我们设定的报警时间,当时间到达所定时时间是,就会通过蜂鸣器报警提示,当提示1分钟后,就会启动继电器控制通断系统,将电路断开,并点亮绿灯告之电饭煲工作完成。第3章软件设计整套系统的运行都是基于8051内核指令控制运行的,主要程序见附录1。工作流程如图3-1所示。图3-1流程图第4章系统仿真测试4.1仿真测试方法系统测试内容包括能否正常设定日期时间、是否能正常定时、报警电路及继电器电路是否正常工作,具体测试方法如表4-1所示。表4-1系统测试项目与测试方法序号测试项目测试方法1是否能正常设置日期时间1、打开仿真开关,通过设置键进入时间

12、设置;2分别设置时间日期,保存后观察是否正常。2是否能准确定时1、通过时间设置按钮进入定时设置;2、等待时间到点,观察是否报警。3报警电路及继电器电路是否正常工作1、观察当项目2中定时到点时,是否正常报警,及继电器是否工作,是否点亮绿灯。4.2仿真测试结果表4-2系统测试结果序号测试项目测试结果1是否能正常设置日期时间能很好的设置和保存所设置的时间,且正常工作。2是否能准确定时能够准确定时。3报警电路及继电器电路是否正常工作蜂鸣器能正常发声工作,报警结束后能断开继电器,且点亮绿灯。结果:整个系统能按照预定的计划运行,此次制作圆满成功。总结经过几周的辛苦设计,现在终于可以画上一个圆满句号了。回想

13、起来做毕业设计的整个过程,其中有苦也有甜。毕业设计的难度不仅是检验大学所学的深度,也是对自己能力的一种提高。下面我对整个毕业设计的过程简单的做一下总结。首先,进行选题选定。选题是毕业设计的开端,选择恰当的感兴趣的题目,这对于整个毕业设计是否能够顺利进行关系极大。好比走路,开始的第一步具有决定意义的,第一步迈向何方,需要慎重考虑。否则,就可能走许多弯路、费许多周折,甚至可能做的全是无用功。致谢首先要感谢在大学两年半教育我的老师,没有他们给予我扎实的基础,我想我是不能完成这次毕业设计的。在这两个多月的毕业设计中,我真诚地感谢老师和同学们的帮助,在他们的帮助下我顺利的完成了此次毕业设计。在本次设计过

14、程中曾宝国老师始终给予了我无私的帮助,在最开始的设计思路的构建、资料的选取等是我能顺利完成这次设计的关键。参考文献1 戴佳 戴卫.51单片机C语言应用程序设计实例精讲.电子工业出版社,20062 余宏生.吴建设.电子CAD技能实训.人民邮电出版社,20063 李贵庭.单片机应用技术及项目化训练.西南交通大学出版社,20094 刘建清.从零开始学单片机C语言.国防工业,20065 钟富昭等.8051单片机典型模块设计与应用M.人民邮电出版社,20076 李平等.单片机入门与开发M.机械工业出版社,2008附录1主要程序代码#include reg52.h#include delay.h#incl

15、ude date.h#include lcd.h#include start.h#include ds1302.h/功能定义uchar CN=0,TN=0,DN=0,WN=0,AN=0;uchar ZY7;uchar clr_flag_TN=0;uchar clr_flag_DN=0;uchar clr_flag_WN=0;uchar clr_flag_AN=0;uchar clr_z=0;/ - - - - - - - - 设定时间 - - - - - - - - /uchar T_S,T_S_S,T_S_G,T_M_S,T_M_G,T_M,T_H,T_H_S,T_H_G;/ - - - -

16、 - - - - 设定日期 - - - - - - - - /uchar D_D,D_D_S,D_D_G,D_Y_S,D_Y_G,D_Y,D_N,D_N_S,D_N_G;/ - - - - - - - - 设定星期 - - - - - - - - /uchar W_N,W_N_S,W_N_G;/ - - - - - - - - 设定闹铃 - - - - - - - - /uchar A_S=0,A_S_S,A_S_G,A_M_S,A_M_G,A_M=0,A_H=6,A_H_S,A_H_G,ARM=0,MI=0,BUZER1;bit A=0;sbit P00=P00;sbit P01=P01;s

17、bit P02=P02;sbit P03=P03;sbit P32=P32;sbit BUZER=P27;sbit P37=P37;void display();void main()main_start();Initial();LCD_begin();yystar();while(1)display();void INT_0(void) interrupt 0 using 0 EA=0; if(P32=0) delay_key(); if(P32=0) if(P00=0) /功能键 while(!P00); delay_key(); while(!P00); CN+;if(ARM=1)ARM

18、=0; if(CN4) CN=0; clr_z=1; if(P01=0) /设置闹铃,观察闹铃 while(!P01); delay_key(); while(!P01); if(CN=1) TN+; clr_flag_TN=1; if(TN3) TN=0; / 设定时间 if(CN=2) DN+; clr_flag_DN=1; if(DN3) DN=0; / 设定日期 if(CN=3) clr_flag_WN=1; WN+; if(WN1) WN=0; /设定周 if(CN=4)clr_flag_AN=1; AN+; if(AN3) AN=0; /设定闹铃 if(P02=0) /调整加 wh

19、ile(!P02); delay_key(); while(!P02); if(CN=1) if(TN=1) T_S_G=ZY6&0x0f; T_S_S=ZY64; T_S=T_S_S*10+T_S_G; T_S+; if(T_S59) T_S=0; ZY6=(T_S/10)*16+(T_S%10); if(TN=2) T_M_G=ZY5&0x0f; T_M_S=ZY54; T_M=T_M_S*10+T_M_G; T_M+; if(T_M59) T_M=0; ZY5=(T_M/10)*16+(T_M%10); if(TN=3) T_H_G=ZY4&0x0f; T_H_S=ZY44; T_H=T

20、_H_S*10+T_H_G; T_H+; if(T_H23) T_H=0; ZY4=(T_H/10)*16+(T_H%10); time_set(ZY); if(CN=2) if(DN=1) D_D_G=ZY3&0x0f; D_D_S=ZY34; D_D=D_D_S*10+D_D_G; D_D+; D_Y_G=ZY2&0x0f; D_Y_S=ZY24; D_Y=D_Y_S*10+D_Y_G; D_N_G=ZY1&0x0f; D_N_S=ZY14; D_N=D_N_S*10+D_N_G; if(D_Y=1|D_Y=3|D_Y=5|D_Y=7|D_Y=8|D_Y=10|D_Y=12) if(D_D

21、31) D_D=0; if(D_Y=4|D_Y=6|D_Y=9|D_Y=11) if(D_D30) D_D=0; if(D_Y=2) if(D_N%4!=0) if(D_D28) D_D=0; if(D_N%4!=0) if(D_D29) D_D=0; ZY3=(D_D/10)*16+(D_D%10); if(DN=2) D_Y_G=ZY2&0x0f; D_Y_S=ZY24; D_Y=D_Y_S*10+D_Y_G; D_Y+; if(D_Y12) D_Y=0; ZY2=(D_Y/10)*16+(D_Y%10); if(DN=3) D_N_G=ZY1&0x0f; D_N_S=ZY14; D_N=

22、D_N_S*10+D_N_G; D_N+; if(D_N99) D_N=0; ZY1=(D_N/10)*16+(D_N%10); time_set(ZY); if(CN=3) if(WN=1) W_N_G=ZY0&0x0f; W_N_S=ZY04; W_N=W_N_S*10+W_N_G; W_N+; clr_flag_WN=1; if(W_N7) W_N=1; ZY0=(W_N/10)*16+(W_N%10); time_set(ZY); if(CN=4)if(AN=1)A_S+;if(A_S59) A_S=0;if(AN=2) A_M+; if(A_M59) A_M=0;if(AN=3) A

23、_H+;if(A_H23)A_H=0; if(P03=0) /确定,查看闹铃 while(!P03); delay_key(); while(!P03);if(CN=4)A=A;P37=1;if(CN=0)CN=4;ARM=1;elseif(CN!=0)CN=0;clr_z=1;TN=0;DN=0;WN=0;AN=0; EA=1;void display()uchar show_dat2,time7,TZ,AZ;uchar code NUM=0123456789-;/LCD 字 09;uchar code t13=Mon,t23=Tue,t33=Wed,t43=Thu,t53=Fri,t63=

24、Sat,t73=Sun;uchar j,i;while(1)if(CN=0) if(clr_z=1) CMD(0x01); yystar(); clr_z=0; get_time(ZY);get_time(time); /获取 DS1302 的时间for(i=4,j=0;i4;T_M_G=time5&0x0f; T_M_S=time54;T_H_G=time4&0x0f; T_H_S=time44;A_H_S=A_H/10;A_H_G=A_H%10;A_M_S=A_M/10;A_M_G=A_M%10;A_S_S=A_S/10;A_S_G=A_S%10;T_M=T_M_S*10+T_M_G;A_

25、M=A_M_S*10+A_M_G;T_S=T_S_S*10+T_S_G;TZ=T_M*60+T_S;AZ=A_M*60+A_S;if(T_H_S=A_H_S)&(T_H_G=A_H_G)&(T_M_S=A_M_S)&(T_M_G=A_M_G)&(T_S_S=A_S_S)&(T_S_G=A_S_G)BUZER1=1;BUZER=0;MI=TZ;BUZER=BUZER;if(BUZER1=1)if(TZ-AZ)59)A=A;BUZER1=0;P37=0;elseif(TZ-MI)=2)BUZER=BUZER;MI=TZ;for(i=1,j=0;i4;i+)DSTOL(timei,show_dat)

26、;/转换为 LCD 显示的数据DIS(0x88+j,NUMshow_dat0);/显示在液晶屏的相应位置DIS(0x88+j+1,NUMshow_dat1);DIS(0x88+j+2,NUM10);j=j+3;DSTOL(time0,show_dat);/转换为 LCD 显示的数据switch(show_dat1)case 1:for(j=0,i=0;j3;j+)DIS(0xc0+i,t1j);i+;break;case 2:for(j=0,i=0;j3;j+)DIS(0xc0+i,t2j);i+;break;case 3:for(j=0,i=0;j3;j+)DIS(0xc0+i,t3j);i

27、+;break;case 4:for(j=0,i=0;j3;j+)DIS(0xc0+i,t4j);i+;break;case 5:for(j=0,i=0;j3;j+)DIS(0xc0+i,t5j);i+;break;case 6:for(j=0,i=0;j3;j+)DIS(0xc0+i,t6j);i+;break;case 7:for(j=0,i=0;j3;j+)DIS(0xc0+i,t7j);i+;break;default:break;if(CN=1)CMD(0x01); yystar(); set_time_();while(1) if(TN=0&clr_flag_TN=1) CMD(0

28、x01); yystar(); set_time_(); clr_flag_TN=0; if(TN=1&clr_flag_TN=1) CMD(0x01); yystar(); set_time_(); set_time_Second(); clr_flag_TN=0; if(TN=2&clr_flag_TN=1) CMD(0x01); yystar(); set_time_(); set_time_Minute(); clr_flag_TN=0; if(TN=3&clr_flag_TN=1) CMD(0x01); yystar(); set_time_(); set_time_Hour(); clr_flag_TN=0; get_time(ZY);get_time(time); /获取 DS1302 的时间for(i=4,j=0;i7;i+)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号