基于单片机控制的电梯控制系统.docx

上传人:b****3 文档编号:3670409 上传时间:2022-11-24 格式:DOCX 页数:21 大小:23.47KB
下载 相关 举报
基于单片机控制的电梯控制系统.docx_第1页
第1页 / 共21页
基于单片机控制的电梯控制系统.docx_第2页
第2页 / 共21页
基于单片机控制的电梯控制系统.docx_第3页
第3页 / 共21页
基于单片机控制的电梯控制系统.docx_第4页
第4页 / 共21页
基于单片机控制的电梯控制系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于单片机控制的电梯控制系统.docx

《基于单片机控制的电梯控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电梯控制系统.docx(21页珍藏版)》请在冰豆网上搜索。

基于单片机控制的电梯控制系统.docx

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

 

单片机综合实验

 

实验报告

 

学院计算机与电子信息学院

 

专业电子信息工程班级电信11-班

 

姓名学号110340301

 

实验题目鉴于单片机控制的电梯控制器

 

系统环境Proteus指导教师左敬龙

 

实验时间2013年10月28日至2013年11月01日

 

实验报告评分:

_______

 

题目:

鉴于单片机控制的电梯控制器

班级:

电信11-姓名:

纲要:

单片机即单片微型计算机(Single-ChipMicrocomputer),是集CPU,RAM,ROM定,时,计数和多种接口

于一体的微控制器。

本设计介绍了鉴于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯内外

电路按键矩阵模拟检测模块、电梯外恳求发光管显示模块、楼层显示数码管模块、电梯上下运转显示模块等5部

分构成。

该系统采纳单片机(AT89S52)作为控制中心,内外使用按键按下与否而惹起的电平的改变,作为用户

恳求信息发送到单片机,经过单片机来控制电机的正反转,并且依据楼层检测结果控制电机停在目标楼层。

软件部分则使用C语言,利用查问方式来检测用户恳求的按键信息,依据电梯运转到相应楼层时,模拟按键惹起电平变化,送到单片机计数来确定楼层数,并送到数码管进行显示。

硬件设计简单靠谱,联合软件,基本实现了六层电梯运转的模拟。

 

重点词:

单片机,AT89S52,电梯,控制器。

 

1前言

跟着生活节奏的加速以及生活环境的不停改变,高楼大厦中电梯的应用也愈来愈普及,而如

何有效地使用电梯,是其能够智能化的稳固工作已经成为焦点。

进而,电梯即是高层住所、商铺、

旅馆、写字楼、库房等高层建筑不行缺乏的垂直方向的运输工具。

但是,1889年美国奥梯斯起落

机企业推出的世界第一部以电动机为动力的起落机,同年的纽约市马累特大夏安装成功。

跟着建

筑物规模的不停扩展,楼层也愈来愈高,对电梯的调速精度、调速范围等静态和动向特征也随之提出更高的要求。

因为传统的电梯运转逻辑控制系统采纳的是继电器逻辑控制线路。

采纳这类控制线路存在易出故障、保护不便、运转寿命较短、占用空间大等弊端。

而由单片机设计的控制系统能够跟着设施的更新而不停完美,能够更为完美地实现设施的升级,并且拥有价钱廉价、电路简单、保护简单等长处。

2整体设计方案

2.1设计思路

本次设计的基本思想是采纳AT89S52单片机作为中心,利用其丰富的I/O接口与外头电路配

合进行控制。

采纳准时器延时来控制电梯的地点校验,采纳1位LED静态显示来及时显示电梯所在楼层,并用ULN2003和移位存放器74ls595来驱动8×8LED点阵显示电梯所处的状态。

采纳行

列式键盘矩阵作为外呼内选电路,因为是6层楼,应采纳4×4矩阵键盘。

当电梯抵达目的楼层时电机停止,此时即可进、出乘客,乘客进入电梯以后可选择去哪一层,而后电梯依据乘客的选

择判断去哪一层,持续运转。

经过单片机控制电梯在上涨过程中只响应上涨呼喊,降落过程中只响应降落呼喊。

电梯的正常运转经过单片机的控制来实现。

方案比较

2.1.1.1键盘方案的比较与确定

方案一:

采纳单片机AT89S52与地点译码器74LS138构成控制和扫描系统,并用AT89S52

的串口对主电路的单片机进行通讯,这类方案既能很好的控制键盘及显示又为主单片机大大的减

少了程序的复杂性,并且拥有体积小,价钱廉价的特色。

可是该系统所接的按键数量有限,且占

用了对应主CPU的串行端口,按键出现的颤动现象也比较难解决。

所以在使用时遇到必定的限

制。

方案二:

采纳4×4矩阵按键实现电梯内部六个选层按钮和电梯外十个上下行按钮,正好十六

个按钮。

单片机采纳行和列扫描法来鉴别这16个按键中哪个按键被按下,并将其标号读入累加

 

1

 

器A里面,而后可依据每个按键的功能来经过单片机控制电梯的运转。

此方法占用的端口较少并且编程相对较简单,按键出现的颤动现象也比较简单解决。

方案一固然也能很好的实现电路的要求,但考虑到电路设计实质需乞降电路整体的性能,采纳方案二。

2.1.1.2显示方案的比较与确定

方案一:

采纳数码管显示。

数码管拥有低能耗、耐老化和精度比较高的长处,但数码管与单片机连结时,需要外接锁存器进行数据锁存,使用三极管进行驱动等,电路连结相对照较复杂。

但数码管只好显示少量的几个字符,显示的内容较少,基本上没法显示汉字。

方案二:

采纳LCD进行显示。

液晶显示屏(LCD)拥有功耗低、无辐射危险、平面直角显示以及影像稳固等,可视面积大,画面成效好,既可显示图形,也可显示汉字,分辨率高,抗干

扰能力强,显示内容多等特色。

别的,液晶显示器与单片机可直接相连,电路设计及连结简单。

鉴于以上剖析,上述两种方案平分秋色,因为显示楼层部分在实质中基本都是采纳大数码管

来显示的,并且本次设计针对的不过六层楼,所以只要要显示楼层数即可,不需要显示其余复杂

内容,故本次设计采纳数码管作为显示楼层元件。

2.1.1.3驱动电路的比较与确定

方案一:

采纳与步进电机相般配的成品驱动装置。

使用该方法实现步进电机驱动,其长处是

工作靠谱,节俭制作和调试的时间,但成本很高。

其原理方框图如图1所示。

 

图1采纳成品驱动器的原理方框图

方案二:

采纳互补硅功率达林顿晶体管TIP142T实现步进电机的驱动,采纳该方法实现步进

电机驱动,电路连结比较简单,工作相对也比较靠谱,成本便宜,技术成熟。

别的,为提升电路

的抗扰乱能力,驱动电路与单片机接口可经过光耦元件连结。

该方法的原理方框图如图2所示。

其长处是直接利用电压控制,反响延缓短,稳固性好,因为工作在饱和状态,所以效率很高。

足之处是因为使用分立元件,安装调试和保护相对麻烦,控制不妥时MOS管简单烧毁,且管子参

数不一致,致使驱动电流的不对称性,影响了控制精度。

 

图2采纳TIP142T实现步进电机驱动的原理方框图

鉴于以上剖析,方考虑到要制作出电梯小模型这类拥有实体性的设计,在此采纳方案一:

步进电

机来实现。

(1)方案确定

本设计采纳AT89S52单片机作为中心,配以适合接口作为输入输出通道。

并采纳4×4按键

矩阵开关电路作为外呼内选呼喊控制。

实质电梯控制系统准时控制步进电机的运转时间,进而比

较正确地确定车厢所在地点,本模型由4×4矩阵键盘作为楼层选择信号传输给单片机,尔后通

过74LS164从串口驱动数码管显示楼层数。

当电梯抵达所选层,电梯开门延时等候进人并选层,而后延时关门履行恳求,若无恳求则停在本层等候恳求。

2.2设计方框图

此电路方框图如图3所示,电路由复位电路复位后,经过软件设置显示电路显示,楼层感觉

电路立刻把电梯所在楼层经过单片机(AT89S52)经过显示电路显示出来;若有操作者在厢外呼

 

2

 

叫,由外呼喊电路把信号输入单片机(AT89S52),当车厢到达呼喊层(由准时器准时电路判断,电机控制电路控制电机正反转),则翻开电梯门,人进入后关门。

操作者经过选层电路把目的层见告单片机(AT89S52),控制电机把操作者送至目标楼层。

系统等候下次呼喊。

系统的正常工作由时钟电路来保证。

显示电路及时显示电梯所在的楼层地点。

 

2.2.1本电路主要由5大多数电路构成:

键盘电路、单片机最小系统电路、楼层显示电路、电机状态显示电路、延时电路。

此中单片机最小系统主要由复位电路和时钟电路构成。

电路复位后楼

层显示数字1表示电梯此时在一楼,显示电路经过74ls245驱动1位数码管显示,电梯楼层地点是由延时电路控制的。

电梯状态是经过一个发光管显示的,红灯亮表示电梯正在运转,红灯灭

表示电梯停止运转。

键盘电路采纳4×4键盘矩阵共16个按键,此中10个按键是各层楼外呼按键,6个表示电梯内部的选择键。

电梯的正常工作是经过对单片机写入程序控制的。

 

图3整体方框图

3设计原理剖析

3.1时钟电路的设计

此电路主假如复位电路和时钟电路两部分,此中复位电路采纳按键手动复位和上电自动复位

组合,电路如图4(右)所示:

此中9脚为单片机的复位端。

时钟电路如图4(左)所示:

晶振

采纳的是11.0592MHZ的,XATL2和XATL1分别为单片机的18和19脚.

 

3

 

图4最小系统电路

 

3.2

控制电路的设计

键盘矩阵控制电路的设计

因为本电路所需按键许多为了节俭单片机的

I/O口,应采纳队列式键盘矩阵。

本电路采纳的

是4×4键盘矩阵。

电路如图

5所示,

是接单片机的P1

端口矩阵键盘的键号由行号及

列号构成(行号从上到下挨次为

0、1、2、3,列号从左至右挨次为

0、1、2、3,如第一行的键

号分别为00、01、02、03),单片机采纳行和列扫描法来鉴别这16

个按键中哪个键按下,并将其

标号读入累加器A里面,而后可依据每个按键的功能来经过单片机控制电梯的运转。

下边将每

个按键的功能说明一下:

S-0:

一楼向上呼喊按键,此键按下表示一楼有人要乘坐电梯上楼,

并且单片机将此信号存入

固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-1:

二楼向上呼喊按键,此键按下表示二楼有人要乘坐电梯上楼,

并且单片机将此信号存入

固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-2:

二楼向下呼喊按键,此键按下表示二楼有人要乘坐电梯下楼,并且单片机将此信号存入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-3:

三楼向上呼喊按键,此键按下表示三楼有人要乘坐电梯上楼,并且单片机将此信号存入

固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-4:

三楼向下呼喊按键,此键按下表示三楼有人要乘坐电梯下楼,并且单片机将此信号存入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-5:

四楼向上呼喊按键,此按键按下表示四楼有人要乘坐电梯上楼,并且单片机将此信号存入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-6:

四楼向下呼喊按键,此按键按下表示四楼有人要乘坐电梯下楼,并且单片机将此信号存入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-7:

五楼向上呼喊按键,此键按下表示四楼有人要乘坐电梯上楼,并且单片机将此信号存

 

4

 

入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-8:

五楼向下呼喊按键,此按键按下表示五楼有人要乘坐电梯下楼,并且单片机将此信号存

入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-9:

六楼向上呼喊按键,此按键按下表示有人要乘坐电梯下楼,并且单片机将此信号存入固定单元,等到电梯运转到此楼层时判断能否该响应此呼喊;

S-A:

电梯内部选择去一楼按键,此按键按下表示电梯里的乘客要去一楼,单片机依据此信号控制电梯的运转;

S-B:

电梯内部选择去二楼按键,此按键按下表示电梯里的乘客要去二楼,单片机依据此信号控制电梯运转;

S-C:

电梯内部选择去三楼按键,此按键按下表示电梯里的乘客要去三楼,单片机依据此信号控制电梯运转;

S-D:

电梯内部选择去四楼按键,此按键按下表示电梯里的乘客要去四楼,单片机依据此信

号控制电梯运转;

S-E:

电梯内部选择去五楼按键,此按键按下表示电梯里的乘客要去五楼,单片机依据此信号控制电梯运转;

S-F:

电梯内部选择去六楼按键,此按键按下表示电梯里的乘客要去六楼,单片机依据此信号控制电梯运转;

 

图5键盘矩阵电路图

 

3.2.2电机正反转及开关门控制电路的设计

在实质中,带动电梯上下的电机一定用三相电机,在本设计中为了方便实现,用步进电机来表示电梯上涨或降落状态,若电梯处于上涨状态,则步进电机正转,同时,当抵达目的层以后,

则步进电机停止运转,相同,当电梯处于降落状态时步进电机反转,其余的相同。

如图6所示,在AT89S52的P1.0、P1.1、P1.2、P1.3口驱动步进电机。

 

5

 

图6电机正反转及开关门控制电路图

3.2.3楼层显示控制电路

本电路采纳一个8为数码管显示,楼层信号由单片机P2.0—P2.7担当,送给驱动

74LS245。

当电梯抵达指定楼层时,输出相应的BCD码,再由74LS48解码送给共阳八段数码管,进而显示正确的楼层。

如图7。

 

P2.0

2

18

4

a

DPY

P2.1

3

17

5

b

a

P2.2

4

16

7

c

f

b

P2.3

5

74LS245

15

9

d

g

P2.4

6

U2

1410

e

e

c

P2.5

7

13

2

f

d

P2.6

8

12

1

dp

g

P2.7

9

11

6

U1

dp

19

1

3

8

 

5v

 

4结束语

 

D1D2D3

 

图7楼层显示控制电路

经过此次单片机实习,使我在各方面都有了很大的提升。

我感觉查资料关于学习是特别重要的,又快又好的查找自己想要的资料,能够提升工作效率,在为期一周的课程设计里碰到的主要问题是在软件设计和制作电梯模型方面,经过和同学的议论以及老师的指导、自己的仔细探索,总算是达成了制作。

我在编程过程中有了一个深刻的领会:

思路必定要很清楚,每一步的目的是什么。

我设计的电梯用到了步进电机,实物出来时,有些功能仍能否是很理想,让我懂得了理论与实质的差距,也意识到理论与实质相联合的重要性。

在写程序时需要极大的耐心,一点一点的更正,达到想要的成效。

使自己的编程能力不停的提升!

 

6

 

参照文件

[1]叶挺拔.应用电子学[M].杭州:

浙江大学第一版社,1994

[2]朱承高.电工及电子技术手册[M].北京:

高等教育第一版社,1990

[3]阎石.数字电子技术基础(第三版).北京:

高等教育第一版社,1989

[4]廖常初.现场总线概括[J].电工技术,1999.6

[5]郭天祥.51单片机C语言编程——入门、提升、开发、拓展全攻略.北京:

电子工业第一版社,2009

 

附录

#include

#include<74HC595.H>

#include//内部包括延时函数_nop_();

#defineuintunsignedint

#defineucharunsignedchar

sbitled=P0^7;

unsignedcharcodetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharcodedigittab[2][8]={{0x00,0x10,0x20,0x7e,0x7e,0x20,0x10,0x00},/*"↑",↑*/

 

{0x00,0x08,0x04,0x7e,0x7e,0x04,0x08,0x00},/*"↓",↓*/

};

ucharcodeFFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};

 

7

 

ucharcodeREV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};ucharnum,num1,num2,floorin,floorstay,temp,cnta,cntb,rate;

uintdownin_flag,upin_flag,flag,timecount;

ucharcodetable[]={0xf9,0xa4,0xb0,0x99,0x92,0x82};

voidmotor_ffw();

voidmotor_ffz();

voidkeyscan();

voidmotor_turn1();

voidmotor_turn2();

voiddelay1(uintt)

{

uintk;

while(t--)

{

for(k=0;k<125;k++)

{}

}

}

 

voidmain()

{

P2=0x7f;

TMOD=0X01;

TH0=(65526-1000)/256;//准时1ms

TL0=(65536-1000)%256;

EA=1;//开总中止

ET0=1;//启动准时器0

 

floorstay=1;

P0=table[floorstay-1];

while

(1)

{

keyscan();

 

if(floorin

{

 

TR0=1;

while(!

flag);

flag=0;

}

if(floorin>floorstay&upin_flag==1)

{

TR0=1;

 

8

 

while(!

flag);

flag=0;

}

led=1;

}

}

void

motor_ffz()

///步进电机反转

{

uchari;

uint

j;

for(j=0;j<16;j++)

//转1*n圈

{

//退出此循环程序

for(i=0;i<8;i++)

//一个周期转

45度

{

P1=REV[i];

//取数据

delay1

(1);

//调理转速

}

}

}

void

motor_ffw()

///步进电机正转

{

uchari;

uint

j;

for(j=0;j<16;j++)

//转1*n圈

{

//退出此循环程序

for(i=0;i<8;i++)

//一个周期转

45度

{

P1=FFW[i];

//取数据

delay1

(1);

//调理转速

}

}

}

void

motor_turn1()

{

ucharx;

while(floorin-floorstay)

{floorstay++;x=0x20;led=0;cntb=0;do

{

motor_ffw();//匀速

 

9

 

x--;

}while(x!

=0x01);

P0=table[floorstay-1];

}

}

voidmotor_turn2()

{

ucharx;

while(floorstay-floorin)

{floorstay--;x=0x20;led=0;cntb=1;do

{

motor_ffz();//匀速

x--;

}while(x!

=0x01);

P0=table[floorstay-1];

}

}

 

voidkeyscan()

{

P1=0xfe;

if((P1&0xf0)!

=0xf0)

{

delay1(10);

if((P1&0xf0)!

=0xf0)

{

temp=P1;

switch(temp)

{

case0xee:

num=1;

floorin=1;

downin_flag=1;

upin_flag=1;

break;

case0xde:

num=2;

downin_flag=1;

upin_flag=1;

floorin=2;

break;

case0xbe:

num=3;

downin_flag=1;

upin_flag=1;

floorin=3;

 

10

 

break;

case0x7e:

num=4;

downin_flag=1;

upin_flag=1;

floorin=4;

break;

}

while(temp!

=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

}

}

P1=0xfd;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay1(10);

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P1;

switch(temp)

{

case0xed:

num=5;

downin_flag=1;

upin_flag=1;

floorin=5;

break;

case0xdd:

num=6;

downin_flag=1;

upin_flag=1;

floorin=6;

break;

case0xbd:

num=7;

downin_flag=1;

upin_flag=1;

floorin=1;

break;

case0x7d:

num=8;

downin_flag=1;

 

11

 

upin_flag=1;

floorin=2;

break;

}

while(temp!

=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

}

}

P1=0xfb;

temp=P1;

temp=temp&0xf0;

while(temp!

=0xf0)

{

delay1(10);

temp=P1;

temp=temp&0xf0;

while(temp!

=0xf0)

{

temp=P1;

switch(temp)

{

case0xeb:

num=9;

downin_flag=1;

upin_flag=1;

floorin=2;

break;

case0xdb:

num=10;

downin_flag=1;

upin_flag=1;

floorin=3;

break;

case0xbb:

num=11;

downin_flag=1;

upin_flag=1;

floorin=3;

break;

case0x7b:

num=12;

downin_flag=1;

upin_flag=1;

floorin=4;

break;

 

12

 

}

while(temp!

=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

}

}

P1=0xf7;

temp=P1;

temp=temp&0xf0;

while(temp!

=0xf0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1