欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:24285586       资源大小:142.11KB        全文页数:19页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    题目:基于单片机控制的电梯控制器目录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附录 19附录 29附录10电梯控制器课程设计任务书1. 设计目的与要求1.1 基本功能(1) 显示:本设计要求实现 6 层控制,实时显示电梯所在楼层位置。(2) 升降控制:采用一台电动机的正反转来实现电梯的升降。(3) 具备不可逆响应的功能:电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效。1.2 扩展功能(1) 可增加人性化的按键语音服务功能。(2) 可增加遥控或感应操作功能。2. 设计内容(1) 画出电路原理图,正确使用逻辑关系;(2) 确定元器件及元件参数;(3) 进行电路模拟仿真;(4) SCH 文件生成与打印输出;3. 编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。4. 答辩在规定时间内,完成叙述并回答问题。基于单片机控制的电梯控制器摘要:单片机即单片微型计算机(Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。其中 51 单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域.电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机电设备,它是建筑中常用的交通工具。本设计选择 AT89S51 为核心控制元件,设计了一个六层电梯系统, 使用 C 语言进行编程,实现运送乘客到任意楼层,并且实时显示电梯的楼层和电梯上下情况。利用单片机控制电梯有成本低,通用性强,灵活性大及易于实现复杂控制等优点。关键词:电梯 AT89S51 LED 显示 电机正反转控制 楼层显示1 引言随着人们生活水平的不断提高和国名经济的迅速发展。各大城市建筑物在不断向高层化发展。因此电梯在我们的生活中起着举足轻重的作用。电梯已不仅是一种生产环节中的重要设备,更是一种人们频繁乘用的交通运输设备。因此电梯控制技术也在不断的进步和完善, 常用的控制技术主要的有两种技术:基于 PLC 控制和基于单片机控制两大技术。用 PLC 控制的电梯性能可靠、稳定,但是造价太高。基于单片机控制的电梯可以大大的降低成本而且运行也较可靠,所以现在电梯控制中大多数采用单片机控制。本文基于单片机 89SC51 来控制各部分电路,采用单片机构成控制系统,可大大降低成本,而且做成专用控制系统,程序被固化,加强了保密性,提高了可靠性。2 总体设计方案电梯控制系统由外部呼叫,内部呼叫,电机控制电路,楼层显示部分等组成。电梯在各楼层的定位本应采用行程开关或者传感器,由于条件限制,采用延时控制。相邻楼层间升降时间设为 3 秒。2.1 设计思路本次设计的总思想是,用开关按钮做单片机的控制端来做作为输入信号,说明人在那一层,用七段数码管来显示电梯位置。当电梯到达要求的楼层时,停止、开门,并继续查询有无呼叫信号,如此循环,同时可以利用单片机外部的复位按钮使电梯复位。用单片机来控制电机的正反转来运行电梯的上、下,用发光二极管来显示电梯是上升还是下降,并且整体电梯全部采用独立键盘来控制,各个楼层的上下按钮、电梯内部的选层按钮均用独立键盘来实现。由于设计中有不可逆控制,当上升或下降过程中,只相应同方向的呼叫相应。2.1 总体设计框图本电路主要由 5 大部分电路组成:键盘电路、单片机最小系统电路、楼层显示电路、电机状态显示电路、电机控制电路。其中单片机最小系统主要由复位电路和时钟电路组成。电路复位后楼层显示数字 1 表示电梯此时在一楼,显示电路通过 74ls164 串入并出驱动 8 位楼层显示电路数码管显示,电梯楼层位置是由延时电路控制的,每层之间通过 3 秒延时控制即每延时 3 秒表示电梯走了一层。电梯状态是通过两个发光管显示的,绿灯亮表示电梯在向上运行,黄灯亮表示电梯在向下运行。键盘电路采用独立键盘(共16 个按键),其中 10 个按键是各层楼外呼按键,6 个表示电梯内部的选择键。电梯的正常工作是通过对单片机写入程序控制的。总体设计方框图如图 1 所示:电机控制电路电机状态显示键盘电路复位电路AT89C51时钟电路图 1.体设计方框图3 电梯控制系统原理分析3.1 单片机最小系统电路的设计此电路组要是复位电路和时钟电路两部分,其中复位电路采用按键手动复位和上电自动复位组合,电路如图 4(右)所示:其中9 脚为单片机的复位端。时钟电路如图2(左)所示:晶振采用的是 12MHZ 的,XATL2 和 XATL1 分别为单片机的 18 和 19 脚。3.2 控制电路的设计图 2.单片机最小系统电路图3.2.1 电梯内部呼叫电路和电机状态显示电路电梯内部呼叫电路和电机状态显示电路,如图3 所示,六个目标楼层选择按键K1、K2、K3、K4、K5、K6 与单片机P0 口的 P0.0、P0.1、P0.2、P0.3、P0.4、P0.5 连接(P0 口作为输出端驱动外部电路时须外接上拉电阻)。电机状态是通过两个发光管显示的,绿灯、红灯与单片的P1.6、P1.7 连接(须外接上拉电阻),绿灯亮表示电梯在向上运行,黄灯亮表示电梯在向下运行。人进入电梯内按下要去的楼层对应的按键,就会控制电机转动,达到相应楼层。图 3.电梯内部呼叫电路和电机状态显示电路3.2.2 电梯外部呼叫电路电梯外部呼叫电路如图 4 所示,按键 UP1、UP2、DOWN2、UP3、DOWN3、UP4、DOWN4、UP5、DOWN5、DOWN6 接单片机的P2 口和P1.0、P1.1。若按下上升键,则电梯在上升过程中只响应上升呼叫,不响应下降键;反之亦然。图 4.电梯外部呼叫电路3.2.3 电机控制电路电机采用普通直流电机,直流电机具有优良的调速特性,调速平滑、方便,调整范围广; 过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。用电机驱动芯片 L298 来驱动。电机控制电路用来控制电机的正反转,当按下上升键时,电机正转, 按下下降键时,电机反转。电路如图5 所示。图 5.电机控制电路3.3 显示楼层电路显示电路的作用是实时显示电梯所在楼层,用一个八段数码管来实现,本设计用74ls164 驱动数码管,其管脚1、2 接单片机P3.0 口,管脚 8 接P3.1 口。电路如图6 所示。图 6.显示楼层电路4 程序流程图4.1 主程序流程图启动电梯显示在一楼电梯未运行或虽运行但还没停止否是调用选择当前要去的楼层子程序电梯已到目的层?否是停留 3s图 7.主程序流程图4.2 选择要去的楼层子程序流程图开始否是电梯到达最顶层电梯改为下降是电梯到达最底层电梯改为上升否是电梯在下降否是当前楼层=目的楼层延时等待 3s继续下行查找下一个要去的楼层若无下行需求,则反向查询是当前楼层=目的楼层延时等待 3s否向上查找下一个要去的楼层若无按键需求则停止5 总结与体会图 8.选择要去的楼层子程序流程图通过这次单片机实习,使我在各方面都有了很大的提高,特别是在单片机编程方面让我有了很大的进步。以前学习理论知识的时候我就对一些指令的应用不理解,现在自己动手编程了,通过这前两星期查找资料和单片机的实例应用,我对以前的不懂知识进行了全面的复习和新的学习。这次实习在硬件设计方面我没遇到多大的问题,遇到的主要问题是在软件设计方面,由于刚开始我对编程没一点经验,所以没有很好的设计思路就开始编程了,结果刚编的过程中遇到了很多的问题,最后经过同学的帮助,我的程序才慢慢的编成了。我设计的电梯自动控制用到了电机我们用二极管模拟,实物出来时,没能成功实现功能,让我们知道了理论与实际的差距,也意识到理论与实际相结合的重要性。在写程序时需要极大的耐心,一点一点的改正,达到想要的效果,使自己的编程能力不断的提高!参考文献:1 沈德全.mcs51 系列单片机接口电路与应用程序实例.北京:北京航空航天大学出版社2 张毅刚,彭喜元.单片机原理与应用设计.北京:电子工业出版社,2008 .43 张大明.单片机微机控制应用技术.北京:机械工业出版社,2006.44 刘瑞新.单片机原理及应用教程.机械工业出版社, 2003.75 李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,2006附录 1:总体电路图附录 2:PCB 电路图附录 3:原程序#include<reg51.h> #include"电梯.h" sbit 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=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 NowFloor;/当前所在楼层char KeyValue;/电梯内部按键暂存值char KeyValueO;/电梯外部按键暂存值char GoFloor5;/要去楼层暂存GoFloor1=1 2 楼在呼叫上升 GoFloor1=2 2 楼在呼叫下降char 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(TimeValue<a)DianTiKey();/多人电梯功能添加部分TR0=0;void ShangSheng()/驱动电机上升函数int i; 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;void XiaJiang()/驱动电机下降函数int i; 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;void Go()/电梯内部按键响应程序char temp; if(KeyValue!=KeyValueOld)KeyValueOld=KeyValue; temp=NowFloor-KeyValue; if(t=0)if(temp>0)/电梯执行上升while(temp>0)ShangSheng();Num+;if(GoFloorNum!=0)if(GoFloorNum&0x01)+(GoFloorNum&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; /此电梯功能只适合一个人乘车void OutKey() /外部按键响应程序char temp;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;void DianTiKey()/电梯按键扫描函数switch(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) /上升按键扫描case 0x01:GoFloor0|=1;KeyValueO=1;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 楼呼叫下降case 0x80:GoFloor2|=2;KeyValueO=4;break;/4 楼呼叫下降if(!down6)GoFloor4|=2; /6 楼呼叫下降KeyValueO=6;if(!down5)/5 楼呼叫下降elseGoFloor3|=2;KeyValueO=5;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=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)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+;

    注意事项

    本文(基于51单片机的电梯控制器设计.docx)为本站会员(暗伤)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开