基于FPGA的六层电梯控制系统课程设计打印终稿(6)

2019-03-05 22:38

基于FPGA 的六层电梯控制系统

完最后一个请求信号后停留在当前层。电梯初始状态为一层关门状态。

综上所述,完成了课题的所有要求,该设计采用模块化编程,升级可实现任意多层电梯系统,具有很强的适应性和实用性。

在本设计中,因为考虑了扩展性,所以在信号定义的时候就使用了二进制的向量,而不是整数。在设计方法上也做了特殊的设计,所以使得扩展性较好。如果要实现n层电梯的控制,首先在端口的地方就要加入所有的按键,而指示灯只要把向量中的6改成n就可以了。同时需要在按键控制进程里加入其他按键触发指示灯的语句。在电梯的升降状态将6改成n,在电梯的开门状态中将2改成n一1,在关门状态,将position=6改成position=n,关键是修改position=6的部分,如果按照每层罗列,将十分烦琐,所以得寻求各层判断条件的共性,解决方法之一就是,新建一个全局向量abc为std_logic_vector(n downto 1),abc的赋值为abc<=(pos=>’1’,other=>'

0’)。在电梯的上升模式时,如果有本层请求信号,则电梯开门;如果没有任何请求信号,则电梯停在当前层;否则用abc和stoplight与fuplight向量比较,如果stoplight或fupligh比abc大,则说明更高层还有上升或者停战请求,电梯需继续上升;如果abc更大,则用abc与fdnlight作比较,如果fdnlight更大,则说明更高层有下降请求,电梯继续上升,否则电梯下降。电梯处在下降模式时同原理分析判定下一状态。这样可以大大简化程序,但要注意的是abc向量作为判断依据,需实时更新,可以单独写一个进程,触发时钟周期要设置得很小。在电梯的上升状态和开门状态中,把6改为n,在信号灯控制进程中加入其它按键触发指示灯的语句。

20

基于FPGA 的六层电梯控制系统

参考文献

[1]潘松,黄继业.EDA技术实用教程.科学出版社,2006

[2]付家才.EDA原理与应用[M].北京:化学工业出版社,2001:15-23

[3]王振红.VHDL数字电路设计应用实践教程[M].北京:机械工业出版社,2003:2-14 [4]黄智伟.FPGA系统设计与实践[M].北京:电子工业出版社,2005:12-24 [5] 梁延东.电梯控制技术[M].北京:中国建筑工业出版社,1997:23-47

21

基于FPGA 的六层电梯控制系统

致谢

在这里对老师在平时授课中的耐心教导表示衷心感谢。

通过此次课程设计,学到了很多之前不了解的知识,也意识到了大学课程对我们今后的学习有很大的帮助。在课程设计中,我虽然碰到了很多困难和问题,到最后还是靠自己的努力与坚持独立的完成了任务。这次设计给我最深的印象就是扩大自己的知识面,学习了很多以前不了解的知识,了解更多与本专业有关的科技信息,与时代共同进步,才能在将来成为有用的科技人才,觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。再次感谢老师的谆谆教诲!

22

基于FPGA 的六层电梯控制系统

附录

源程序: 电梯控制程序: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity sixlift is port(

buttonclk:in std_logic; --按钮时钟信号

liftclk: in std_logic; --电梯时钟信号

reset:in std_logic; --复位键

f1upbutton:in std_logic; --一楼上升按钮 f2upbutton:in std_logic; --二楼上升按钮

f3upbutton:in std_logic; --三楼上升按钮 f4upbutton:in std_logic; --四楼上升按钮 f5upbutton:in std_logic;

f2dnbutton:in std_logic; --二楼下降按钮 f3dnbutton:in std_logic; --三楼下降按钮 f4dnbutton:in std_logic; --四楼下降按钮 f5dnbutton:in std_logic; --五楼下降按钮

f6dnbutton:in std_logic; --六楼下降按钮

fuplight:buffer std_logic_vector(6 downto 1); --上升指示灯

fdnlight:buffer std_logic_vector(6 downto 1); --下降指示灯 stop1button,stop2button,stop3button,

stop4button,

stop5button,

stop6button:in std_logic; --电梯内部按钮

stoplight:buffer std_logic_vector(6 downto 1); --内部停止指示灯

position:buffer integer range 1 to 6; --楼层位置显示

doorlight:out std_logic; --电梯门指示灯 ‘1’ 开 ‘0’关

23

基于FPGA 的六层电梯控制系统

udsig:buffer std_logic ); --‘0’处于上升模式,‘1’处于下降模式 end sixlift;

architecture art of sixlift is type

lift_state

is

(stopon1,dooropen,doorclose,doorwait4,up,down,stop); --电梯所处的7个状态

signal mylift:lift_state; --内部电梯状态信号

signal clearup:std_logic; --上升清除信号 signal cleardn:std_logic; --下降清除信号

signal waitcnt:integer range 0 to 2; --waitcnt为完成四秒延时而设置 begin

controllift:process(reset,liftclk) variable pos:integer range 1 to 6; --楼层位置变量 begin

if reset='1' then mylift<=stopon1; --起始状态 clearup<='0'; --上楼信号清除 cleardn<='0'; --下楼信号清除 pos:=1; --处于一楼 position<=1; --处于一楼 else

if liftclk'event and liftclk='1' then --四秒后门关 case mylift is

when stopon1 => doorlight<='1'; --电梯门开 position<=1; --电梯处于一楼 pos:=1;

mylift<=doorwait4; when doorwait4 => waitcnt<=waitcnt+1; --waitcnt计数够两个电梯时钟脉冲后状态跳转到doorclose,加上中间过程完成延时四秒

24


基于FPGA的六层电梯控制系统课程设计打印终稿(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:时尚买手店合作经营协议

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: