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

无人售货机设计Verilog代码Quartus仿真

10/03 08:15
310
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2411051ZU0492.doc

共1个文件

名称:无人售货机设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

无人售货机

1、可以选择5元、10元、15元、20元的商品

2、可以投币1元、5元、10元、20元

3、购买过程中可以取消,退币

4、输出投入总钱币、商品价钱、找零金额

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

演示视频:

设计文档:

设计:设置4种商品,由4个开关进行选择,分别为5元、10元、15元、20元。

购买成功后用led指示,同时数码管显示投入总钱币,找零金额,选中商品价钱。具体信号对应具体功能如下图所示。

1. 工程文件

售货模块

购买成功led指示模块

下降沿检测模块

等待30s模块

数码管显示模块

2. 程序运行

3. 原理图

4. 管脚约束

5. 程序仿真

Testbench

仿真图

下图中,rst_button低电平复位,复位后,selection_of_10脉冲表示选中价钱为10的商品,可看见total_need_money_out信号变为10,然后throw_into_20_down脉冲表示投入20元,total_throw_inmoney_out信号变为20,然后confirm_button确认购买,低电平有效,显示找零total_refund_money_out=10。同时buy_succeed_led_10信号变为高电平,表示购买成功。

下图为仿真取消购买后,退全部输入金额。

部分代码展示:

//Vending_machine
module?Vending_machine(
input?clk_50M,//50M
input?rst_button,//复位
//开关
input?Selection_of_05,//选5元商品
input?Selection_of_10,//选10元商品
input?Selection_of_15,//选15元商品
input?Selection_of_20,//选20元商品
//开关
input?throw_into_01_down,//投1元
input?throw_into_01coin_down,//投1元硬币
input?throw_into_05_down,//投5元
input?throw_into_10_down,//投10元
input?throw_into_20_down,//投20元
//按键
input?confirm_button,//确认购买,低电平有效
input?Give_change_button,//不买退钱,低电平有效
input?time30s_change_button,//30s计时退钱
output?[3:0]?state_out,
input?wait_second_time,
output?[7:0]?total_throw_inmoney_out,//投入总钱币
output?[7:0]?total_need_money_out,//选中商品价钱
output?[7:0]?total_refund_money_out//找零金额
);
parameter?state_0=4'd0;
parameter?state_1=4'd1;//选择
parameter?state_2=4'd2;//
parameter?state_3=4'd3;//
parameter?state_4=4'd4;//找零时间4秒
parameter?state_5=4'd5;//找零20元
parameter?state_6=4'd6;//找零15元
parameter?state_7=4'd7;//找零10元
parameter?state_8=4'd8;//找零5元
parameter?state_9=4'd9;//结束

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

  • 2-2411051ZU0492.doc
    下载

相关推荐