三层电梯控制电路_第1页
三层电梯控制电路_第2页
三层电梯控制电路_第3页
三层电梯控制电路_第4页
三层电梯控制电路_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三层电梯控制电路设计一 . 设计要求1. 每层电梯入口处设有上下请求开关, 电梯设有顾客到达层次的停站请求开关。2. 设有电梯入口处位置指示装置及电梯运行模式 (上升或下降 )指示装置。3. 电梯每秒升 (降)一层楼。4. 电梯到达有停站请求的楼层,经过 1 秒电梯门打开,开门指示灯亮,开门 4 秒后,电梯门关闭 (开门指示灯灭 ),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。5. 能记忆电梯外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。6. 电梯运行规则一当电梯处于上升模式时, 只响应比电梯所在位置高的上楼请求信号, 由下而上逐个执行, 直到最后一个上楼

2、请求执行完毕; 如果高层有下楼请求,则相反。7. 电梯初始状态为一层开门状态。二. 设计目的电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用 VHDL 语言来设计实用三层电梯控制器, 其代码具有良好的可读性和易理解性 , 通过对三层电梯控制器的设计, 可以发现本设计有一定的扩展性, 而且可以作为更多层电梯控制器实现的基础 。三. 控制器的设计方案 .控制器的功能模块如图 1 所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。 乘客在电梯中选择所要到达的楼层, 通过主控制器的处理, 电梯开始运行, 状态显示器显示电梯的运行状态, 电梯所在楼层数通过译码器译码从而在楼

3、层显示器中显示。 分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。 由于分控制器相对简单很多,所以主控制器是核心部分。图 1.电梯控制器原理图四. 三层电梯控制器的结构体设计首先说明一下状态。状态机设置了 lO 个状态,分别是电梯停留在 l 层(stoponl)、开门(dooropen)、关门(doorclose)、开门等待第 1 秒 (doorwaitl) 、开门等待第 2 秒 (doorwait2)、开门等待第 3 秒(doorwait3)、开门等待第 4 秒 (doorwait4)、上升 (up)、下降 (down)和停止 (stop)。在实体说明定义完

4、端口之后,在结构体 architecture 和 begin 之间需要有如下的定义语句,来定义状态机。在结构体中,设计了俩个进程互相配合, 一个是状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。 状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的, 而信号灯进程号灯的熄灭又是由状态机进程中传出的 clearup 和 cleardn 信号来控制。在状态机进程中, 在电梯的上升状态中, 通过对信号灯的判断, 决定下一个状态是继续上升还是停止; 在电梯下降状态中, 也是通过对信号灯的判断, 决定下一个状态是继续下降还是停止; 在电梯停止状态中, 判断是最复杂的, 通过对信

5、号的判断,决定电梯是上升、下降还是停止。本设计需要完成的任务是编写 VHDL代码来模拟现实中的三层电梯工作。在点阵上显示电梯所在的楼层, 当其它楼层有上或下的请求信号时, 表示该楼层上或下的绿色或黄色指示灯亮, 电梯开始上或下运行, 当到达该楼层时, 表示该楼层上或下的绿色或黄色指示灯灭, 表示到达该楼层的红色指示灯亮, 点阵显示楼层数,红色指示灯灭 。五 . vhdl 源程序library ieee;-entity elevator isport( clk: instd_logic;-ClockSignalk1,k2u,k2d,k3: instd_logic;-Pushbuttond1,d2

6、u,d2d,d3: outstd_logic;-Led ofevery floordoor1,door2,door3: buffer std_logic;-doorledr0,r1,r2,r3,r4,r5,r6,r7:outsegment driversa,sb,sc-Display Selectend elevator;-architecture behave of elevator issignal state1,state3: std_logic;:std_logic;out-7std_logic);signal state2u,state2d : std_logic;signaldoo

7、rflag: std_logic;signaludflag,runflag : std_logic;-up and down flag,run flagsignaldcount: std_logic_vector(2 downto 0); -displaycountersignaldisplay: std_logic_vector(7 downto 0);signallocation: std_logic_vector(1 downto 0);signalwcount: std_logic_vector(10 downto 0); -waitcountersignaldoorcount: st

8、d_logic_vector(9downto 0); -doorcountersignal col1,col2,col3,col4,col5,col6 : std_logic_vector(7 downto 0);beginprocess(clk) - judge the key is or is not been pushed beginif(clk'event and clk='1') thenif(k1='0' and door1='0') thenstate1<='1'd1<='1'el

9、sif(location=0 and wcount=0) thend1<='0'if(doorcount=1020) thenstate1<='0'end if;end if;if(k2u='0' and door2='0') thenstate2u<='1'd2u<='1'elsif(location=1 and udflag='1' and wcount=0) thend2u<='0'if(doorcount=1020) thenst

10、ate2u<='0'end if;end if;if(k2d='0' and door2='0') thenstate2d<='1'd2d<='1'elsif(location=1 and udflag='0' and wcount=0) thend2d<='0'if(doorcount=1020) thenstate2d<='0'end if;end if;if(k3='0' and door3='0')

11、 thenstate3<='1'd3<='1'elsif(location=2 and wcount=0) thend3<='0'if(doorcount=1020) thenstate3<='0'end if;end if;end if;end process;process(clk)beginif(clk'event and clk='1') thenif(location=0) then-display 1col1<="00000001"col2<

12、;="00100001"col3<="01111111"col4<="11111111"col5<="00000001"col6<="00000001"elsif(location=1) then -display 2col1<="01100011"col2<="11100111"col3<="10001101"col4<="10011001"col5<=&quo

13、t;11110011"col6<="01100111"elsif(location=2) then -display 3col1<="01000010"col2<="11011011"col3<="10011001"col4<="10011001"col5<="11111111"col6<="01100110"end if;end if;end process;process(clk) -accumula

14、te dcountbeginif(clk'event and clk='1') thendcount<=dcount+1;end if;end process;process(clk)beginif(clk'event and clk='1') thensa<=dcount(0);sb<=dcount(1);sc<=dcount(2);case dcount iswhen "111"=>display<="00000000"when others=>display&

15、lt;="00000000"end case;end if;end process;process(clk)-Inthisprocess,a,b,c,d,e,f,gand dot willoutputbeginif(clk'event and clk='1') thenr0<=display(7);r7<=display(0);end if;end process;end behave;注释:1. 本程序设计调用了 IEEE 库, IEEE 库是 VHDL 设计中最为常用的库,它包含有 IEEE 标准的程序包和其他一些支持工业标准的程序包

16、。本设计采用了STD_LOGIC_1164、STD_LOGIC_ARITH 、STD_LOGIC_UNSIGNED 程序包。图 2. 三层电梯控制器的vhdl 描述2以关键词 ENTITY 引导,END ENTITY threeflift 结尾的语句部分, 称为实体。VHDL 的实体描述了电路器件的外部情况及各信号端口的基本性质。 本设计定义了关于三层电梯控制器用到的各类时钟、 异步复位按键、 信号灯指示、 电梯的请求。端口模式主要就是 IN 、BUFFER、OUT 端口。及定义了各端口信号的数据类型,主要是 STD_LOGIC( 标准逻辑位数据类型 )、 INTEGER( 整数类型 )、ST

17、D_LOGIC_VECTOR( 标准逻辑矢量数据类型 )。这些都满足上面调用的 IEEE 库中的程序包。3. 以关键词 ARCHITECTURE 引导, END ARCHITECTUREa 结尾的语句部分,称为结构体。 结构体负责描述电路器件的部逻辑功能或电路结构。 本设计定义了 lO 个状态。描述了在三层电梯中出现的各种可能的情况作为控制电梯的主要进程。信号灯控制作为辅助进程。六 . 三层电梯控制器模块原理图图 3.三层电梯控制器模块原理图七. 三层电梯控制器的仿真模块1. 下图所示仿真的是在第二层电梯外部有上升请求,也就是f2upbuttton 信号的一个脉冲,可以看到电梯从一层上升到二层

18、,position 信号由1 变到 2,doorlight 信号 1表示开门, 0表示关门。当乘客进入电梯以后,在电梯部要求上升到第三层,也就是 stop3button 产生一个脉冲,电梯上升到第 3 层,开门 4 秒以后关门,停留在第三层, position 最后的值为 3。在仿真图中看不到buttonclk,只显示为一条黑色的线,是因为采用了频率较大的时钟。再看 fuplight 信号灯,当二层有上升请求的时候,它的值由 0 变到 2。 (注意 fuplight 和 fdnlight 是 3 位的二进制向量,这里的 2 代表“010”,表示二层有请求;“ 100”也就是 4,表示三层有请求

19、 )。当电梯停留到第二层以后,表明该请求被响应,所以它的值变为 0,由于没有下降请求信号,所以 fdnlight 信号灯的值一盲都为 O。图 4. 有上升请求的仿真波形 .2. 是有下降请求的情况,它是图 4 的继续,当电梯停留在第三层的时候,在电梯外第二层有下降请求,这时候 fdnlight 信号灯由 0 变为 2,说明第二层有下降请求。电梯下降到第二层,响应了下降请求,所以 fdnlight 信号灯清 0。这时候,在电梯部没有停留在哪层的请求,所以电梯就停留在第二层, position 信号的值保持在 2。图 5有下降请求的仿真波形3. 同时有上升和下降请求信号时,电梯的运行情况如图6 所

20、示。图 6 仿真的情况是,原先电梯停留在第一层, 这时候电梯外第三层有下降请求, 电梯上升到第三层,乘客进入电梯以后要求下降到一层, 与此同时, 在电梯外第二层有上升请求,电梯首先要响应下降请求然后再响应这个上升请求, 所以电梯得先下降到一层,然后再上升到第二层来,这是符合常理的。从仿真的波形看,电梯的位置变化和想象是一致的。 电梯的运行情况完全正确。 最后乘客在电梯部要求上升到三层,所以电梯最后的停留位置为三层。图 6. 有上升和下降请求信号时的仿真波形4. 图 7 所示的仿真,原先电梯停留在第一层,电梯外第三层有下降请求,电梯上升到三层,乘客进入电梯以后要求下降到一层,此时,二层有下降请求,接着又有上升请求, 电梯首先在二层停留。 然后下降到一层。 随后要响应二层上升请求,上升到二层, 乘客进入电梯以后要求上升到三层, 所以电梯最后的停留位置在三层。图 7.复杂情况下请求信号的仿真波形八. 设计的扩展性在本设计中,因为考虑了扩展性,所以在信号定义的时候就使用了二进制的向量,而不是整数。在设计方法上也做了特殊的设计,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论