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

名称:无人售货机设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

无人售货机

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

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

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

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

设计:设置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;//结束
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值