0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机模拟电梯防夹控制系统设计

bbxyliyang 来源:bbxyliyang 作者:bbxyliyang 2023-07-19 09:07 次阅读

一、系统方案
本文介绍了一种采AT89C51芯片进行的电梯模拟控制系统,介绍了如何使用单片机进行编程来实现电子控制的方法。单片机编程实现功能,简洁多变,大大缩短了研发周期,同时能使电梯控制系统体积更小功能更强大。本设计模拟了电梯控制系统所需的一些基本功能,能通过按键选择楼层,数码管显示实时楼层数,LED灯组成的箭头指示上下方向。

wKgZomS2dEmARuxOAAAcNxzLXsU213.png


二、硬件设计
原理图如下:

wKgaomS2dFKAepI_AACbMV6H970149.png

三、单片机软件设计
1、首先是定时器初始化:
/*************定时器0初始化程序***************/
void time_init()
{
EA = 1; //开总中断
TMOD = 0X01; //定时器0、工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
TH0 = 0x3c;
TL0 = 0xb0; // 50ms
}
2、中断服务程序
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
static uchar value;
TH0 = 0x3c;
TL0 = 0xb0; // 50ms
value ++;
if(value % 2 == 0)
{
flag_100ms = 1 ; //定时器产生100毫秒的变量
}
}
3、按键检测程序

void key() //按键程序
{
if(key1 == 0) //1楼按键按下
{
led1 = 1; //点亮1楼发光二极管
dt_1 = 1; //1楼电梯按下变量置1
}
if(key2 == 0) //2楼按键按下
{
led2 = 1; //点亮2楼发光二极管
dt_2 = 1; //2楼电梯按下变量置1
}
if(key3 == 0) //3楼按键按下
{
led3 = 1; //点亮3楼发光二极管
dt_3 = 1; //3楼电梯按下变量置1
}
if(key4 == 0) //4楼按键按下
{
led4 = 1; //点亮4楼发光二极管
dt_4 = 1; //4楼电梯按下变量置1
}
if(key5 == 0) //5楼按键按下
{
led5 = 1; //点亮5楼发光二极管
dt_5 = 1; //5楼电梯按下变量置1
}
if(key6 == 0) //6楼按键按下
{
led6 = 1; //点亮6楼发光二极管
dt_6 = 1; //6楼电梯按下变量置1
}
if(key7 == 0) //7楼按键按下
{
led7 = 1; //点亮7楼发光二极管
dt_7 = 1; //7楼电梯按下变量置1
}
if(key8 == 0) //8楼按键按下
{
led8 = 1; //点亮8楼发光二极管
dt_8 = 1; //8楼电梯按下变量置1
}
}
4、核心算法程序
/****************电梯向上、做最后的判断是否还要继续向上****************/
void dt_shang_guan()
{
static uchar value;
if(dt_s_x == 1) //电梯向上 做最后的判断是否还要继续向上
{
if(dt_value == 1) //在第1层
{
value = dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1; //电梯继续运行
}
else if(dt_value == 2) //在第2层
{
value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1; //电梯继续运行
}
else if(dt_value == 3) //在第3层
{
value = dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1; //电梯继续运行
}
else if(dt_value == 4) //在第4层
{
value = dt_5 + dt_6 + dt_7 + dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1;
}
else if(dt_value == 5) //在第5层
{
value = dt_6 + dt_7 + dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1; //电梯继续运行
}
else if(dt_value == 6) //在第6层
{
value = dt_7 + dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1; //电梯继续运行
}
else if(dt_value == 7) //在第7层
{
value = dt_8;
if(value == 0) //说明上面没有人按下
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}else
flag_stop = 1; //电梯继续运行
}
else if(dt_value == 8) //在第8层
{
dt_s_x = 0; //电梯停下不动了
shang = 1; //关闭上箭头
zhong = 1;
}
}
}
四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

wKgaomS2dF-AEih2AAEBFB2RVwQ443.png

五、实物制作
设计过程中使用AD软件绘制原理图,图纸绘制好之后采购元器件,根据图纸上面的器件标号焊接上去,在焊接过程中,我们要细心仔细,不能将器件焊接错位,因为焊接错位,都会给后面的调试带来很大的麻烦,只有焊接的时候各个方面都注意到位,才能焊接出合格的作品。由于焊接丝焊接会散发一些难闻的气味,我们在焊接的时候要保持室内通风,最好佩戴口罩,防止我们吸入焊接丝散发的气体,造成身体不适。在实物焊接制作的过程中,需要对每个模块进行一步步的焊接和调试,然后焊接到一起,进行整体的调试和测试。

wKgaomS2dHGAN4bZAAnJQz2_D2M029.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 原理图
    +关注

    关注

    1268

    文章

    6180

    浏览量

    225661
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620825
  • 控制系统
    +关注

    关注

    41

    文章

    5963

    浏览量

    108711
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120700
  • AT89C51
    +关注

    关注

    27

    文章

    543

    浏览量

    80359
收藏 人收藏

    评论

    相关推荐

    电梯控制系统单片机资料

    电梯控制系统单片机资源希望多多下载 帮我赚取点E币
    发表于 04-25 06:58

    基于51单片机电梯控制系统

    各位大神,帮帮忙,本人新手,在做51单片机电梯控制系统,我想请问1、怎么去控制直流电机的转速,我想在规定时间内电机速度从零开始增加,然后逐
    发表于 07-30 12:12

    基于51单片机的车窗控制系统

    有没有前辈做这方面的研究,初学单片机,课程题目就是车窗控制系统,感觉有种无处下手的感觉,希望前辈们提点建议
    发表于 04-21 21:32

    请问哪位大神可以分享一下AVR单片机做的模拟电梯控制系统的资料?

    我想做一个模拟电梯,但还是初学者,不太清楚怎么弄,想请教一下大神们怎么弄,网上关于用AVR单片机做的模拟电梯
    发表于 07-03 13:13

    基于51单片机电梯控制系统解决方案

    及关键技术  一个完整的电梯控制系统相当于一个简单的单片机系统,该系统是首判断有无按键按下,有按键按下后判断所在按键的楼层然后对按键的所在的
    发表于 09-01 16:42

    51单片机模拟电梯控制(含完整代码)相关资料下载

    51单片机模拟电梯控制前言一、普中51-单核-A2开发板二、
    发表于 07-06 06:58

    怎样实现基于51单片机的自动电梯控制模拟系统设计?

    怎样实现基于51单片机的自动电梯控制模拟系统设计?
    发表于 09-28 06:02

    基于51单片机电梯控制系统设计资料分享

    这一次的项目是前阵子发布的Altium designer ERROR系列链接第一篇的项目,实现了51单片机控制电机,从而控制一台六层电梯。具
    发表于 11-10 06:02

    基于51单片机电梯仿真系统设计

    【基于51单片机电梯仿真系统设计由AT89C51单片机+数码管+矩阵按键模块+LED灯等构成具
    发表于 11-19 06:21

    基于stm32单片机电梯控制系统有哪些功能

    设计简介:本设计是基于单片机电梯模拟系统,主要实现以下功能:1、五层电梯控制(内
    发表于 11-26 06:54

    怎样去设计一种基于51单片机的四层和八层电梯控制系统

    怎样去设计一种基于51单片机的四层和八层电梯控制系统?如何对基于51单片机的四层和八层
    发表于 12-21 06:25

    单片机实现电梯控制系统

    电梯控制系统的工作原理和基本要求 电梯控制系统的工作原理是:当某层有要梯信号输入时,呼梯信号锁存系统将要梯信号锁存,待
    发表于 09-13 08:05 236次下载

    使用51单片机设计三层电梯系统的论文免费下载

    本文设计了一款基于单片机(AT89C51)的三层电梯模拟控制系统。以51
    发表于 10-29 08:00 18次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>设计三层<b class='flag-5'>电梯</b><b class='flag-5'>系统</b>的论文免费下载

    基于51单片机模拟1~20楼电梯系统仿真设计

    基于51单片机模拟1~20楼电梯系统仿真设计
    发表于 10-25 10:11 6次下载

    基于单片机电梯5层带模拟控制系统设计(毕设)

    基于单片机电梯5层带模拟控制系统设计(毕设)
    发表于 11-23 17:21 50次下载
    基于<b class='flag-5'>单片机电梯</b>5层带<b class='flag-5'>模拟</b><b class='flag-5'>控制系统</b>设计(毕设)