《EDA技术(机械)实验报告--三层电梯控制器.docx》由会员分享,可在线阅读,更多相关《EDA技术(机械)实验报告--三层电梯控制器.docx(8页珍藏版)》请在第壹文秘上搜索。
1、实验报告(计算机类)开课学院及实验室:实验时间:年月曰学生姓名学号成绩学生所在学院年级/专业/班课程名称EDA技术(机械)课程代码实验项目名称三层电梯控制器项目代码指导教师项目学分一、实验目的1 .了解VHDL语言编程方法,学会熟练运用quartus软件2 .了解三层电梯运作原理3 .了解如何使用VHDL设计一个三层电梯控制器二、内容与设计思想1 .电梯控制器是控制电梯按顾客的要求自动上下的装置2 .设计一个三层电梯控制器:(1)每层电梯入口设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。(2)设有电梯所处位置及运作模式(上、下)指示装置。3 3)电梯每秒升(降)一层楼。(4)电梯到达
2、有停站请求窗楼层后,经1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续运行,直到执行完最后一个指令后停在当前层。(5)能记忆电梯内外的所有请求信号,并按照电梯运行规则秩序响应,每个指令保留至执行后消除。(6)电梯运行规则是:当电梯处于上升模式时,至响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕,如更高层有下楼请求,则直接升到有下楼请求的最高层接客,然后进入下降模式。当电梯处于下降模式时,与上升相反。(7)电梯初始状态为一层开门。三、使用环境WinXP或Win7QUartUSii编程环境四、核心代码及调试过程三层电梯控制器一-Ve
3、ryhardd模块Iibraryieee;useieee.std_Iogic_1164.aII;entityveryharddisport(up1,up2,cIk,down2,down3,k1,k2,k3:instd_logic;site:outstd_Iogic_vector(3downto1);a1,a2.a3:outstd_logic;mode,door:outstd_logic);endveryhardd;architectureveryhard_arcofveryharddistypestate_typeis(d,c2,c3,kai);beginprocess(cIk)variabI
4、eupI,downI,tingI,cengI:std_Iogic_vector(3downto1);variabIemo,x,y,z:std_logic;variabIecnt1,cnt2:integer;variabIestate:state_type;beginifcIk,eventandcIk=,1thenifup1=Othenupl(1):=1;endif;ifup2=Othenupl(2)=;endif;ifdown3=OthendownI(3):=T;endif;ifdown2-0thendownI(2):=1;endif;ifk1=0thentingl(1):=;endif;if
5、k2=,0,thentingl(2)=,;endif;ifk3=0thentingl(3)=,;endif;ifcnt1cengl:=001,;mo:=,O;ifupI/=000orcengl=,000ortingl=,000thenz:二;endif;ifz=Othendoor=11;eIsedoorcengl:=010;ifmo=10theniftingl(2)=1orstate:=kai;tingl(2):=O;upl(2)=,0;elsifdownI(3)=,state:=c3;x:=0;elsifdownI(2)=,1,mo:=,1,;endif;eIseiftingl(2)=1,o
6、rstate:=kai;tingl(2):=O;downI(2):二0;upI(2)=,1,thenortingI(3)=1orx=1,thenorupl(1)=,1,ortingl(1)=,1,thendownI(2)=,1thenelsifupl(1)=,ortingl(1)=,ory=thenstate:-c1;y:=0,;elsifupl(2)=,ordownI(3)=,ortingl(3)=,thenmo:=,O;endif;endif;whenc3=cengl:=1OO;mo:=1;iftingl(3)=1ordownI(3)=1thenstate:=kai;tingl(3):=O
7、;downI(3):=0;eIsifdownI(2)=,1ortingl(2)=1thenstate:=c2;eIsifupl(1)=,1,ortingl(1)=,1,thenstate:=c2;y:=,r;eIsifupl(2)=,1thenstate:=c2;mo:=,0,;endif;whenkai=door=11;ifcnt23thenCnt2:=Cnt2+1;eIsedoor=01;Cnt2:=0;ifcengl=001thenstate:=c1;eIsifcengl=010thenstate:=c2;eIsestate:-c3;endif;endif;endcase;cnt1:=0
8、;endif;endif;site=cengl;a1=tingl(1);a2=tingI(2);a3qqqnuII;endcase;elk06.0-3.nst1endif;endprocess;endseg_arc;DIAN模块Iibraryieee;useieee.std_Iogic_1164.aII;useieee.std_Iogic_unsigned.all;entitydianisport(cIk,mode:instd_logic;seI:outstd_Iogic_vector(3downtoO);q:outstd_Iogic_vector(Oto15);enddian;archite
9、cturedian_arcofdianisbeginprocess(cIk)vartableseeI:std_Iogic_vector(3downtoO);beginifcIkeventandcIk=1thenseeI:-see1+1;ifmode-OthencaseseeIswhen0011,=qqqqqqqqqqq0000000000000000endcase;eIsecaseseeIwhen0011,=qq,0000000000011000when0101,=qq,0000000000000110when0111,=q111111111111111,when1000,=qqq,0000000000001100when1011,=qq,0000000000110000whenothers=q=,0000000000000000endcase;endif;endif;I oksel1.0, modeq0.15:nstseloowndown3sel3.0qO-l5五、总结六、附录(仿真结果)19.175nselkAUPlAup2AIdown2AIdowx3AIklAIk2AIk3AdoorAI1屹AAa3AI,QAJ_n_n_TLrLrLrLnJTJTJTLrLrJLTJLLLLLrLn_T-J