基于单片机的电梯自动控制系统设计与实现.docx
《基于单片机的电梯自动控制系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的电梯自动控制系统设计与实现.docx(26页珍藏版)》请在冰豆网上搜索。
![基于单片机的电梯自动控制系统设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/31/9fbf0e97-09b7-44f0-941c-0f9acea9d0dd/9fbf0e97-09b7-44f0-941c-0f9acea9d0dd1.gif)
基于单片机的电梯自动控制系统设计与实现
大连东软信息学院
本科毕业设计(论文)
系所:
电子工程系
专业:
电子信息工程(嵌入式系统工程方向)
学生姓名:
徐明
学生学号:
09160400224
指导教师:
宋夕政
导师职称:
讲师
完成日期:
2013年5月2日
大连东软信息学院
DalianNeusoftUniversityofInformation
基于单片机的电梯自动控制系统设计与实现
摘要
在现代社会中,电梯已经成为人类必不可少的垂直运输交通工具。
但是很多的电梯还依旧是直上直下式的,不能够最快捷的到达所选楼层,这样很不方便,且浪费资源。
为了改善电梯运行的模式,本设计利用89C51单片机为核心,配合外围电路来组成的电梯自动控制系统。
通过对各楼层的按键检测,按照程序设定的模式,发出对LED及数码管的调节,从而控制步进电机的运转来带动电梯模型来实现电梯的上下行。
本文主要介绍电梯自动控制系统的关键技术点,系统需求分析,系统的设计与实现,详细的说明了本系统的组成原理及工作原理。
关键词:
单片机,步进电机,自动控制
DesignandImplementationofAutomaticControlSystemofElevatorBasedonMCU
Abstract
Inmodernsociety,Elevatorverticaltransportationhasbecomeessentialtohumantransport.Butlotsofelevatorsarestillstraightupanddown.Itcould’tbethequickesttoreachtheselectedfloor,soinconvenientandawasteofresources.
Inordertoimprovetheelevatoroperationmode,thisdesignuses89C51microcontrollerasthecore,theautomaticcontrolsystemoftheelevatorwiththeexternalcircuittoform.Thefloorbuttonsdetection,inaccordancewiththeproceduressetoutinthemodel,anddigitaltubeLEDregulation,soastocontrolthesteppermotoroperationtodrivetheelevatormodeltorealizetheupanddowntheelevator.
Thisarticledescribestheelevatorkeytechnicalpointsoftheautomaticcontrolsystem,systemrequirementsanalysis,systemdesignandimplementation,detaileddescriptionoftheprincipleofthesystemcomponentsandworkingprinciple.
Keywords:
SingleChipMicrocomputer,StepperMotor,Auto-control
第1章 绪论
1.1课题研究背景与意义
电梯是高层建筑最可靠,安全,直上直下的运载工具。
对减轻劳动力及其强度都有着很大的作用。
电梯的应用范围极广泛,可以用在商场,写字楼,饭店,建设工地,学校,住宅,娱乐场所等等。
在现代社会中,电梯已经成为人类必不可少的垂直运输交通工具。
但是很多的电梯还依旧是直上直下式的,不能够最快捷的到达所选楼层,这样很不方便,且浪费资源。
为了改善电梯运行的模式,本设计利用C51单片机来优化,节约用户宝贵的时间,同时在楼层选择时更加智能,没有人来选择时,电梯可以停在某一楼层,节约了大量的人力和物力,在当今资源日愈稀缺的环境下,此种做法是非常有必要的。
1.2课题研究内容与方法
本课题主要研究内容是实现一个电梯的自动化控制与实现,通过用户对电梯层数的选择。
让电梯做出一个最优的判断,高效高质量的完成电梯的上下行任务。
根据电梯的实际情况来考虑,最简单的电梯应具备按键,LED灯,数码管,电机,及传送装置。
然后结合这些实物将其分成显示模块,键盘模块,电机模块,通过89C51芯片进行结合,然后完成电路图的设计与分析,进行软硬件的调试,从而达到预期的设计。
1.3课题研究现状
在经济不断发展,科学技术日新月异的今天,楼的高度已经和经济科学技术发展一样迅猛的成长起来。
一个国家的电梯需求总量,主要受到经济增长、人口密集度及数量、城市化水平高低、国家产业链的结构组成等诸多综合性因素的影响。
在全球金融连续低迷走向的状况下,我们的人民经济水平却以极高的速值增长着。
城市化的水平也不断地提高。
这也致使我国的电梯业展现了繁华的相貌,如今中国也成了世界上最大的供应电梯市场。
作为楼房很重要的枢纽,电梯有着非常重要的作用。
电梯作为楼房内的最重要运输工具,像其他的道路航空水路等交通工具一样,已经成为我们日常生活的不可或缺的重要组成部分。
上世纪八十年代以来,随着经济的飞速发展。
国家对电梯的需求量也逐渐加大。
从1949年建国以来至今中国共生产安装了六十万多台的电梯。
改革开放以来,大规模的开发建设为电梯产业带来了很重大的发展挑战,从而也达到了空前的发展。
尽管如此,我国的电梯远未达到饱和的程度。
2011年中国电梯的销产量大约在45万台。
比2010年的增长约23%左右,电梯的存在量大概有195万台。
即使政府在极力的控制房地产的开发,从而出现了滞销的局面,也给电梯的销售蒙上了一层阴影。
虽然有着诸多方面的影响,而且未来的电梯产业进展情况也不十分的明确,但还是会有一个上升的过程。
现在电梯的适用人群对先进稳定、低成本的自动化产品的需求量越来越多。
更多优秀的自动化产品也将会推进电梯行业的水平稳步上升。
如此庞大的市场需求也为我国电梯行业的发展创造了广阔的大舞台。
第2章 关键技术介绍
本课题在设计的过程中,主要是用到了LED,按键,数码管,以及步进电机的同步。
在选择多个楼层按键的时候,选择最佳的路线是本设计的关键技术。
2.128BYJ-48步进电机的使用
步进电机也称之为步进器。
它利用了电磁学的原理,把电能转化成机械能。
人们在二十世纪20年代就开始使用这种步进电机了。
无论是在工业上、军事上、医疗上、汽车上还是娱乐产业上,只要是需要把一个物体从一个地方移至另外一个地方,步进电机就可以派上用场。
步进电机也有很多种形状及尺寸。
但是无论形状和尺寸是怎样的,都始终能把步进电机归为两类,分别为可变磁阻的步进电机和永磁的步进电机。
步进电机是一种可以让点脉冲转化成为角位移的执行机构。
简单的说:
当步进电机获取了一个脉冲信号,就会驱使步进电机以一个特定方向来转动一个固定角度。
这样就可以按照控制脉冲的数目来操控角的位移量了。
从而获得精准定位的目的。
同时也能利用操控脉的冲频率来操控电机转动速度及加速度,来获得调整速度的目的。
通常电机的转子是一个永磁体。
当钉子被电流导通时,这个磁场会带动着转子转动一个角度,然后会使得转子的一对磁场方向与定子磁场的方向保持一致。
当定子产生出的矢量磁场转动了一个角度。
转子就会伴随着磁场来转动一个角度。
每当输入到一个电的脉冲信号,电动机每转动了一个角度就会向前一步。
如果改变了绕组所通电而来的顺序,电机就会发现反向转动。
步进电机28BYJ-48型是一个四相八拍电机,电压为DC5V—DC12V。
它可以持续地产生转动,如果步进电机获得到了一个持续的脉冲时。
当通电改变的状态完成一个循环的时候,转子就会转动过一个齿距。
四相步进电机能够在多种类别的通电状态下运转。
而常见的通电种类有单相(单相绕组通电)四拍(A-B-C-D-A-B-C-D…),双相(双相绕组通电)四拍(AB-BC-CD-DA-AB-BC-CD…),八拍(A-AB-B-BC-C-CD-D-DA-A-AB-B-BC…)。
由于步进电机需要的驱动电流比较大,单片机是不能够直接驱动的,一般都是会使用ULN2003元件来驱动,当然了使用下拉电阻或者是三极管也是可以驱动步进电机的,只不过效果并不是特别的好,产生扭力会比较小。
还有一个情况就是步进电机在低速时可以运转,当设置的速度太高就没有办法启动了,只能够听到响声,这是因为步进电机工作在空载的情况下能够正常的启动脉冲频率,但是当脉冲频率高于这个值时,电机就不能再正常启动了,而且可能出现丢步或不转的情况。
如果是有着负载的前提下,启动的频率就应该更低了。
如果想要使电机能够达到一个高速的转动,脉冲所具有的频率应该要有一个加速的过程,也就是让启动的频率低一点,然后按照一定的加速度提升到了所预期的高频率上(电机的转速就会从低速变成到高速)。
2.2数码管的显示
如果将数值1直接送到的I/O口时,数码管一定不会显示数字“1”。
显然,如果想要在数码管上表现出来字符,把字符送至数码管的段选端是不行的,必须在段控制端送至对应的编码。
数码管有共阴极和共阳极两种。
将单片机P1口的八个引脚与数码管的a、b…f、dp八个段控端制引脚依次相连接。
如果是共阳极的接法,COM端接+5V。
要显示数字“0”,则数码管的a、b、c、d、e、f六个段应该被点亮,其它段将会熄灭,这时就应该向P1口传送数据11000000B(C0H),这就是与字符“0”相对应的共阳极字型编码。
如果是共阴极的接法,数码管COM端接GND,要显示数字“1”,则数码管的b、c两个段应该被点亮,其他段将会熄灭,这时就应该向P1口传送数据00000110(06H),这就是与字符“1”相对应的共阴极字型编码。
数码管如果想要正常的显示,就要驱动数码管的每一个段码。
从而才能够得到我们想要得到字符,因此我们根据驱动方法的不同,可以把数码管的显示分成静态显示和动态显示两大类。
动态显示:
数码管的动态显示是单片机最广泛的显示方式之一。
动态驱动数码管是将所有数码管的八个输出控制端"a,b,c,d,e,f,g,dp"的同名端连到一起。
另外用每一个数码管的公共极COM端来增加位选通道控制电路,位选通道是由单独的I/O口来操控的。
当单片机输出字符的时候,每一个的数码管都会接收相同的字符,但是究竟哪一个数码管将会输出字符呢?
这还要根据单片机对COM控制端的位选通道电路的进行操控。
这样我们只用把想要显示的那一个数码管所在的选通控制端打开,该数码管就会显示出来字符,没有选通到的数码管也就不会被点亮。
通过操控每一个数码管的COM口,使每一个数码管都能够依次的显示出来,这也就是动态的显示数码管。
在轮流的显示输出过程里,每一位数码管所能够点亮的时间约为1-2ms,但是人们的视觉发生暂留情况和发光二极管出现的余辉效应,尽管在实际上,各位的数码管都不是同一时间被点亮的,但是只要能够扫描的速度足够快速的话,人们看到的就会是一组非常稳定的显示字符,并不会有任何的闪烁感,而且动态显示的所表现效果和静态显示所表现的效果都是一样的,从而能够大量的节省I/O端口,使功耗更加的低。
静态显示:
数码管的静态显示也叫做直流驱动数码管。
静态显示是通过控制I/O口来驱动段选码来显示字符的。
当然静态显示的最大的优点就是编程十分的简单,而且显示的亮度很高,缺点就是所要占用的I/O端口太多,如驱动4个数码管的静态显示就需要4×8=32根I/O口来驱动它,要知道一个89C51的单片机可用的I/O口一共也就是32个,实际应用时是必须通过增加译码驱动器来进行驱动,这样也就增加了硬件电路的复杂性。
2.3键盘接口技术
机械式按键被按下或者释放的时候,由于受到机械性弹性作用的影响下,通常会伴随着有一段时间的触点机械性抖动,然后触点才会慢慢的稳定下来。
抖动时间的长短和开关的机械性弹性有关,一般为5-10ms。
在触点出现抖动的时候,检测按键的通和断的情况,就可能会出现判断错误。
即按键的每一次释放或按下都有被错误地认定是很多次操控的可能性,这样的情况在开发的过程中不应该发生的。
所以为了避免按键的触点发生的机械性抖动带来的的检测性错误判断,就必须用消除抖动的一些措施。
这一点就可从硬件上和软件上两方面来考虑了。
这样在键数比较少的时候,可以采取硬件消抖的方式,但当键数较多的时候,就得要采用软件消抖的方式。
在硬件方面上可以采用在按键的输出端加一个R-S触发器(即为双稳态的触发器)或者单稳态的触发器所构成消除抖动的电路。
用软件来采取的措施是:
当在测试下到有按键被按下的时候,会采用一个10ms左右的延时程序(具体时间可以通过使用的按键来调节)。
再确认这个按键的电平是否仍然持续着一个闭合的电平。
若仍然持续着一个闭合的电平,则确认此按键这会正处在一个闭合着的情况下。
同理所示,当按键被释放以后,也要采用相同的措施来确认,这样也可以去除抖动对开发的不利因素。
键盘的一个完整的控制程序应该所具备以下的功能:
(1)检测有没有按键被按下,应该采取软件或是硬件消抖的方式来避免不利的影响。
(2)有着可靠的逻辑性处理,每次只是处理了一个按键,其间会对任何其它按键的使用对系统也不会发生影响,而且无论到底一次按键的时间到底有多久,系统也仅会执行仅有一次的按键功能的程序。
(3)准确的输出按键值,以满足跳转指令要求。
在单片机中如果只用为数不多的几个按键,就可以采用独立式的按键。
独立按键是一个直接连接I/O口组成为的单独按键电路。
其特点就是每一个按键会单独占用了一根I/O口,每一个按键的按下并不会影响到别的I/O口的状态。
独立式的按键所配置的电路十分灵活,软件结构也很简单,但是每一个按键都必须占有一根I/O口,因此,在按键如果较多的时候,I/O口就会浪费很大,所以不宜被采用。
(2)矩阵式的键盘
I/O端线可以分之为行线和列线。
按键的跨接是在行线上和列线上,按键按下的时候,行线和列线会产生电路短路。
矩阵式的键盘特点:
(1)占用I/O口比较少。
(2)软件结构比较复杂。
(3)适用在按键比较多的时候。
键盘扫描的控制方式:
(1)程序控制的扫描方式
按键处理的程序是固定在主程序上的某一段程序。
其特点是:
对CPU工作比较影响小,但是应该考虑在键盘上处理程序的运行所用的间隔周期不要太长了,否则就会影响到对按键输入响应的及时性。
(2)中断控制方式
中断控制的方式是利用了外部中断源来响应按键输入的信号。
特点:
克服了前两种的控制方式可能产生的空扫描以及不能够及时地响应按键输入的缺点,既能够及时处理按键的输入,又可以提高CPU运行的效率,但要占用一个十分宝贵的中断源。
(3)定时控制的扫描方式
利用定时器或计数器在每隔的一段时间产生一个定时中断,CPU响应中断以后对键盘进行扫描。
特点:
在扫描的间隔里,前一个用CPU工作程序来填补,后一个用定时/计数器定时来操控。
但是如果定时的时间太长的话,就会影响到按键的反应和速度处理性。
第3章 系统需求分析
3.1系统设计目标
将电梯的楼层控制由用户来选择,用按键来控制选择的楼层情况,同时数码管显示当前楼层,电机带动电梯的上下行,LED灯显示选择的楼层,到达对应楼层是LED灯熄灭,蜂鸣器发声,电机停止工作,停留一段时间后,电梯继续运行。
3.2系统功能需求
根据需求调研结果确定本系统主要包括以下功能模块。
显示模块:
根据用户的选择来显示对应的楼层,并随着电梯的运行,数码管显示的楼层数字会发生变化,LED灯显示所选择的楼层,被用户选择时LED灯亮起,当到达所选楼层时LED熄灭,数码管会停留在所在的层数。
键盘模块:
设定键盘按键对应不同的楼层,当用户键入所对应的楼层时,系统将其转化为对应的信号来操控显示模块及电机的运转。
电机模块:
当键盘键入时,系统会择优选择一个最佳的上下行线路,根据不同的楼层情况来决定电梯上行还是下行,对应的电机是正传还是反转,调节好电机每次运转的时间跟所模拟的电梯楼层高度同步。
以下是本系统的模块连接图,如图3.1所示。
图3.1模块连接图
3.3系统开发环境
硬件环境:
450*2MHZ/40G/1024MB/40G/
软件环境:
WindowsXP,KEIL,STC-ISP
开发用板:
TX-1C单片机
3.4系统可行性分析
3.4.1技术可行性
本系统采用的是89C51体系结构的单片机,由于只是完成一些比较基本的操作,所以对单片机的选择上并没有很苛刻的要求,最终决定使用性价比都很高的STC89C52RC单片机来进行开发试验。
在电路的搭载上我们使用比较基本的模块就可以了,根据之前所描述的系统模块,我们发现要有显示、键盘和电机三大组成部分。
所以我们可以进行电路部分的组成,分别由数码管、LED作为显示部分,4个独立键盘作为键盘部分,带有放大功能的ULN2003芯片和步进电机作为电机部分。
在进行开发的时候可以通过单片机的开发板来进行软件方面的测试,把系统所用到的步进电机跟开发板相连。
使用KEIL软件来进行程序的编译。
开始可以分模块进行试验测试,从比较简单的地方开始弄。
比如驱动对应的数码管,LED灯及蜂鸣器,并记录对应所占用的端口。
然后可以把键盘加上,通过键盘的按键来控制数码管和LED的显示,及蜂鸣器的响应。
通过调试进行算法的对比,测试是否符合系统的流程需要,最后在把步进电机带上。
在进行系统测试的时候要通过使用STC-ISP软件来下载至板子上进行功能的验证与实现。
此系统当中最主要难点是在楼层的择优算法上面,如何选择能够最简单方便的达到所在的楼层,从而达到节约时间以及成本是本次课题的关键。
3.4.2经济可行性
本系统在开发的过程中所使用的软件是免费的,硬件是TX-1C开发板,价钱适中,在学生的接受范围之内。
所用的步进电机是28BYJ-48,价钱上不是很贵,所用的模型是在院外实习的过程中用数控和简单的机械加工完成的。
所以在此次研发的过程中,经济方面并没有太大的问题,作为学生的我们都是可以承受的了的,无任何忧虑。
第4章 系统设计
4.1系统设计指导原则
4.1.1先进性
随着科学技术和人文水平的日益发展,嵌入式产品已被广大的人们所使用。
无论是各个层次年龄的人群都会看到嵌入式的影子,所以在今天这种科技水平发展迅猛的年代,新鲜的事物应被更多的人都了解并使用在生活当中。
本系统的设计就是用到了嵌入式的产品,最小的应用系统单片机,利用单片机的核心处理器来控制并实现所需的功能。
4.1.2可靠性及安全性
许多的应用系统就是着用这种成本低,体积小的单片机机构来完成高性能的控制,在很多尖端的领域更是用到了专用单片机来完成其他电路系统完成不了的工作任务。
由于单片机本身的特点抗干扰能力强,适用温度范围宽,在各种恶劣的环境下都能够可靠高效的工作,所以在本系统的实现过程中用到的单片机安全性极高。
4.2体系结构设计
系统体系架构如图4.1所示。
图4.1系统体系结构
4.3硬件设计
4.3.1STC89C52RC单片机
单片机的种类繁多,功能上也有着很大的不同,我们学习使用的都是51内核的单片机。
ATMEL公司的89系列单片机是以8051为内核构成的,其芯片引脚和MSC-51的单片机是一样的。
由于89系列单片机内含Flash存储器,在开发的过程中可以很容易的进行修改调试,所以大大的简化了系统的开发时间,对于我们来说89c51就是一个不错的选择,不过在价格方面AT89C51比较的贵,相对而言,国内的STC公司的的89c51系列的单片机就便宜的多,在此我选择了性价比都很高的STC89C52RC单片机进行开发。
以下就是STC89C51RC的管脚图,如图4.2所示。
图4.2STC89C52RC管脚图
单片机STC89C52RC有256KB的片内数据存储器,8KB的片内程序存储器。
因此在构成单片机的最小应用系统时候,也不在需要在单片机的外部扩展片外存储器。
单片机STC89C52RC中有四个8位双向I/O接口。
P0-P3这四个接口可以作为输入,也可以作为输出。
可以按8位地址处理,也可以按位处理。
P0口也可以作数据/地址线使用,P2口也可以作地址线使用。
RST:
上电复位端。
当单片机振荡时,输入连续的两个机器周期以上高电平,单片机就可实现复位初始化操作。
XTAL1:
振荡器反相放大器和内部时钟电路输入端。
XTAL2:
振荡器反相放大器输入端。
/EA:
访问外部程序存储器控制信号,低电平有效。
/PSEN:
外部程序存储器选通信号,低电平有效。
ALE:
地址锁存控制信号输出端。
VCC:
电源电压。
GND:
接地。
4.3.2电机模块设计
此设计在最初选用电机时有两个方案,分别如下。
方案一:
电机选用直流电机。
直流电机虽然转速方面比步进电机强很多,而且在编程上也十分的容易控制,但是其缺点也是很明确的,其一是在电机负载的承重上明显不足,其二是在电机的控制上效果上没有那么好,很难使其立即停止,达不到电梯定点停止的效果。
方案二:
使用步进电机
由于上述所描述的情况,直流电机不容易操控速度,实现不能立即停转。
这样用步进电机利用程序的控制下就能很轻松的客服上述的难题了。
再者,本设计重在模拟电梯的运行,对电机的载重的要求不是很严格。
只用步进电机正反转就行,所以选择了28BYJ-48作为本设计的电机。
以下是28BYJ-48的实物图,如图4.3所示。
图4.328BYJ-48实物图
在此红线接电源5V,橙色线接P1.3口,黄色线接P1.2口,粉色线接P1.1口,蓝色线接P1.0口。
因为单片机输出的信号不够大,不能满足步进电机的工作。
所有要有一个ULN2003来放大后再连接至对应的电机接口上。
以下是电机驱动部分,如图4.4所示。
图4.4电机驱动电路
4.3.3显示模块设计
此设计的显示模块用到了LED数码管,这是由LED发光二极管组合而成显示字符的器件,它使用了8个LED的发光二极管,1个用于显示小数点,另外7个用于显示字符。
LED数码管的连接方式有共阴极和共阳极两种。
当发光二极管的阳极是高电平时发光二极管被点亮。
共阳极阳极接+5V,每个发光二极管的阴极通过电阻和输入端相连接。
当阴极端是低电平时发光二极管被点亮。
此设计只用到了一个数码管来显示楼层,所有只用到一个锁存器74HC573就可以了。
以下是显示模块和锁存器,如4.5,4.6所示。
图4.4显示模块
图4.5锁存器
D0-D7为输入端。
Q0-Q7为输出端。
E为输出使能端,输入高电平输出关闭,输入低电平有效。
L为输出输入使能端,当端口为高电平时,输出值跟D0-D7一样,当端口为低电平时,输出保持之前的状态。
4.3.4按键模块设计
在本设计中由于需要用到的按键只有4个,所有在此不需要用到矩阵键盘,只需要4个独立按键就可以了,分别来代表4个楼层。
以下是独立按键的原理图,如图4.6所示。
图4.6独立按键原理图
四个按键分别对应着P3.4P3.5P3.6P3.7。
此处为低电平有效。
此处还有一个很重要的问题,在使用的过程中会遇到按键抖动,可能会出现按键不明显或达不到预期想法的情况,此时要做的就是防抖,正如之前第二章所述的一样,在按键按下或释放的时候,由于机械弹性作用的影响,会有一定时间的触点机械抖动,抖动的时间在5-10ms,所以为了使其不会导致判断