基于单片机的电梯控制系统设计_毕业设计(编辑修改稿)内容摘要:

因此,所有按键通过连接 到门电路,进行逻辑转换再 送到单片机的 INT0 端。 无论哪一个 5 按键有动作,低电平信号就会送到 INT0 端,从而引发外部中断 , 外部中断 0 服务子程序运行。 由于此次有十二个按键,所以使用一个双五输入或非门和一个双四输入与非门来实现。 由于 电梯的楼层 只有三层,而且单片机的端口也不是很够,所以本次设计没有使 用七段数码管 来进行楼层 显示 ,而是直接使用三个 LED 用来 代表电梯外部的三个楼层。 此外,电梯内外部的按键都有相应的指示灯,还有电梯运行状态指示灯,开门与关门的指示灯。 所有 LED 指示灯的正极都接单片机 IO 口,负极经由限流电阻接地,当有按键按下的时候,程序会置 1 对应的 IO 口,使指示灯亮起。 复位电路 复位是单片机的初始化操作,程序给单片机的复位引脚 RST加大于 2个机器周期(即24 个时钟振荡周期)的高电平就可 以 使单片机复位 ( 夏明娜等, 2020)。 STC89C52 的复位是由外部的复位电路来实现的。 复位电路通常采用 两种复位方式,即 上电复位和手动复位两种方式,手动复位 又 有电平方式和脉冲方式两种。 本次设计 采用了 上电 复位 作为单片机 的复位 方式。 如图 3 所示,通过 RST 端经由电阻 与地,电容 与电源 VCC 接通而实现, 当单片机上电时 , RST 端为高电平复位。 当时钟频率选用 12MHz 时, C1 取 22uF,R1 取 10KΩ 时,电容 C1 充放电时间 τ=R1*C1=2us( 2 个机器周期)。 复位电路如图 3 所示。 图 3 复位电路图 6 晶振电路 单片机的 晶振电路由 时钟电荡电路和分频电路 两部分电路 组成。 其中 , 振荡电路 是由反相器以及并联外接的石英晶体和电容 所 构成,用于产生振荡脉冲 信号。 而分频电路则 是 用于把 振荡电路产生的 振荡脉冲 信号 分频,以得到所需要的时钟信号 ( 李广弟 等,2020)。 AT89C52 单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍 接一拍地工作,因此时钟频率直接影响 了 单片机 的运 行 速度,时钟电路的质量也直接影响单片机系统的稳定性 (周坚, 2020)。 STC89C52 单片机电路中的电容 C1 和 C2 典型值通常选择为 30pF。 晶振的频率越高则系统的时钟频率也越高,单片机的运行速度也越快。 但 是 反过来运行速度越快对内存的速度要求 也 就越高,对印刷电路板的工艺要求也越高,即要求产生的寄生电容要小,晶振和电容应尽可能 的 安装得与单片机 的 芯片 引脚 靠近,以减少寄生电容,更好的保证振荡器稳定、可靠的工作。 基于以上本设计我们考虑选择频率为 12MHz 的晶振,当振荡脉冲频率为 12MHz 时,一个机器周期为 1us。 晶振 电路如图 4 所示。 图 4 晶振电路图 LED 指示灯电路 LED 指示灯电路全部采用蓝色的 LED 灯作为电梯的指示灯。 采用 LED 作为电梯控制系统的指示灯主要是因为其功耗小,单片机的 IO 口足以驱动 , LED1~ LED3 为电梯停留所在楼层指示灯, LED4~ LED7 为各楼层外部请求指示灯, LED8~ LED10 为电梯内部楼层请求指示灯, LED11~ LED12 为电梯运行状态指示灯, LED13 电梯开关门指示灯。 指示灯一端通过限流电阻接地 , 另一端接单片机 IO 引脚。 当有按键按下的时候,该按键所对应的指示灯应当同步亮起。 此外 ,电梯运行指示灯和开关门指示灯应当能够正确的亮灭。 电路图如图 5 所示。 7 图 5 LED 指示灯电路图 按键中断电路 单片机的 各中断的优先级(由高到低排列):外部 0 中断、定时器 T0 中断、外部 1中断、定时器 T1 中断、串行发送中断、串行接收中断、定时器 T2 中断 ( 王宜怀, 2020)。 按键 中断电路如 下 图 6 所示。 图中 74LS21 为双 4 输入与非门芯片, 74LS260 为双 5输入或非门芯片,单片机的 外部中断 INT0 引脚 与 74LS21 芯片的输出端 相接, 按键信号通过 74LS260 芯片进行逻辑转换 ,然后将逻辑转换后的输出信号与 74LS21 芯片 相连,通过这样逻辑的转换,可以使得十二个按键当中的任意一个按键按下时,就会触发单片机的外部中断 0。 当单片机接 通 电源后, 外部中断 0 对应 IO 引脚此时为高电平,当任一按键按下后, 通过相应的逻辑转换,使得 74LS21 输出为低电平,令外部 中断 0 的 引脚变为低电平。 此时引脚的 高电平变为低电平, 产生了一个电压的下降沿,触发外部中断。 此时 外部中断 0 立即响应,单片机系统进入中断控制子程序系统,在中断服务子程序中做出相应的执行指令。 按键 的另一端同时与单片机 的 IO 引脚 相连 , 其中 , S1~ S3 为 电梯内部的按钮 请求按键 , S4~ S7 为 每层楼 外部的请求 按钮, S8~ S9 为电梯内部开关门请求按键 , S10~S12 为电梯到达楼层指示按键。 这些按钮一端与 电源 相接,一端又与单片机和门 74LS21和 74LS260 相接, 当按键按下时会使按键对应的 IO 引脚变为高电平,通过重点子程序就可以检测出到底是哪个按键。 8 图 6 按键中断电路图 4 软件系统的设计 程序的设计思路 首先,必须得合理考虑按键的响应问题。 一段时间内可能有多个不同的按键有动作,程序必须记录每一个按键的 动作,并根据电梯本身所处的楼层情况与按键楼层之间的位置关系,合理判断电梯应当做出上升或下降的响应动作 , 再结合限位开关 , 使电梯能够准确的在目标楼层停留。 其次,电梯到达某楼层后,如果没有后续的按键动作,也就是当电梯外部的人进入电梯内部之后没有按下按钮,且电梯其他楼层也没有按键动作时,经过开关门程序之后电梯保持在该楼层不动,直到有新的请求。 然后,需要注意几种情况:当电梯在下层,高层楼层有按键按下时,电梯上行,该层以下楼层如果有向下的请求时,电梯会开门,但是请求不会被忽略,等到电梯处理完高层的请求开始下行,到达 该楼层的时候再执行相应的请求。 同样的,如果电梯在高层, 9 低层楼层有请求指示,该层以上的楼层如果有向上的请求时,电梯经过此楼层也是不会开门的,要等到电梯处理完低层请求 , 上行经过此楼层的时候才会处理相应请求。 另外,当电梯上升或者下降时,相应的状态指示灯应及时同步点亮 ,到达目标楼层后楼层的请求指示灯也要同时熄灭。 主程序流程图 主程序首先对单片机进行初始化,使得相应的 IO 口以及中断寄存器置位,以满足接下来的操作。 系统开始运行的时候电梯默认停留在 1 楼,此时楼层所在指示灯应该指示电梯停留在一楼。 然后,主程 序会进入循环检测有没有按键按下,一旦有按键按下,外部中断会触发,程序进入中断子程序,然后置位相应的标志量,主程序会检测出按键对应的标志位是否置位来判断哪个楼层有按键请求,然后主程序会依次调用判断电梯运行方向子程序、电梯运行子程序和到达目的楼层操作子程序来对按键请求进行处理并让电梯做出相应的执行,程序框图如图 7 所示。 图 7 主流程图 10 判断方向流程图 当有请求按键按下时 , 主程序首先调用会判断方向子程序。 该子程序首先判断中断子程序中哪个标志量被置位来确定电梯所要到达的的目标楼层,然后通过对比电梯 停留的当前楼层与目标楼层之间的上下关系,确定电梯将要上升还是下降。 然后电梯做出相应的模拟上升或者下降。 当请求楼层就是电梯所在楼层的时候,此时,电梯不用移动, 判断方向电梯运行方向子程序将通知 主程序已到达目标楼层,主程序将跳过电梯运行子程序直接调用到达目的楼层子程序。 程序框图如图 8 所示。 图 8 判断方向流程图 电梯运行流程图 经过判断方向的子程序之后,主程序就会调用电梯运行子程序。 该程序首先判断电梯是否运行,如果没运行,即没有按键按下的时候,立即返回主程序。 当有按键按下时,即电梯是运行的 ,那么当电梯到达下一层时,楼层指示信号会跳到下一层。 然后,子程 11 序会判断电梯是否到达目标楼层,如果没达到目标楼层,则电梯继续运行,如果已经到达目标楼层,那么执行结束,返回主程序。 当有多个请求同时发生的时候,根据电梯的运行状况,判断哪些请求先执行,哪些之后再执行。 执行哪个请求应该与真实的电梯的逻辑顺序一致。 程序框图如图 9 所示。 图 9 电梯运行流程图 梯到达目的地操作流程图 如果电梯到达了目的地,这个时候主程序就会调用到达目的操作子程序。 当到达目标楼层时,相应的请求指示灯会熄灭,然后电梯门打 开,持续大概 8s。 如果在这 8s 之内人员还没上齐,那么可以按下开门的按键,此时电梯会从按键按下的那一时刻开始重 12 新计时,重复按下看门按钮可以多次延迟关门的时间。 如果在 8s 之内人已经上齐了,那么为了减少等待时间可以按下关门的按键,电梯门就会提前关闭。 当电梯门关闭时,子程序处理结束,返回主程序。 程序框图如图 10 所示。 图 10 电梯到达目的地操作流程图 中断处理程序框图 当外部有按键按下的时候,此时,单片机的外部中断 0 被触发,程序进入中断如理子程序中执行。 在中断处理子程序中,依次判断每一个按键是否 按下,如果检测到某个按键按。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。