单片机/MCU论坛
直播中

jf_25153831

未满1年用户 65经验值
擅长:嵌入式技术
私信 关注
[文章]

单片机毕业设计,四层电梯升降系统,仿真模拟,原理图代码

设计要求
1.电梯设置内外键,按下任一键,电梯控制系统响应;
2. 电梯楼层和升降状态通过数码管、LED灯实时显示;
3. 具有紧急停止和声光报警功能,保护乘客安危;
4. 使用步进电机模拟电梯升降,顺时转动为升,逆时为降;
5. 电梯无人时,默认停留在一楼;

系统概述

本系统以51单片机作为控制核心,实时读取电梯内外部操作按键,及时响应乘坐要求。数码管和LED指示灯,分别表示当前电梯所在楼层和升降状态;步进电机则模拟电梯运行过程,电机顺时针转动为升,逆时针为降。

同时,电梯内部设计有报警和紧急停止功能。在电梯运行过程中,按下报警键,报警灯闪烁,蜂鸣器鸣叫,电梯停止运行;按下启动键后,可解除报警,让电梯恢复运行。

当乘客按下紧急停止键后,电梯急停,数码管显示当前急停楼层,上行灯和下行灯均熄灭,表明电梯处于不可用状态。

电梯内部的启动键用于模拟电梯关门,在电梯内部按下要去的楼层后,再按下启动键,电梯才会开始运行。

系统框架

系统框图.jpg

Proteus仿真电路

仿真电路图.jpg

电梯操作说明.jpg

原理图

原理图.jpg

仿真分析

打开elevator.DSN仿真文件,双击单片机,加载位于C程序文件夹里的elevator.hex文件,运行仿真。结果如下,电梯停靠在1楼,绿色上行灯点亮,等待乘客乘坐。

仿真1.jpg

假设4楼住户要到2楼,4楼住户在电梯外部按下“下”的按键后,电梯从1楼开始上升,上行灯点亮,步进电机顺时针转动,数码管依次显示楼层。

仿真2.jpg

电梯到达4楼后,步进电机停止转动,数码管显示数字4,同时黄色下行灯点亮,表明电梯将开始下降;

仿真3.jpg

4楼住户进入电梯,按下电梯内部按键2F后,再按下启动键(模拟电梯关门),电梯运行,步进电机逆时针转动。

仿真4.jpg

在电梯运行的任何时刻,按下电梯内部报警按键,红色LED报警灯闪烁,蜂鸣器鸣叫,电梯停止在当前楼层,步进电机也停止转动;

此时,按压启动键,即可解除警报,让电梯恢复运行;设计咨询,作者QQ:2327603104.

仿真5.jpg

出现意外情况时,按下紧急停止键后,电梯立即停止,数码管显示当前急停楼层,上行灯和下行灯都熄灭,表明电梯此时不可用,同时步进电机停转,此时只有重新运行系统才可解除急停。

仿真6.jpg

部分C代码

while(1)//主循环
  {
	  outPress();//按下电梯外按钮
	  while(STOPCUR==1)//电梯在当前层,电梯不动,可以继续接受请求
	  {
	    outPress();
	    inPress();
	  }  

	  if(inPress())//按下电梯内楼层按钮
	  {
	    while(START)//等待启动按键按下,电梯不动,可以继续接受请求
	    {
	      outPress();
	      inPress();
	    }
	  }

	  while(1)//电机运转循环
	  {
	    if(UP_req[1]==0&&UP_req[2]==0&&UP_req[3]==0&&
		DOWN_req[2]==0&&DOWN_req[3]==0&&DOWN_req[4]==0) 
		{
		  break;//没有请求,跳出电机运转循环,电梯不动
		}
		  
	    if(FORREV)//上行 
	    { 
		  setUpLight();//上行灯亮

		  if(STOPCUR==1){break;}//

		  if(elevator())//往上到达某一层
	      {
			if(CURFLR==4) {setDownLight();break;}//到达四楼
	      }
	      OUTPUT=(ucMotorDrvPuls&0x0f)|(P2&0xf0);
		  ucMotorDrvPuls=_crol_(ucMotorDrvPuls,1);
	    }
	    if(!FORREV)//下行
	    {
		  setDownLight();//下行灯亮
;
		  if(STOPCUR==1){break;}

		  if(elevator())//往下到达某一层
	      {
			if(CURFLR==1) {setUpLight();break;}//到达一楼
	      }
	      OUTPUT=(ucMotorDrvPuls&0x0f)|(P2&0xf0);
		  ucMotorDrvPuls=_cror_(ucMotorDrvPuls,1);
	    }	
	
	    outPress();//按下电梯外按钮
	    //if(inPress())//按下电梯内楼层按钮
		//{ //设计咨询,作者QQ:2327603104.
		 // while(START)//等待启动按键按下
		  //{
	      //  outPress();
	        inPress();//电梯运行时,内部按钮按下,无需按启动按钮
	     // }
		//}

简易八层电梯设计

为给大家更多参考,附送另一套我设计的简易8层电梯控制系统,仿真电路如下。

另一套设计仿真电路图.jpg

八层电梯操作说明.jpg

八层电梯运行结果

按下电梯外部按键8F,模拟8层住户需要电梯,8F LED指示灯点亮,数码管从1到8依次显示,电梯上行箭头点亮。

另一套仿真0.jpg

电梯到达8楼后,上行箭头闪烁后熄灭,提示音哔两声,表示电梯到达8楼。

另一套仿真1.jpg

假设8楼住户要去5楼,按下电梯内部按键5F,5F LED指示灯点亮,数码管从8到5依次显示,模拟电梯下行,同时下行箭头点亮。

另一套仿真2.jpg

电梯到达5楼后,5F LED指示灯熄灭,同样,下行箭头闪烁后熄灭,提示音哔两声,表示电梯到达5楼。

另一套仿真3.jpg

资源内容

(1)基于51单片机的四层电梯控制系统设计论文;

(2)Proteus仿真文件;

(3)C程序;

(4)原理图;

(5)Visio流程图;

(6)参考资料;

(7)元器件清单;

(8)简易八层电梯设计;

资源截图

资源1.jpg

资源2.jpg

资源3.jpg

资源4.jpg

资源5.jpg

资源6.jpg

更多回帖

发帖
×
20
完善资料,
赚取积分