• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

ISE四层电梯控制器Basys2开发板verilog 4层电梯

05/23 09:42
608
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-23110621052E10.doc

共1个文件

名称:ISE四层电梯控制Basys2开发板verilog4层电梯(代码在文末下载)

软件:ISE

语言:Verilog

代码功能:

4层电梯

设计一个4层楼高的电梯自动控制系统,要求实现:

(1)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反;

(2)电梯初始状态为一层状态。

(3)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关;

(4)设有电梯入口处设有位置指示装置及电梯运行模式(上升或下降)指示装置;

(5)电梯到达有停站请求的楼层,电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭)。若按下电梯内开门按钮,则电梯一直处于开门状态,若按下电梯内关门按钮,则电梯立即关门。电梯继续进行,直至执行完最后一个请求信号后停留在当前层;

(6)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在Basys2开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys2.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. Testbench

7. 仿真图

1. 自带仿真图

2. Modelsim仿真图

部分代码展示:

`timescale?1ns?/?1ps
//4层电梯
module?elevatorTop(clk,reset,open_btn,close_btn,B1U,B2D,B2U,B3D,B3U,B4D,BF1,BF2,BF3,BF4,door_led,up_led,down_led,HEX0,AN0,AN1,AN2,AN3);
????
?input?clk,reset;
?input?open_btn,close_btn;//开关门
?input?B1U,B2D,B2U,B3D,B3U,B4D,BF1,BF2,BF3,BF4;//电梯控制按键
????output?door_led;//门
?output?up_led;//上
?output?down_led;//下
?output?[7:0]HEX0;//数码管显示
?output?AN0;//数码管位选
?output?AN1;//数码管位选
?output?AN2;//数码管位选
?output?AN3;//数码管位选
?
?reg?[7:0]display;
?wire?door,?dir;
????wire?[2:0]?state;
?
????wire?[9:0]?resetButtons;
????wire?openDoor,?closeDoor,?MoveCountDone,?MoveCountEn;
????wire?C1U,C2D,C2U,C3D,C3U,C4D,G1,G2,G3,G4;
????wire?[7:0]?seconds;
????assign?seconds?=?2;
?assign?AN0=0;//数码管低电平选选通
?assign?AN1=1;//数码管低电平选选通
?assign?AN2=1;//数码管低电平选选通
?assign?AN3=1;//数码管低电平选选通
?
?assign?door_led=door;
?assign?up_led=(state[0]==1)??dir:0;//运行时候才亮
?assign?down_led=(state[0]==1)??~dir:0;//运行时候才亮
????
?//电梯控制模块
?floorControl?fc(
?clk,
?reset,
?openDoor,
?closeDoor,
?C1U,C2D,C2U,C3D,C3U,C4D,G1,G2,G3,G4,
?MoveCountDone,MoveCountEn,
?door,dir,
?state,
?resetButtons
?);
????
?//按键控制模块
?buttonControl?bc(
?{B1U,B2D,B2U,B3D,B3U,B4D,BF1,BF2,BF3,BF4},
?reset,resetButtons,
?{C1U,C2D,C2U,C3D,C3U,C4D,G1,G2,G3,G4}
?);
????
?//电梯门控制
?doorControl?dc(
?reset,
?clk,
?open_btn,
?open_btn,
?close_btn,
?door,
?openDoor,
?closeDoor
?);
????
?//秒计时
?counter?moveCount(
?reset,
?clk,
?MoveCountEn,MoveCountDone,
?seconds
?);

?
always?@(posedge?clk)
begin
case?(state)??//数字显示码
3'd0:?display<=?8'b1111_1001;//1
3'd2:?display<=?8'b1010_0100;//2
3'd4:?display<=?8'b1011_0000;//3
3'd6:?display<=?8'b1001_1001;//4
default:;
endcase
end
assign?HEX0=display;
?
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=264

  • 1-23110621052E10.doc
    下载

相关推荐