基于51单片机的电梯控制器设计_第1页
基于51单片机的电梯控制器设计_第2页
基于51单片机的电梯控制器设计_第3页
基于51单片机的电梯控制器设计_第4页
基于51单片机的电梯控制器设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

题目:基于单片机控制的电梯控制器目录1引言… 1总体设计方案… 1设计思路 1总体设计框图 2电梯控制系统原理分析 2单片机最小系统电路的 2控制电路的设计 3电梯内部呼叫电路和电机状态显示电路 3电梯外部呼叫电路 3电机控制电路 4显示楼层电路 4程序流程图 5主程序流程图 5选择要去的楼层子程序流程图… 6总结与体会 7参考文献 8附录1 9附录2 9附录 10电梯控制器课程设计任务书设计目的与要求基本功能6具备不可逆响应的功能:电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效。扩展功能可增加人性化的按键语音服务功能。可增加遥控或感应操作功能。设计内容画出电路原理图,正确使用逻辑关系;确定元器件及元件参数;进行电路模拟仿真;SCH编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。答辩在规定时间内,完成叙述并回答问题。基于单片机控制的电梯控制器摘要:单片机即单片微型计算机(Single-ChipMicrocomputerCPU,RAM,ROM51AT89S51C关键词:电梯AT89S51LED显示电机正反转控制楼层显示引言随着人们生活水平的不断提高和国名经济的迅速发展PLCPLC89SC51本,而且做成专用控制系统,程序被固化,加强了保密性,提高了可靠性。总体设计方案3设计思路本次设计的总思想是,用开关按钮做单片机的控制端来做作为输入信号,说明人在那一2.1总体设计框图5174ls1648楼层显示电路3秒延时控制即每延时3共16个按键,其中10个按键是各层1楼层显示电路电机控制电路电机状态显示键盘电路复位电路电机控制电路电机状态显示键盘电路复位电路AT89C51时钟电路电梯控制系统原理分析单片机最小系统电路的设计此电路组要是复位电路和时钟电路两部分右)所示:其中9脚为单片机的复位端。时钟电路如图左)所12MHZ,XATL2XATL11819 控制电路的设计

图2.单片机最小系统电路图电梯内部呼叫电路和电机状态显示电路电梯内部呼叫电路和电机状态显示电路,如图3K1K2K3、K4、K5、K6P0P0.0、P0.1、P0.2、P0.3、P0.4P0.5(P0。电机状态是通过两个发光管显示的,绿灯、红灯与单片的P1.P1.7(须外接上拉电阻图3.电梯内部呼叫电路和电机状态显示电路电梯外部呼叫电路4UP1UP2DOWN2UP3DOWN3UP4DOWN4UP5、DOWN5DOWN6P2口和P1.0P1.1图4.电梯外部呼叫电路电机控制电路过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转L2985图5.电机控制电路显示楼层电路显示电路的作用是实时显示电梯所在楼层,用一个八段数码管来实现,本设计用74ls1642P3.08接P3.16图6.显示楼层电路程序流程图主程序流程图启动电梯显示在一楼启动电梯显示在一楼电梯未运行或虽运行但还没停止否是调用选择当前要去的楼层子程序电梯已到目的层?否是3s图7.主程序流程图选择要去的楼层子程序流程图开始开始否是电梯到达最顶层电梯改为下降是电梯到达最底层电梯改为上升否是电梯在下降否是当前楼层=目的楼层3s继续下行查找下一个要去的楼层若无下行需求,则反向查询是层3s否向上查找下一个要去的楼层若无按键需求则停止总结与体会

图8.选择要去的楼层子程序流程图我设计的电梯自动控制用到了电机我们用二极管模拟大的耐心,一点一点的改正,达到想要的效果,使自己的编程能力不断的提高!参考文献:沈德全.mcs51[M].北京:北京航空航天大学出版社张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,2008.4张大明.单片机微机控制应用技术[M].北京:机械工业出版社,2006.4刘瑞新.单片机原理及应用教程[M].机械工业出版社,2003.7李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2006附录1:总体电路图2:PCB2:PCB3:原程序#include<reg51.h>#include"电梯.h"sbitk1=P0^0;sbitk2=P0^1;sbitk3=P0^2;sbitk4=P0^3;sbitk5=P0^4;sbitk6=P0^5;sbitsbitLedUp=P0^7;sbitup1=P2^0;sbitup2=P2^1;sbitdown2=P2^2;sbitup3=P2^3;sbitdown3=P2^4;sbitup4=P2^5;sbitdown4=P2^6;sbitup5=P2^7;sbitdown5=P1^0;sbitdown6=P1^1;sbitd11=P1^2;sbitd12=P1^3;sbitd21=P1^4;sbitd22=P1^5;sbitpwm1=P1^6;sbitpwm2=P1^7;voidDianTiKey();#defineucharunsignedcharcharKeyValueOld; //内部按键上次charKeyValueOOld; //外部按键上次值charNowFloor; //当前所在楼层charKeyValue; 电梯内部按键暂存值charKeyValueO; 电梯外部按键暂存值charGoFloor[5]; //要去楼层暂存 GoFloor[1]=12楼在呼叫上升2楼在呼叫下降chart; //电梯运行/停止标/上升/下降志位 t=0电梯没有运t=11电梯在上升t=10电梯下降ucharcodeplay[]={0xff,0xd7,0x32,0x92,0xd4,0x98,0x18}; //串口显示字型unsignedintTimeValue; //定时器计数charNum;voiddelay(unsignedinta){// unsignedinti;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TimeValue=0;TR0=1;while(TimeValue<a){DianTiKey(); //多人电梯功能添加部分}TR0=0;}voidShangSheng()//驱动电机上升函数{inti;t=11;LedUp=0;LedDown=1;for(i=0;i<10;i++){d11=1,d12=0,d21=0,d22=0;delay(5);d11=1,d12=1,d21=0,d22=0;delay(5);d11=0,d12=1,d21=0,d22=0;delay(5);d11=0,d12=1,d21=1,d22=0;delay(5);d11=0,d12=0,d21=1,d22=0;delay(5);d11=0,d12=0,d21=1,d22=1;delay(5);d11=0,d12=0,d21=0,d22=1;delay(5);d11=1,d12=0,d21=0,d22=1;delay(5);}t=0;// d11=1,d12=1,d21=1,d22=1;LedDown=1;LedUp=1;}voidXiaJiang()//驱动电机下降函数{inti;t=10;LedDown=0;LedUp=1;for(i=0;i<10;i++){d11=0,d12=0,d21=0,d22=1;delay(5);d11=0,d12=0,d21=1,d22=1;delay(5);d11=0,d12=0,d21=1,d22=0;delay(5);d11=0,d12=1,d21=1,d22=0;delay(5);d11=0,d12=1,d21=0,d22=0;delay(5);d11=1,d12=1,d21=0,d22=0;delay(5);d11=1,d12=0,d21=0,d22=0;delay(5);d11=1,d12=0,d21=0,d22=1;delay(5);}t=0;// d11=1,d12=1,d21=1,d22=1;LedDown=1;LedUp=1;}voidGo() //电梯内部按键响应程序{chartemp;if(KeyValue!=KeyValueOld){KeyValueOld=KeyValue;temp=NowFloor-KeyValue;if(t==0){if(temp>0) //电梯执行上升{while(temp>0){ShangSheng();Num++;if(GoFloor[Num]!=0){if(((GoFloor[Num]&0x01)+(GoFloor[Num]&0x04))>0);}temp--;SBUF=play[--NowFloor];while(!TI);TI=0;}NowFloor=KeyValue;}if(temp<0) //电梯执行下降{while(temp<0){XiaJiang();temp++;SBUF=play[++NowFloor];while(!TI);TI=0;}NowFloor=KeyValue;}}//此电梯功能只适合一个人乘车}}voidOutKey()//外部按键响应程序{chartemp;if(KeyValueO!=KeyValueOOld)//按键是否按下{KeyValueOOld=KeyValueO;temp=NowFloor-KeyValueO;if(t==0){if(temp>0) //电梯执行上升{while(temp>0){ShangSheng();temp--;SBUF=play[--NowFloor];while(!TI);TI=0;}NowFloor=KeyValueO;}if(temp<0) //电梯执行下降{while(temp<0){XiaJiang();temp++;SBUF=play[++NowFloor];while(!TI);TI=0;}NowFloor=KeyValueO;}}}}voidDianTiKey() //电梯按键扫描函数{switch(~P0){case0x01:KeyValue=1;GoFloor[0]|=4;break;case0x02:KeyValue=2;GoFloor[1]|=4;break;case0x04:KeyValue=3;GoFloor[2]|=4;break;case0x08:KeyValue=4;GoFloor[3]|=4;break;case0x10:KeyValue=5;GoFloor[4]|=4;break;case0x20:KeyValue=6;GoFloor[5]|=4;break;case0x40:break;case0x80:break;}if(t==0){switch(~P2)//上升按键扫描{case0x01:GoFloor[0]|=1;KeyValueO=1;break;//1case0x02:GoFloor[1]|=1;KeyValueO=2;break;//2case0x04:GoFloor[2]|=1;KeyValueO=3;break;//3case0x08:GoFloor[3]|=1;KeyValueO=4;break;//4case0x10:GoFloor[4]|=1;KeyValueO=5;break;//5case0x20:GoFloor[0]|=2;KeyValueO=2;break;//2case0x40:GoFloor[1]|=2;KeyValueO=3;break;//3case0x80:GoFloor[2]|=2;KeyValueO=4;break;//4}if(!down6){GoFloor[4]|=2;//6楼呼叫下降KeyValueO=6;}if(!down5) //5{}else{

GoFloor[3]|=2;KeyValueO=5;}if(t==11) //switch(~P2)上升按键扫描{case0x01:GoFloor[0]|=1;KeyValueO=1;break;//1case0x02:GoFloor[1]|=1;KeyValueO=2;break;//2case0x04:GoFloor[2]|=1;KeyValueO=3;break;//3case0x08:GoFloor[3]|=1;KeyValueO=4;break;//4case0x10:GoFloor[4]|=1;KeyValueO=5;break;//5}elseif(t==10)//电梯在下降时响应下降呼叫{switch(~P2){case0x20:GoFloor[0]|=2;KeyValueO=2;break;//2case0x40:GoFloor[1]|=2;KeyValueO=3;break;//3case0x80:GoFloor[2]|=2;KeyValueO=4;break;//4}if(!down6){GoFloor[4]|=2;//6楼呼叫下降KeyValueO=6;}if(!down5) //5{GoFloor[3]|=2;KeyValueO=5;}}}}voidstart(){SCON=0X00;//串口

温馨提示

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

评论

0/150

提交评论