六层电梯控制系统的设计_第1页
六层电梯控制系统的设计_第2页
六层电梯控制系统的设计_第3页
六层电梯控制系统的设计_第4页
六层电梯控制系统的设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

题目:六层电梯控制系统的设计

一、大作业摘要电梯在人们生活中有着广泛的应用。它拓展了人们的生存空间,为高层建筑事业的发展做出了不可磨灭的贡献。现在,电梯已经完全融入我们的生活、工作及学习中,人们越来越离不开它。为了让电梯更好的服务人们,各种电梯新技术不断地发展起来。由于用户对电梯功能的要求不断提高.其相应控制方式也在不断发生变化。随着EDA技术的快速发展。基于FPGA的微机化控制已广泛应用于电梯电路设计与控制的各个方面。所以我想设计一部电梯的控制系统,这可以让我加强了解数字电子的有关知识。这也可以为我们以后大四的毕业设计进行预先的了解。二、设计的背景、目的和意义背景:随着经济的快速发展,城市建设的不断深入,高层建筑如雨后春笋拔地而起。现在的楼房越来越高,与此相应,作为一种可以垂直升降运输的工具——电梯也得到迅猛的发展。电梯在人们生活中有着广泛的应用。

目的:能实现上下楼并能控制开门的计数器和楼层的显示以及电梯的上下标志。意义:方便

住在高层的人们上下楼,节约时间三、设计任务及要求设计任务:设计一部六层电梯的控制系统,能基本满足上下的功能,并能在到达指定楼层时开门记时5秒。设计要求:

(1)方向为第一优先准则,即电梯在运转时先响应同方向上的请求,只有当同方向上的请求响应完后,才能转而响应不同方向上的请求。

(2)初始化状态为1楼等待门是关闭的。四、确定输入和输出变量输入变量:时钟clk,清零reset(高电平有效),外部上行按钮up1-up5,外部下行按钮dn6-dn2,内部楼层按d1-d6。输出变量:显示上行下行的ud_f,开门记时的count,楼层显示的led五、确定输入状态在接到答辩题目时,我仔细分析了电梯的状态,首先我想到的是以电梯的1—6层作为状态,但在实际的测试中这种情况很复杂,并且没有开门功能,所以我换了一种思路,即以等待,上行,下行,开门,关门作为转换状态,这使得我的工作量有所减轻,并使得电梯拥有基本的运行能力。六、整体设计框图八、方案论证方案1:基于verlogHDL原理实现方案2:基于单片机原理实现确定选择方案1,理由是我们对于verlogHDL熟悉,并且相对简单九、状态任务输出特性分析,确定状态机类型状态任务输出特性分析:1至6层分别用f1=6’b000001f2=6’b000010f3=6’b000100f4=6’b001000f5=6’b010000f6=6’b100000表示;上下指示用idle=2’b00up_f=2’b01dn_f=2’b10表示;楼层显示则接七段数码管来输出,其中个位显示楼层,十位开门记时确定状态机类型;因为输出由当前状态决定所以选Moore型状态时钟频率确定:1Hz十、状态机设计(状态转换图)

十一、状态机设计(状态编码)modulelift(clk,reset,led,ud_f,count,up1,up2,up3,up4,up5,dn2,dn3,dn4,dn5,dn6,d1,d2,d3,d4,d5,d6);inputclk,reset;inputup1,up2,up3,up3,up4,up5,dn2,dn3,dn4,dn5,dn6,d1,d2,d3,d4,d5,d6;outputled,count;outputud_f;reg[3:0]led,count;reg[1:0]ud_f;reg[3:0]CS,NS;reg[5:0]up,dn,d,now_f;parameter[3:0]idle_state=4'b0000,up_state=4'b0001,down_state=4'b0010,open_state=4'b0100,close_state=4'b1000;parameter[7:0]f1=6'b000001,f2=6'b000010,f3=6'b000100,f4=6'b001000,f5=6'b010000,f6=6'b100000;parameter[1:0]up_f=2'b01,dn_f=2'b10,idle=2'b00;always@(up1orup2orup3orup4orup5)up={1'b0,up5,up4,up3,up2,up1};

always@(dn2ordn3ordn4ordn5ordn6)dn={dn6,dn5,dn4,dn3,dn2,1'b0};always@(d1ord2ord3ord4ord5ord6)d={d6,d5,d4,d3,d2,d1};

always@(posedgeclkorposedgereset)if(reset)beginstate<=idle_state;endelsestate<=next_state;always@(CSorupordnordornow_forcountorud_f)case(CS)open_state:beginif(count<5)NS=open_state;elseNS=close_state;endidle_state:beginif(d>0)beginif((d&now_f)>0)NS=open_state;elseif(d>now_f)NS=up_state;elseNS=down_state;endelseif((up&now_f)||(dn&now_f))NS=open_state;elseif((up>now_f)||(dn>now_f))NS=up_state;elseif(up<now_f||dn<now_f)NS=down_state;elseNS=idle_state;endup_state:beginif((d&now_f)||(up&now_f))NS=open_state;elseif((d>now_f)||(up>now_f))NS=up_state;elseif(d<now_f||up<now_f)NS=down_state;elseif(dn>0)beginif(dn>now_f)NS=up_state;elseif(dn&now_f)NS=open_state;elseNS=down_state;endelseNS=idle_state;end

down_state:beginif((d&now_f)||(dn&now_f))NS=open_state;elseif(((d<now_f)&&(d!=6'b000001))||((dn<now_f)&&(dn!=6'b000001)))NS=down_state;elseif((d>now_f)||(dn>now_f))NS=up_state;elseif(up>0)beginif(up<now_f)NS=down_state;elseif((up&now_f)&&(now_f==f1))NS=open_state;elseNS=up_state;endelseNS=idle_state;end

close_state:beginif(ud_f==up_f)beginif((d&now_f)||(up&now_f))NS=open_state;elseif((d>now_f)||(up>now_f))NS=up_state;elseif(d<now_f||up<now_f)NS=down_state;elseif(dn>0)beginif(dn>now_f)NS=up_state;

elseif((dn&now_f)>0)NS=open_state;elseNS=down_state;endelseNS=idle_state;endelseif(ud_f==dn_f)beginif((d&now_f)||(dn&now_f))

NS=open_state;elseif(((d<now_f)&&(d!=6'b000001))||((dn<now_f)&&(dn!=6'b000001)))NS=down_state;elseif(((d>now_f)&&(d!=6’b100000))||dn>now_f)&&(dn!=6’b100000)NS=up_state;elseif(up>0)beginif(up<now_f)NS=down_state;elseif((up&now_f)>0)NS=open_state;elseNS=up_state;endelseNS=idle_state;endelsebeginif(d>0)beginif((d&now_f)>0)NS=open_state;elseif(d>now_f)NS=up_state;elseNS=down_state;endelseif((up&now_f)||(dn&now_f))NS=open_state;elseif((up>now_f)||(dn>now_f))NS=up_state;elseif(up||dn)NS=down_state;elseNS=idle_state;endenddefault:NS=idle_state;endcasealways@(posedgeclkorposedgereset)if(reset)beginnow_f<=f1;ud_f<=idle;led<=1;endelsebeginnow_f<=now_f;

case(next_state)idle_state: beginnow_f<=now_f;ud_f<=idle;led<=led;endup_state:beginnow_f<=now_f<<1;ud_f<=up_f;led<=led+1;end

down_state:beginnow_f<=now_f>>1;ud_f<=dn_f;led<=led-1;endopen_state:beginnow_f<=now_f;ud_f<=ud_f;led<=led;end

close_state:beginnow_f<=now_f;ud_f<=ud_f;led<=led;enddefault: beginnow_f<=f1;ud_f<=idle;led<=led;endendcaseend

always@(posedgeclkorposedgereset)if(reset)count<=0;elseif((next_state==open_state)&&(count<5))count<=count+1;elsecount<=0;endmodulemoduleBCDto7SEG(B3,B2,B1,B0,a,b,c,d,e,f,g);inputB3,B2,B1,B0;outputa,b,c,d,e,f,g;reg[3:0]BCD;rega,b,c,d,e,f,g;always@(B3,B2,B1,B0)begin

BCD={B3,B2,B1,B0};case(BCD)4'b0000:{g,f,e,d,c,b,a}=7'b1000000;4'b0001:{g,f,e,d,c,b,a}=7'b1111001;4'b0010:{g,f,e,d,c,b,a}=7'b0100100;4'b0011:{g,f,e,d,c,b,a}=7'b0110000;4'b0100:{g,f,e,d,c,b,a}=7'b0011001;4'b0101:{g,f,e,d,c,b,a}=7'b0010010;4'b0110:{g,f,e,d

温馨提示

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

评论

0/150

提交评论