单片机的电梯控制设计
Prepared on 22 November 2020 片机的电梯控制设计单 单片机原理及系统课程设计单片机原理及系统课程设计 评语 考勤(10 分)守纪(10 分)过程(30分)设计报告(30 分)答辩(20 分)总成绩(100 分) 专专业业自动化 班班级级动 1101 姓姓名名孙海文 学学号号7 指导教师指导教师赵峰 兰州交通大学自动化与电气工程学院兰州交通大学自动化与电气工程学院 20142014 年年 1 1 月月 1515 日日 1 1 设计任务及要求设计任务及要求 设计题目设计题目 基于单片机的三层电梯控制模型的设计 设计具体要求设计具体要求 1 用户可通过按键发出请求; 2 可显示电梯所在楼层; 3 满足用户升降要求; 4 显示电梯升降超重状态; 2 2 所用器件原理介绍所用器件原理介绍 AT89C51是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP的 可反复擦写 1000次的 Flash只读程序存储器。AT89C51 是低功耗、高性能的 CMOS 型 8 位单片机。片内带有 8KB的 Flash 存储器,且允许在系统内改写或用 编程器编程。片内有 128B 的 RAM、32条 I/O口线、2个 16 位定时计数器、5个 中断源、一个全双工串行口等,完全满足该课题的需要。 3 3 系统设计系统设计 本系统以 AT89C51 单片机的电梯自动控制系统为核心,有硬件设计,软件 设计,软件调试等几个部分。数码管显示实时楼层,单片机通过扫描按键指示灯 来读取请求,根据所在楼层的不同,进行不同的分析、调度,然后做出正确的响 应,更新状态并在指示灯和数码管上显示出来,还有报警器的设计,上下呼叫指 示灯的部分组成。 总体设计框图如图 1 所示。 单 片 机 控 制 系 统 P3P1口接 LED 指示灯 LED 指示 灯 数 码 管 P0接数码管段选 P1.P2 接2*4 键盘 键盘按键 图 1 总体设计框图 硬件设计硬件设计 1 AT89C51接口 由单片机的 P0 口控制数码管的位码,P1 口控制数据的读取,P2 口控制电机 运行状态、电梯运行状态和蜂鸣器状态。 2 按键控制图 为了节省单片机的接口,故选用行列键盘矩阵,本电路初始按键一端都加低 电平,有按键按下时,电路导通给输入口 P1 输入低电平信号,然后根据按键不 同功能实现电梯的控制。 按键控制电路如图 2 所示。 K1 K2 K3 K4 第三层向下第三层向下 第二层向上第二层向上 第二层向下第二层向下 第一层向上第一层向上 P10 K5 K6 K7 电梯内电梯内F3F3 电梯内电梯内F2F2 电梯内电梯内F1F1 超重指示超重指示 P16 P13P15 P12 P11 P14 P27 图 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 所示。 开始 初始化(设定电梯 初始状态) 显示当前楼层now Y now1 N now1的请求分析 程序 Y now2 N now2的请求分析 程序 电梯动 now3的请求分析 程序 电梯动 电梯动 等待中断 图 6 主程序流程图 软件设计源程序如附录 2 所示。 4 4 软件编译调试软件编译调试 在软件调试中,采用 keil 仿真软件进行程序调试。首先分别调试各个功能程 序,再对整个程序进行调试,以便修改错误码。首先在 keil软件中选择 AT89C51 作为 CPU,新建一个.c文件,将各个功能程序录入,先检查程序有无明显错误, 保存过后编译程序,当有错误时就根据提示加以修改,当各个功能程序编译完成 后,再对整个程序全速执行,查看程序有哪些地方出现错误,对应错误提示逐步 调整程序,纠正错误直到程序正确无误。 分析实际生活中的电梯运行情况,总结 电梯运行规律及原则。电梯在扫描到请求后,到底是否立即响应、何时响应,总 是遵循“顺路”的原则,若请求的运动方向与电梯现行方向相同且在该方向上继续 运行即可响应该请求,则“顺路”响应。 5 5 硬件仿真硬件仿真 硬件仿真使用的是 Proteus 模拟单片机外围器件的工具,它可以仿真 51 系 列、AVR,PIC 等常用的 MCU 及其外围电路(如 LCD,RAM,ROM,键盘, 马达,LED,AD/DA,部分 SPI器件,部分 IIC器件.)。然后右键 AT89C51 再 左键,出现“Edit Componet”, 在 Program File 中单击 出现文件浏览对话框,找到 文件,单击确定.完成添加文件,单击 OK 退出。单击仿真按钮,系统开始工作, 通过按键,电梯都能完成请求,基本实现了电梯运行的模拟。 首先利用 Proteus 中的器件库完成电路的连接,如附录 1所示。 6 6 设计总结设计总结 本次课程设计主要是对单片机控制的实践,经过这一实践,让我更对单片机 的工作原理、功能、应用及其常见的外围电路都有了更进一步的理解和切身的体 会。无论是查资料、分析课题、设计电路、调试电路、设计软件、调试程序还是 系统调试,每一步都认真的去学习,把理论知识应用到实践中,动手能力得到很 大提高。 本次课设过程中遇到了很多问题,如数码管和按键模块的电阻阻值设置不合 理,分析课题时没有抓准电梯运行的规律、原则导致程序设计的不完善,写条件 语句时考虑不全面等等。这些问题不但使我深深的感到对原理知识理解、运用的 缺乏,还让我体会到了许多理论与实际的差距。在解决这些问题的过程中,让我 懂得了在面对不同的故障现象时,如何找出故障原因及