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

下载本文档

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

文档简介

./三层电梯控制电路设计一.设计要求1.每层电梯入口处设有上下请求开关,电梯设有顾客到达层次的停站请求开关。2.设有电梯入口处位置指示装置及电梯运行模式<上升或下降>指示装置。3.电梯每秒升<降>一层楼。4.电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭<开门指示灯灭>,电梯继续进行,直至执行完最后一个请求信号后停留在当前层。5.能记忆电梯外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。6.电梯运行规则一当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则相反。7.电梯初始状态为一层开门状态。二.设计目的电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用VHDL语言来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性,通过对三层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。三.控制器的设计方案.控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。图1.电梯控制器原理图四.三层电梯控制器的结构体设计首先说明一下状态。状态机设置了lO个状态,分别是电梯停留在l层<stoponl>、开门<dooropen>、关门<doorclose>、开门等待第1秒<doorwaitl>、开门等待第2秒<doorwait2>、开门等待第3秒<doorwait3>、开门等待第4秒<doorwait4>、上升<up>、下降<down>和停止<stop>。在实体说明定义完端口之后,在结构体architecture和begin之间需要有如下的定义语句,来定义状态机。在结构体中,设计了俩个进程互相配合,一个是状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程号灯的熄灭又是由状态机进程中传出的clearup和cleardn信号来控制。在状态机进程中,在电梯的上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。本设计需要完成的任务是编写VHDL代码来模拟现实中的三层电梯工作。在点阵上显示电梯所在的楼层,当其它楼层有上或下的请求信号时,表示该楼层上或下的绿色或黄色指示灯亮,电梯开始上或下运行,当到达该楼层时,表示该楼层上或下的绿色或黄色指示灯灭,表示到达该楼层的红色指示灯亮,点阵显示楼层数,红色指示灯灭。五.vhdl源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityelevatorisport<clk:instd_logic;--ClockSignalk1,k2u,k2d,k3:instd_logic;--Pushbuttond1,d2u,d2d,d3:outstd_logic;--Ledofeveryfloordoor1,door2,door3:bufferstd_logic;--doorledr0,r1,r2,r3,r4,r5,r6,r7:outstd_logic;--7segmentdriversa,sb,sc:outstd_logic>;--DisplaySelectendelevator;architecturebehaveofelevatorissignalstate1,state3:std_logic;signalstate2u,state2d:std_logic;signaldoorflag:std_logic;signaludflag,runflag:std_logic;--upanddownflag,runflagsignaldcount:std_logic_vector<2downto0>;--displaycountersignaldisplay:std_logic_vector<7downto0>;signallocation:std_logic_vector<1downto0>;signalwcount:std_logic_vector<10downto0>;--waitcountersignaldoorcount:std_logic_vector<9downto0>;--doorcountersignalcol1,col2,col3,col4,col5,col6:std_logic_vector<7downto0>;beginprocess<clk>--judgethekeyisorisnotbeenpushedbeginif<clk'eventandclk='1'>thenif<k1='0'anddoor1='0'>thenstate1<='1';d1<='1';elsif<location=0andwcount=0>thend1<='0';if<doorcount=1020>thenstate1<='0';endif;endif;if<k2u='0'anddoor2='0'>thenstate2u<='1';d2u<='1';elsif<location=1andudflag='1'andwcount=0>thend2u<='0';if<doorcount=1020>thenstate2u<='0';endif;endif;if<k2d='0'anddoor2='0'>thenstate2d<='1';d2d<='1';elsif<location=1andudflag='0'andwcount=0>thend2d<='0';if<doorcount=1020>thenstate2d<='0';endif;endif;if<k3='0'anddoor3='0'>thenstate3<='1';d3<='1';elsif<location=2andwcount=0>thend3<='0';if<doorcount=1020>thenstate3<='0';endif;endif;endif;endprocess;process<clk>beginif<clk'eventandclk='1'>thenif<location=0>then--display1col1<="00000001";col2<="00100001";col3<="01111111";col4<="11111111";col5<="00000001";col6<="00000001";elsif<location=1>then--display2col1<="01100011";col2<="11100111";col3<="10001101";col4<="10011001";col5<="11110011";col6<="01100111";elsif<location=2>then--display3col1<="01000010";col2<="11011011";col3<="10011001";col4<="10011001";col5<="11111111";col6<="01100110";endif;endif;endprocess;process<clk>--accumulatedcountbeginif<clk'eventandclk='1'>thendcount<=dcount+1;endif;endprocess;process<clk>beginif<clk'eventandclk='1'>thensa<=dcount<0>;sb<=dcount<1>;sc<=dcount<2>;casedcountiswhen"111"=>display<="00000000";……whenothers=>display<="00000000";endcase;endif;endprocess;process<clk>--Inthisprocess,a,b,c,d,e,f,ganddotwilloutputbeginif<clk'eventandclk='1'>thenr0<=display<7>;……r7<=display<0>;endif;endprocess;endbehave;注释:1.本程序设计调用了IEEE库,IEEE库是VHDL设计中最为常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。本设计采用了STD_LOGIC_1164、STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED程序包。图2.三层电梯控制器的vhdl描述2.以关键词ENTITY引导,ENDENTITYthreeflift结尾的语句部分,称为实体。VHDL的实体描述了电路器件的外部情况及各信号端口的基本性质。本设计定义了关于三层电梯控制器用到的各类时钟、异步复位按键、信号灯指示、电梯的请求。端口模式主要就是IN、BUFFER、OUT端口。及定义了各端口信号的数据类型,主要是STD_LOGIC<标准逻辑位数据类型>、INTEGER<整数类型>、STD_LOGIC_VECTOR<标准逻辑矢量数据类型>。这些都满足上面调用的IEEE库中的程序包。3.以关键词ARCHITECTURE引导,ENDARCHITECTUREa结尾的语句部分,称为结构体。结构体负责描述电路器件的部逻辑功能或电路结构。本设计定义了lO个状态。描述了在三层电梯中出现的各种可能的情况作为控制电梯的主要进程。信号灯控制作为辅助进程。六.三层电梯控制器模块原理图图3.三层电梯控制器模块原理图七.三层电梯控制器的仿真模块1.下图所示仿真的是在第二层电梯外部有上升请求,也就是f2upbuttton信号的一个脉冲,可以看到电梯从一层上升到二层,position信号由1变到2,doorlight信号‘1’表示开门,‘0再看fuplight信号灯,当二层有上升请求的时候,它的值由0变到2。<注意fuplight和fdnlight是3位的二进制向量,这里的2代表"010”,表示二层有请求;"100图4.有上升请求的仿真波形.2.是有下降请求的情况,它是图4的继续,当电梯停留在第三层的时候,在电梯外第二层有下降请求,这时候fdnlight信号灯由0变为2,说明第二层有下降请求。电梯下降到第二层,响应了下降请求,所以fdnlight信号灯清0。这时候,在电梯部没有停留在哪层的请求,所以电梯就停留在第二层,position信号的值保持在2。图5.有下降请求的仿真波形3.同时有上升和下降请求信号时,电梯的运行情况如图6所示。图6仿真的情况是,原先电梯停留在第一层,这时候电梯外第三层有下降请求,电梯上升到第三层,乘客进入电梯以后要求下降到一层,与此同时,在电梯外第二层有上升请求,电梯首先要响应下降请求然后再响应这个上升请求,所以电梯得先下降到一层,然后再上升到第二层来,这是符合常理的。从仿真的波形看,电梯的位置变化和想象是一致的。电梯的运行情况完全正确。最后乘客在电梯部要求上升到三层,所以电梯最后的停留位置为三层。图6.有上升和下降请求信号时的仿真波形4.图7所示的仿真,原先电梯停留在第一层,电梯外第三层有下降请求,电梯上升到三层,乘客进入电梯以后要求下降到一层,此时,二层有下降请求,接着又有上升请求,电梯首先在二层停留。然后下降到一层。随后要响应二层上升请求,上升到二层,乘客进入电梯以后要求

温馨提示

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

评论

0/150

提交评论