EDA设计实验基于VHDL的电梯控制系统.docx

上传人:b****3 文档编号:3461465 上传时间:2022-11-23 格式:DOCX 页数:12 大小:65.44KB
下载 相关 举报
EDA设计实验基于VHDL的电梯控制系统.docx_第1页
第1页 / 共12页
EDA设计实验基于VHDL的电梯控制系统.docx_第2页
第2页 / 共12页
EDA设计实验基于VHDL的电梯控制系统.docx_第3页
第3页 / 共12页
EDA设计实验基于VHDL的电梯控制系统.docx_第4页
第4页 / 共12页
EDA设计实验基于VHDL的电梯控制系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

EDA设计实验基于VHDL的电梯控制系统.docx

《EDA设计实验基于VHDL的电梯控制系统.docx》由会员分享,可在线阅读,更多相关《EDA设计实验基于VHDL的电梯控制系统.docx(12页珍藏版)》请在冰豆网上搜索。

EDA设计实验基于VHDL的电梯控制系统.docx

EDA设计实验基于VHDL的电梯控制系统

课程设计

 

学生姓名:

学号:

指导教师:

教师职称:

讲师

院系:

班级:

 

摘要:

电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。

中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。

随着社会需求的变化,电梯朝着节能、环保及智能化方向发展。

EDA技术打破了软件和硬件间的壁垒,是计算机的软件技术与硬件实现、设计效率与产品能合二为一,它代表了电子技术和应用技术的发展方向。

VHDL主要用于描述数字系统的接口,结构和功能,它的语法简单易懂,移植性好。

本设计采用VHDL,源程序Altera公司的QuartusII软件仿真。

通过寄存器储存电梯请求信息,检测电梯运行状态,控制电梯按要求运作。

关键词:

EDAVHDL电梯控制系统

设计要求:

设计一个6层自动升降电梯控制电路,该控制器遵循方向优先原则完成6层楼的载客服务,同时指示电梯运行情况和电梯内外请求信息,具体要求如下:

(1)每层电梯入口处设有上、下请求开关,电梯内设有乘客到达楼层的请求开关。

(2)设有电梯所处楼层指示和电梯运行模式(上升或下降)指示。

(3)能记忆电梯内外的所有请求信号,并按照电梯运行规则次序响应,响应动作完成后清除请求信号。

(4)能检验是否超载,并设有报警信号。

(5)方向优先原则。

当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信息,由下而上逐个执行,直到最后一个上楼请求执行完毕,故更高层有下楼请求,则直接到有下楼请求的最高层接客,然后进入下降模式。

电梯处于下降模式时,与上升模式相反。

设计原理:

电梯控制器通过乘客在电梯内外的请求信号控制上升或下降,而楼层信号由电梯本身的装置触发,从而确定电梯处在哪个楼层。

乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在的楼层数通过LED数码管显示,

电梯门的状态分为开门,关闭,“00”表示关闭,“10”表示开启。

其系统结构框图如图1

图1系统结构框图

电路符号如图2:

图2电路符号

CLK:

时钟信号输入端。

full:

超载信号输入端。

alarm:

超载报警信号输出端。

clr:

清除报警信号输入端。

up1-up5:

电梯外请求信号输入端。

down2-down6:

电梯外请求信号输入端。

k1-k6:

电梯内请求信号输入端。

g1-g6:

到达楼层信号输入端(由于实验板无传感器,所以手动控制拨码开关表示到大楼层信号)

door[1..0]:

电梯门控制信号输入端。

led[6..0]:

LED数码管显示控制输出端。

ud:

电梯状态显示输出端。

up:

控制电机向上转输出端。

down:

控制电机向下转输出端。

设计方法:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entityelevatoris

port(clk:

instd_logic;

full:

instd_logic;

clr:

instd_logic;

up1,up2,up3,up4,up5:

instd_logic;

down2,down3,down4,down5,down6:

instd_logic;

k1,k2,k3,k4,k5,k6:

instd_logic;

g1,g2,g3,g4,g5,g6:

instd_logic;

door:

outstd_logic_vector(1downto0);

led:

outstd_logic_vector(6downto0);

ud:

outstd_logic;

alarm:

outstd_logic;

up,down:

outstd_logic);

endelevator;

architectureoneofelevatoris

signalk11,k22,k33,k44,k55,k66:

std_logic;

signalup11,up22,up33,up44,up55:

std_logic;

signaldown22,down33,down44,down55,down66:

std_logic;

signalkk,uu,dd,uu_dd:

std_logic_vector(5downto0);

signalopendoor:

std_logic;

signalupdown:

std_logic;

signalen_up,en_down:

std_logic;

signala:

std_logic;

begin

kk<=k66&k55&k44&k33&k22&k11;

uu<='0'&up55&up44&up33&up22&up11;

dd<=down66&down55&down44&down33&down22&'0';

uu_dd<=kkoruuordd;

ud<=updown;

process(clk)

begin

ifclk'eventandclk='1'then

ifk1='1'then

k11<=k1;

elsifk2='1'then

k22<=k2;

elsifk3='1'then

k33<=k3;

elsifk4='1'then

k44<=k4;

elsifk5='1'then

k55<=k5;

elsifk6='1'then

k66<=k6;

endif;

ifup1='1'then

up11<=up1;

elsifup2='1'then

up22<=up2;

elsifup3='1'then

up33<=up3;

elsifup44='1'then

up44<=up4;

elsifup5='1'then

up55<=up5;

endif;

ifdown2='1'then

down22<=down2;

elsifdown3='1'then

down33<=down3;

elsifdown4='1'then

down44<=down4;

elsifdown5='1'then

down55<=down5;

elsifdown6='1'then

down66<=down6;

endif;

ifclr='0'thenalarm<='0';

a<='1';

elsiffull='0'then

alarm<='1';

door<="10";

elsealarm<='0';

a<='1';

ifa='1'then

ifopendoor='1'then

door<="10";

up<='0';

down<='0';

elsifen_up='1'then

door<="00";

updown<='1';

up<='1';

down<='0';

elsifen_down='1'then

door<="00";

updown<='0';

down<='1';

up<='0';

endif;

endif;

endif;

----------------------------------------------

ifg1='1'thenled<="0000110";

ifk11='1'orup11='1'then

k11<='0';

up11<='0';

opendoor<='1';

elsifuu_dd>"000001"then

en_up<='1';

opendoor<='0';

elsifuu_dd="000000"then

opendoor<='0';

endif;

elsifg2='1'thenled<="1011011";

ifupdown='1'then

ifk22='1'orup22='1'then

k22<='0';

up22<='0';

opendoor<='1';

elsifuu_dd>"000011"then

en_up<='1';

opendoor<='0';

elsifuu_dd<"000010"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

endif;

else

ifk22='1'ordown22='1'then

k22<='0';

down22<='0';

opendoor<='1';

elsifuu_dd<"000010"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

elsifuu_dd>"000011"then

en_up<='1';

opendoor<='0';

endif;

endif;

elsifg3='1'thenled<="1001111";

ifupdown='1'then

ifk33='1'orup33='1'then

k33<='0';

up33<='0';

opendoor<='1';

elsifuu_dd>"000111"then

en_up<='1';

opendoor<='0';

elsifuu_dd<"000100"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

endif;

else

ifk33='1'ordown33='1'then

k33<='0';

down33<='0';

opendoor<='1';

elsifuu_dd<"000100"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

elsifuu_dd>"000111"then

en_up<='1';

opendoor<='0';

endif;

endif;---------------------------------------

elsifg4='1'thenled<="1100110";

ifupdown='1'then

ifk44='1'orup44='1'then

k44<='0';

up44<='0';

opendoor<='1';

elsifuu_dd>"001111"then

en_up<='1';

opendoor<='0';

elsifuu_dd<"001000"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

endif;

else

ifk44='1'ordown44='1'then

k44<='0';

down44<='0';

opendoor<='1';

elsifuu_dd<"001000"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

elsifuu_dd>"001111"then

en_up<='1';

opendoor<='0';

endif;

endif;

elsifg5='1'thenled<="1101101";

ifupdown='1'then

ifk55='1'orup55='1'then

k55<='0';

up55<='0';

opendoor<='1';

elsifuu_dd>"011111"then

en_up<='1';

opendoor<='0';

elsifuu_dd<"010000"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

endif;

else

ifk55='1'ordown55='1'then

k55<='0';

down55<='0';

opendoor<='1';

elsifuu_dd<"010000"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

elsifuu_dd>"011111"then

en_up<='1';

opendoor<='0';

endif;

endif;

elsifg6='1'thenled<="1111101";

ifk66='1'ordown66='1'then

k66<='0';

down66<='0';

opendoor<='1';

elsifuu_dd<"100000"anduu_dd/="000000"then

en_down<='1';

opendoor<='0';

elseen_up<='0';en_down<='0';up<='0';updown<='0';

endif;

endif;

endif;

ifg6='1'thenup<='0';updown<='0';

endif;

ifg1='1'thendown<='0';updown<='0';

endif;

endprocess;

endone;

仿真结果:

图1仿真图1

图1状态为:

当up1被按下后,电梯门开启,door置为“10,”乘客进入电梯,电梯检测到超重,full置‘0’,alarm置‘1’发出警报,直到电梯不超载为止,full置‘1’,alarm置‘0’。

电梯内部乘客按下k5键(去五楼请求),电梯关门,door置为“00”,电机控制位up置“1”,电梯开始上升,与此同时,电梯状态指示ud置‘1’,表示上升。

传感器输入电梯所在楼层信号,用g1-g6表示,置‘1’表示电梯所在楼层。

在上升过程中,LED数码管显示电梯所在楼层数。

到达五楼时,up置‘0’,door置“10”。

由于六楼有下降请求,电梯继续上升接客。

接到客后,乘客按下k1,down置‘1’,电梯下行,到达一楼卸客后,关门待命。

实验体会:

在这次实课程设计中,我们虽然碰到了很多困难和问题,到最后还是靠自己的努力与坚持独立的完成了任务。

当遇到了自己无法解决的困难与问题的时候,还请教老师给予指导和帮助。

这次设计给我最深的印象就是扩大自己的知识面,了解更多与本专业有关的科技信息,与时代共同进步,才能在将来成为有用的科技人才,觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

参考文献:

[1]黄正巾,徐坚等.CPLD系统设计与应用[M].北京:

电子工业出版社,2002,110~123.

[2]蒋璇,臧春花.数字系统设计与PLD应用技术[M].北京:

电子工业出版社,2001,23~34.

[3]孟宪元.可编程ASIC集成数字系统[M].北京:

电子工业出版社,2003,231~243.

[4]潘松,王国栋.VHDL实用教程(修订版)[M].成都:

成都电子科技大学出版社,2002,45~87.

[5]宋万杰,罗丰,吴顺君.CPLD技术及其应用[M].西安:

西安电子科技大学出版社,2005,25~56.

[6]王锁萍.电子设计自动化(EDA)教程[M].成都:

成都电子科技大学出版社,2006,67~90.

[7]邱玉春.李文俊.VHDL系统设计[M].电子产品世界,2007,50~53.

[8]苏长赞.电梯设计与应用[M].北京:

人民邮电出版社,2008,76~91.

[9]楼然苗.CPLD设计指导[M].北京航空航天大学出版社,2007,223~225.

[10]彭为.数字系统设计[M].电子工业出版社,2006,61~71.

[11]吴国经.单片机应用技术[M].中国电力出版社,2004,112~131.

[12]戴佳.VHDL程序设计实例精讲[M].电子工业出版社,2007,88~92.

[13]朱清慧.VHDL教程.清华大学出版社[M].2008,201~210.

[14]何立民.EDA应用技术选编[M].北京:

北京航空航天大学出版社,2008,44~51.

[15]李华EDA实用接口技术[M].北京航空航天大学出版社2003,176~182.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1