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

自动售货机设计Verilog代码Quartus DE2-70开发板

09/10 10:07
673
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24101112021M37.doc

共1个文件

名称:自动售货机设计Verilog代码Quartus  DE2-70开发板

软件:Quartus

语言:Verilog

代码功能:

自动售货机设计

1.设计目的

(1)了解DE2-70开发板的硬件构成;

(2)熟悉开发板可用资源的硬件电路

(3)掌握EDA开发流程;

(4)熟悉 Quartus开发环境;

(5)掌握 Verilog基本语法;

(6)熟练掌握在 QuartusⅡ环境下进行软件仿真的方法。

2.设计内容及基本要求

设计一个小商品自动售货机,要求如下:

(1)基本功能

①用四个发光二极管分别模拟售出价值为1元、1.5元、2元、5元的小商品,购买者可以通过开关选择任意一种标价中的小商品;

②灯亮时表示小商品售出;

③用开关分别模拟5角、1元硬币和5元纸币投入,可以用几只发光二极管(或数码管)分别代表找回剩余的硬币;

④每次只能售出一种小商品,当所投硬币达到或超出购买者所选面值时,售出货物并找回剩余的硬币,回到初始状态;

⑤当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。

(2)扩展功能

按下确认购买开关,找零时,对应数码管显示找零金额,蜂鸣器响,对应价位商品的LED灯亮。

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

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

DE2-70开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 管脚分配

4. 程序编译

5. RTL图

6. 仿真图

按键下降沿检测模块

售货机状态控制模块

数码管显示模块

部分代码展示:

//数码管显示模块
module display(
input clk_in,//时钟
input [7:0] input_money_BCD,//投币金额
input [7:0] change_money_BCD,//找钱
output  reg [7:0] HEX0,//数码管-低亮
output  reg [7:0] HEX1,//数码管-低亮
output  reg [7:0] HEX2,//数码管-低亮
output  reg [7:0] HEX3//数码管-低亮
);
//定义十位个位信号
wire [3:0] money_ten;
wire [3:0] money_one;
wire [3:0] change_money_ten;
wire [3:0] change_money_one;
assignmoney_ten = input_money_BCD/10;//投币金额十位
assignmoney_one = input_money_BCD%10;//投币金额个位
assignchange_money_ten = change_money_BCD/10;//找钱十位
assignchange_money_one = change_money_BCD%10;//找钱个位
///段选输出///
//显示投币金额十位
always @(money_ten)
begin
case (money_ten)  //数字显示码
4'd0: HEX0= 8'b1100_0000;
4'd1: HEX0= 8'b1111_1001;
4'd2: HEX0= 8'b1010_0100;
4'd3: HEX0= 8'b1011_0000;
4'd4: HEX0= 8'b1001_1001;
4'd5: HEX0= 8'b1001_0010;
4'd6: HEX0= 8'b1000_0010;
4'd7: HEX0= 8'b1111_1000;
4'd8: HEX0= 8'b1000_0000;
4'd9: HEX0= 8'b1001_0000;
default:;
endcase
end

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

  • 2-24101112021M37.doc
    下载

相关推荐