单片机模拟电梯控制系统设计详解
摘要
电梯作为人们出行和楼层货物运输的重要工具,对其进行研究具有重要的实际意义。针对电梯控制逐渐
趋于大众化,已经成为人们必不可少的工具,对其需求量的增加,本文设计了模拟电梯控制系统,着力于模拟电梯
控制的研究并对垂直运输工具电梯运输规律的简单模拟。该系统采用STC89C51作为主控芯片,软件采用了
KeiluVision4软件编写,软件部分通过扫描按键是否按下,判断高低电平信号并将用户请求信息发送到CPU,单片机
接收到信息后发送指令给各个模块。硬件部分主要是由单片机最小系统部分、声音模块、按键模块、显示模块、电
机模块构成,可实现电梯楼层号数码管显示,电梯升降状态二极管箭头显示,电梯上升时电机顺时针转动,电梯下
降时电机逆时针转动,到达目标楼层时蜂鸣器提示功能。本设计硬件设计较为简单,结合软件,能够实现八层电梯
运行的基本功能。
关键字:电梯控制系统STC89C51
1.电梯模拟控制系统研究的目的和意义
随着社会的不断进步,单片机控制系统可以快速解决防干扰问题,有效解决上下楼层间的运输困难。电梯的方
便快捷、性能稳定等特点受到广大使用者的喜爱。电梯应用不断扩展以不同的功能满足人们多样化的需求。在未来
社会的不断发展中,电梯将成为人们生活中离不开的交通工具。科学技术的发展的经济实力的提升给人们带来了科
技,电梯作为新世纪的高科技产品,逐渐成为当今人们受欢迎的工具,电梯系统也在不断地完善,在未来将会变得
更加安全,更加智能。所以,设计一个既简单成本又低的电梯控制系统,不仅可以提高人们的实践技能,也可以加
深人们对电梯控制的理解和学习,方便了人们的日常出行。尤其是对一些行动不便的老人,爬楼梯不再变得困难,
大大提高了人们出行和工作的便利性。
本设计的模拟电梯控制是基于51单片机加上基本外围电路组成的。51系列单片机在市场上得到了广泛的应用,
因其体积小、重量轻、价格低等优点受到大多数学习者的青睐。电子产品的使用给人们的生活和生产带来了极大的
便利。自远古的农耕时代到如今的智能时代,无不在证明着科技给人们带来的福祉。电梯也是其中的产物。在未来
的社会发展中,电梯的应用将更加广泛,成为现代城市的血液,具有广阔的发展前景。
2.电梯国内外研究现状和发展方向
(1)电梯的发展现状
目前,大多数电梯控制系统采用继电器或可编程逻辑控制器(PLC)控制方法,但是其缺点是成本很高而且需要米
用三相电路。
如今,随着科学技术的加速发展,电梯的利用率得到了提高。与此同时,电梯控制系统需要与时俱进。近年
来,随着高层建筑的增多,电梯的使用越来越普遍,产业融合程度不断加强。在我们的生活中,电梯的应用越来越
广泛,电梯行业出现了多个行业研发巨头,包括如今的西门子等。每个巨大的开发团队将有数百或数千人,每个开
发团队将包括开发系统所需的所有人员。
一些人最初认为电梯是简单的绳索或链条提升机。而电梯本质上是一个平台,通过机械手段拉或推。现代的电
梯由轿厢(也称为“客舱”、“车厢”)组成,安装在一个封闭空间的平台上,这个空间称为竖井或有时称为“井
道”。在过去,电梯的驱动机构是由蒸汽和水液压活塞或手动驱动的。在“牵引式”电梯中,汽车是通过滚动钢索
在一个深槽滑轮上牵引的,在行业中通常称为滑轮,汽车的重量也是由配重平衡的。两部电梯是为了让它们始终朝
着相反的方向同步移动,并成为彼此的配重。
(2)国内外电梯研究现状
近年来,地球人口迅速增长,科学技术水平有了很大的提升。与此同时,各种行业也在迅速发展。自工业革命
之后,越来越多的高楼都被建起来了。建筑业的兴起,同时也带来了许多问题,比如高层建筑的上下运输,当然这
难不倒聪明的人类。人们研究出了电梯,随之而来的就是电梯业的兴盛,电梯的发明确实为人们带来了许多便利,
方便了人们的生活。
据国外相关资料显示,早在古埃及时期,一些起重机械是人力驱动的,金字塔就是在那个时候建成的。1858
年,创造了电梯行业的奇迹,由美国人通过皮带传动和蜗轮减速的机研制出了世界上第一台电梯。1878年,第一台
液压梯在英国出现,随后就出现了液压升降机,至今仍在使用。电梯发明后,以电力为动力源的电梯业迅速发展。
工业革命之后,各大工业开始迅速发展,电梯也随之变得更加受欢迎。
我国使用电梯的历史悠久。二十世纪八十年代中期以后,我国经济政策开始转变,开始逐渐重视工业发展。如
今被世界称为“基建狂魔”的我们,名声早已享誉全球。我国由最初的改革开放之后的经济特区建设,建筑行业便
有了起色。那时建有高楼的城市似乎被人们看作是经济发达的象征。高楼的崛起当然更离不开电梯,可以说没有电
梯的存在,高层楼房将变得不再为人们所追求,那么高楼的建设将变得毫无意义。如今城市中的高楼随处可见,在
高楼不断崛起的同时,电梯行业的增长速度逐渐加快,电梯产量也在快速增长。数据显示,2021年中国电梯产量为
154.5万台,同比增长20.5%。
第1章系统总体设计
1.1电梯系统简介
电梯控制系统是一个复杂的系统,控制方式也多种多样,一般包括:信号控制、集选控制、并联控制、群控控
制。目前市场上的硬件控制电梯有两种类型,即单片机和可编程逻辑控制器(PLC)。电梯如今是高层建筑的运输工
具,也是现代物质文明建设和社会发展的标志,是复杂运输设备机电一体化发展的标志⑴。电梯一种电缆辅助、液
压缸辅助或滚轮轨道辅助的机器,用于在建筑物、船只或其他结构的楼层、水平甲板之间垂直运输人员或货物。它
们通常由电机提供动力,驱动牵引电缆和平衡系统(如提升机)。但也有一些是通过泵的作用提升重物,就如千斤
顶类似的活塞装置。
在农业和制造业上,电梯常用作输送设备,用于提升物料。电梯许多种类型,如链式和斗式提升机,利用阿基
米德螺旋原理的谷物螺旋输送机等。在如今的多层建筑中,电梯就显得格外重要了。为了节约土地和适应经济的发
展,高层建筑的垂直运输已经成为一个突出的问题。电梯作为解决这一问题的一种方式,在人们工作和生活中的主
导地位变得更加突出。电梯的组成一般为:
(1) 牵引系统:主要功能是输出和提供动力,使得电梯可以正常运行。一般情况大部分电梯都是由电机提供
动力。
(2) 导向系统:由固定的滑轨组成。主要是限制电梯桥箱的运动方向,使得电梯只能沿着滑轨方向做升降运
动。
(3) 控制系统:主要是对电梯的运行实行操纵和控制。通常所用的控制系统为PLC和单片机。
(4) 安全系统:此系统是非常重要的环节,主要是为了确保电梯运行正常。当出现突发情况时,能够对整个
系统起到保护作用,从而可以更大程度保护用户的人身安全。比如电梯系统的自锁功能,当电梯处于失控状态时,
能够将电梯所在的状态锁住,使其不再下坠。
1.2设计方框图
设计方框图如图1-1所示,本设计由按键模块、复位电路、电源电路、显示模块、电
机模块、声音模块组成。
图1-1设计方框图
1.3总体设计方案选择
由于本设计是模拟电梯控制系统的设计,故只设计了简单的控制电路。但是并没有桥箱、红外防夹等完善的控
制系统,该系统仅用于广大学者深入了解电梯的工作原理。
在设计硬件电路之前,有必要确定要使用的元器件和设计方案。通过比较市场上各个模块的几个部件或型号,
选择最合适的硬件,在满足设计要求的前提下,充分发挥设备的最大效果。
1.3.1主控芯片选择
方案一:STC89C51单片机,具有功耗低、性能高、内存充足、设计简单、易于写入程序等。可以采用C语言编
程,具有开发简单、在线下载编程、成本低等优点。
方案二采用STM32F103单片机,其核心是ARM32位的Cortex-M3CPU,最大实际工作频段72MHz,单阶段乘法和硬件
除法,虽其性能优于51系列单片机虽其性能优于51系列单片机,但由于封装多采用贴片式,引脚较密,不容易焊
接,而且价格比较昂贵。
考虑到价格和实现的功能,优先选择STC89C51单片机。
1.3.2显示模块选择
1.楼层号显示选择
方案一:lcd1602液晶显示屏。可以实现字符显示,但只能通过并行方式驱动,体积较大,占用单片机I/O口较
多,且价格较为昂贵
方案二:数码管显示。数码管是由多个字段发光二极管按照一定得图形及排列封装在一起,可显示时间数值,使用
起来相对方便,程序设计和硬件,连接都很简洁,且价格便宜。
综上可见,选择一位数码管显示更好。
2.楼层上下状态显示选择
方案一:发光二极管灯珠。发光二极管是最常用的元器件,适用于各种场合。这种廉价的灯珠用于各种显示,
受到大多数用户的青睐。
方案二:led88点阵。使用13个led灯珠成88阵列排布,采用整体封装的形式,这也导致了维修更换比较困
难,而且价格比较昂贵。
综合考虑,选择发光二极管灯珠较为合理。
1.3.3电机模块选择
方案一:直流电机。转速较快,价格低廉,但是编写程序控制电机正反转比较复杂,噪音大。
方案二步进电机。转速较慢,价格较为昂贵,程序编写控制电机较为容易,噪音小。一般来说,直流电动机通
常是指有刷直流电动机。有刷直流电动机只能在合适的电压下才能启动,但其转数难以精确控制。步进电机是根据
节拍工作的,可以以很小的角度旋转。
本着程序简单化的原则,选择使用步进电机作为动力输出元器件,本设计使用的是28BYJ-38型号的步进电机。
1.3.4按键模块选择
器件一:独立按键。每个按键独自占用一个I/O口,编程简单,性能稳定,价格低廉,易于操作。
器件二:矩阵键盘。键的结构更复杂的安排比独立安排,动态扫描检测的关键状态,复杂的编程,电路比较复
杂。但是各个端口能够得到充分的使用,适合复杂的控制。但对电梯的控制来说,并不是很合理。
综上可知,应选择独立按键作为控制按键。
1.3.5声音模块选择
方案一:有源蜂鸣器。由于其内部含有震荡源,所以只要加上电源就会发出声音,但是其价格较为昂贵。
方案二:无源蜂鸣器。内部无震荡源,需要加上一个驱动信号才能使其鸣叫,价格比较便宜。
参考其成本和实现功能的条件下,优先选择无源蜂鸣器。
1.3.6电源电路选择
本设计采用5V直流电为系统提供能源,5V直流电较为普遍,电压低,可直接连接单片机,操作简单,不需要经过变
压处理。
第2章系统硬件设计
2.1单片机概述
2.1.1单片机的简介
单片机(MCU)最早由美国英特尔公司开发。它是一种集成电路芯片,采用超大规模集成电路技术,中央处理器
具有很强的数据处理能力。由于其简单、性能可靠、工作稳定,赢得了广泛的赞誉。随后推出了MCS-51系列单片机
系统,这种单片机的各种功能的引脚都采用集成的方式封装。20世纪90年代以后,随着科技的发展和电子产品的不
断更新,单片机的技术得到了空前的提升。
单片机已经和我们日常生活离不开,无论是在工业还是农业,都已和单片机紧密联系在一起,极大方便了我们
的生活,提高了我们的生活质量,并且单片机的成本也是极其低廉的。因此,鉴于以上这些优点,单片机变得越来
越受欢迎。
2.1.2单片机的引脚及功能
1.单片机引脚如图2-1所示。
U1
4— Pl.0 VCC
t Pl.l (ADO)PO.O —
4— Pl.2 (ADI)PO.l
Pl.3 (AD2)P0.2
-y— Pl.4 (AD3)P0.3 —
Pl.5 (AD4)P0.4 —
Pl.6 (AD5)P0.5 —
Pl.7 (AD6)P0.6
RST (AD7)P0.7 —
jy— P3.0(RXD) EA/VPP
73— P3.1(TXD)ALE/PROG
■^― P3.2(INTO) PSEN —
P3.3(INT1) (A15)P2.7 —
77- P3.4(T0) (A14)P2.6 嗤
诋一P3.5(T1) (A13)P2.5 —
器一 P3.6(WR) (A12)P2.4
P3.7(RD) (A11)P2.3 -3^
XTAL2 (A10)P2.2 —
耘 XTAL1 (A9)P2.1
GND (A8)P2.0
MCU
2.单片机各I/O口功能说明如表2-1
表2-1单片机各引脚功能说明
引脚引脚
名称 对应功能与作用
P0
口
P0.
0~P0.
7
P0 口能够用于外部程序数据存储器,它可以被定义为数 据/地址的第八位[8]。
在flash编程期间,P0端口可用作输入端口。当flash 进行校验时,需要将P0端口输出为原码,这
时候此端口的 电平必须要为高电平。
P1
口
P1.
0~P1.
7
P1 口内部含有上拉电阻,它也有八位的输入和输出端口。
P1 口管脚写1后,被内部上拉为高电平,可用作输入。P1 端口也是单片机常用的输入和输出控制端
口。
40引
脚
VCC 单片机电源4.5-5.5V且为正极
9
P2
口
P2.
0~P2.
7
P2 口内部含有上拉电阻,同样也有八位的输入和输出端 口。使用P2端口访问16位地址外部数据存储器
或外部程序 存储器时,P2端口的输出地址高8位。当地址为“1”时, 它利用内部上拉功能,输出高电
平。
18引
脚
XTAL2内部时钟电路的输入、反向振荡放大器的输入口
19引
脚
XTAL1反向振荡器的输出
20引
脚
GND 单片机数字地(负极)
29引
脚
PSEN 改引脚为外部程序存储器的一个选通信号口。因本系统 没有用到此端口,故在此不做详细介绍。
30引
脚
ALE
/PROG
访问外部存储器时,地址锁存允许的输出电平用于锁存 地址的状态字节。在flash编程期间,该引脚用
于输入编程 脉冲。因此,它可以用作外部输出或定时的脉冲。
31引
脚
EA
/VPP
当/EA保持较低时,外部程序存储器(0000H-FFFFH)在 这段时间内,无论是否有内部程序存储器。在加
密模式1中, /EA将内部锁定以重置;当/EA终端保持高电平时,内部程 序存储器存储在此处,也是内
部和外部程序存储器的选择引 脚[3]。
注:单片机接标准的TTL电平,需要将5V直流电转换后才能供单片机使用。
2.1.3单片机最小应用系统介绍
该部分主要包含单片机、复位电路、时钟电路。原理如图2-2所示。上文已经对电源做了简单的介绍且电路原理
较为简单,故这里电源部分不再赘述。
iY1_D1-,
12MHZ——C11920-VCC 40 7 39_1—1 29_25_ 2423 22 21[VCC30P30P
GND
图2-2最小系统原理图
晶振部分:晶振是数字电路中最常见的时钟元件,内部含有振荡器,在单片机系统中起着重要的作用。这一部
分是微控制器必要的时钟频率,并且所有单片机执行指令都是基于此建立起来的。微控制器运行速度快慢和晶振频
率大小成正比,如今32位的单片机晶振频率最高可达72MHZ。51单片机中最常用的晶振频率为11.0592MHz和12MHz,
可以根据不同的场合应选择相应的晶振频率。
复位部分:主要功能是在通电之后,为单片机提供复位信号。等到单片机的电源处于稳定时,复位信号就会自
动取消。复位电路开启之后,单片机会回到初始工作状态。为了使单片机保持在复位状态,一般都要加上复位电
路,保证了整个电路的稳定性。也可防止单片机发出和执行错误的指令,同时提高电磁兼容性4。
2.3按键模块介绍
本设计采用8个独立按键作为用户呼叫按键,使得电梯到达相应的楼层。
2.3.1独立按键简介
独立按键用处很广,在触屏时代还未到来之时,按键几乎占据了所有电子市场,最常见的按键开关是轻触的四
脚开关。它的特点就是手动按下松开后,开关可以复位。在单片
机的组成系统中,独立按键利用它独特的特点,可以为单片机提供脉冲,单片机接受到相应的信号后,会执行
相应的指令[5]。
2.3.2独立按键模块设计
10
按键模块原理图如图2-4所示。共8个独立按键分别对应第1-8层⑹,每个按键对应
一个发光二极管,用来判断按键是否响应。
捋.O(RXD) P3.1(TXD) P3.2UNT0) P3.3UNTI) P3.4(T0) P3.5(T1) P3.6(WR) P3.7(RD) XTAL2
2.4显示模块介绍
2.4.1晶体数码管简介及其原理
数码管是一种显示数字和其他信息的电子设备。由于其价格便宜使用性能良好,在电器方面广泛用于显示器、
智能洗衣机、电磁炉等。
1.数码管简介
(1)数码管可分为共阳极数码管和共阴极数码管。因该电路只用到了共阳极数码管,故只对共阳极数码管进行
详细介绍,共阴极数码管与共阳极数码管功能类似[7],在此不再详述。
共阳极数码管由8个发光二极管组成并将其阳极连接在一个公共端(正极),一般情况下,公共阳极接高电平或
正极。数码管原理图如图2-5所示。通过驱动电路让相应的二极管字段发光,组合成不同的数字或字符[5]。
(2)Led数码管按驱动方式不同可以分为静态和动态两类。
数码管是一种显示十进制数字的电子显示设备,是较复杂的点阵显示的替代方案。
典型的是7段数码管显示,在封装中带有小数点。七段数码管显示广泛应用于数字时钟、电子表、基础计算器和
其他显示数字信息的电子设备。但缺点也很明显I/O口多,增加了整个电路的复杂性等。动态驱动也是最常用的驱动
方式,可用于多位数码管的显示⑻。
2.数码管电路实现功能
该数码管管脚与单片机的P0.0-P0.7口分别相连,而且还并联了一个1k的排阻,单片机送电之后各I/O口默认高
电平。当电梯上升或下降期间,单片机会不断接收到段码,让数码管显示楼层号。当楼梯停留在目标楼层时,数码
管将持续显示该楼层号。
2.4.2上下箭头及其他显示
上下箭头由12个发光二极管组成,共占用了单片机三个I/O口,分别对应单片机的
P2.0 口、P2.1 口、P2.2 口。
(ADO)PO.(J(ADl)PO.l(AD2)P0.2(AD3)P0.3(AD4)P0,4(AD5)P0.5(AD6)P0.6P0.7ALE/PRQG i PSEN l (A15)P2.7(A14)
P2.6(A13)P2.5(A12)P2.4(A11)P2.3(A1O)P2.2(A9)P2.1 (A8)P2.0图2-6上下箭头显示电路图
为了控制更为简便,方便控制,本系统采用发光二极管组成的显示模块。上下箭头图形显示用到了12个led灯,
8个电梯升降按键显示灯。功能是按下相应楼层按钮,到达指定楼层后,相应的指示灯熄灭。如果按键都没有按下
时,它们将处于熄灭状态。当电梯启动时,状态指示灯就会被点亮。电梯上升时,向上箭头显示灯亮。电梯下降
时,下降箭头显示灯亮。电梯不运行时,上下箭头显示灯都熄灭。每个按键都有相应的指示灯,如图2-5中的led
灯。按下按键时指示灯将亮起,电梯执行指定操作后指示灯将熄灭。例如按下二楼的按键,二楼指示灯亮起。当电
梯到达二楼时,二楼指示灯将熄灭。一般电子设备的工作电流约为25毫安,需要增加上拉电阻驱动电流,并固定在
高电平。默认情况下,上行指示灯亮起。
2.5声音模块
该模块用到了无源蜂鸣器,众所周知,蜂鸣器用于各种提示或警报等场合,用途非常广泛。
2.5.1蜂鸣器介绍
常见的蜂鸣器分为有源蜂和无源。蜂鸣器是一种音频信号设备,可以是机械的或压电的,典型用途包括报警设
备、计时器等。下面将主要介绍这两种蜂鸣器的特点及相关功能。
1.有源蜂鸣器
常见的可分为压电式和电磁式,使用直流电流工作。压电元件可以由压电音频放大器驱动的振荡电子电路或其
他音频信号源驱动。电磁式蜂鸣器由振荡器、电磁线圈等组成。由于它内部有一个简单的振荡电路,所以可以将直
流电转换成一个特定频率的脉冲信号,使蜂鸣器发出声音。
2.无源蜂鸣器
无源蜂鸣器是利用电磁感应现象,通过音圈连接交流电形成电磁铁和永磁体相互吸引或相互排斥来促进振膜发
声。但不能直接连接蜂鸣器的引脚,一般需要加上一个NPN型三级管,由于单片机的引脚驱动有限,加上三极管可以
放大电流,通过三极管将小信号放大后驱动蜂鸣器,因此需要接一个三极管。
2.5.2声音模块电路功能及原理
无源蜂鸣器电路如图2-7所示。该模块与单片机的P2.7口连接,当电梯到达用户呼叫的楼层时,蜂鸣器就会发出
“嘀”的一声,提示用户已到达。单片机的I/O口能够直接通过高低电平的变化来控制蜂鸣器的鸣叫。
U1 0 9 8 7 6 5 4 3 21 4 -3-3』3-3 -3-3- 3-3-3 一—M Pl.0 vcc
—Pl.I (ADO)PO.O
―P1.2 (ADl)PO.I
—^-\ Pl.3 (AD2JPO.2
―Pl.4 (AD3)PO,3
―X P1.5 (AD4)P0.4
―Pl.6 (AD5)P0.5
―X Pl.7 (AD6)P0.6
/ RST (AD7)PO,7
岩 P3.0(RXD) EA/VPP
; P3.1(TXD)ALE/PROG
4 P3.2UNT0) PSEN
:P3.3(INT1) (A15)P2.7 脖 P3.4(T0) (A14)P2.6
;P3.5(T1) (A13)P2.5
13
冬 P3.6(WR) (A12)P2.4
:!i P3.7(RD) (All)P2.3
q XTAL2 (A10)P2.2
XTAL1 (A9JP2.1
GND (A8)P2.0
图2-7无源蜂鸣器电路图
2.6电机模块介绍
2.6.1ULN2003A 芯片
ULN2003A是单片机集成高电压、大电流达林顿管阵列,内部包含七个独立的达林顿管驱动电路I9】。芯片封装
图如图2-8所示。为了使输出端口提供持续电流,COM端必须连接到负载的电源,只有这样才能形成连续的流动回
路。达林顿晶体管通过连接两个双极晶体管直接使用直流耦合实现电流放大功能,接着被第一个晶体管放大的电流
进一步被第二个晶体管放大。所得的电流增益是两个分量晶体管的增益的乘积。
ULN2003A中的七个达林顿管可以独立工作,除了连接到各自公共阴极二极管。在本设计中,由于单片机的I/O口
的电流较小,直接连接步进电机很难驱动电机,所以用此芯片可以将I/O口的电流放大从而驱动电机转动。
1B 16 1C
2B 2 15 2C
3B 3 14 3C
4B 4 13 4C
5B 5 12 5C
6B 6 11 6C
7B 7 10 7C
E 8 9 COM
2.6.2步进电机介绍
本设计采用了步进电机作为动力输出元件。步进电机是一种精度较高的电机,常见的有:反应式、混合式和永磁
式[10】。众多周知,无刷电机有许多优点,比如精度高、寿命长、噪音小等优点是直流电机所达不到的,所以深
受广大用户的喜爱Hi]。电机的使用也是无处不在,几乎所有的动力系统都少不了电机的参与,熟悉电机的结构和
工作原理也是非常重要的,这是我们控制电机的首要工作,下面将介绍步进电机的相关工作原理。步进电机结构图
如图2-9所示。
图2-9步进电机结构示意图
为了实现额定转矩,步进电机中的线圈在每一步都必须达到额定电流。由运动转子产生的绕组电感和反电动势
倾向于抵制驱动电流的变化,因此随着电机加速,在全电流下用的时间更少,从而降低了电机的转矩。当转速进一
步增加时,电流如果达不到额定值,最终电机将停止。
(a)单四拍(c)八拍电机工作(b)双四拍 步进步进电机的转动同直流电机有所区别,这种四相式的电机是
通过一定的脉冲转动的。
2-10
时序波形
首先应该进行脉冲分配,其作用就是产生一定的脉冲改变通电的顺序HI。步进电机工作时序图如图2-10所示。
2.6.3电机模块设计
该模块电机使用的是四相八拍式的步进电机,驱动芯片占用单片机四个I/O口,分别对应P2.3~P2.6引脚。
ULN2003A以其大电流、高电压容量而闻名。驱动器可以并联输出更高的电流,常与步进电机的接口相连。当电机要
求高额定值,不能由其他接口设备提供,
这时就需要用到此芯片。单片机通过I/O口连续输出一定的脉冲给ULN2003A电机驱动芯片,就可以使得电机持续
转动了。电机模块原理图如图2-11。
图2-11电机模块原理图
附录B系统总电路
第3章系统软件设计
3.1软件编译环境
本设计采用keiluVision4软件进行程序的编写,部分代码详见附录A。而后对Proteus软件进行电路的相关设
计,将所需要的各个虚拟元器件放置在合适的位置,并将其相关引脚进行连接。硬件仿真图详见附录B。
3.1.1Proteus软件简介
Proteus是世界上知名的EDA工具,也就是仿真软件。不管是原理图设计还是代码调试,该款软件都能够实现,
可见该软件强大之处[13]。
Proteus主要有智能原理布局、单片机软件调试、自动PCB布局和布线等功能[14]。
Proteus也可以对多种51系列单片机进行仿真。可实现同外围电路相结合的仿真,最后切换到PCB设计,这样就完成了整个系统从原理到实物的设计。
3.1.2Keil uVision4 软件简介
此款软件用来编写程序,检测程序,将汇编语言、C语言等语言翻译成单片机能够识别的语言。在软件的单片机
库里有多种型号的单片机可供选择,编译后的文件名以.hex作为后缀,但需要将直流电转换成TTL电平,可直接将程
序烧录到单片机ROM中。它可以结合proteus仿真软件使用,具有编辑、编译、仿真等功能。而且使用简单,易于操
作,界面非常友好,在调试程序过程中更能体会到其功能的强大。
软件的编程设计是单片机设计很重要的部分,也是实现系统功能的关键。单片机编程常用的语言是C语言和汇编
语言[15]。
3.1.3程序编译及电路仿真
在仿真软件中将原理图绘制完成后,可将编译后的.hex后缀的文件导入仿真软件的单片机内,再进行模拟仿
真。在使用proteus仿真过程中,能够看到整个电路的运行状态,可随时对电路和程序每个环节进行修改调整,避免
了利用实物模拟操作的繁琐,这也是仿真的好处。
3.2主程序流程图
图3-1主程序流程图
在程序编写之前需要对整个流程有大致的了解。在上文中,我们对程序的流程图做了大致的安排,为了方便构
思程序。当程序更为复杂时,经常需要编写子程序然后调用,根据相应的功能模块分别编写子程序,最终在主程序
中调用,就这样形成了一个完整的程序。在整个系统设计中,使得电梯能够高效率的进一步运作,判断是否停靠在
相应的楼层,之后再判断是上升还是下降。
程序默认停留在第一层,有高层呼叫下楼时,电梯上升接人,当更高层有人呼叫下楼和更低层有人呼叫下楼时
,电梯会先上楼接人最后再下楼接人。当电梯处在最高层时,地面楼层都有呼叫,电梯将会先下降到最底层接人,
然后继续上升依次接其他楼层的人。
以上是电梯的实际运作情况。要想知道电梯在某一时刻的状态,我们就需要判断电
梯是上行还是下行。然后才能对电梯进行下一步的判断,规划好电梯的合理运行路线。
流程图如图3-1所示。
3.3子程序流程图
图3-2子程序流程图
该子程序先判断电梯是否在当前所在楼层,如果在,则再次进行判断;如果不在,判断电梯是否处于运行状
态。如果电梯运行,接着要启动电梯进行一定时长的延时。之后判断电梯是否要上升,若要上升,上箭头的指示灯
打开,下箭头指示灯关闭,并且电机要正转,电梯下降时则反之。单当片机通过判断是否已经到达用户请求的楼
层,当到达时,打开蜂鸣器提示到达楼层并用数码管显示楼层号。如果没有到达则继续返回判断是否上升。子程序
流程图如图3-2所示。
附录A系统源程序
/*************定时器0初始化程序***************/
EA = 1;
〃开总中断
TMOD = 0X01;
//定时器0、工作方式1
ET0 = 1;
〃开定时器0中断
TR0 = 1;
〃允许定时器0定时
/****************** 主程序 **********************/ void main()
(
uchar i;
P1 = 0x00;
P0=0X00; //单片机IO口初始化
time_init(); //定时器初始化
while(1)
(
key(); 〃按键程序
if(key_can < 20)
(
if(dt_s_x == 0)
(
value2 = 0;
flag_stop = 1;
}
key_with();
tiandi_shang_xia(); 〃当电梯不动时、判断是向上、还是向下
P0 =smg_du[dt_value]; //显示
if(flag_100ms == 1)
(
flag_100ms = 0;
td_dis();
//电梯处理函数
}
if(flag_start == 1)
(
for(i=0;i<4;i++)
(
if(flag_z_f == 0)
(
u=i;
switch(u)
(
/*case 0: IN1_A=1;IN1_B=0;IN1_C=0;IN1_D=0;break;
case 1: IN1_A=0;IN1_B=1;IN1_C=0;IN1_D=0;break;
case 2: IN1_A=0;IN1_B=0;IN1_C=1;IN1_D=0;break;
case 3: IN1_A=0;IN1_B=0;IN1_C=0;IN1_D=1;break;*/单四拍
case 0: IN1_A=1;IN1_B=1;IN1_C=0;IN1_D=0;break;
case 1: IN1_A=0;IN1_B=1;IN1_C=1;IN1_D=0;break;
case 2: IN1_A=0;IN1_B=0;IN1_C=1;IN1_D=1;break;
case 3: IN 1_A=1;IN1_B=0;IN1_C=0;IN1_D=1;break;//A 拍
}
}
else
{
20
u=3-i;
switch(u)
{
/* case 0: IN1_A=1;IN1_B=0;IN1_C=0;IN1_D=0;break;
case 1: IN1_A=0;IN1_B=1;IN1_C=0;IN1_D=0;break;
case 2: IN1_A=0;IN1_B=0;IN1_C=1;IN1_D=0;break;
case 3: IN1_A=0;IN1_B=0;IN1_C=0;IN1_D=1;break; */
case 0: IN1_A=1;IN1_B=1;IN1_C=0;IN1_D=0;break;
case 1: IN1_A=0;IN1_B=1;IN1_C=1;IN1_D=0;break;
case 2: IN1_A=0;IN1_B=0;IN1_C=1;IN1_D=1;break;
case 3: IN1_A=1;IN1_B=0;IN1_C=0;IN1_D=1;break;
}
}
// delay_1ms(1);
Delay(270);
} i=0;
/*************定时器 0 中断服务程序***************/ void time0_int() interrupt 1 (
static uchar value;
TH0 = 0x3c;
TL0 = 0xb0; // 50ms
value ++;
if(value %2== 0)
(
flag_100ms = 1 ;
}
}
第4章实物制作及系统调试
4.1系统仿真测试
本系统采用proteus仿真软件进行电路的仿真,仿真如下:
(1)系统开启时的默认状态下的仿真图,如图4-2。
图4-2软件默认状态仿真图
(2)系统到达第四层时,第三层、第五层、第六层用户都呼叫时的状态仿真图,如图
4-3。
图4-3系统测试仿真图
仿真过程中需要对代码一遍又一遍的修改,对仿真软件中的元器件不断调试直到达到要求为止。仿真中的实验
只是在理想状态下的运行情况,与实际的电路还是由一定差别的,但能大致验证电路的总体规划思路是否正确。所
以仿真的完成并不说明实验的真实现象,只是程序对整个电路的模拟控制,需要在实物调试时再做进一步的调试修
改。
4.2实物制作
4.2.1元器件清单
元器件清单见表4-1。根据以上功能完成元器件的选择。
表4-1元器件清单
元器件名称 数量
STC89C51 芯片 1
ULN2003A驱动模块 1
一位共阳极数码管 1
导线 若干
28BYJ-48步进电机 1
红色LED灯珠 20
独立按键 9
自锁开关 1
续表4-1元器件清单
无源蜂鸣器 1
色环电阻(排阻) 若干
NPN型9014三极管 1
12MHZ晶振 1
单片机底座40P 1
其它
4.2.2电路焊接
在前面的准备工作完成后,就要根据以上的元器件清单购置相关的器件焊接电路。在焊接时,需要选择适当温
度的电烙铁,电烙铁温度过高或过低都会影响焊点,使得焊接造成线路不良等问题。焊接元件时应按由小到大的原
则,还要注意元器件的极性。焊接后的实物图如图4-1所示。
安装芯片时,芯片通常不直接焊接在电路板上,而是在芯片在电路中的位置焊接一个IC插座。所有元件焊接完
成后,将芯片插入IC插座,以避免方向相反时及时修改。当芯片烧坏时,无需焊接,只需更换芯片即可。
图4-1焊接实物图
4.3电路调试
1.检查测试焊接完成的PCB板,观察有无断路和短路点。如果有则使用电烙铁加以补焊。在不清楚是否遇到短路情况
时,需要用到万用表测试。电路板通电之前必须要先使用万用表测试是否短路,否则可能烧毁元器件。
2.为了确保所有电路都处于导通状态,需要使用万用表检测各个线路是否正确。观察各个元器件工作是否正常,确
保整个电路能够正常运行。
3.对电路各个模块进行检测,在为单片机上电后,测试各个I/O口的电平状态,一般情况下为高电平。上电之前,应
注意单片机芯片放置是否倒置。如果没有注意到正负极的正反,使得线路的连接错误,则很可能导致单片机发烫甚
至损毁。
4.将写好的程序烧录到单片机内,按下电源开关,用万用表检测按下按键后所在电平是否有变化。如果变低则正
常,反之则不正常。不正常时,应分析故障原因并及时解决。调试后的电路插电,运行测试。调试实物图如图4-4所
示。
图4-4实物运行调试图
本设计利用了51系列单片机作为核心控制芯片,加上相关外围电路设计了基于单片机的模拟电梯控制系统。以
上功能根据实际情况设计,实现了电梯上下状态的显示、楼梯到达相应楼层的显示、电机的正反转、到达楼层时发
出提示音的功能。但本设计也有许多不足之处,比如没有加入桥箱,红外防夹等外围设备和相关的安全电路,无法
更好的模拟与实际更为接近的控制系统。但就系统已有功能而言,基本实现了电梯的运行功能。
致谢
首先我要感谢我的指导老师陈晓,在课题的研究和论文撰写过程中,她悉心指导我的论文。在我遇到困难时,
在陈老师的指导下都迎刃而解。陈老师丰富的专业理论知识和尽职尽责的态度给我留下了深刻的印象。感谢老师的
我的精心培养,让我明白了做任何事都需充满积极客观的态度,并坚持不懈的做下去。
感谢在大学期间一起共同学习和生活的同学,我们真诚相待,和睦相处,共同度过了整个大学时光。感谢我的
女朋友王玉珍,是她在我遇到挫折时,给予我鼓励和前进的动力在她快乐时,分享喜悦,共同经历了这段难忘的青
春岁月。
感谢所有支持和鼓励我的人,在我接下来的人生中,将会为我带来无穷的知识财富。
作者:q_1039692211