名稱:自助點餐機Verilog代碼遠程云端平臺Quartus
軟件:Quartus
語言:Verilog
代碼功能:
自助點餐機設(shè)計,商品分為7、9、14元三種套餐,并且只接受5、10元兩種面值的紙幣。
可以一次點多份,用數(shù)碼管顯示購買數(shù)量、所需金額、找零金額,當(dāng)金額不足時通過蜂鳴器提示。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在遠程云端平臺驗證,遠程云端平臺如下,其他遠程云端平臺可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序運行
4. 管腳分配
5. RTL圖
6. 仿真圖
仿真文件(VWF文件)
仿真圖
下圖仿真為選中單價9元商品,數(shù)量選為3,共需要27元,投幣5+10+10+10=35元,找零8元。
部分代碼展示:
//Vending_machine //基于FPGA的自助點餐機的設(shè)計, //商品分為7、9、14元三種套餐, //并且只接受5、10元兩種面值的紙幣: //可以一次點多份: //用數(shù)碼管顯示購買數(shù)量、所需金額、找零金額,當(dāng)金額不足時通過蜂鳴器提示 module?auto_sell( input?clk_1K,//1K input?rst,//低電平有效 //按鍵?低電平有效 input?Selection_goods,//選商品,商品分為7、9、14元三種套餐 input?Selection_num,//選商品數(shù)量 //按鍵?低電平有效 input?throw_into_10_down,//投10元 input?throw_into_05_down,//投5元 //按鍵?低電平有效 input?confirm_button,//確認購買,低電平有效 output??BEEP,//蜂鳴器 output??outgo_done,//出貨指示燈 output??[7:0]?duanxuan1,//數(shù)碼房段選顯示 output??[3:0]?weixuan1,?//數(shù)碼房位選顯示 output??[7:0]?duanxuan2,//數(shù)碼房段選顯示 output??[3:0]?weixuan2?//數(shù)碼房位選顯示 ); //////////////////////////////////////////////所有按鍵取下降沿///////////////////////////////////// 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;//數(shù)量 //售貨狀態(tài)控制模塊 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),//數(shù)量 .?total_throw_inmoney_out(total_throw_inmoney),//投入總錢幣 .?total_need_money_out(total_need_money),//選中商品價錢 .?total_refund_money_out(total_refund_money)//找零金額 ); /////////////////////////////////////////////////////////////////////////////////////////////// //數(shù)碼管顯示模塊 display?display_U( .?clk_1K(clk_1K),//50M .?total_num_out(total_num_out),//數(shù)量 .?total_throw_inmoney(total_throw_inmoney),//投入總錢幣 .?total_need_money(total_need_money),//選中商品價錢 .?total_refund_money(total_refund_money),//找零金額 .?duanxuan1(duanxuan1),//數(shù)碼房段選顯示 .?weixuan1(weixuan1),?//數(shù)碼房位選顯示 .?duanxuan2(duanxuan2),//數(shù)碼房段選顯示 .?weixuan2(weixuan2)?//數(shù)碼房位選顯示 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=342
閱讀全文