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

自动售货机Verilog代码vivado ego1开发板

06/18 10:42
399
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24010310310SN.doc

共1个文件

名称:自动售货机Verilog代码vivado  ego1开发板

软件:vivado

语言:Verilog

代码功能:

1、待售商品有两种15元和3元(可通过开关或按键选择,用led指示选择结果)。

2、可投硬币有两种:5角和1元。分别用两个按键表示,按下按键代表投入硬币,同时数码管显示投入硬币的总金额。

3、当投入金额与所选商品标价相同时,使用led灯进行提示。

4、增加待售商品数量。

5、增加硬币种类为:5角、1元、2元。(至少增加至三种,金额可自定)。

6、自行设计售货机其他功能,比如找零等。

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

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

ego1开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. Testbench

7. 仿真图

整体仿真图

按键消抖模块

控制模块

显示模块

部分代码展示:

//自动售货机
module auto_sell(
input clk_in,//100M
input rst,//高电平有效
//按键 高电平有效(SW0,1,2,3)
input Selection_goods_10,//选商品1元
input Selection_goods_20,//选商品2元
input Selection_goods_30,//选商品3元
input Selection_goods_15,//选商品1.5元
//按键 高电平有效(S1,S2,S3)
input throw_into_10_down,//投1.0元
input throw_into_05_down,//投0.5元
input throw_into_20_down,//投2.0元
//按键 高电平有效
input  confirm_button,//确认购买,高电平有效(SW7)
output [7:0] LED,//闪烁报警(3s)(D9~16)
output  outgo_done_10,//出货指示灯(D1)
output  outgo_done_20,//出货指示灯(D2)
output  outgo_done_30,//出货指示灯(D3)
output  outgo_done_15,//出货指示灯(D4)
output  [7:0] dig_led_1,//数码管段选显示
output  [3:0] wei_led_1, //数码管位选显示
output  [7:0] dig_led_2,//数码管段选显示
output  [3:0] wei_led_2 //数码管位选显示
);
//所有按键取上升沿
wire throw_into_10_down_out;
wire throw_into_05_down_out;
wire throw_into_20_down_out;
wire confirm_button_out;
//按键消抖模块
key_xiaodou  throw_into_10 
(
    .  clk_in(clk_in), 
    .  key_in(throw_into_10_down),
    .  key_out(throw_into_10_down_out)
);
//按键消抖模块
key_xiaodou  throw_into_05 
(
    .  clk_in(clk_in), 
    .  key_in(throw_into_05_down),
    .  key_out(throw_into_05_down_out)
);
//按键消抖模块
key_xiaodou  throw_into_20
(
    .  clk_in(clk_in), 
    .  key_in(throw_into_20_down),
    .  key_out(throw_into_20_down_out)
);
//按键消抖模块
key_xiaodou  confirm_btt 
(
    .  clk_in(clk_in), 
    .  key_in(confirm_button),
    .  key_out(confirm_button_out)
);
wire [7:0] total_throw_inmoney;//投入总钱币
wire [7:0] total_need_money;//选中商品价钱
wire [7:0] total_refund_money;//找零金额
//售货状态控制模块
state_control state_control_u(
. clk_in(clk_in),
. rst(rst),
. Selection_goods_10(Selection_goods_10),
. Selection_goods_20(Selection_goods_20),
. Selection_goods_30(Selection_goods_30),
. Selection_goods_15(Selection_goods_15),
. throw_into_10_down_out(throw_into_10_down_out),
. throw_into_05_down_out(throw_into_05_down_out),
. throw_into_20_down_out(throw_into_20_down_out),
. confirm_button_out(confirm_button_out),
. LED(LED),
. outgo_done_10(outgo_done_10),//出货指示灯1
. outgo_done_20(outgo_done_20),//出货指示灯2
. outgo_done_30(outgo_done_30),//出货指示灯3
. outgo_done_15(outgo_done_15),//出货指示灯4
. total_throw_inmoney_out(total_throw_inmoney),//投入总钱币
. total_need_money_out(total_need_money),//选中商品价钱
. total_refund_money_out(total_refund_money)//找零金额
);
///////////////////////////////////////////////////////////////////////////////////////////////
//显示模块
display_num i_display_num(
. clk(clk_in),//100M
. total_throw_inmoney(total_throw_inmoney),//投入总钱币
. total_need_money(total_need_money),//选中商品价钱
. total_refund_money(total_refund_money),//找零金额
. dig_led_1(dig_led_1),//数码管段选显示
. wei_led_1(wei_led_1),//数码管位选显示
. dig_led_2(dig_led_2),//数码管段选显示
. wei_led_2(wei_led_2)//数码管位选显示
);
endmodule

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

  • 2-24010310310SN.doc
    下载

相关推荐