加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的多层电梯(1-16层)运行系统仿真设计_层数可改

08/22 13:50
1231
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
    • 基于51单片机的多层电梯(1-16层)运行系统仿真设计_层数可改
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

基于51单片机的多层电梯(1-16层)运行系统仿真设计_层数可改

仿真图proteus 8.9

程序编译器:keil 4/5

编程语言:C语言

设计编号:S0027

视频演示


基于51单片机的多层电梯(1-16层)运行系统仿真设计演示视频

主要功能:

结合实际情况,基于51单片机设计一个多层电梯单片机控制系统。该系统应满足的功能要求为:

1-16层电梯运行控制,轿内外呼叫,运行状态显示。独立键盘、LED显示楼层、指示灯。

1.通电后,系统默认电梯停在一层。

2.按下不同的按键电梯可以到达不同的楼层,如果电梯在上行,下面的楼层有呼叫电梯会继续上行,直到上行完了才会下行。同样如果电梯在下行,上面的楼层有呼叫 电梯会继续上行 ,直到下行完了才会上行。

3.如需上行,请按下所要到达楼层的上行呼叫按钮,电梯显示开始上行,所经楼层号用数码管进行显示,到达,楼层号持续显示。

4.当轿厢停留在中间楼层时,可实现上或下行呼叫,行进方向按呼叫顺序进行。

5.由LED箭头指示电梯是上行和下行的方向。

6.硬件软件可以兼容2-16层电梯,如果需要做8层10层电梯,可以用改设计快速修改。

主要硬件设备:51单片机、74HC595位移缓存器、数码管显示、按键、NSL-32SR3、电机

资料下载链接(可点击):

腾讯文档】S0027 网盘链接

以下为本设计资料展示图:

仿真

电梯停在一楼

img

按下电梯完按钮16楼,上行指示灯电路,电梯电机开始工作。此时显示栏会显示经过的楼层。

img

到达16层后,按下电梯完按钮1楼,下行指示灯电路,电梯电机开始工作。此时显示栏会显示经过的楼层。

img

程序:

img

img

//系统初使化
void SYSYEM_INIT(void)
{
	 u8 i;
	 ElevState.CurrentFloor=1;
	 ElevState.Direction=UP;              //初使化方向为向上
	 ElevState.FloorTimerCount=0;	        //定时器版计时清0
	 ElevState.FreeFlag=TRUE;             //初使化为空闲状态
	 ElevState.ElevRunning=FALSE;         //运行标志置FALSE  表示暂停运行
	 Uart.RX_COUNT=0;                    //串口接收计数清0
	 for(i=0;i<=MaxFloor;i++) 
	 {
		 ElevState.FloorCallTable[i]=Null;  //初使化呼叫列表为Null
	 }
	 DOOR_Close;                          //关门
}

void EXTI0_IRQHandler(void) interrupt 0   //楼层传感器中断
{	 
	#if (USE_MODE==1)
	ElevState.ArriveFlag=TRUE;//触发中断后表示到达楼层,让到达楼层标志置TRUE
	#endif 
}
void EXTI1_IRQHandler(void) interrupt 2    //矩阵按键中断
{
   KeyDatHandle(KeyScan()); //把KeyScan()按键扫描函数返回的按键值带入到KeyDatHandle()处理按键
}
void TIM0_IRQHandler(void)  interrupt 1    //定时模拟电梯上升和下降
{
	 TH0=(65536-50000)/256;//定时50ms
	 TL0=(65536-50000)%256;//定时50ms
	
	 TimerCount++;
	 if(TimerCount==20)  //1秒
	 {
		 TimerCount=0;
		 Timer_Second++;
	 }	
	 if(DelNullCheck()==FALSE) ElevState.FloorTimerCount++; //非空闲状态计时累加
	 else ElevState.FloorTimerCount=0;  //空闲状态计时清0
}

void Uart_IRQHandler(void) interrupt 4  //用于电梯之间的通信
{	  	
  if(RI==1)	//判断是否为接收中断(串口中断分为发送中断和接收中断,均用同一个中断服务函数入口)
	{
		RI = 0;	//清除RI接收中断标志 
		Uart.RX_BUFF[Uart.RX_COUNT++]=SBUF;
		if(Uart.RX_COUNT==Uart_RX_LEN) Uart.RX_COUNT=0;
	}	
}

void main(void)  //主函数
{
	u8 SendTick1S=0;
	SYSYEM_INIT();
	EXTI0_Init();
	EXTI1_Init();
	TIMER0_Init();
	UART_Config(9600);
	Uart_SendStr("Welcome to use elevator program rn");
	while(1)
	{	 
		 KeyPort_Y=0x00;   //不可删除
		 FloorCallCheck(); 
		 Elevator();   
		if(SendTick1S!=Timer_Second)
		{
			SendTick1S=Timer_Second;
			Uart_SendBytes((u8*)(&ElevState),sizeof(ElevState));		
		}
	}
}

资料清单(提供资料清单所有文件):

资料清单

资料下载链接见文章开头

  • 设计资料获取联系方式.doc

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
HFBR-2526Z 1 Foxconn Receiver, 640nm Min, 660nm Max, 125Mbps, Through Hole Mount, ROHS COMPLIANT PACKAGE
$22.29 查看
NC7ST08M5X 1 Fairchild Semiconductor Corporation AND Gate, HST/T Series, 1-Func, 2-Input, CMOS, PDSO5, 1.60 MM, MO-178AA, SOT-23, 5 PIN
$0.33 查看
ASEM1-16.000MHZ-LC-T 1 Abracon Corporation MEMS OSC XO 16.0000MHZ CMOS SMD
$1.63 查看

相关推荐

电子产业图谱