资源链接在文章底部(ps含 报告及完整工程文件)
1、设计内容
用EGO1板上资源设计高度为五层楼的电梯模拟器,在开发板上模拟电梯运行状态,并显示电梯运行时间。
1.利用板上五个按键S0,S1,S2,S3,S4,S5作为对应楼层呼叫按键;
2.利用数码管显示电梯运行楼层和目的楼层以及电梯运行时间;
3.使用LED1,LED2,LED3,LED4,LED5五个LED指示灯分别显示对应楼层呼叫状态,LED0显示电梯开关状态。
4.电梯每运行一层耗时一秒,开发板上电即电梯开始工作。
2、系统运行流程
系统初始时,电梯停在某一层。当没有楼层按键按下时,各LED指示灯处于熄灭状态;当有楼层按键按下时,对应LED指示灯亮起,左侧第二个数码管显示目的楼层,左侧第一个数码管显示电梯运行楼层。若使用者按错目的楼层,可再次按下对应楼层以取消之前的按键信息。
用的是下面这块板子
3、系统运行流程图
4、部分代码
1. module lift(
2. input clk, //输入时钟信号
3. input [4:0] btn, //按键信号
4. output [4:0] nfloor, //楼层信号
5. output [6:0] seg,
6. output [6:0] seg2,
7. output reg lift_open, //电梯开关门状态
8. output reg [7:0] EN_led //数码管使能
9.
10. );
11. parameter maxcnt=50000;
12. parameter N = 99_999999; //100MHz
13. reg [4:0] btn_pre_re,,btn_off; //按键
14. reg clk_200ms; //200ms时钟
15. reg clk_1s; //1s时钟
16. reg clk_3s; //3s时钟
17. reg [31:0] count,count1,count3;
18. reg [5:0]count2;
19. reg [6:0] dout;
20. reg [6:0] dout2;
21. wire [27:0] dout_temp;
22. //wire [6:0] seg_temp;
23. wire [3:0] ans;
24. reg [3:0] ans_reg;
25. wire [9:0] bcd_s;
26. wire [9:0] bcd_m;
27. reg [9:0] reg_bcd_s;
28. reg [9:0] reg_bcd_m;
29. reg [1:0] lift_state; //电梯状态
30. reg [2:0] lift_num; //电梯运行楼层
31. reg [2:0] disp_bit=0; //要显示的位
32. reg [2:0] disp_data; //位
33. reg[15:0] divclk_cnt = 0; //分频计数值
34. reg divclk = 0; //分频后的时钟
35.
报告含系统简要说明,可直接提交,附完整工程文件,以调试好,可直接运行Vivado下载到EGO1中运行。
资源链接