1、三层电梯控制电路word文档良心出品三层电梯控制电路设计1.求开关。2.3.4.设计要求每层电梯入口处设有上下请求开关, 电梯内设有顾客到达层次的停站请设有电梯入口处位置指示装置及电梯运行模式 (上升或下降)指示装置。 电梯每秒升(降)一层楼。电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开 门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请 求信号后停留在当前层。5.能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请 求信号保留至执行后消除。6.只响应比电梯所在位置高的上如果咼层有电梯运行规则一当电梯处于上升模式时,楼请求信号,由下而上逐个执行,
2、直到最后一个上楼请求执行完毕; 下楼请求,则相反。7.电梯初始状态为一层开门状态。2.设计目的VHDL语言,通过对三层电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用 来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性 电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯 控制器实现的基础。3.控制器的设计方案.控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状 态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层, 通过主控 制器的处理,电梯开始运行,状态显示器显示电梯的运行状态, 电梯所在楼层数 通过译码器译码从而在楼层显示器中显示。
3、 分控制器把有效的请求传给主控制器 进行处理,同时显示电梯的运行状态和电梯所在楼层数。 由于分控制器相对简单 很多,所以主控制器是核心部分。图1.电梯控制器原理图4.三层电梯控制器的结构体设计首先说明一下状态。状态机设置了 lO 个状态,分别是电梯停留在 l 层 (stoponI)、开门(dooropen)、关门(doorclose)、开门等待第 1 秒(doorwaitl)、开门等 待第2秒(doorwait2)、开门等待第3秒(doorwait3)、开门等待第4秒(doorwait4)、 上升(up)、下降(down)和停止(stop)。在实体说明定义完端口之后,在结构体 architec
4、ture和begin之间需要有如下的定义语句,来定义状态机。在结构体中, 设计了俩个进程互相配合, 一个是状态机进程作为主要进程, 另外一个是信号灯控制进程作为辅助进程。 状态机进程中的很多判断条件是以信 号灯进程产生的信号灯信号为依据的, 而信号灯进程中信号灯的熄灭又是由状态 机进程中传出的clearup和cleardn信号来控制。在状态机进程中, 在电梯的上升状态中, 通过对信号灯的判断, 决定下一个 状态是继续上升还是停止; 在电梯下降状态中, 也是通过对信号灯的判断, 决定 下一个状态是继续下降还是停止; 在电梯停止状态中, 判断是最复杂的, 通过对 信号的判断,决定电梯是上升、下降还
5、是停止。点阵显示楼本设计需要完成的任务是编写 VHDL弋码来模拟现实中的三层电梯工作。在 点阵上显示电梯所在的楼层, 当其它楼层有上或下的请求信号时, 表示该楼层上 或下的绿色或黄色指示灯亮, 电梯开始上或下运行, 当到达该楼层时, 表示该楼 层上或下的绿色或黄色指示灯灭, 表示到达该楼层的红色指示灯亮, 层数,红色指示灯灭 。五 . vhdl 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;architecture behave o
6、f elevator is signal state1,state3 : std_logic;signalsignalsignalsignal counterstate2u,state2d : std_logic; doorflag : std_logic; udflag,runflag : std_logic; -up and down flag,run flagdcount: std_logic_vector(2 downto 0); -display end if;if(k3=0 and door3=0) then state3=1;d3=1;elsif(location=2 and w
7、count=0) then d3=0;if(doorcount=1020) then state3=0;end if;end if;end if;end process;process(clk)beginif(clkevent and clk=1) then if(location=0) then -display 1 col1=00000001; col2=00100001; col3=01111111; col4=11111111; col5=00000001; col6=00000001;elsif(location=1) then -display 2 col1=01100011; c
8、ol2=11100111; col3=10001101; col4=10011001; col5=11110011; col6=01100111;elsif(location=2) then -display 3 col1=01000010; col2=11011011; col3=10011001; col4=10011001; col5=11111111; col6=01100110;end if;end if;end process;process(clk) -accumulate dcount beginif(clkevent and clk=1) then dcount=dcount
9、+1;end if;end p rocess;p rocess(clk)beginif(clkeve nt and clk=1) the nsa=dco un t(0);sb=dco un t(1);scdis pl aydis pl ayv=OOOOOOOO; end case;end if;end p rocess;this p rocess, a,b,c,d,e,f,g and dot will out putp rocess(clk) -I nbeginif(clkeve nt and clk=1) the nrO=dis play(7);r7d状态机进程(主聲进程I结构体结束信号灯控
10、剧进程(辅助进程)图2.三层电梯控制器的 vhdi描述2.以关键词ENTITY引导,END ENTITY threeflift结尾的语句部分,称为实 体。VHDL的实体描述了电路器件的外部情况及各信号端口的基本性质。 本设计定义了关于三层电梯控制器用到的各类时钟、异步复位按键、信号灯指示、电梯 的请求。端口模式主要就是IN、BUFFER、OUT端口。及定义了各端口信号的 数据类型,主要是 STD_LOGIC(标准逻辑位数据类型)、INTEGER(整数类型)、 STD_LOGIC_VECTOR(标准逻辑矢量数据类型)。这些都满足上面调用的 IEEE 库中的程序包。3.以关键词ARCHITECTU
11、RE弓|导,END ARCHITECTUREa结尾的语句部 分,称为结构体。结构体负责描述电路器件的内部逻辑功能或电路结构。 本设计定义了 10个状态。描述了在三层电梯中出现的各种可能的情况作为控制电梯的 主要进程。信号灯控制作为辅助进程。三层电梯控制器模块原理图图3.三层电梯控制器模块原理图七.三层电梯控制器的仿真模块1.下图所示仿真的是在第二层电梯外部有上升请求,也就是 f2upbuttton信号的一个脉冲,可以看到电梯从一层上升到二层, Position信号由1变到2,doorlight信号 1表示开门, 0表示关门。当乘客进入电梯以后,在电梯内 部要求上升到第三层,也就是 stop3b
12、utton产生一个脉冲,电梯上升到第 3层,开门4秒以后关门,停留在第三层,position最后的值为3。在仿真图中看不到 butt on clk,只显示为一条黑色的线,是因为采用了频率较大的时钟。再看fuplight信号灯,当二层有上升请求的时候,它的值由 0变到2。(注意fuplight和fdnlight是3位的二进制向量,这里的2代表“010”,表示二层有请求; “ 100”也就是4,表示三层有请求)。当电梯停留到第二层以后,表明该请求被 响应,所以它的值变为0,由于没有下降请求信号,所以fdnlight信号灯的值一 盲都为O。-*P MH評* ner*ihia* MM4h图4.有上升请
13、求的仿真波形.2.是有下降请求的情况,它是图 4的继续,当电梯停留在第三层的时候,在电梯外第二层有下降请求,这时候 fdnlight信号灯由0变为2,说明第二层有下降请求。电梯下降到第二层,响应了下降请求,所以 fdnlight信号灯清0。这时候,在电梯内部没有停留在哪层的请求,所以电梯就停留在第二层, position2。信号的值保持在图5.有下降请求的仿真波形3.同时有上升和下降请求信号时,电梯的运行情况如图 6所示。图6仿真的情况是,原先电梯停留在第一层,这时候电梯外第三层有下降请求, 电梯上升 到第三层,乘客进入电梯以后要求下降到一层, 与此同时,在电梯外第二层有上 升请求,电梯首先要
14、响应下降请求然后再响应这个上升请求, 所以电梯得先下降到一层,然后再上升到第二层来,这是符合常理的。从仿真的波形看,电梯的位 置变化和想象是一致的。电梯的运行情况完全正确。最后乘客在电梯内部要求上 升到三层,所以电梯最后的停留位置为三层。卩 iw ;u ifwimnw iH! I :i 卩血 fl nw师Twin顽丽UUi丽而丽 H _ _图6.有上升和下降请求信号时的仿真波形4.图7所示的仿真,原先电梯停留在第一层,电梯外第三层有下降请求, 电梯上升到三层,乘客进入电梯以后要求下降到一层,此时,二层有下降请求, 接着又有上升请求,电梯首先在二层停留。然后下降到一层。随后要响应二层上 升请求,
15、上升到二层,乘客进入电梯以后要求上升到三层, 所以电梯最后的停留 位置在三层。图7. 复杂情况下请求信号的仿真波形设计的扩展性在本设计中,因为考虑了扩展性,所以在信号定义的时候就使用了二进制 的向量,而不是整数。在设计方法上也做了特殊的设计,所以使得扩展性较好。 如果要实现n层电梯的控制,首先在端口的地方就要加入所有的按键, 而指示灯只要把向量中的3改成n就可以了。同时需要在按键控制进程里加入其他按键触 发指示灯的语句。在电梯的升降状态将 3改成n,在电梯的开门状态中将2改成 n一 1,在关门状态,将position=3改成position=n,关键是修改position=2的咅E分,如果按照
16、每层罗列,将十分烦琐,所以得寻求各层判断条件的共性,解决方 法之一就是,新建一个全局向量 one 为 stdlogic veoter(n downto 3)应改写成 0, 然后和 stoplight 与 fuplight 向量比较,如果有更高层次的请求,那么 stoplight 或 fuplight 向量,如果 stoplight 和 fuplight 向量都小于 one 向量,表示没有更高层次 的内部上升请求,此时将 fdnlight 向量和 one 向量比较,如果大于,则表示高层 有下降要求, 电梯得上升。如果没有任何请求信号, 则电梯停止,否则电梯下降。 如此就可以大大简化程序, 但是要注意的是 one 向量必须实时更新, 以作为判断 依据,可以另外写一个进程,用 buttonclk 来触发。九. 总结经过这次设计,基本上实现了预期目的,但是也存在一些不足,有待改进, 但总体上还是成功的。 它不仅巩固了我们所学习的课本知识, 还提高了我们的动 手能力。在这次设计过程中发现了很多问题, 同时也发现了自身的不足, 感谢老 师和同学对我们的帮助,我会努力克服何在正自己的弱点,希望以后做的更好。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1