单片机的电梯控制设计.docx

上传人:scccc 文档编号:12969932 上传时间:2021-12-09 格式:DOCX 页数:15 大小:113.53KB
返回 下载 相关 举报
单片机的电梯控制设计.docx_第1页
第1页 / 共15页
单片机的电梯控制设计.docx_第2页
第2页 / 共15页
单片机的电梯控制设计.docx_第3页
第3页 / 共15页
单片机的电梯控制设计.docx_第4页
第4页 / 共15页
单片机的电梯控制设计.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机的电梯控制设计.docx》由会员分享,可在线阅读,更多相关《单片机的电梯控制设计.docx(15页珍藏版)》请在三一文库上搜索。

1、单片机的电梯控制设计Prepared on 22 November 2020单片机原理及系统课程设计评语:考勤(10分)守纪(10分)过程(30分)设计报告(30分)答辩(20分)总成绩(100分)专业:自动化班级:动1101姓名:孙海文学号:,指导教师:赵峰兰州交通大学自动化与电气工程学院2014年1月15日1设计任务及要求设计题目基于单片机的三层电梯控制模型的设计设计具体要求(1)用户可通过按键发出请求;(2)可显示电梯所在楼层;(3)满足用户升降要求;(4)显示电梯升降超重状态;2所用器件原理介绍AT89c51是一个低功耗,高性能CMOS 8位单片机,片内含4kBytes ISP的 可反

2、复擦写100。次的Flash只读程序存储器。AT89c51是低功耗、高性能的 CMOS型8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用 编程器编程。片内有128B的RAM、32条I/O 口线、2个16位定时计数器、5个 中断源、一个全双工串行口等,完全满足该课题的需要。3系统设计本系统以AT89c51单片机的电梯自动控制系统为核心,有硬件设计,软件 设计,软件调试等几个部分。数码管显示实时楼层,单片机通过扫描按键指示灯 来读取请求,根据所在楼层的不同,进行不同的分析、调度,然后做出正确的响 应,更新状态并在指示灯和数码管上显示出来,还有报警器的设计,上下呼叫指 示灯的部分

3、组成。总体设计框图如图1所示。数码管接数码管段选单片机控制系统P3P1I接LED指东灯,LED指不P1.P2接2*4键盘键盘按键图1总体设计框图硬件设计(1) AT89C51 接口由单片机的P0 口控制数码管的位码,P1 口控制数据的读取,P2 口控制电机 运行状态、电梯运行状态和蜂呜器状态。(2)按键控制图为了节省单片机的接口,故选用行列键盘矩阵,本电路初始按键一端都加低 电平,有按键按下时,电路导通给输入口 P1输入低电平信号,然后根据按键不 同功能实现电梯的控制。按键控制电路如图2所示。第三层向下内。.K2 G第二层向上Pi3. K3 J2第二层向下pi2、 第一层向上P”. 0 0K5

4、号电梯内F3 p1K6产;电梯内F2 pi5、乩J1 电梯内F1 pg o 。产士超重指不P270 0图2按键控制图(3) LED指示灯在本次设计中电机正反转用两个发光管来表示,用单片机的P1 口做输入口 来输入,其中L1亮表示电机正转电梯向上运行,L2亮表示电机反转电梯向下运 行,L3亮表示超重。当电梯超重时,单片机产生低电平由P25 口输出,同时由 P17, P37 口输出高电平,以此控制LED指示灯。LED指示灯如图3所示。图3 LED指示灯(4)数码管显示数显管的基本功能是具备显示当前电梯的层数。采用共阳极接法,把二极管 的阳极连接到一起构成共阳极,使用时公共阳极接+5V。这样阴极段端

5、输入低电平的段发光二极管导通点亮,而输入高电平不点亮。因为P。口没有上拉电阻所 以不能输出高电平,所以要接上拉电阻,排阻就是好多电阻连接一起,有一个公 共端输入高电平,因为采用共阳极接法,所以采用上拉。数码管显示电路如图4所示。图4数码管显示(5)蜂鸣器对于电梯超重问题的提示报警选用蜂鸣器,P25 口输出信号,为了使蜂鸣器 有较大的声音,给它加一个三极管放大,使其增大脉冲电流信号C蜂鸣器电路图如图5所示。软件设计(1)程序流程图软件设计思想:采用模块化的设计方法,不同功能由不同子程序实现。由于 本设计采用单片机实现控制,其中主程序部分完成了系统初始化,定时器的工作 方式,中断产生,延时等。电梯

6、的整个软件设计包括以下几个部分:电梯逻辑控制模块、电梯运行模块、电机启动模块、电机正反转模块、楼层数显模块、键盘 按键输入模块、指示灯模块、超重报警器模块。程序流程图如图6所示。A图6主程序流程图软件设计源程序如附录2所示。4软件编译调试在软件调试中,采用keil仿真软件进行程序调试。首先分别调试各个功能程 序,再对整个程序进行调试,以便修改错误码°首先在keil软件中选择AT89c51 作为CPU,新建一个.c文件,将各个功能程序录入,先检查程序有无明显错误, 保存过后编译程序,当有错误时就根据提示加以修改,当各个功能程序编译完成 后,再对整个程序全速执行,查看程序有哪些地方出现错

7、误,对应错误提示逐步 调整程序,纠正错误直到程序正确无误。分析实际生活中的电梯运行情况,总结 电梯运行规律及原则。电梯在扫描到请求后,到底是否立即响应、何时响应,总 是遵循“顺路”的原则,若请求的运动方向与电梯现行方向相同且在该方向上继续 运行即可响应该请求,贝IJ“顺路”响应。5硬件仿真硬件仿真使用的是Proteus模拟单片机外围器件的工具,它可以仿真51系 列、AVR, PIC等常用的MCU及其外围电路(如LCD, RAM, ROM,键盘, 马达,LED, AD/DA,部分SPI器件,部分IIC器件.)。然后右键AT89c51再 左键,出现“Edit Componet",在Pro

8、gram File中单击出现文件浏览对话框,找到 文件,单击确定.完成添加文件,单击OK退出。单击仿真按钮,系统开始工作, 通过按键,电梯都能完成请求,基本实现了电梯运行的模拟。首先利用Proteus中的器件库完成电路的连接,如附录1所示。6设计总结本次课程设计主要是对单片机控制的实践,经过这一实践,让我更对单片机 的工作原理、功能、应用及其常见的外围电路都有了更进一步的理解和切身的体 会。无论是查资料、分析课题、设计电路、调试电路、设计软件、调试程序还是 系统调试,每一步都认真的去学习,把理论知识应用到实践中,动手能力得到很 大提高。本次课设过程中遇到了很多问题,如数码管和按键模块的电阻阻值

9、设置不合 理,分析课题时没有抓准电梯运行的规律、原则导致程序设计的不完善,写条件 语句时考虑不全面等等。这些问题不但使我深深的感到对原理知识理解、运用的 缺乏,还让我体会到了许多理论与实际的差距c在解决这些问题的过程中,让我 懂得了在面对不同的故障现象时,如何找出故障原因及排除故障的方法,充分锻 炼了分析、解决问题的能力。参考文献1王思明,张金敏,张鑫等.单片机原理及应用系统设计小口.北京:北京科学出版 社,2012.李超青.单片机原理及接口技术M.北京:北京航空航天大学出版社,1999.3何立民.单片机应用系统设计M.北京:北京航空航天大学出版社,1990.附录1 : Proteus电路的连

10、接图K1尸产第三层向下p伯K5心尸产第二层向上 产尸产第二层向下尸产第一层向上P13P12K6K7产士电梯内F3 卢电梯内F2 产入电梯内F1O QFz超重指不-o cP16P15PUPZ(牟R9 1 icLtD-GKESNRio 入下行P17LtD-GKEENRii 区给豆p*LCD-GRCZN,R13 rb,灯MlpancaP3.1ftD1PU2AD2CTAI2P33ACOPD.WUHP3SAD5PDS4C6rstPO.TftD?p2n阳P21他P2tP22AliALEP2.WU2KP2於马P2UP2.7.ftt5pwP3HRXDphP3.1.TXDP12P32XRTOP13PJ 别 HT

11、PUP3VIDPISp3smP15田创正-PI?布U1191US。2121 勾Wpi口 i P112P匕 3 P13 4 PI4 5 PIS 5 P16 ?PI? ?Anacsi叩1 R即向作c 1 7 3 d 6 6 -1附图1 Proteus电路的连接图附录2:电梯源程序#include<>#include<>#define uint unsigned int 预定义#define uchar unsigned charuchar code LED_CODES=OxcOOxf9,Oxa4,OxbO;字形代表码 0-3sbit weight=P2A7;sbit F3D

12、=P1AO;sbit F1U=P1A1;sbit F2D=Pl八2;sbit F2U=P1A3;sbit F1=P1A4;sbit F2=P1A5;sbit F3=P1A6;超重信号3楼向下按钮 /I楼向上按钮2楼向下按钮 2楼向上按钮 电梯内I楼电梯内2楼 电梯内3楼sbit ledu=P3A7;sbit ledd=PlA7;sbit ledw=P2A6;sbit beep=P2A5;上行指示灯下行指示灯超重指示灯超重报警sbit INA=P2A0;电机信号 1sbit INB=P2A1;uchar nf=l;uchar cf;uchar df;uchar fl,f2;电机信号2当前楼层呼叫

13、楼层要去楼层楼层差(电梯停止依据):fl=lcf-nfl;f2=ldf-nflucharuchar flag;uchar dir;uint MA;uint Speed=25;暂存当前楼层(显示码指针):26f呼叫flag=O,乘电梯flag=l电机方向1-正转,0-反转脉冲频率50%占空比,脉冲宽度占电机周期比void delay(uint z)(uint x,y;for(x=z;x>0;x")for(y=125;y>0;y-);)定时器初始化void Timer_Init()(TH0=0xEC;TL0=0x78;TMOD=0x01;ET0=l;EA=1;EX0=l;IT

14、0=l;EX1 = 1;IT1 = 1;)电机运行及指示灯函数 void step(uchar dir)电机启动 (if(dir=l)(TR0=l; 开定时器,启动电机 ledu=0; 正反转指示灯 ledd=l;)else if(dir=O)TRO=1;开定时器,启动电机 ledd=O;ledu=l; 1 else if(dir=2)TRO=O;delay(50);延时稳定电机)乘坐电梯运行,Hag=l为该运行方式标记置乘坐运行标记;置目的楼层;若当前电梯正在1楼则不动作;/计算当前电梯距目标楼层的层数;置电机转向;暂存当前楼层;修改当前楼层为目的楼层;电梯运转;void FloorsO电梯

15、内部呼叫(if(Fl=O)flag= 1 ;df= 1 ;if(df=nf)retum;f2=abs(df-nf);dir=0;t2=nf ;nf=df ;step(dir);delay(5000);) else if(F2=O)flag=l ;df=2;if(df=nf)return;f2=abs(df-nf);if(df>nf)dir=l ;elsedir=O;t2=nf;nf=df;step(dir);delay(5OOO);)else if(F3=O)flag= 1 ;df=3;if(df=nf)return;f2=abs(df-nf);dir=l ;t2=nf;nf=df;st

16、ep(dir);delay(5000);) dir=2;delay(50); )/呼叫电梯运行 flag=O为该运行方式标记同乘坐电梯运行void CallsO电梯外部呼叫(if(F3D=0)flag=O;cf=3;if(cf=nf)return;f 1 =abs(cf-nf);dir=l ;t l=nf;nf=cf;step(dir);delay(5OOO); else if(FlU=O)flag=O;cf= 1 ;if(cf=nf)return;fl=abs(cf-nf);dir=O;tl=nf;nf=cf;step(dir);delay(5OOO);) else if(F2D=0)fla

17、g=O;cf=2;if(cf=nf)return;f 1 =abs(cf-nf);if(cf>nf)dir= 1 ;else dir=O;tl=nf;nf=cf;step(dir);delay(5OOO);)else if(F2U=0)flag=O;cf=2;if(cf=nf)return;f 1 =abs(cf-nf);if(cf>nf)dir= 1 ;elsedir=O;tl=nf;nf=cf;step(dir);delay(5OOO);) dir=2; 停止电机 delay(50);)void main() 主函数,LED数显管显示 (Timerjnit();定时器初始化PO

18、=LED_CODES1; 启动时电梯在1楼,显示楼号 while(l)PO=LED_CODESnf;Calls();呼叫电梯Floors();乘坐电梯while(l)/超重检测(if(weight=O)beep=-beep;ledw=-ledw;ledu= 1 ;ledd= 1 ;delay( 150); elsebeep= 1 ;ledw= 1 ;break:检查是否超重,指示灯闪烁)void timeOJnt() intenupt 1定时中断,脉冲宽度调制,产生脉冲(TH0=0xEC;TL0=0x78;MA+;if(MA<Speed)(if(dir=l)INA=0;else if(dir=O)INB=1;else if(dir=2)INA=1;)else(if(dir=l)INA=1;else if(dir=O)INB=0;else if(dir=2)INB=1;)if(MA>=50)MA = 0;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1