基于AT89C51单片机的简易电梯上下楼层间移动系统

news2024/11/20 8:37:16

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87776511?spm=1001.2014.3001.5503
在这里插入图片描述

源码获取
主要内容:
采用单片AT89C51芯片进行电梯控制系统的设计方法,主要阐述如何使用单机进行编程来实现电子设计的方法,利用单片机编程实现功能,简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。硬件部分主要由单片机的最小模块、电梯内外按钮控制模块、数码管显示楼层模块、发光二极管显示目的楼层模块、报警显示模块组成。软件部分使用kiel软件进行C语言程序编写,用proteus软件进行仿真调试。
基本要求:
1、电梯电路设计图;
2、电梯设计源程序;
2、keil运行源程序;
3、protus中仿真;
4、运行结果分析。
主要参考资料:
[1]楼然苗等, 51系列单片机设计实例北京航空航天出版社, 2003.3
[2]罗亚非,凌阳十六位单片机应用基础2003年北京航空航天大学出版社
[3]霍孟友等,郸机原理与应用,机械工业出版社,2004.1
[4]霍孟友等,郸机原理与应用学习概要及题解,机械工业出版社, 2005.3
[5]许泳龙等,单片机原理及应用,机械工业出版社, 2005.1
[6]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版
完 成 期 限:12 月 11 日 - 12 月 26 日
指导教师签名:
课程负责人签名:

摘 要
本文介绍了一种采用单片AT89C51芯片进行电梯控制系统的设计方法,主要阐述如何使用单机进行编程来实现电子设计的方法,利用单片机编程实现功能,简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。硬件部分主要由单片机的最小模块、电梯内外按钮控制模块、数码管显示楼层模块、发光二极管显示目的楼层模块、报警显示模块组成。软件部分使用kiel软件进行C语言程序编写,用proteus软件进行仿真调试。本设计具有电梯控制系统所需的一些基 本功能,能通过方向按键选择方向,能通过数字按键选择楼层,数码管显示实时楼层数,电动机控制部分采用直流电机及H桥驱动电路,使电梯箱能上下运动。硬件设计简单可靠,结合软件,基本实现了五层电梯运行的模拟仿真。
关 键 词:单片机;AT89C51;C语言;

目录
摘 要 1
1. 需求分析 1
1.1背景介绍 1
1.1.1我国电梯行业现状 1
1.1.2电梯管理系统的现状 1
1.2社会需求 1
1.3设计优点 2
1.4设计缺点 2
2.设计任务 3
2.1设计目的 3
2.2方案论证 3
2.2.1设计要求 3
2.2.2系统的结构框图 3
2.3实现单片机控制电梯的主要方法 4
3仿真图设计 5
3.1设计环境 5
3.2仿真图各个模块的设计 5
3.2.1电机的选取 5
3.2.2单片机的选择 5
3.3.3楼层的显示 6
3.3.4电梯各个楼层的按钮 6
4.系统的代码和仿真 7
4.1系统的代码 7
4.2系统仿真图 8
5.系统测试结果 9
5.1启动系统 9
5.2楼层间的移动 9
6.心得体会 11
参考文献 12

1.需求分析
1.1背景介绍
随着经济不断发展,科学技术日新月异,电梯作为日常生活不可缺少的交通具,电梯安全及管理问题已是人们关注的焦点。电梯关人、故障停梯、运行不正常、不能及时维修等问题已是生活在高层建筑中口头抱怨的话题,从抱怨、申诉、直到要求仲裁事例逐渐增多。于是,电梯故障已经成为城市安全的隐患,是城市安防急待解决的问题。因此,提高我国电梯安防管理水平、预防电梯事故发生已是迫在眉睫。
1.1.1我国电梯行业现状
目前,我国电梯在用量剧增,同时,各国电梯制造商纷纷在我国建立工厂,且国内电梯厂家也如雨后春笋般出现,使我国电梯产量跃居世界第一位。这种形势下造成我国在用电梯品牌多、型号复杂、技术水平参差不齐,为维保工作带来较大难度,多品牌、多型号、不同技术形式的电梯维修经验的共享等等问题也就成为电梯维修行业渴望解决的问题。
1.1.2电梯管理系统的现状
电梯管理技术是伴随着计算机控制技术和网络技术的发展而逐步发展起来的,目前国外大的电梯公司几乎都可提供与自己的系统配套的远程监控管理系统,并能提供比较完善的功能。然而,由于中国特殊的国情,这些国外大公司的远程监控管理系统在中国的实际应用过程中还存在着一定的局限性。 如只能监控本公司的电梯,对其他公司电梯的监控则无能为力,对电话网络的质量要求也比较高。另外远程监控系统的价格也比较昂贵,一般用户难以承受。
1.2社会需求
当今社会电梯需求:
1.很强的兼容性。
2.对原有控制系统无干扰。
3.优越的性价比。
4.强大的数据库功能。
5.障的及时报警及隐患的指导排查。
1.3设计优点
为了适应电梯的迅速发展,我用单片机开发了一套电梯控制系统。由于单片机的迅速发展和普及,而采用单片机构成控制系统,则可大大降低成本,而且做成专用控制系统,程序被固化,加强了保密性、提高了可靠性。.
1.4设计缺点
由于时间和个人能力的关系,本次使用AT89C51单片机系统设计的电梯控制系统是比较简单的电梯控制系统,该电梯是在每层楼都停下10s,然后上升或者下降,在现今实际生活当中不实用。

2.设计任务
2.1设计目的
目前电梯控制系统大多采用继电器或者可编程控制器(PLC) 的控制方式,存在着成本高,需要三相供电等缺点,本设计给出了一种基于单片机的电梯模型控制系统设计。以单片机为核心,再辅以适当的硬件电路和控制程序来检测和控制整个电梯的信号,具有成本低、通用性强、灵活性大、扩展容易及易于实现复杂控制等优点。本设计注重基本理论知识与实际情况的紧密结合,同时对学生独立创新和分析问题的能力进行培养,加深对知识的理解,为以后的工作和学习打下坚实的基础。
2.2方案论证
2.2.1设计要求
(1)设置电梯的内外按键,即电梯外都有上或下的按键,电梯内有楼层的选择按键。
(2)电梯状态要有指示灯显示,即电梯目前运行到达楼层的实时显示,电梯升降的状态显示等。
(3)电梯无人时,应默认停在第一层。
2.2.2系统的结构框图
在这里插入图片描述

图1.2.2系统的结构框图
如图1.2.2所示,楼层电梯呼叫按键就是楼层外面的上行、下行按键,有需求时即可按下;电梯内呼叫按键就是电梯内部的数字按键,它是内部按键需求的输入;单片机就是整个系统的核心,接收输入信息,经过处理后输出信息;楼层显示数码管就是接收单片机处理的信息,显示此时的楼层数;电梯状态指示灯就是接收单片机处理的信息,显示电梯的状态:上升、下降、停止。电动机的驱动和控制就是接收单片机的PWM脉冲信号来控制驱动器,进而控制电动机的正反转,使电动机牵引电梯做上下运动。
2.3实现单片机控制电梯的主要方法
首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。由于其有诸多按键和显示环节,而单片机的I/0口管脚资源实在有限,故需要I/0口扩展,用以管理二极管;同时要有专门的按键控制芯片,从而便于按键管理。接着,要完成电路图的设计,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正,最终使硬件电路简单又实用。同时,如果每个选层按钮都采用独立的按键设置,可以很大程度上简化扫描按键程序,采集信号也容易得多,但是由于单片机接口有限,模拟电梯自动控制系统所需按键较多,如此会有接不足的问题,所以本设计采用4X4按键矩阵开关电路作为外呼内选呼叫控制。出于同样问题,显示楼层电路采用数码管从串口输出。为了更接近实际的电梯控制系统,设计中还应该添加电梯外上下行请求显示,可用五个发光二极管表示目的请求按键是否按下,有则亮,无则暗。软件方面至于采用中断方式还是采用查询的方式来检测用户的请求信息,可根据具体的设计方案来确定,同时要想准确地采集按键请求状态,就必须时时刻刻调用键盘矩阵扫描程序,也就增加了软件编程的难度。采用单片机作为核心,配以适当接口作为输入输出通道。实际电梯控制系统每层装有一个传感器,从而判断车厢所在位置,本模型使用延时函数对电梯运行楼层数进行控制。当电梯到达所选层,电梯开门延时等待进人并选层,然后延时关门执行请求,若无请求则停在本层等待请求。软件部分使用kiel作为开发环境,用C语言进行编程,采用查询方式来检测用户请求的按键信息并相应相应的函数。随着人类社会的不断发展,电梯在人们生活中越来越占着重要位置,如何使电梯发挥更大的作用关键在于电梯的控制方法的改进以及控制费用的降低。单片机之所以如此受欢迎在于其廉价的成本和可靠地运行性能。故应用单片机进行电梯的控制势必成为电梯今后发展的重要方向,最优化的程序设计以及更廉价的费用对促进电梯行业的发展用着重要的作用,通过对具体问题的分析和探讨,具体程序的优化与改良,本设计也致力于解决这一问题。

3仿真图设计
3.1设计环境
使用的是Proteus 8来制作的仿真图,其特点有:
(1)完善的电路仿真和单片机协同仿真;
(2)支持主流单片机类型;
(3)提供代码的编译与调试功能;
(4)智能、实用的原理图与PCB设计。
3.2仿真图各个模块的设计
3.2.1电机的选取
在此选择的是直流电机MOTOR-DC,如图所示:
在这里插入图片描述

图3.2.1 MOTOR-DC
运行系统后,当我们选择不同的楼层时,电机将带动电梯运转到达所需要去楼层。
3.2.2单片机的选择
该电梯楼层上下移动的系统是基于AT89C51下完成的,如图所示:
在这里插入图片描述

图3.2.2 AT89C51
3.3.3楼层的显示
为的方便而且直观的了解电梯到达的楼层是多少,在仿真图中选择的是7SEG-BCD数码管来显示楼层的层数,如图所示:
在这里插入图片描述

图3.3.3 7SEG-BCD
3.3.4电梯各个楼层的按钮
该电梯楼层上下移动的系统主要是为的实现楼层间的移动,所以在此仿真图中设计的4x4的按钮,分别对应着1-16楼,如图所示:
在这里插入图片描述

图3.3.4 电梯按钮的设计

4.系统的代码和仿真
4.1系统的代码
简易电梯楼层间上下移动的代码如下:

#include <reg51.h>
#define uchar unsigned char
sbit p14=P1^4;
sbit p15=P1^5;
sbit p16=P1^6;
sbit p17=P1^7;
sbit p30=P3^0;
sbit p31=P3^1;
void delay(int n)
{ int m,k;
for(m=0;m<n;m++)for(k=0;k<110;k++);
}
void main()
{ unsigned char i,xin,jiu;
 P2=0x01;
 jiu=1;
 xin=1;
 p30=0;
 p31=0;
 while(1)
{ P1=0xf0;
	if((P1&0xf0)!=0xf0)
	delay(20);
	if((P1&0xf0)!=0xf0)
	{ P1=0xfe;
		if(p14==0)xin=1;
		else if(p15==0)xin=2;
		else if(p16==0)xin=3;
		else if(p17==0)xin=4;
		P1=0xfd;
		if(p14==0)xin=5;
		else if(p15==0)xin=6;
		else if(p16==0)xin=7;
		else if(p17==0)xin=8;
		P1=0xfb;
		if(p14==0)xin=9;
		else if(p15==0)xin=10;
		else if(p16==0)xin=11;
		else if(p17==0)xin=12;
		P1=0xf7;
		if(p14==0)xin=13;
		else if(p15==0)xin=14;
		else if(p16==0)xin=15;
		else if(p17==0)xin=16;
	}
	if(xin>jiu)
		for(i=jiu;i<=xin;i++)
	{ P2=(i/10)*16+i%10;
		delay(1000);
		p30=1;p31=0;
	}
	else if(xin<jiu)
		for(i=jiu;i>=xin;i--)
	{ P2=i/10*16+i%10;
		delay(1000);
		p30=0;p31=1;
	}
	jiu=xin;
	p30=p31=0;
}
}

4.2系统仿真图
简易电梯楼层间上下移动仿真图如下:
在这里插入图片描述

图4.2 系统仿真图

5.系统测试结果
5.1启动系统
当开启系统后,楼层的初始位置为1楼,运行截图如下:
在这里插入图片描述

图4.1 启动系统
5.2楼层间的移动
当按楼层的控制按钮后楼层开始向指定层移动,截图如下:
在这里插入图片描述

图4.2.1 楼层向12层移动
在这里插入图片描述

图4.2.2 楼层由12层向6层移动

6.心得体会
这次的单片机课程设计做了实验是比较简洁的,但是在这次的实验过程中自身也学习到的不少的知识。在实验中多多少少会遇到一些麻烦与困难,刚一开始的时候就想着放弃或者是选择其他的实验重做,也可能跟我自身学的知识不太充足有关,遇到这种或是那种问题时,没能第一时间想到通过所学的知识去解决,所以在实验的前期对我整个的进展造成很大的影响。在对自身问题的深刻认知后我开始上网查资料,遇到不懂的地方向懂得人寻求帮助,那个时候我才意识到困难不是阻碍,也正是如此最终将实验成功的做完了。由于个人知识的限制这次的系统还有很多的地方没有完善,只是简单的实现的电梯的楼层间的上下移动,比如像是电梯的开门关门,电梯故障的提醒等等,我相信只要努力的学习知识就一定做出更好的成果。

参考文献
[1]楼然苗等, 51系列单片机设计实例北京航空航天出版社, 2003.3
[2]罗亚非,凌阳十六位单片机应用基础2003年北京航空航天大学出版社
[3]霍孟友等,郸机原理与应用,机械工业出版社,2004.1
[4]霍孟友等,郸机原理与应用学习概要及题解,机械工业出版社, 2005.3
[5]许泳龙等,单片机原理及应用,机械工业出版社, 2005.1
[6]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 7 Clustering

来源&#xff1a;《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 7 Clustering The requirements for a function on pairs of points to be a distance measure are that: Distances are always nonnegative, and only the distance between a point and itse…

泰克示波器MSO54B 5-BW-1000,4通道1G带宽

泰克MSO5B系列示波器&#xff0c;支持广泛的特定应用测量&#xff0c;满足您的各种需求。单独添加高级分析程序包或安装应用程序包&#xff0c;以处理更多不同的工作。 支持超过 25 种串行协议&#xff0c;覆盖常见的接口先进的单相和三相功率分析程序包确保信号完整性和电源完…

邮件系统市场行情分析

前言 随着网络信息化的不断发展&#xff0c;邮件系统也日益成为企业对外沟通交流的重要工具&#xff0c;成为了企业的刚需。随着邮件系统技术的不断完善与发展&#xff0c;企业对于邮件系统功能的也提出了更高的要求。市面上逐渐诞生了众多的品牌和厂家。不同的厂家在系统的功能…

HummerRisk 常见问题 (一)

本文汇总了一些 HummerRisk 使用过程中的常见问题&#xff0c;希望可以帮助大家快速排查和解决问题&#xff0c;更加顺畅的使用 HummerRisk 云原生安全平台。 安装问题 Q.安装过程中&#xff0c;Docker 检测失败&#xff1f; A. 默认情况下&#xff0c;使用 HummerRisk 安装脚…

已知 IP 地址是 128.14.35.7/20。求网络地址

首先知道公式 然后我们由 128得出这个是B类IP地址 默认是16位1 但是 所给IP已经给了 掩码长度 所以求出了就知道 掩码 就可以求出了

MySQL学习---12、视图

1、常见的数据库对象 对象描述表(Table)表时存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是字段数据字典就是系统表&#xff0c;存放数据库相关信息的表。系统表的数据通常由数据库系统维护&#xff0c;程序员通常不应该修改&…

银河麒麟系统Arm64编译opencv指南

进入opencv官网下载版本&#xff1b;我这边下载的是2.4.13.6 &#xff1b;根据需要下载最新的 Releases - OpenCV 拷贝进麒麟系统我这边是麒麟V10 sp1 2204&#xff1b;并解 cmake 在麒麟应用商城中安装&#xff1b; 打开cmake 设置opencv路径&#xff1b;builder文件夹可以自…

福音:IDEA、VSCODE神级插件Bito

文章目录 Bito是什么&#xff1f;IDEA环境安装注册使用 VSCODE环境疑难问题后叙 Bito是什么&#xff1f; Bito是一款在编程软件中使用的插件&#xff0c;由ChatGPT团队开发&#xff0c;它是ChatGPT团队为了提高开发效率而开发的一款工具。 Bito的AI帮助开发人员极大地提高了其…

【已解决】windows电脑上无法打开iPhone中的照片

出门旅游后&#xff0c;想必很多小伙伴的手机里都会存下一大堆照片&#xff0c;回来后想直接导入Windows查看筛选&#xff0c;可有些人会发现无法显示图片的内容&#xff0c;提示不支持该格式或文件损坏&#xff0c;这是为什么呢&#xff1f; 这是因为用iPhone手机的话&#xf…

CentOS 安装 redis-cli以及linux操作redis

1&#xff0c;CentOS 安装 redis-cli步骤如下&#xff1a; wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make redis-cli 2&#xff0c;linux操作redis 到 redis-cli安装的目录找到 redis-cli然后执行命令 ./redis-cli…

JavaScript全解析-闭包

闭包 重新认识函数 ●一个函数分为函数的定义和函数的执行 函数的定义 ●我们书写一个函数, 但是不会执行函数体内的代码 ●那定义一个函数做了什么事情 ○在堆内存中开辟一段存储空间 ○把你书写在函数体内的代码, 全部以字符串的形式存储在这存储空间中, 此时不会解析变量 ○…

周五直播Talk | MIT许逸伦:解锁由物理启发的深度生成模型-从扩散模型到泊松流模型

受到物理、数学等学科的启发&#xff0c;AIGC大模型发展迎来一波技术颠覆。交叉学科里蕴含的巨大能量&#xff0c;为科研人带来创新视角和思维启迪。 北京时间4月28日(周五)10:00&#xff0c;将门-TechBeat社区邀请到麻省理工学院电子与计算机科学系博士生——许逸伦&#xff…

CloudOS:一个平台汇聚云原生技术栈

云原生技术栈是一种新型的技术架构&#xff0c;旨在支持云计算环境下的应用程序开发和部署。它是一种基于容器、微服务、自动化和云平台的技术栈&#xff0c;可以帮助企业更快速、更高效地构建、部署和管理应用程序&#xff0c;成为加速企业数字化业务高效创新、实现企业数字化…

电商如何利用API接口获取商品信息数据

随着电商和互联网的快速发展&#xff0c;API&#xff08;应用程序编程接口&#xff09;的重要性也越来越明显。API接口可以让不同系统之间进行数据交互和通信&#xff0c;进而实现更高效的业务协同和数据共享。在电商业务中&#xff0c;API可以帮助企业实现多个业务系统之间的数…

【数据结构】简单到有摸鱼负罪感的栈的实现

【数据结构】简单到有摸鱼负罪感的栈的实现 一、前言1、什么是栈&#xff1f;2、关于实现的结构选取 二、目标三、实现1、初始化工作2、压栈(push)2.1、图解思路2.2、代码实现 3、弹栈(pop)3.1、图解思路3.2、代码实现 4、打印栈(用于测试)5、返回栈顶数据6、返回栈的数据个数7…

源码环境搭建-唯一客服系统文档中心

运行源码环境 golang语言为跨平台的开发语言&#xff0c;使用唯一客服系统全源码版本&#xff0c;进行二次开发&#xff0c;需要搭建golang运行环境&#xff0c;并且开启go module依赖管理 Windows系统 首先下载golang压缩包&#xff0c;在下面这个地址下载https://studygolang…

第六章:空间解析几何-空间向量

1.空间向量 1.知识概述 1.理解向量的概念和几何表示2.掌握向量的加减法运算3.能够在三维空间内解决常见的向量问题2.向量 1.定义:(在空间内),既有大小又有方向的量叫做(空间)向量。2.表示法:向量可用有向线段表示,有向线段的长度表示向量的大小,有向线段的方向表示向…

网关zuul的使用

前言 Spring Cloud Zuul 主要的功能是提供负载均衡、反向代理、权限认证、动态路由、监控、弹性、安全等的边缘服务。其主要作用是为微服务架构提供了前门保护的作用&#xff0c;同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面&#xff0c;使得服务集群主体能够具备…

Matlab 迭代法(2)高斯牛顿法

一、思想 高斯牛顿法的对象是最小二乘法。 采用一定的方法对Hession 矩阵进行近似&#xff0c;这样的话可以减少计算量&#xff0c;只需要计算一阶偏导数得到雅可比矩阵即可。 minF(x)|| f(x)||^2 那么x在xk处的增量Δxk出的最小二乘法为 minF(xkΔxk)∣∣f(xk​Δxk​)∣…

10. 100ASK_V853-PRO开发板支持录音和播放音频

0.前言 ​ 本章主要讲述如何使用板载的MIC拾音咪头录音并使用喇叭播放音频。 ​ 音频_开发指南&#xff1a;https://tina.100ask.net/SdkModule/Linux_AudioFrequency_DevelopmentGuide-02/#220-v853 ​ 全志官方音频介绍&#xff1a;https://v853.docs.aw-ol.com/soft/tina…