您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 数字电路课程设计报告三层电梯
数字电路课程设计报告~-1-~数字电路课程设计报告——三层电梯控制器姓名:李世刚班级:计122—3学号:201258502314指导老师:王玲玲2012年12月23日数字电路课程设计报告~-2-~目录一、设计内容.........................................................................................................11、简要说明.....................................................................................................................................22、任务和要求..................................................................................................................2二、设计方案及总体功能............................................................................................2三、各部分具体设计.......................................................................................................4四、我的设想......................................................................................................................12五、总结..................................................................................................................................12数字电路课程设计报告~-3-~一、设计内容本次设计的是三层电梯控制器:1、简要说明:电梯控制器是控制电梯按顾客的要求自动上下的装置。2、任务和要求:(1)每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停战请求开关。(2)设有电梯所处位置指示装置及电梯运行模式(上升或下降或等待)指示装置。(3)电梯每秒升(降)一层楼。(4)电梯到达有停站请求的楼层后,经一秒电梯楼门打开,开门指示灯亮,开门四秒后,电梯门关闭(开门指示灯灭),电梯继续运行,直至执行完最后一个请求信号后停在当前层。(5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除(6)电梯运行规则一当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则相反。(7)电梯初始状态为一层开门状态。二、设计方案及总体功能本设计的总体框图如图1-1所示:数字电路课程设计报告~-4-~图1-1总体框图本控制器的功能模块主要包括控制器、状态显示器,译码器,楼层显示器等。乘客在电梯中选择所要到达的楼层,通过控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器从而在楼层显示器中显示。电梯控制器原理图数字电路课程设计报告~-5-~三、各部分具体设计1、模块arc见图1-2。该模块是整个控制器的核心。其主要的的设计思想是将电梯的状态划分为四个:一层状态(c1),二层状态(c2),三层状态(c3)及开门状态(kai)。对于每一个状态分析其所有的可能。图1-3本模块的程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityarcisport(u1,u2,d2,d3,k1,k2,k3,clk:instd_logic;site:outstd_logic_vector(3downto1);a1,a2,a3,mode,door,ur1,ur2,dr2,dr3:outstd_logic);endarc;architecturebehaveofarcistypestate_typeis(c1,c2,c3,kai);数字电路课程设计报告~-6-~beginprocess(clk)variableu,d,s,f:std_logic_vector(3downto1);variablem,a,b,n:std_logic;variablecnt1,cnt2:integer;variablestate:state_type;beginifclk'eventandclk='1'thenifu1='0'thenu(1):='1';ur1='1';endif;ifu2='0'thenu(2):='1';ur2='1';endif;ifd2='0'thend(2):='1';dr2='1';endif;ifd3='0'thend(3):='1';dr3='1';endif;ifk1='0'thens(1):='1';endif;ifk2='0'thens(2):='1';endif;ifk3='0'thens(3):='1';endif;ifcnt11000thencnt1:=cnt1+1;elsecasestateiswhenc1=f:=001;m:='0';ifu/=000ord/=000ors/=000thena:='1';elsea:='0';数字电路课程设计报告~-7-~endif;ifn='0'thendoor='1';elsedoor='0';ifs(1)='1'oru(1)='1'thenstate:=kai;s(1):='0';u(1):='0';elsifu(2)='1'ors(2)='1'thenstate:=c2;elsifd(3)='1'ors(3)='1'thenstate:=c2;b:='1';elsifd(2)='1'thenstate:=c2;m:='1';endif;endif;whenc2=f:=010;ifm='0'thenifs(2)='1'oru(2)='1'thenstate:=kai;s(2):='0';u(2):='0';elsifd(3)='1'ors(3)='1'orb='1'thenstate:=c3;b:='0';elsifd(2)='1'oru(1)='1'ors(1)='1'thenm:='1';endif;endif;ifm='1'thenifd(2)='1'ors(2)='1'thenstate:=kai;d(2):='0';s(2):='0';elsifu(1)='1'ors(1)='1'orn='1'thenstate:=c1;n:='0';elsifu(2)='1'ord(3)='1'ors(3)='1'then数字电路课程设计报告~-8-~m:='0';endif;endif;whenc3=m:='1';f:=100;ifs(3)='1'ord(3)='1'thenstate:=kai;s(3):='0';d(3):='0';elsifd(2)='1'ors(2)='1'thenstate:=c2;elsifu(1)='1'ors(1)='1'thenstate:=c2;n:='1';elsifu(2)='1'thenstate:=c2;m:='0';endif;whenkai=door='1';ifcnt23thencnt2:=cnt2+1;elsedoor='0';cnt2:=0;iff=001thenstate:=c1;elsiff=010thenstate:=c2;elsiff=100thenstate:=c3;endif;endif;endcase;cnt1:=0;endif;endif;site=f;a1=s(1);a2=s(2);a3=s(3);mode=m;数字电路课程设计报告~-9-~endprocess;endbehave;2、计数器模块cnbt,在时钟的驱动下,实现了对数码管的动态扫描及数据的选择。对其进行功能仿真,得到波形图如下:源程序为:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycntbisport数字电路课程设计报告~-10-~(clk:instd_logic;q:bufferstd_logic_vector(2downto0));end;architecturebbcofcntbissignalq1:std_logic_vector(2downto0);beginprocess(clk)beginifclk'eventandclk='1'thenq1=q1+1;endif;endprocess;q=q1;endbbc;3、数据选择器模块selector,实现了对楼层状态,运行状态及楼层请求等输出数据的分时输出。其源程序为:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;数字电路课程设计报告~-11-~entityselectorisport(D0,D1,D2,D3,D4,D5,D6,D7:instd_logic_vector(3downto1);sel:instd_logic_vector(2downto0);M:outstd_logic_vector(3downto1));endselector;architecturebehaveofselectorisbeginprocess(sel)begincaseseliswhen000=M=D0;when001=M=D1;when010=M=D2;when011=M=D3;when100=M=D4;when101=M=D5;when110=M=D6;when111=M=D7;whenothers=M=000;endcase;endprocess;endbehave;4、译码器模块seg,实现了将二进制数据通过数码管显示的功能。其源程序为:libraryieee;useieee.std_logic_1164.all;数字电路课程设计报告~-12-~useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitysegisport(A:instd_logic_vector(3downto1);Q:outstd_logic_vector(6downto0));endseg;architecturebehaveofsegisbeginprocess(A)begincaseAiswhen001=Q=0110000;when010=Q=1101101;when100=Q=1111001;when000=Q=1000111;when111=Q=0001111;when110=Q=0000001;whenothers=null;endcase;endprocess;endbehave;5、总体仿真波形图为:此波形图为在一楼和二楼都有请求时,各个模块的对应波形变化。数字电路课程设计报告~-13-~四、我的设想在本次的设计中虽然基本上达到了基本的最初的要求,但是我认为在设计上仍然存在着一些的不
本文标题:数字电路课程设计报告三层电梯
链接地址:https://www.777doc.com/doc-2425515 .html