EDA设计实验基于VHDL的电梯控制系统文档格式.docx
《EDA设计实验基于VHDL的电梯控制系统文档格式.docx》由会员分享,可在线阅读,更多相关《EDA设计实验基于VHDL的电梯控制系统文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
设计原理:
电梯控制器通过乘客在电梯内外的请求信号控制上升或下降,而楼层信号由电梯本身的装置触发,从而确定电梯处在哪个楼层。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在的楼层数通过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:
clr:
up1,up2,up3,up4,up5:
down2,down3,down4,down5,down6:
k1,k2,k3,k4,k5,k6:
g1,g2,g3,g4,g5,g6:
door:
outstd_logic_vector(1downto0);
led:
outstd_logic_vector(6downto0);
ud:
outstd_logic;
alarm:
up,down:
outstd_logic);
endelevator;
architectureoneofelevatoris
signalk11,k22,k33,k44,k55,k66:
std_logic;
signalup11,up22,up33,up44,up55:
signaldown22,down33,down44,down55,down66:
signalkk,uu,dd,uu_dd:
std_logic_vector(5downto0);
signalopendoor:
signalupdown:
signalen_up,en_down:
signala:
begin
kk<
=k66&
k55&
k44&
k33&
k22&
k11;
uu<
='
0'
&
up55&
up44&
up33&
up22&
up11;
dd<
=down66&
down55&
down44&
down33&
down22&
'
;
uu_dd<
=kkoruuordd;
ud<
=updown;
process(clk)
ifclk'
eventandclk='
1'
then
ifk1='
k11<
=k1;
elsifk2='
k22<
=k2;
elsifk3='
k33<
=k3;
elsifk4='
k44<
=k4;
elsifk5='
k55<
=k5;
elsifk6='
k66<
=k6;
endif;
ifup1='
up11<
=up1;
elsifup2='
up22<
=up2;
elsifup3='
up33<
=up3;
elsifup44='
up44<
=up4;
elsifup5='
up55<
=up5;
ifdown2='
down22<
=down2;
elsifdown3='
down33<
=down3;
elsifdown4='
down44<
=down4;
elsifdown5='
down55<
=down5;
elsifdown6='
down66<
=down6;
ifclr='
thenalarm<
a<
elsiffull='
alarm<
door<
="
10"
elsealarm<
ifa='
ifopendoor='
up<
down<
elsifen_up='
00"
updown<
elsifen_down='
endif;
----------------------------------------------
ifg1='
thenled<
0000110"
ifk11='
orup11='
then
opendoor<
elsifuu_dd>
"
000001"
en_up<
elsifuu_dd="
000000"
elsifg2='
1011011"
ifupdown='
ifk22='
orup22='
000011"
elsifuu_dd<
000010"
anduu_dd/="
en_down<
else
ordown22='
elsifg3='
1001111"
ifk33='
orup33='
k33<
up33<
000111"
000100"
ordown33='
---------------------------------------
elsifg4='
1100110"
ifk44='
orup44='
k44<
up44<
001111"
001000"
ordown44='
elsifg5='
1101101"
ifk55='
orup55='
k55<
up55<
011111"
010000"
ordown55='
elsifg6='
1111101"
ifk66='
ordown66='
k66<
100000"
elseen_up<
en_down<
up<
updown<
ifg6='
thenup<
ifg1='
thendown<
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.