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

基于FPGA的自动售货机设计Verilog代码Quartus仿真

07/24 08:05
434
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2405131S201R0.doc

共1个文件

名称:基于FPGA的自动售货机设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

设计一个自动售货机控制系统

自动售长机控制系统可以售卖4种货品,价钱分别为0.5元,1元、1.5元和2元可以通过开关选择,按受硬币投get信号开始,finish信号结束,金额足够则售出商品,不足则全额退币,金额超出则售出商品并退出多余币。

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

状态图

5. 仿真图

部分代码展示:

module auto_sell(
input clk_in,//时钟
input reset_n,//复位
input coin_10_key,//投币1.0元
input coin_50_key,//投币5.0元
input coin_05_key,//投币0.5元
input price_20_key,//2.0元商品
input price_15_key,//1.5元商品
input price_10_key,//1.0元商品
input price_05_key,//0.5元商品
input get,//确认,开始接收投币
input finish,//结束
input return_key,//退币
output succeed_ledn_05,//0.5元商品购买成功指示灯
output succeed_ledn_10,//1.0元商品购买成功指示灯
output succeed_ledn_15,//1.5元商品购买成功指示灯
output succeed_ledn_20,//2.0元商品购买成功指示灯
output [3:0] DLA,//数码管位选,低电平选择
output [7:0] HEX//数码管段选,低亮
);
wire [7:0] input_money_BCD;//投币金额
wire [7:0] change_money_BCD;//找钱
wire coin_10_p;//投币1.0元
wire coin_50_p;//投币5.0元
wire coin_05_p;//投币0.5元
//按键上升沿检测模块
key_jitter i0_key_jitter(
. clkin(clk_in),     
. key_in(coin_10_key),//输入
. key_posedge(coin_10_p)//按键上升沿检测
);
//按键上升沿检测模块
key_jitter i1_key_jitter(
. clkin(clk_in),     
. key_in(coin_50_key),//输入
. key_posedge(coin_50_p)//按键上升沿检测
);
//按键上升沿检测模块
key_jitter i2_key_jitter(
. clkin(clk_in),     
. key_in(coin_05_key),//输入
. key_posedge(coin_05_p)//按键上升沿检测
);
//状态控制模块
state_ctrl i_state_ctrl(
. clk_in(clk_in),//时钟100Hz
. reset_n(reset_n),//系统复位
. coin_10_p(coin_10_p),//投币1.0元
. coin_50_p(coin_50_p),//投币5.0元
. coin_05_p(coin_05_p),//投币0.5元
. price_20_p(price_20_key),//2.0元商品
. price_15_p(price_15_key),//1.5元商品
. price_10_p(price_10_key),//1.0元商品
. price_05_p(price_05_key),//0.5元商品
. return_p(return_key),//退币键
. get(get),//确认
. finish(finish),
. succeed_ledn_05(succeed_ledn_05),//0.5元商品购买成功指示灯
. succeed_ledn_10(succeed_ledn_10),//1.0元商品购买成功指示灯
. succeed_ledn_15(succeed_ledn_15),//1.5元商品购买成功指示灯
. succeed_ledn_20(succeed_ledn_20),//2.0元商品购买成功指示灯
. input_money_BCD(input_money_BCD),//投币金额
. change_money_BCD(change_money_BCD)//找钱
);
//数码管显示模块
display_num i_display_num(
. clk_in(clk_in),//100Hz
. input_money_BCD(input_money_BCD),//投币金额
. change_money_BCD(change_money_BCD),//找钱
. DLA(DLA),//数码管位选,低电平选择
. HEX(HEX)//数码管段选,低亮
);
endmodule

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

  • 2-2405131S201R0.doc
    下载

相关推荐