版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电梯控制器 VHDL程序与仿真。- 文件名: dianti.vhd 。- 功能: 6 层楼的电梯控制系统。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti isport ( clk : in std_logic;full,deng,quick,clr : in std_logic;c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic;c_d2,c_d3,c_d4,c_d5,c_d6 : in
2、 std_logic;d1,d2,d3,d4,d5,d6 : in std_logic;g1,g2,g3,g4,g5,g6 : in std_logic;door : out std_logic_vector(1 downto 0);led : out std_logic_vector(6 downto 0);led_c_u:out std_logic_vector(5 downto 0);led_c_d:out std_logic_vector(5 downto 0);led_d : out std_logic_vector(5 downto 0);-时钟信号(频率为2Hz )-超载、关门中
3、断、提前关门清除报警信号-电梯外人的上升请求信号-电梯外人的下降请求信号-电梯内人的请求信号-到达楼层信号-电梯门控制信号-电梯所在楼层显示- 电梯外人上升请求信号显示- 电梯外人下降请求信号显示-电梯内请求信号显示wahaha : out std_logic;-看门狗报警信号ud,alarm : out std_logic;-电梯运动方向显示,超载警告信号up,down : out std_logic );-电机控制信号和电梯运动end dianti;architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic
4、;- 电梯内人请求信号寄存信号signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic;-电梯外人上升请求信号寄存信号signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic;-电梯外人下降请求信号寄存信号signal q:integer range 0 to 1;-分频信号signal q1:integer range 0 to 6;-关门延时计数器signal q2:integer range 0 to 9;-看门狗计数器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 down
5、to 0); -电梯内外请求信号寄存器signal opendoor:std_logic;-开门使能信号signal updown:std_logic;-电梯运动方向信号寄存器signal en_up,en_dw:std_logic;-预备上升、预备下降预操作使能信号begincom:process(clk)beginif clkevent and clk=1 thenif clr=1 then q1=0;q2=0;wahaha=0;-清除故障报警elsif full=1 thenalarm=1; q1=3 then door=10;else door=00;end if;elsif q=1
6、then q=0;alarm=0;if q2=3 then wahaha=1;- 故障报警elseif opendoor=1 then door=10;q1=0;q2=0;up=0;down=0;-开门操作elsif en_up=1 then- 上升预操作if deng=1 then door=10;q1=0;q2=q2+1;- 关门中断elsif quick=1 then q1=3;-提前关门elsif q1=6 then door=00;updown=1;up=3 then door=01;q1=q1+1;-电梯进入关门状态else q1=q1+1;door=00;- 电梯进入等待状态en
7、d if;elsif en_dw=1 then-下降预操作if deng=1 then door=10;q1=0;q2=q2+1;elsif quick=1 then q1=3;elsif q1=6 then door=00;updown=0;down=3 then door=01;q1=q1+1;else q1=q1+1;door=00;end if;end if;if g1=1 then led=1001111;- 电梯到达1 楼,数码管显示1if d11=1 or c_u11=1 then d11=0; c_u11=0;opendoor000001 then en_up=1; opend
8、oor=0;-有上升请求,则电梯进入预备上升状态elsif dd_cc=000000 then opendoor=0;-无请求时,电梯停在 1 楼待机end if;elsif g2=1 then led=0010010;-电梯到达 2 楼,数码管显示2if updown=1 then-电梯前一运动状态位上升if d22=1 or c_u22=1 then d22=0; c_u22=0; opendoor000011 then en_up=1; opendoor=0;-有上升请求,则电梯进入预备上升状态elsif dd_cc000010 then en_dw=1;opendoor=0;-有下降请
9、求,则电梯进入预备下降状态end if;-电梯前一运动状态为下降elsif d22=1 or c_d22=1 then d22=0; c_d22=0;opendoor=1;-有当前层的请求,则电梯进入开门状态elsif dd_cc000010 then en_dw=1;opendoor000011 then en_up=1;opendoor=0;-有上升请求,则电梯进入预备上升状态end if;elsif g3=1 then led=0000110;-电梯到达 3 楼,数码管显示3if updown=1 thenif d33=1 or c_u33=1 then d33=0; c_u33=0;o
10、pendoor000111 then en_up=1;opendoor=0;elsif dd_cc000100 then en_dw=1;opendoor=0;end if;elsif d33=1 or c_d33=1 then d33=0; c_d33=0;opendoor=1;elsif dd_cc000100 then en_dw=1;opendoor000111 then en_up=1;opendoor=0;end if;elsif g4=1 then led=1001100;-电梯到达 4 楼,数码管显示 4if updown=1 thenif d44=1 or c_u44=1 t
11、hen d44=0; c_u44=0; opendoor001111 then en_up=1; opendoor=0;elsif dd_cc001000 then en_dw=1;opendoor=0;end if;elsif d44=1 or c_d44=1 then d44=0; c_d44=0; opendoor=1;elsif dd_cc001000 then en_dw=1;opendoor001111 then en_up=1;opendoor=0;end if;elsif g5=1 then led=0100100;-电梯到达 5 楼,数码管显示5if updown=1 the
12、nif d55=1 or c_u55=1 then d55=0; c_u55=0;opendoor011111 then en_up=1;opendoor=0;elsif dd_cc010000 then en_dw=1;opendoor=0;end if;elsif d55=1 or c_d55=1 then d55=0; c_d55=0;opendoor=1;elsif dd_cc010000 then en_dw=1;opendoor011111 then en_up=1;opendoor=0;end if;elsif g6=1 then led=0100000;-电梯到达6 楼,数码管
13、显示6if d66=1 or c_d66=1 then d66=0; c_d66=0;opendoor=1; elsif dd_cc100000 then en_dw=1; opendoor=0;end if;else en_up=0;en_dw=0;-电梯进入上升或下降状态end if;end if;elseq=1;alarm=0;- 清除超载报警if d1=1 then d11=d1;- 对电梯内人请求信号进行检测和寄存elsif d2=1 then d22=d2;elsif d3=1 then d33=d3;elsif d4=1 then d44=d4;elsif d5=1 then d
14、55=d5;elsif d6=1 then d66=d6;end if;if c_u1=1 then c_u11=c_u1;-对电梯外人上升请求信号进行检测和寄存elsif c_u2=1 then c_u22=c_u2;elsif c_u3=1 then c_u33=c_u3;elsif c_u4=1 then c_u44=c_u4;elsif c_u5=1 then c_u55=c_u5;end if;if c_d2=1 then c_d22=c_d2;-对电梯外人下降请求信号进行检测和寄存elsif c_d3=1 then c_d33=c_d3;elsif c_d4=1 then c_d4
15、4=c_d4;elsif c_d5=1 then c_d55=c_d5;elsif c_d6=1 then c_d66=c_d6;end if;dd=d66&d55&d44&d33&d22&d11;-电梯内人请求信号并置cc_u=0&c_u55&c_u44&c_u33&c_u22&c_u11;-电梯外人上升请求信号并置cc_d=c_d66&c_d55&c_d44&c_d33&c_d22&0;-电梯外人下降请求信号并置dd_cc=dd or cc_u or cc_d;-电梯内、外人请求信号进行综合end if;ud=updown;-电梯运动状态显示led_d=dd;-电梯内人请求信号显示led_
16、c_u=cc_u;-电梯外人上升请求信号显示led_c_d=cc_d;-电梯外人下降请求信号显示end if;end process;end behav;电梯程序仿真注:由于以上输入信号在下面仿真中没用到,所以在下面仿真图中将不再出现。电梯控制程序仿真全图-1电梯控制程序仿真全图-2注: 1.电梯停在一楼时,接受到请求信号c_d3、 c_d2、c_u4 和d6,并把请求信号写入相应的寄存器。led显示电梯所在楼层;led_d、 led-c_u 和led_c_d 显示用户的请求。2. 电梯经过准备上升状态后,进入上升状态,到达2 楼, 3 楼时,不停继续前进。3. 电梯上升到 4 楼时,响应请求( c_u4),开门载客;进入预备上升状态。电梯控制程序仿真局部放大图 -1注: 1. 电梯上升到6 楼时,响应请求(d_6 ),开门卸客;进入预备下降状态。2. 电梯下降经过 5 楼, 4 楼都不停,到达 3 楼开门卸客,电梯进入预备下降状态。电梯控制程序仿真局部放大图 -2注: 1. 电梯到达3 楼时,响应请求(c_d3),开门载客;进入预备下降状态。2. 电梯在预备下降状态下,电梯应超载( full=1 ),发出超载警报 alarm ;超载信号消失( full=0 ),电梯重新进入预备下降状态。4. 电梯接受到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒吧饮料冷藏柜租赁合同模板
- 软件开发股权合作协议
- 建筑住宅分包合同
- 2025版孔丽与张明离婚后财产分割及共同债务承担协议书3篇
- 棒球场遮阳棚安装合同
- 物流公司合作合同
- 医疗设备维修服务合同
- 投资者关系与市场信任
- 通信工程二级建造师合同模板
- 企业失业保险金申请表
- 汽车底盘维修实训考核表(共24页)
- 炼铁厂3#烧结主抽风机拆除安全专项方案
- 四年级上册英语期末复习课件综合复习及检测讲义 牛津上海版一起
- 2020年污水处理厂设备操作维护必备
- 初中英语语法课堂教学设计有效性的探讨
- LSS-250B 纯水冷却器说明书
- 《煤矿开采学》课程设计实例
- (完整版)todo,doingsth初中魔鬼训练带答案
- 福建省青少年科技教育协会章程
- 防止返贫监测工作开展情况总结范文
- 2015年度设备预防性维护计划表
评论
0/150
提交评论