【基于单片机的自动门控制系统的设计8500字(论文)】_第1页
【基于单片机的自动门控制系统的设计8500字(论文)】_第2页
【基于单片机的自动门控制系统的设计8500字(论文)】_第3页
【基于单片机的自动门控制系统的设计8500字(论文)】_第4页
【基于单片机的自动门控制系统的设计8500字(论文)】_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[9]REF_Ref101030288\r\h[10]#include<reg52.h>#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535unsignedcharcodezheng[4]={0x08,0x04,0x02,0x01};//正转表格unsignedcharcodefan[4]={0x01,0x02,0x04,0x08};//反转表格ucharflag_start;//启动标志位ucharflag_z_f;//正反标志位uintflag_moshi; //模式变量sbitled1=P2^0;//指示灯发光二极管IO口定义sbitled2=P2^1; //sbitled3=P2^2; //sbitled4=P2^3; //sbithw1=P2^4; //红外人体传感器IO口定义sbithw2=P2^5; //uintbjdj_value;//步进电机的量ucharflag_sj,flag_zdg; //延时关门时间打开和关闭的变量sbitkey1=P3^4; //按键IO口定义sbitkey2=P3^5; //sbitkey3=P3^6; //sbitkey4=P3^7; ///***********************1ms延时函数*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/********************独立按键程序*****************/ucharkey_can; //按键值voidkey() //独立按键程序{ if(key1==0||key2==0||key3==0||key4==0) //有按键按下 { delay_1ms(1); //按键延时消抖动 if(key1==0) //确认是按键按下 key_can=1; //得到按键值 if(key2==0) //确认是按键按下 key_can=2; //得到按键值 if(key3==0) //确认是按键按下 key_can=3; //得到按键值 if(key4==0) //确认是按键按下 key_can=4; //得到按键值 }}voidbujindj() //步进电机函数{ uchari; if(flag_z_f!=0) { if(flag_z_f==1) //开 { if(bjdj_value>=512) { flag_z_f=0; flag_zdg=1; }else bjdj_value++; } if(flag_z_f==2) //关 { if(bjdj_value<=1) { flag_z_f=0; bjdj_value=1; }else { bjdj_value--; } } for(i=0;i<4;i++)//4相 { if(flag_z_f==1) //开 P1=zheng[i];//// elseif(flag_z_f==2)//关 P1=fan[i];//// } }}/******************主程序**********************/voidmain(){ unsignedcharvalue; while(1) { key(); if(key_can==1) //按下按钮,自动门进入自动模式 { flag_moshi=0; flag_z_f=0; led4=0;led3=1; //指示灯 } if(key_can==2) //按下按钮,自动门进入手动模式 { flag_moshi=1; flag_z_f=0; led4=1;led3=0; //指示灯 } if(key_can==3) //手动关 { flag_z_f=2; led2=0;led1=1; //指示灯 } if(key_can==4) //手动开 { flag_z_f=1; led2=1;led1=0; //指示灯 } if(flag_moshi==0) //按下按钮自动门进入自动模式 { if((hw1==1)||(hw2==1))//检测到信号 { flag_z_f=1;//自动门打开 led2=1;led1=0; //指示灯 flag_zdg=0; flag_sj=0; } if(flag_zdg==1) //延时自动关 { value++; if(value>100)//1m { value=0; //此时检测系统没有检测到信号 flag_sj++; if(flag_sj>=3)//自动门延时3秒自动关门 { flag_zdg=0; flag_z_f=2; } } delay_1ms(10); //10ms } } bujindj(); //步进电机函数 }}4.6仿真原理图本次的仿真是由Keil和Proteus两个软件联合运行的,首先打开Keil软件在上面编写好我们所需要的代码,然后生成所需要的hex文件保存起来。其次进入Proteus软件打开之前做好的元件图,点击AT89C51单片机芯片将之前所生成的hex文件导入进去,添加完之后就可以开始运行,最后我们就可以生成如下图4.5的仿真原理图。因为单独使用单片机它的输出电流较低,所以本文选用了ULN2003A与单片机一起来驱动负载,它可以实现功率放大,输出5VTTL电平,输出可达500mA/50V,这样就可以实现对负载的驱动。图图4.5仿真原理图5小结本次的毕业设计是利用单片机技术设计一个自动门控制系统,首先要提前在网上搜集一些相关知识,然后结合自己所学的知识去设计出最合理的地方案。其次还要了解国内外关于自动门的主要制造方法和原理,并且通过多重比较选择最优方案,而在众多单片机中,本文选择了89C51单片机作为整个系统最核心的部分。本文在整个方案的基础上详细阐述方案的原理和可行性,并且还要说明传感器与步进电机的工作原理,设计出了与之相对于的硬件和软件。最后通过测试表明,本文所设计的电路能够完成其基本的功能。在此次的毕业设计中学到了许多,收获了许多。从一开始开题报告的无从下手到慢慢阅读文献一步步的学习,再到论文的开始写作,这每一项都是一个进步。写论文一开始都毫无头绪,只有看得多了才能下笔如有神。就比如说电路设计部分,如果不去查阅大量资料很难完成电路的设计,只有通过不断地阅读文献,寻找相似的部分,与其它方案进行比较才能有针对性的提出可行方案。在设计硬件之前脑海里想到的第一个器件就是电机,但是了解到的电机有多种多样,于是就开始查阅资料发现进步电机最适合作为自动门的驱动系统,于是就选择了进步电机作为自动门的驱动系统。通过此次的毕业设计,明白了一个好的设计得有一个好的创意和可实行的方案。因为通常在设计的时候,都是根据一开始的想法去搜索资料,解决问题。首先自动门是生活中非常常见的事物,本文选择这个课题也是因为它在日常生活中太常见了,以至于认为它设计起来十分简单。但是从参考别人的设计时才感觉到它并不是那么容易,要考虑到用什么电机,然后选用什么样的单片机去控制电机,整个过程都得仔细研究,慢慢斟酌。虽然本文最后设计出来了此方案,但是由于经验匮乏,设计方案还有待提高。整个设计中最大的收获还是在设计过程,通过反复的对比和修改才确定最终方案。参考文献《可编程控制器与变频器的自动门控制系统设计》.钢祥,周斌萍,高锋;《中国科技投资》.2017.《传感器工作原理及应用实例》.黄继昌.徐巧鱼等编著.人民邮电出版社.2002.《单片机原理应用与实验》.张友德,等编著.复旦大学出版社.2000.《向凤红.自动控制原理》.陈玉宏编著.重庆:重庆大学出版社.2003.《传感器及其应用》.张金铎

金欢阳名编著.西安电子科技大学出版社,2002.《单片机基础》李广弟

朱月秀

冷祖祁

编著《单片微行计算机原理、应用及接口技术》.张迎新编著.国防工业出版社.2000.《红外线探测与控制电路》.

陈永甫编著

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论