自助点餐机Verilog代码远程云端平台Quartus

名称:自助点餐机Verilog代码远程云端平台Quartus

软件:Quartus

语言:Verilog

代码功能:

自助点餐机设计,

商品分为7、9、14元三种套餐,

并且只接受5、10元两种面值的纸币:

可以一次点多份:

用数码管显示购买数量、所需金额、找零金额,当金额不足时通过蜂鸣器提示

本代码已在远程云端平台验证,远程云端平台如下,其他远程云端平台可以修改管脚适配:

自助点餐机Verilog代码远程云端平台Quartus_第1张图片

1. 工程文件

自助点餐机Verilog代码远程云端平台Quartus_第2张图片

2. 程序文件

自助点餐机Verilog代码远程云端平台Quartus_第3张图片

3. 程序运行

自助点餐机Verilog代码远程云端平台Quartus_第4张图片

4. 管脚分配

自助点餐机Verilog代码远程云端平台Quartus_第5张图片

5. RTL图

自助点餐机Verilog代码远程云端平台Quartus_第6张图片

6. 仿真图

仿真文件(VWF文件)

自助点餐机Verilog代码远程云端平台Quartus_第7张图片

仿真图

自助点餐机Verilog代码远程云端平台Quartus_第8张图片

下图仿真为选中单价9元商品,数量选为3,共需要27元,投币5+10+10+10=35元,找零8元。

自助点餐机Verilog代码远程云端平台Quartus_第9张图片

部分代码展示:

//Vending_machine
//基于FPGA的自助点餐机的设计,
//商品分为7、9、14元三种套餐,
//并且只接受5、10元两种面值的纸币:
//可以一次点多份:
//用数码管显示购买数量、所需金额、找零金额,当金额不足时通过蜂鸣器提示
module auto_sell(
input clk_1K,//1K
input rst,//低电平有效
//按键 低电平有效
input Selection_goods,//选商品,商品分为7、9、14元三种套餐
input Selection_num,//选商品数量
//按键 低电平有效
input throw_into_10_down,//投10元
input throw_into_05_down,//投5元
//按键 低电平有效
input confirm_button,//确认购买,低电平有效
output  BEEP,//蜂鸣器
output  outgo_done,//出货指示灯
output  [7:0] duanxuan1,//数码房段选显示
output  [3:0] weixuan1, //数码房位选显示
output  [7:0] duanxuan2,//数码房段选显示
output  [3:0] weixuan2 //数码房位选显示
);
//所有按键取下降沿/
wire Selection_goods_out;
wire Selection_num_out;
wire throw_into_10_down_out;
wire throw_into_05_down_out;
wire confirm_button_out;
//下降沿检测模块
ax_debounce  select_goods 
(
    .  clk(clk_1K), 
    .  button_in(Selection_goods),
    .  button_negedge(Selection_goods_out)
);
//下降沿检测模块
ax_debounce  select_num 
(
    .  clk(clk_1K), 
    .  button_in(Selection_num),
    .  button_negedge(Selection_num_out)
);
//下降沿检测模块
ax_debounce  throw_into_10 
(
    .  clk(clk_1K), 
    .  button_in(throw_into_10_down),
    .  button_negedge(throw_into_10_down_out)
);
//下降沿检测模块
ax_debounce  throw_into_05 
(
    .  clk(clk_1K), 
    .  button_in(throw_into_05_down),
    .  button_negedge(throw_into_05_down_out)
);
//下降沿检测模块
ax_debounce  confirm_btt 
(
    .  clk(clk_1K), 
    .  button_in(confirm_button),
    .  button_negedge(confirm_button_out)
);
wire [7:0] total_throw_inmoney;//投入总钱币
wire [7:0] total_need_money;//选中商品价钱
wire [7:0] total_refund_money;//找零金额
wire [7:0] total_num_out;//数量
//售货状态控制模块
state_control state_control_u(
. clk_1K(clk_1K),
. rst(rst),
. Selection_goods_out(Selection_goods_out),
. Selection_num_out(Selection_num_out),
. throw_into_10_down_out(throw_into_10_down_out),
. throw_into_05_down_out(throw_into_05_down_out),
. confirm_button_out(confirm_button_out),
. BEEP(BEEP),
. outgo_done(outgo_done),//出货指示灯
. total_num_out(total_num_out),//数量
. total_throw_inmoney_out(total_throw_inmoney),//投入总钱币
. total_need_money_out(total_need_money),//选中商品价钱
. total_refund_money_out(total_refund_money)//找零金额
);
///
//数码管显示模块
display display_U(
. clk_1K(clk_1K),//50M
. total_num_out(total_num_out),//数量
. total_throw_inmoney(total_throw_inmoney),//投入总钱币
. total_need_money(total_need_money),//选中商品价钱
. total_refund_money(total_refund_money),//找零金额
. duanxuan1(duanxuan1),//数码房段选显示
. weixuan1(weixuan1), //数码房位选显示
. duanxuan2(duanxuan2),//数码房段选显示
. weixuan2(weixuan2) //数码房位选显示
);
endmodule
源代码

 扫描文章末尾的公众号二维码

你可能感兴趣的:(fpga开发)