基于51单片机的电梯控制器设计要点.docx

上传人:罗晋 文档编号:10702771 上传时间:2021-05-31 格式:DOCX 页数:22 大小:446.48KB
返回 下载 相关 举报
基于51单片机的电梯控制器设计要点.docx_第1页
第1页 / 共22页
基于51单片机的电梯控制器设计要点.docx_第2页
第2页 / 共22页
基于51单片机的电梯控制器设计要点.docx_第3页
第3页 / 共22页
基于51单片机的电梯控制器设计要点.docx_第4页
第4页 / 共22页
基于51单片机的电梯控制器设计要点.docx_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于51单片机的电梯控制器设计要点.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电梯控制器设计要点.docx(22页珍藏版)》请在三一文库上搜索。

1、单片机原理与应用技术 课程设计报告(论文)题目:基于单片机控制的电梯控制器专业班级:河南科技学院姓 名: X X_ X时 间:20XX.05.21 06.5指导教师:20XX年6月5日目录1引言 12总体设计方案 12.1 设计思路 12.2 总体设计框图 23电梯控制系统原理分析 23.1 单片机最小系统电路的 23.2 控制电路的设计 33.2.1 电梯内部呼叫电路和电机状态显示电路 33.2.2 电梯外部呼叫电路 33.2.3 电机控制电路43.3 显示楼层电路 44程序流程图 54.1 主程序流程图 54.2 选择要去的楼层子程序流程图 65总结与体会 7参考文献 8附录1 9附录2

2、9附录 10电梯控制器课程设计任务书1 .设计目的与要求1.1 基本功能(1)显示:本设计要求实现6层控制,实时显示电梯所在楼层位置。(2)升降控制:采用一台电动机的正反转来实现电梯的升降。(3)具备不可逆响应的功能:电梯上升途中只响应上升呼叫 ,下降途中只响应下降呼叫,任何反方向呼叫均无效。1.2 扩展功能(1)可增加人性化的按键语音服务功能。(2)可增加遥控或感应操作功能。2 .设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4) SCHt件生成与打印输出;3 .编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。4 .答辩在

3、规定时间内,完成叙述并回答问题。基于单片机控制的电梯控制器摘要:单片机即单片微型计算机( Single-Chip Microcomputer ),是集CPU ,RAM ,ROM,定时,计数和多 种接口于一体的微控制器。其中 51单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域.电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机 电设备,它是建筑中常用的交通工具。本设计选择AT89S51为核心控制元件,设计了一个六层电梯系统,使用C语言进行编程,实现运送乘客到任意楼层,并且实时显示电梯的楼层和电梯上下情况。利用单片机 控制电梯有成本低,通用

4、性强,灵活性大及易于实现复杂控制等优点。关键词:电梯 AT89S51 LED显示 电机正反转控制楼层显示1引言随着人们生活水平的不断提高和国名经济的迅速发展。各大城市建筑物在不断向高层化发展。因此电梯在我们的生活中起着举足轻重的作用。电梯已不仅是一种生产环节中的重要设备,更是一种人们频繁乘用的交通运输设备。因此电梯控制技术也在不断的进步和完善, 常用的控制技术主要的有两种技术:基于PLC控制和基于单片机控制两大技术。用PLC控制的电梯性能可靠、稳定,但是造价太高。基于单片机控制的电梯可以大大的降低成本而且运 行也较可靠,所以现在电梯控制中大多数采用单片机控制。本文基于单片机89SC51来控制各

5、部分电路,采用单片机构成控制系统,可大大降低成 本,而且做成专用控制系统,程序被固化,加强了保密性,提高了可靠性。2总体设计方案电梯控制系统由外部呼叫,内部呼叫,电机控制电路,楼层显示部分等组成。电梯在各 楼层的定位本应采用行程开关或者传感器,由于条件限制,采用延时控制。相邻楼层间升降时间设为3秒。2.1设计思路本次设计的总思想是,用开关按钮做单片机的控制端来做作为输入信号,说明人在那一层,用七段数码管来显示电梯位置。当电梯到达要求的楼层时,停止、开门,并继续查询有 无呼叫信号,如此循环,同时可以利用单片机外部的复位按钮使电梯复位。用单片机来控制电机的正反转来运行电梯的上、下,用发光二极管来显

6、示电梯是上升还是下降,并且整体电梯全部采用独立键盘来控制,各个楼层的上下按钮、 电梯内部的选层按钮均用独立键盘来实 现。由于设计中有不可逆控制,当上升或下降过程中,只相应同方向的呼叫相应。2.1总体设计框图本电路主要由5大部分电路组成:键盘电路、单片机最小系统电路、楼层显示电路、电机状态显示电路、 电机控制电路。其中单片机最小系统主要由复位电路和时钟电路组成。电路复位后楼层显示数字 1表示电梯此时在一楼,显示电路通过741s164串入并出驱动8位数码管显示,电梯楼层位置是由延时电路控制的,每层之间通过 3秒延时控制即每延时 3 秒表示电梯走了一层。电梯状态是通过两个发光管显示的,绿灯亮表示电梯

7、在向上运行,黄灯亮表示电梯在向下运行。键盘电路采用独立键盘(共16个按键),其中10个按键是各层楼外呼按键,6个表示电梯内部的选择键。 电梯的正常工作是通过对单片机写入程序控制的。 总体设计方框图如图1所示:AT89C51键盘电路楼层显示电路复位电路A电机控制电路时钟电路k电机状态显示图1.体设计方框图3电梯控制系统原理分析3.1单片机最小系统电路的设计此电路组要是复位电路和时钟电路两部分,其中复位电路采用按键手动复位和上电自动复位组合,电路如图 4 (右)所示:其中9脚为单片机的复位端。时钟电路如图2 (左)所示:晶振采用的是 12MHz勺,XATL2和XATL1分别为单片机的18和19脚。

8、GND图2.单片机最小系统电路图3.2控制电路的设计3.2.1 电梯内部呼叫电路和电机状态显示电路电梯内部呼叫电路和电机状态显示电路,如图3所示,六个目标楼层选择按键K1、K2、Ka K4、KS K6 与单片机 P0 口的 P0.0、P0.1、P0.2、P0.3、P0.4、P0.5 连接(P0 口作为 输出端驱动外部电路时须外接上拉电阻)。电机状态是通过两个发光管显示的,绿灯、红灯与单片的P1.6、P1.7连接(须外接上拉电阻),绿灯亮表示电梯在向上运行,黄灯亮表示电梯在向下运行。人进入电梯内按下要去的楼层对应的按键,就会控制电机转动,达到相应楼图3.电梯内部呼叫电路和电机状态显示电路3.2.

9、2 电梯外部呼叫电路电梯外部呼叫电路如图 4所示,按键UP! UP2、DOWN2UP3 DOWN3UP4 DOWN4UPS DOWN5DOWN接单片机的P2 口和P1.0、P1.1。若按下上升键, 则电梯在上升过程中只响应 上升呼叫,不响应下降键;反之亦然。P. |K16- DOWNG匹。K15。;笆 WN52,7K14 3个 UP5F*2,6K13 3二 T)OWN4P2,4KU。DOWNS口2I0 p。DOWN2F12, IKB oo JJP22,0K7 口。LPI图4.电梯外部呼叫电路3.2.3 电机控制电路电机采用普通直流电机, 直流电机具有优良的调速特性,调速平滑、方便,调整范围广;

10、过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。用电机驱动芯片L298来驱动。电机控制电路用来控制电机的正反转,当按下上升键时,电机正转, 按下下降键时,电机反转。电路如图5所示。PI 6PI 7L ER2 ours 4 SENS10UI1 3 SFNS2 GNDL298图5.电机控制电路3.3显示楼层电路显示电路的作用是实时显示电梯所在楼层,用一个八段数码管来实现,本设计用741s164驱动数码管,其管脚 1、2接单片机P3.0 口,管脚8接P3.1 口。电路如图6所示。KXDDSA时vccQi1514 IIJG 5- Q Q斓74LSIS412E ns 一 搦SMU

11、!1图6.显示楼层电路4程序流程图4.1主程序流程图图7.主程序流程图4.2选择要去的楼层子程序流程图图8.选择要去的楼层子程序流程图5总结与体会通过这次单片机实习, 使我在各方面都有了很大的提高,特别是在单片机编程方面让我有了很大的进步。以前学习理论知识的时候我就对一些指令的应用不理解,现在自己动手编程了,通过这前两星期查找资料和单片机的实例应用,我对以前的不懂知识进行了全面的复习和新的学习。这次实习在硬件设计方面我没遇到多大的问题,遇到的主要问题是在软件设计方面,由于刚开始我对编程没一点经验,所以没有很好的设计思路就开始编程了,结果刚编的过程中遇到了很多的问题,最后经过同学的帮助,我的程序

12、才慢慢的编成了。我设计的电梯自动控制用到了电机我们用二极管模拟,实物出来时,没能成功实现功能,让我们知道了理论与实际的差距, 也意识到理论与实际相结合的重要性。 在写程序时需要极 大的耐心,一点一点的改正,达到想要的效果,使自己的编程能力不断的提高!参考文献:1沈德全.mcs51系列单片机接口电路与应用程序实例M.北京:北京航空航天大学出版社2张毅刚,彭喜元.单片机原理与应用设计M.北京:电子工业出版社,2008 .43张大明.单片机微机控制应用技术M.北京:机械工业出版社,2006.44刘瑞新.单片机原理及应用教程M.机械工业出版社,2003.75李朝青.单片机原理及接口技术M.北京:北京航

13、空航天大学出版社,2006附录1:总体电路图1T.口+5附录2: PCB电路图附录3:原程序#include#include电梯.h sbit k1=P0A0;sbit k2=P0A1;sbit k3=P0A2;sbit k4=P0A3;sbit k5=P0A4;sbit k6=P0A5;sbit LedDown=P0A6;sbit LedUp=P0A7;sbit up1=P2A0;sbit up2=P2Al;sbit down2=P2A2;sbit up3=P2A3;sbit down3=P2A4;sbit up4=P2A5;sbit down4=P2A6;sbit up5=P2A7;sbi

14、t down5=P1A0;sbit down6=P1A1;sbit d11=P1A2;sbit d12=P1A3;sbit d21=P1A4;sbit d22=P1A5;sbit pwm1=P1A6;sbit pwm2=P1A7;void DianTiKey();#define uchar unsigned charchar KeyValueOld;char KeyValueOOld;char NowFloor;char KeyValue;char KeyValueO;char GoFloor5;2楼在呼叫下降char t;/内部按键上次值/外部按键上次值/当前所在楼层/电梯内部按键暂存值/电

15、梯外部按键暂存值/要去楼层暂存GoFloor1=1 2楼在呼叫上升 GoFloor1=2/电梯 运彳T /停止标/上升/下降 志位t=0电梯没有运行t=11电梯在上升t=10电梯下降/串口显示字型码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(T

16、imeValuea)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;de

17、lay(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;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-N

18、owFloor;while(!TI);TI=0;NowFloor=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()/电梯按键扫描函数swit

19、ch(P0)case 0x01:KeyValue=1;GoFloor0|=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) 上升按键扫描楼呼叫上

20、升case 0x01:GoFloor0|=1;KeyValueO=1;break;/1case 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;

21、KeyValueO=3;break;/3楼呼叫下降case 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楼呼叫上升ca

22、se 0x04:GoFloor2|=1;KeyValueO=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;KeyVal

23、ueO=4;break;/4楼呼叫下降 if(!down6) GoFloor4|=2; /6楼呼叫下降KeyValueO=6;if(!down5)/5 楼呼叫下降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+;

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1