您好,欢迎访问三七文档
VHDL数字系统设计与测试学院通信工程学院学号题目六层电梯设计姓名一、设计要求与功能1.设计要求(1)完成6个楼层多用户的载客服务控制。(2)对于载客请求,遵循同向优先的原则。(3)能够响应提前关电梯门和延时关电梯门的请求。(4)显示电梯的运行情况,楼层运行方向。2.设计功能本文涉及了一个六层电梯控制系统,基本功能如下:(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。(2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。(3)电梯每秒升(降)一层楼。(4)电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。(5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。(6)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反。(8)人数超载或超重用一按钮代替,高电平有效,超载时电梯不能运行,并有相应指示。(9)事故报警按钮高电平有效,事故报警不能运行,并有指示灯,信号保留至事故消除(10)电梯初始状态为一层开门状态。二、总体设计方案控制器的功能模块如图1所示,包括主控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。由于其他模块相对简单很多,所以主控制器是核心部分。图1总体设计方案三、设计思路电梯控制器运用状态机的设计方法,思路比较清晰。可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。根据电梯的实际工作情况,可以把状态机设置7个状态,分别是“电梯停留在第1层”、“开门”、“关门”、“开门等待4秒”、“上升”、“下降”和“停止状态”。各个状态之间的转换条件可由上面的设计要求所决定。各状态机之间转换图如图2:图2状态机转换图四、原理图说明电梯控制器为其中的核心部件,控制其电梯的运行情况,而其控制则由按钮来决定,通过按钮指示灯判断电梯的工作状态及显示其运行情况。当按钮为高电平时,电梯开始工作,并通过按钮信号灯决定电梯的运行。电梯所处位置显示通过译码器,再通过数据选择器显示到数码管上。udsig和doorlight显示电梯门和电梯的状态。stoplight[6..1]fuplight[6..1]fdnlight[6..1]显示按钮指示。Reset按钮使电梯恢复到初始位置。楼层position变化相应的数码管也跟着变。其顶层原理图如图3:图3顶层原理图各功能模块如下:1)电梯主控制模块电梯控制器为其中的核心部件,控制其电梯的运行情况,而其控制则由按钮来决定,通过按钮指示灯判断电梯的工作状态及显示其运行情况。图4电梯主控制模块电梯主控制模块端口说明:buttonclk按钮时钟信号liftclk电梯时钟信号reset复位键f1upbutton一楼上楼按钮f2upbutton二楼上楼按钮f3upbutton三楼上楼按钮f4upbutton四楼上楼按钮f5upbutton五楼上楼按钮f2dnbutton二楼下楼按钮f3dnbutton三楼下楼按钮f4dnbutton四楼下楼按钮f5dnbutton五楼下楼按钮f6dnbutton六楼下楼按钮stop1button电梯内部一楼按钮stop2button电梯内部二楼按钮stop3button电梯内部三楼按钮stop4button电梯内部四楼按钮stop5button电梯内部五楼按钮stop6button电梯内部六楼按钮fuplight[6..1]每楼层上升指示灯fdnlight[6..1]每楼层下降指示灯stoplight[6..1]电梯内部楼层指灯position[2..0]楼层位置显示doorlight电梯门状态显示udsig电梯上升下降显示2)分频器模块通过分频器将高频转换为低频,即buttonclk,通过此时钟信号控制电梯信号灯。当按钮为高电平时,电梯开始工作,并通过按钮信号灯决定电梯的运行。图5分频器模块模块端口说明:clk_in电源输入端div_out分频后时钟输出端3)译码器模块图6译码器模块aaa[2..0]楼层位置输出端bbb[3..0]译码输出端4)数据选择器模块图7数据选择器模块数据选择器将译码器输出显示到数码管上,来表示电梯所处层数数据选择器模块端口说明:input[3..0]译码器输入端output[6..0]数据选择器输出端五、源代码电梯程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitysixliftisport(buttonclk:instd_logic;--按钮时钟信号liftclk:instd_logic;--电梯时钟信号reset:instd_logic;--复位键f1upbutton:instd_logic;--一楼上升按钮f2upbutton:instd_logic;--二楼上升按钮f3upbutton:instd_logic;--三楼上升按钮f4upbutton:instd_logic;--四楼上升按钮f5upbutton:instd_logic;f2dnbutton:instd_logic;--二楼下降按钮f3dnbutton:instd_logic;--三楼下降按钮f4dnbutton:instd_logic;--四楼下降按钮f5dnbutton:instd_logic;--五楼下降按钮f6dnbutton:instd_logic;--六楼下降按钮fuplight:bufferstd_logic_vector(6downto1);--上升指示灯fdnlight:bufferstd_logic_vector(6downto1);--下降指示灯stop1button,stop2button,stop3button,stop4button,stop5button,stop6button:instd_logic;--电梯内部按钮stoplight:bufferstd_logic_vector(6downto1);--内部停止指示灯position:bufferintegerrange1to6;--楼层位置显示doorlight:outstd_logic;--电梯门指示灯‘1’开‘0’关udsig:bufferstd_logic);--‘0’处于上升模式,‘1’处于下降模式endsixlift;architectureartofsixliftistypelift_stateis(stopon1,dooropen,doorclose,doorwait4,up,down,stop);--电梯所处的7个状态signalmylift:lift_state;--内部电梯状态信号signalclearup:std_logic;--上升清除信号signalcleardn:std_logic;--下降清除信号begincontrollift:process(reset,liftclk)variablepos:integerrange1to6;--楼层位置变量beginifreset='1'thenmylift=stopon1;--起始状态clearup='0';--上楼信号清除cleardn='0';--下楼信号清除pos:=1;--处于一楼position=1;--处于一楼elseifliftclk'eventandliftclk='1'then--四秒后门关casemyliftiswhenstopon1=doorlight='1';--电梯门开position=1;--电梯处于一楼pos:=1;mylift=doorwait4;whendoorwait4=mylift=doorclose;whendoorclose=doorlight='0';--电梯门关ifudsig='0'then--电梯处于上升模式ifposition=6thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='1';mylift=doorclose;elseudsig='1';mylift=down;endif;elsifposition=5thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='0';mylift=doorclose;elsifstoplight(6)='1'orfdnlight(6)='1'thenudsig='0';mylift=up;elseudsig='1';mylift=down;endif;elsifposition=4thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='0';mylift=doorclose;elsifstoplight(5)='1'orstoplight(6)='1'orfdnlight(6)='1'orfdnlight(5)='1'thenudsig='0';mylift=up;elseudsig='1';mylift=down;endif;elsifposition=3thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='0';mylift=doorclose;elsifstoplight(4)='1'orstoplight(5)='1'orstoplight(6)='1'orfdnlight(6)='1'orfdnlight(5)='1'orfdnlight(4)='1'thenudsig='0';mylift=up;elseudsig='1';mylift=down;endif;elsifposition=2thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='0';mylift=doorclose;elsifstoplight(3)='1'orstoplight(4)='1'orstoplight(5)='1'orstoplight(6)='1'orfdnlight(6)='1'orfdnlight(5)='1'orfdnlight(4)='1'orfdnlight(3)='1'thenudsig='0';mylift=up;elseudsig='1';mylift=down;endif;elsifposition=1thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='0';mylift=doorclose;elseudsig='0';mylift=up;endif;endif;elsifudsig='1'thenifposition=1thenifstoplight=000000andfuplight=000000andfdnlight=000000thenudsig='0';mylift=doorclose;elseudsig='0';mylift=up;endif;elsifpositio
本文标题:六层电梯设计
链接地址:https://www.777doc.com/doc-5007136 .html