1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。单片机原理与应用技术课程设计报告( 论文) 题目 基于单片机控制的电梯控制器 专业班级: 电气123班 姓名: 桑广涛 时 间: -11-24- -12-8 指导教师: 孔晓红 年 12 月 8 日电梯控制器课程设计任务书1设计目的与要求1.1 基本功能( 1) 显示:本设计要求实现6层控制,实时显示电梯所在楼层位置。( 2) 升降控制:采用一台电动机的正反转来实现电梯的升降。( 3) 具备不可逆响应的功能: 电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效。1.2 扩展功能( 1) 可增加人性化的按键语音服务功
2、能。( 2) 可增加遥控或感应操作功能。2设计内容( 1) 画出电路原理图, 正确使用逻辑关系; ( 2) 确定元器件及元件参数; ( 3) 进行电路模拟仿真; ( 4) SCH文件生成与打印输出; 3编写设计报告写出设计的全过程, 附上有关资料和图纸, 有心得体会。4答辩在规定时间内, 完成叙述并回答问题。目录1 引言32 总体设计方案32.1 设计思路32.2 总体设计框图33 电梯控制系统原理分析43.1 控制电路的设计43.1.1 电梯内部呼叫电路和电机状态显示电路43.1.2 电梯外部呼叫电路53.1.3 电机控制电路53.2 楼层显示电路53.3 单片机最小系统的设计64 程序流程
3、图65 总结与体会7参考文献8附录一: 电路总原理图9附录二: PCB板10附录三: 程序清单11题目 基于单片机控制的电梯控制器班级姓名 电气123 桑广涛摘要: 随着经济的高速发展, 微电子技术, 自动控制技术同样得到了迅速的发展, 电梯开始成为人们生活中的一种重要交通工具, 本设计选择AT89C52为核心控制元件, 经过各个独立单元的设置, 设计一个六层电梯控制系统, 经过控制电机的正反转, 进而实现电梯的升降, 试验中利用两个二极管来代替电机, 经过二极管的亮灭来判断电梯的运行状态, 对于程序则使用C语言进行编程, 实现运送乘客到任意楼层, 而且实时显示电梯的楼层和电梯的上下情况。实际
4、生活中单片机具有成本低, 通用性强, 灵活性大以及易于实现复杂控制等优点。因此得以被广泛应用于我们日常生活之中。关键词: AT89C52 LED显示 电机正反转控制 楼层显示1 引言随着人们生活水平的不断提高和国民经济的迅速发展。各大城市建筑物在不断向高层化发展。因此电梯在我们的生活中起着举足轻重的作用。电梯已不但是一种生产环节中的重要设备,更是一种人们生活中重要的的交通运输设备。因此电梯控制技术也在不断的进步和完善, 常见的控制技术主要的有两种技术: 基于PLC控制和基于单片机控制两大技术。用PLC控制的电梯性能可靠、 稳定, 可是造价太高;基于单片机控制的电梯能够大大的降低成本而且运行也较
5、可靠, 因此现在电梯控制中大多数采用单片机控制。当前大型楼宇的电梯自动控制系统一般是基于PLC,可是在一些干扰较少、 层数较少、 控制精度要求不高、 且人员不乘的情况下, 使用单片机是十分适合的, 虽然它的抗干扰及稳定性上比不上PLC, 可是它的价格、 体积及灵活性是PLC比不上的。 本文基于单片机89SC51来控制各部分电路, 采用单片机构成控制系统, 可大大降低成本, 而且做成专用控制系统, 程序被固化, 加强了保密性, 提高了可靠性。2 总体设计方案2.1 设计思路本次设计的基本思想是采用AT89C52单片机作为核心, 根据输出信号来控制电路的整体运行, 同时利用其丰富的I/O接口与外围
6、电路配合进行控制。采用LED静态显示来实时显示电梯所在楼层, 并用74LS245来驱动LED显示。采用行列式键盘矩阵作为外呼内选电路, 采用定时器延时来控制电梯的位置校验, 当电梯到达目的楼层时电机停止运行, 此时即可进、 出乘客, 乘客进入电梯之后可选择去哪一层, 然后电梯根据乘客的选择判断去哪一层, 继续运行。经过单片机控制电梯, 在上升过程中只响应上升呼叫, 下降过程中只响应下降呼叫, 只响应同方向的呼叫, 反方向呼叫无效。2.2 总体设计框图此电路方框图如图1所示, 电路由键盘电路、 单片机最小系统电路、 楼层显示电路、 电机状态显示电路、 电机控制电路5部分构成。其中单片机最小系统主
7、要由复位电路和时钟电路组成。电路复位后楼层显示数字1 表示电梯此时在一楼, 显示电路经过74ls164串入并出驱动8位数码管显示, 如有操作者在厢外呼叫, 由外呼叫电路把信号输入单片机, 当车厢来到呼叫层( 由定时器定时电路判断, 电机控制电路控制电机的正反转) , 则打开电梯门, 人进入后关门。操作者经过选层电路把目的层告知单片机, 控制电机把操作者送到目的楼层。系统等待下次呼叫。系统的正常工作由时钟电路来保证。显示电路实时显示电梯所在的楼层位置, 每层之间经过8秒延时控制即每延时8秒表示电梯走了一层。电梯状态是经过两个发光管显示的, 绿灯亮表示电梯在向上运行, 黄灯亮表示电梯在向下运行。键
8、盘电路采用独立键盘( 共12个按键) , 其中6个按键是各层楼外呼按键, 6个表示电梯内部的选择键。电梯的正常工作是经过对单片机写入程序控制的。总体设计方框图如下所示: 楼层显示电路AT89C52时钟电路 电机控制电路 复位电路键盘电路 电机状态显示 图1.总体设计方框图3 电梯控制系统原理分析3.1 控制电路的设计3.1.1 电梯内部呼叫电路和电机状态显示电路电梯设计原理是经过对按键的控制, 从而显示相应的楼层, 把人送到自己想去的楼层, 而按键的控制分为内部按键和外部按键, 一部分是电梯外部的人对电梯控制使电梯得到响应, 一部分是电梯内部的人对其控制使其得到响应, 如图2, 六个目标楼层选
9、择按键K1、 K2、 K3、 K4、 K5、 K6与单片机P0口的P0.0、 P0.1、 P0.2、 P0.3、 P0.4、 P0.5连接( P0口作为输出端驱动外部电路时须外接上拉电阻) 。电机状态是经过两个发光管显示的, 绿灯、 红灯与单片的P1.6、 P1.7连接( 须外接上拉电阻) , 用于显示电梯的运行状态, 人进入电梯内按下要去的楼层对应的按键, 就会控制电机转动, 达到相应楼层。K1:一楼内部向下呼叫按键, 此键按下表示电梯中的人想去的目的楼层时1楼, 单片机根据此信号控制电梯的运行以到达目的楼层。K2:二楼内部呼叫按键, 当电梯处于上升状态时, 表示此时一楼的人想要去二楼; 当
10、电梯处于下降状态时, 表示此时二楼以上中某个楼层的人想要到达二楼, 单片机根据此信号控制电梯的运行以到达目的楼层。K3:三楼内部呼叫按键, 当电梯处于上升状态时, 表示此时一楼或者二楼的人想要去三楼; 当电梯处于下降状态时, 表示此时三楼以上中某个楼层的人想要到达三楼, 单片机根据此信号控制电梯的运行以到达目的楼层。K4:四楼内部呼叫按键, 当电梯处于上升状态时, 表示此时一楼, 二楼和三楼的人想要去四楼; 当电梯处于下降状态时, 表示此时五楼和六楼某个楼层的人想要到达四楼, 单片机根据此信号控制电梯的运行以到达目的楼层。K5:五楼内部呼叫按键, 当电梯处于上升状态时, 表示此时一楼, 二楼,
11、 三楼和四楼的人想要去五楼; 当电梯处于下降状态时, 表示此时六楼的人想要到达五楼, 单片机根据此信号控制电梯的运行以到达目的楼层。K6:六楼内部向上呼叫按键, 此键按下表示电梯中的人想去的目的楼层时六楼, 单片机根据此信号控制电梯的运行以到达目的楼层。内部电梯呼叫按键如图所示: 图2.电梯内部呼叫电路和电机状态显示电路3.1.2 电梯外部呼叫电路电梯外部呼叫电路如图3所示, 按键s1out, s2out, s3out, s4out, s5out,分别与单片机的p2.4, p2.3, p2.2, p2.1, p2.0口相连, 若按下上升键, 则电梯在上升过程中只响应上升呼叫, 下降按键呼叫无效
12、; 反之亦然。S1out: 此按键按下表示此时一楼有人呼叫, 想要去以上楼层, 单片机根据此信号控制电梯的运行以到达目的楼层S2out: 此按键按下表示此时二楼有人呼叫, 如若二楼向下按键, 则表示二楼的人想要去一楼; 如若二楼向上按键, 则表示二楼的人想要去二楼以上楼层, 单片机根据此信号控制电梯的运行以到达目的楼层。S3out: 此按键按下表示此时三楼有人呼叫, 如若三楼向下按键, 则表示三楼的人想要去一楼或者二楼; 如若三楼向上按键, 则表示三楼的人想要去三楼以上楼层, 单片机根据此信号控制电梯的运行以到达目的楼层。S4out: 此按键按下表示此时四楼有人呼叫, 如若四楼向下按键, 则表
13、示四楼的人想要向下; 如若四楼向上按键, 则表示四楼的人想要去五楼或者六楼, 单片机根据此信号控制电梯的运行以到达目的楼层。S5out: 此按键按下表示此时五楼有人呼叫, 如若五楼向下按键, 则表示五楼的人想要向下; 如若五楼向上按键, 则表示五楼的人想要六楼, 单片机根据此信号控制电梯的运行以到达目的楼层。S6out: 此按键按下表示此时六楼有人呼叫, 表示想去以下楼层, 单片机根据此信号控制电梯的运行以到达目的楼层。 本实验由于部分功能未能实现, 在这里只列出了外部六个按键的设置。 外部电梯呼叫如图所示: 图3.电梯外部呼叫电路3.1.3 电机控制电路电机采用普通直流电机, 直流电机具有优
14、良的调速特性, 调速平滑、 方便, 调整范围广; 过载能力强, 能承受频繁的冲击负载, 可实现频繁的无极快速启动、 制动和反转。用电机驱动芯片L298来驱动。电机控制电路用来控制电机的正反转, 当按下上升键时, 电机正转, 按下下降键时, 电机反转。电路如图4所示。 图4.电机控制电路3.2 楼层显示电路显示电路是根据数码管的状态显示进而让我们知道电梯此刻的状态, 本实验中我们用一个八段数码管来实现, 根据数码管的数字显示让我们知道我们需要的目的楼层, 我们用74ls164驱动数码管, 其管脚1、 2接单片机P3.0口, 管脚8接P3.1口, 经过3,4,5,10,11,12,13各个口的输出
15、状态进而起到对数码管的显示控制作用。数码管的9,10两个引脚接高电平用于保证数码管的工作。电路如图5所示图5.显示楼层电路3.3 单片机最小系统的设计单片机的最小系统是控制单片机工作的核心部分, 用于控制单片机的工作和脉冲的变化, 进而实现对其设计功能的实现, 而此电路组主要包括复位电路和时钟电路两部分, 其中复位电路采用按键手动复位和上电自动复位组合, 电路如图6( 左) 所示: 其中9 脚为单片机的复位端, 接单片机的RST端, 经过对按键的控制实现电路的复位。时钟电路如图6( 右) 所示, 主要由晶振和电容构成, 此晶振采用的是12MHZ的, 电容则为30PF, 电路的XATL2和XAT
16、L1端分别与单片机的18和19脚相连.图6.最小系统电路4 程序流程图 程序流程图是设计的核心部分, 能够简单明了的反应出设计的思路, 本实验是基于单片机的电梯控制设计, 电梯共六层, 经过对按键的扫描来判断是否有按键的按下, 从而是单片机响应控制电机的转动, 图7则为电梯设计流程图。程序如下图: 调用选择当前要去的楼层子程序停留8s电梯未运行或仍在运 行之中电梯已到达相应的目的层? 是否是否电梯启动此时显示一楼图7.程序流程图5 总结与体会实习已接近尾声, 经过这次实习, 让我明白了很多, 也学会了很多, 从最初刚刚拿到课题时的茫然, 过度到每天都与图书馆打交道, 查阅各种资料, 将实习中遇
17、到的难题各个击破, 这其中充满了挑战和艰辛, 可是这些都无所谓, 因为更多的则是我们克服难题时的兴奋和获得知识的喜悦, 我们的设计为电梯控制, 从最初程序的编译到电路的仿真, 以至于最后的实物成形, 中间不但融汇了我们对基础知识的应用还有对计算机软件的学习, 当然期间也遗忘了很多东西, 不过经过与同学之间的讨论和老师悉心的指导以及自己的细心摸索, 总算是完成了制作, 电梯的仿真结果功能实现了, 可是等到实物出来测试时, 并没有实现应有的结果, 这让我认识到了理论与实际的差距, 更让我懂得了在今后的学习生活中要认识到理论与实际结合的重要性, 在学习基础理论的同时, 要重视实际的应用, 从而把知识
18、学习的更加牢固。参考文献1 刘瑞新.单片机原理及应用教程.机械工业出版社, .72 赵晓安. MCS-51单片机原理及应用. 天津大学出版社, .33 夏继强. 单片机实验与实践教程. 北京: 北京航空航天大学出版社, 4 李朝青.单片机原理及接口技术.北京: 北京航空航天出版社, .105 肖洪兵. 跟我学用单片机. 北京: 北京航空航天大学出版社, .86 曹巧媛.单片机原理及应用.大连.大连理工大学出版社, 1996.57 叶挺秀.应用电子学.杭州: 浙江大学出版社, 19948 朱承高.电工及电子技术手册.北京: 高等教育出版社, 19909 李朝青.单片机原理及接口技术.北京: 北京
19、航空航天大学出版社, 11 唐俊翟.单片机原理与应用.冶金工业出版社, .913 刘瑞新.单片机原理及应用教程.机械工业出版社, .714 吴国经.单片机应用技术.中国电力出版社, .115 何立民.单片机应用系统设计.北京航空航天出版社, 1995附录一: 电路总原理图附录二: PCB板附录三: 程序清单#include#include电梯.hsbit k1=P00;sbit k2=P01;sbit k3=P02;sbit k4=P03;sbit k5=P04;sbit k6=P05;sbit LedDown=P06;sbit LedUp=P07;sbit up1=P20;sbit up2=
20、P21;sbit down2=P22;sbit up3=P23;sbit down3=P24;sbit up4=P25;sbit down4=P26;sbit up5=P27;sbit down5=P10;sbit down6=P11;sbit d11=P12;sbit d12=P13;sbit d21=P14;sbit d22=P15;sbit pwm1=P16;sbit pwm2=P17;void DianTiKey(); #define uchar unsigned charchar KeyValueOld; /内部按键上次值char KeyValueOOld;/外部按键上次值char
21、NowFloor;/当前所在楼层char KeyValue;/电梯内部按键暂存值char KeyValueO;/电梯外部按键暂存值char GoFloor5;char t;uchar code play=0xff,0xd7,0x32,0x92,0xd4,0x98,0x18;/串口显示字型码unsigned int TimeValue;/ 定时器计数char Num;void delay(unsigned int a)/unsigned int i;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TimeValue=0;TR0=1;while(TimeVa
22、luea)DianTiKey();TR0=0;void ShangSheng()/驱动电机上升函数int i;t=11;LedUp=0;LedDown=1;for(i=0;i10;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
23、=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;void XiaJiang() int i;t=10;LedDown=0;LedUp=1;for(i=0;i0) /电梯执行上升 while(temp0)ShangSheng();Num+;if(GoFloorNum!=0)if(GoFloorNum&0x01)+(GoFloorNum&0x04)0);temp-;SBUF=play-NowFloor;while(!TI);TI=0;Now
24、Floor=KeyValue; if(temp0) /电梯执行下降while(temp0) /电梯执行上升while(temp0)ShangSheng();temp-;SBUF=play-NowFloor;while(!TI);TI=0;NowFloor=KeyValueO;if(temp0) /电梯执行下降while(temp0)XiaJiang();temp+;SBUF=play+NowFloor;while(!TI);TI=0;NowFloor=KeyValueO; void DianTiKey() /电梯按键扫描函数switch(P0)case 0x01:KeyValue=1;GoFl
25、oor0|=4;break;case 0x02:KeyValue=2;GoFloor1|=4;break;case 0x04:KeyValue=3;GoFloor2|=4;break;case 0x08:KeyValue=4;GoFloor3|=4;break;case 0x10:KeyValue=5;GoFloor4|=4;break;case 0x20:KeyValue=6;GoFloor5|=4;break;case 0x40:break;case 0x80:break;if(t=0) switch(P2) /上升按键扫描case 0x01:GoFloor0|=1;KeyValueO=1
26、;break;/1楼呼叫上升case 0x02:GoFloor1|=1;KeyValueO=2;break;/2楼呼叫上升case 0x04:GoFloor2|=1;KeyValueO=3;break;/3楼呼叫上升case 0x08:GoFloor3|=1;KeyValueO=4;break;/4楼呼叫上升case 0x10:GoFloor4|=1;KeyValueO=5;break;/5楼呼叫上升 case 0x20:GoFloor0|=2;KeyValueO=2;break;/2楼呼叫下降case 0x40:GoFloor1|=2;KeyValueO=3;break;/3楼呼叫下降cas
27、e 0x80:GoFloor2|=2;KeyValueO=4;break;/4楼呼叫下降 if(!down6)GoFloor4|=2; /6楼呼叫下降KeyValueO=6;if(!down5) /5楼呼叫下降GoFloor3|=2; KeyValueO=5;else if(t=11) /电梯在上升时响应上升呼叫switch(P2) /上升按键扫描case 0x01:GoFloor0|=1;KeyValueO=1;break;/1楼呼叫上升case 0x02:GoFloor1|=1;KeyValueO=2;break;/2楼呼叫上升case 0x04:GoFloor2|=1;KeyValueO
28、=3;break;/3楼呼叫上升case 0x08:GoFloor3|=1;KeyValueO=4;break;/4楼呼叫上升case 0x10:GoFloor4|=1;KeyValueO=5;break;/5楼呼叫上升else if(t=10) /电梯在下降时响应下降呼叫switch(P2)case 0x20:GoFloor0|=2;KeyValueO=2;break;/2楼呼叫下降case 0x40:GoFloor1|=2;KeyValueO=3;break;/3楼呼叫下降case 0x80:GoFloor2|=2;KeyValueO=4;break;/4楼呼叫下降if(!down6)Go
29、Floor4|=2; /6楼呼叫下降KeyValueO=6;if(!down5) GoFloor3|=2; KeyValueO=5;void start()SCON=0X00;TMOD=0X01;ET0=1;EA=1;TI=0;NowFloor=1;KeyValueOld=KeyValueOOld=KeyValue=KeyValueO=1;pwm1=pwm2=1;SBUF=play1;while(!TI);TI=0; void main()start();while(1)DianTiKey(); OutKey(); Go(); void t0() interrupt 1TH0=(65535-10000)/256;TL0=(65535-10000)%256;TimeValue+;
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100