单片机的电梯控制设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及系统课程设计
专业:自动化
班级:动1101
姓名:孙海文
学号:
指导教师:赵峰
兰州交通大学自动化与电气工程学院
2014年1月15日
1 设计任务及要求
设计题目
基于单片机的三层电梯控制模型的设计
设计具体要求
(1) 用户可通过按键发出请求;
(2) 可显示电梯所在楼层;
(3) 满足用户升降要求;
(4) 显示电梯升降超重状态;
2 所用器件原理介绍
AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP的可反复擦写1000次的Flash只读程序存储器。AT89C51是低功耗、高性能的CMOS型8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等,完全满足该课题的需要。
3 系统设计
本系统以AT89C51单片机的电梯自动控制系统为核心,有硬件设计,软件设计,软件调试等几个部分。数码管显示实时楼层,单片机通过扫描按键指示灯来读取请求,根据所在楼层的不同,进行不同的分析、调度,然后做出正确的响应,更新状态并在指示灯和数码管上显示出来,还有报警器的设计,上下呼叫指示灯的部分组成。
总体设计框图如图1所示。
图1 总体设计框图
硬件设计
(1) AT89C51接口
由单片机的P0口控制数码管的位码,P1口控制数据的读取,P2口控制电机运行状态、电梯运行状态和蜂鸣器状态。
(2) 按键控制图
为了节省单片机的接口,故选用行列键盘矩阵,本电路初始按键一端都加低电平,有按键按下时,电路导通给输入口P1输入低电平信号,然后根据按键不同功能实现电梯的控制。
按键控制电路如图2所示。
图2 按键控制图
(3) LED指示灯
在本次设计中电机正反转用两个发光管来表示,用单片机的P1口做输入口来输入,其中L1亮表示电机正转电梯向上运行,L2亮表示电机反转电梯向下运行,L3亮表示超重。当电梯超重时,单片机产生低电平由P25口输出,同时由P17,P37口输出高电平,以此控制LED指示灯。
LED指示灯如图3所示。
图3 LED指示灯
(4) 数码管显示
数显管的基本功能是具备显示当前电梯的层数。采用共阳极接法,把二极管的阳极连接到一起构成共阳极,使用时公共阳极接+5V。这样阴极段端输入低电平的段发光二极管导通点亮,而输入高电平不点亮。因为P0口没有上拉电阻所以不能输出高电平,所以要接上拉电阻,排阻就是好多电阻连接一起,有一个公共端输入高电平,因为采用共阳极接法,所以采用上拉。
数码管显示电路如图4所示。
图4 数码管显示
(5) 蜂鸣器
对于电梯超重问题的提示报警选用蜂鸣器,P25口输出信号,为了使蜂鸣器有较大的声音,给它加一个三极管放大,使其增大脉冲电流信号。
蜂鸣器电路图如图5所示。
图5 蜂鸣器
软件设计
(1) 程序流程图
软件设计思想:采用模块化的设计方法,不同功能由不同子程序实现。由于本设计采用单片机实现控制,其中主程序部分完成了系统初始化,定时器的工作方式,中断产生,延时等。电梯的整个软件设计包括以下几个部分:电梯逻辑控制模块、电梯运行模块、电机启动模块、电机正反转模块、楼层数显模块、键盘按键输入模块、指示灯模块、超重报警器模块。
程序流程图如图6所示。
图6 主程序流程图
软件设计源程序如附录2所示。
4 软件编译调试
在软件调试中,采用keil仿真软件进行程序调试。首先分别调试各个功能程序,再对整个程序进行调试,以便修改错误码。首先在keil软件中选择AT89C51作为CPU,新建一个.c文件,将各个功能程序录入,先检查程序有无明显错误,保存过后编译程序,当有错误时就根据提示加以修改,当各个功能程序编译完成后,再对整个程序全速执行,查看程序有哪些地方出现错误,对应错误提示逐步调整程序,纠正错误直到程序正确无误。分析实际生活中的电梯运行情况,总结电梯运行规律及原则。电梯在扫描到请求后,到底是否立即响应、何时响应,总是遵循“顺路”的原则,若请求的运动方向与电梯现行方向相同且在该方向上继续运行即可响应该请求,则“顺路”响应。
5 硬件仿真
硬件仿真使用的是Proteus模拟单片机外围器件的工具,它可以仿真 51 系列、AVR,PIC 等常用的 MCU 及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件.)。然后右键AT89C51再左键,出现“Edit Componet”, 在 Program File 中单击出现文件浏览对话框,找到文件,单击确定.完成添加文件,单击 OK 退出。单击仿真按钮,系统开始工作,通过按键,电梯都能完成请求,基本实现了电梯运行的模拟。
首先利用Proteus中的器件库完成电路的连接,如附录1所示。
6 设计总结
本次课程设计主要是对单片机控制的实践,经过这一实践,让我更对单片机的工作原理、功能、应用及其常见的外围电路都有了更进一步的理解和切身的体会。无论是查资料、分析课题、设计电路、调试电路、设计软件、调试程序还是系统调试,每一步都认真的去学习,把理论知识应用到实践中,动手能力得到很大提高。
本次课设过程中遇到了很多问题,如数码管和按键模块的电阻阻值设置不合理,分析课题时没有抓准电梯运行的规律、原则导致程序设计的不完善,写条件语句时考虑不全面等等。这些问题不但使我深深的感到对原理知识理解、运用的缺乏,还让我体会到了许多理论与实际的差距。在解决这些问题的过程中,让我懂得了在面对不同的故障现象时,如何找出故障原因及排除故障的方法,充分锻炼了分析、解决问题的能力。
参考文献
[1] 王思明 ,张金敏,张鑫等.单片机原理及应用系统设计[M].北京:
北京科学出版社,2012.
[2] 李超青.单片机原理及接口技术 [M].北京:北京航空航天大学出
版社,1999.
[3] 何立民.单片机应用系统设计 [M].北京:北京航空航天大学出版
社,1990.
附录1:Proteus电路的连接图
附图1 Proteus电路的连接图
附录2: 电梯源程序
#include<>
#include<>
#define uint unsigned int //预定义
#define uchar unsigned char