• 方案介紹
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

VIVADO售貨機verilog代碼Nexys4開發(fā)板

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

名稱:VIVADO售貨機verilog代碼Nexys4開發(fā)板

軟件:VIVADO

語言:Verilog

代碼功能:

要求如下:

(1)售貨機有兩個進幣孔,一個是輸入硬幣,一個是輸入紙幣,硬幣的識別范圍是1元的硬幣,紙幣的識別范圍是5元,10元,20元,50元。乘客可以連續(xù)多次投入錢幣。

(2)顧客可以選擇的商品種類有16 種,分別為A11-A44;價格如下表所示:

A11:3 A12: 4 A13:6 A14:3

A21:10 A22: 8 A23:9 A24: 7

A31: 4 A32:6 A33:15 A34: 8

A41: 9 A42: 4 A43:5 A44: 5

顧客可以通過輸入商品的編號來實現(xiàn)商品的選擇。比如依次按下2和1后,數(shù)碼管顯示商品A21的價格。

(1)顧客選擇完商品后,可以選擇需要的數(shù)量,數(shù)量為1-3件

(2)顧客可以繼續(xù)選擇商品及其數(shù)量,最多可選擇兩種商品。

(3)選擇完貨品,按確認(rèn)鍵確認(rèn)。如果沒有按確認(rèn)鍵,可以更改商品的種類和數(shù)量。

(4)系統(tǒng)計算并顯示出所需金額。

(5)顧客此時可以投幣,并且顯示已經(jīng)投幣的總幣值。當(dāng)投幣值達到或超過所需幣值后,售貨機出貨,并扣除所需金額,并找出多余金額。

(6)找零時需要手動找零,按一次退一張紙幣或硬幣,錢幣按從大到小的順序退出。比如需找零46元,則需要按四次手動找零鍵,每次退出的分別是20元(紙幣)、20元(紙幣)、5元(紙幣)、1元(硬幣)。

在投幣期間,顧客可以按取消鍵取消本次操作,可以按手動找零鍵退出硬幣。如果沒有退出,可以重新選擇貨品進行交易。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在Nexys4開發(fā)板驗證,Nexys4開發(fā)板如下,其他開發(fā)板可以修改管腳適配:nexys4_ddr開發(fā)板.png

部分代碼展示:

//售貨機
//空閑狀態(tài)下,按下BTNR,進入商品1狀態(tài),設(shè)置SW567(種類第一位),和SW8910(種類第二位),選擇種類。
//再設(shè)置SW11,12設(shè)置數(shù)量。然后按BTNL進入第二種商品的設(shè)置。
//進入商品2狀態(tài),設(shè)置SW567(種類第一位),和SW8910(種類第二位),選擇種類。
//再設(shè)置SW11,12設(shè)置數(shù)量。
//再按BTNR進入投幣狀態(tài)。按鍵SW0~SW4對應(yīng)金額。金額滿足后自動出貨,進入找零狀態(tài)。
//按下BTNU找零
//按下BTND取消
module?auto_sell(
input?clk,//100MHz
input?reset_p,//復(fù)位--BTNC
input?goods_btn_in,//商品1/2按鍵--BTNL
input?confirm_btn_in,//確認(rèn)--BTNR
input?change_btn_in,//找零按鍵--BTNU
input?cancel_btn_in,//取消--BTND
input?coin_1_in,//1元硬幣--SW0
input?notes_5_in,//5元紙幣--SW1
input?notes_10_in,//10元紙幣--SW2
input?notes_20_in,//20元紙幣--SW3
input?notes_50_in,//50元紙幣--SW4
input?[2:0]?type_SW1,//輸入商品的編號1--SW5,6,7
input?[2:0]?type_SW2,//輸入商品的編號2--SW8,9,10
input?[1:0]?num_SW,//輸入商品的數(shù)量--SW11,12
output?[3:0]?btn_LED,//按鍵指示燈
output?[5:0]?state_LED,//LD0~7
output?[7:0]?bit_select,//數(shù)碼管位選
output?[7:0]?seg_select//數(shù)碼管段選
);
assign?btn_LED={goods_btn_in,confirm_btn_in,change_btn_in,cancel_btn_in};
wire?[7:0]?need_money;//所需金額
wire?[7:0]?input_money;//投幣的總幣值
wire?[7:0]?change_money;//找出多余金額
wire?goods_btn;//商品1/2按鍵確認(rèn)
wire?confirm_btn;//確認(rèn)
wire?change_btn;//找零按鍵
wire?cancel_btn;//取消
wire?coin_1;//1元硬幣
wire?notes_5;//5元紙幣
wire?notes_10;//10元紙幣
wire?notes_20;//20元紙幣
wire?notes_50;//50元紙幣
key_jitter?i0_key_jitter(
.?clkin(clk),
.?key_in(goods_btn_in),//輸入
.?key_posedge(goods_btn)//消抖后按鍵上升沿
);
key_jitter?i1_key_jitter(
.?clkin(clk),
.?key_in(confirm_btn_in),//輸入
.?key_posedge(confirm_btn)//消抖后按鍵上升沿
);
key_jitter?i2_key_jitter(
.?clkin(clk),
.?key_in(change_btn_in),//輸入
.?key_posedge(change_btn)//消抖后按鍵上升沿
);
key_jitter?i3_key_jitter(
.?clkin(clk),
.?key_in(cancel_btn_in),//輸入
.?key_posedge(cancel_btn)//消抖后按鍵上升沿
);
key_jitter?i4_key_jitter(
.?clkin(clk),
.?key_in(coin_1_in),//輸入
.?key_posedge(coin_1)//消抖后按鍵上升沿
);
key_jitter?i5_key_jitter(
.?clkin(clk),
.?key_in(notes_5_in),//輸入
.?key_posedge(notes_5)//消抖后按鍵上升沿
);
key_jitter?i6_key_jitter(
.?clkin(clk),
.?key_in(notes_10_in),//輸入
.?key_posedge(notes_10)//消抖后按鍵上升沿
);
key_jitter?i7_key_jitter(
.?clkin(clk),
.?key_in(notes_20_in),//輸入
.?key_posedge(notes_20)//消抖后按鍵上升沿
);
key_jitter?i8_key_jitter(
.?clkin(clk),
.?key_in(notes_50_in),//輸入
.?key_posedge(notes_50)//消抖后按鍵上升沿
);
//控制模塊
sell_ctrl?i_sell_ctrl(
.?clk(clk),//100MHz
.?reset_p(reset_p),//復(fù)位
.?goods_btn(goods_btn),//商品1/2按鍵確認(rèn)
.?confirm_btn(confirm_btn),//確認(rèn)
.?change_btn(change_btn),//找零按鍵
.?cancel_btn(cancel_btn),//取消
.?coin_1(coin_1),//1元硬幣
.?notes_5(notes_5),//5元紙幣
.?notes_10(notes_10),//10元紙幣
.?notes_20(notes_20),//20元紙幣
.?notes_50(notes_50),//50元紙幣
.?type_SW1(type_SW1),//輸入商品的編號1
.?type_SW2(type_SW2),//輸入商品的編號2
.?num_SW(num_SW),//輸入商品的數(shù)量
.?need_money(need_money),//所需金額
.?input_money(input_money),//投幣的總幣值
.?change_money(change_money),//找出多余金額
.?state_LED(state_LED)
);
//顯示模塊
display?i_display
(
.?clk(clk),
.?need_money(need_money),//所需金額
.?input_money(input_money),//投幣的總幣值
.?change_money(change_money),//找出多余金額
.?bit_select(bit_select),//數(shù)碼管位選
.?seg_select(seg_select)//數(shù)碼管段選
);
endmodule

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=369

相關(guān)推薦