国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

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

VIVADO自動售票機售貨機verilog代碼ego1開發(fā)板驗證

05/29 08:00
197
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-23112322314JG.doc

共1個文件

名稱:VIVADO自動售票機售貨機verilog代碼ego1開發(fā)板驗證?(代碼在文末下載)

軟件:VIVADO

語言:Verilog

代碼功能:

自動售票機:

1、自動售票機只出售1角、2角、5角和1元4種車票。

2、只接收1角、5角和1元硬幣,每次只能出售1張車。

3、自動售票機具有累加銷售額的功能。

實驗要求:

出售車票用SW0~3分別表示1角、2角、5角、1元4種 ;

投入硬幣用S1、S2、S3分別表示1角5角和1元

投幣后用開關(guān)SW7確認;若投入錢數(shù)不夠,將硬幣退出并報警,D9~D16閃爍,報警3秒

若投幣足夠,送出車票,用4個不同LED輔出D1、D2、D3、D4顯示,若有余額自動找零

所有幣額用兩位BCD碼顯

按鍵和拔碼開關(guān)需要做消抖處理。

要求.png

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

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

ego1開發(fā)板.png

設計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 管腳分配

6. Testbench

7. 仿真圖

整體仿真圖

按鍵消抖模塊仿真

售票機控制模塊仿真

數(shù)碼管顯示模塊仿真

部分代碼展示:

//售貨狀態(tài)控制模塊
module?state_control(
input?clk_in,
input?rst,//高電平有效
//按鍵?高電平有效
input?Selection_goods_01,//選商品1,商品分為0.1,0.2,0.5,1.0元
input?Selection_goods_02,//選商品2,商品分為0.1,0.2,0.5,1.0元
input?Selection_goods_05,//選商品5,商品分為0.1,0.2,0.5,1.0元
input?Selection_goods_10,//選商品10,商品分為0.1,0.2,0.5,1.0元
input?throw_into_10_down_out,//1.0元
input?throw_into_05_down_out,//0.5元
input?throw_into_01_down_out,//0.1元
input?confirm_button_out,//確認
output?[7:0]?LED,//閃爍報警(D9~16)
output?reg?outgo_done_01,//出貨指示燈1
output?reg?outgo_done_02,//出貨指示燈2
output?reg?outgo_done_05,//出貨指示燈5
output?reg?outgo_done_10,//出貨指示燈10
output?[7:0]?total_accumulated_money,//累計賣貨額
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;//等待時間3秒
parameter?state_5=4'd9;//結(jié)束
reg?[3:0]?state=4'd0;
reg?[7:0]?total_throw_inmoney=8'd0;//投入總錢幣
reg?[7:0]?total_need_money=8'd0;//選中商品價錢
reg?[7:0]?total_refund_money=8'd0;//找零金額
reg?[7:0]?accumulated_money=8'd0;//累計賣貨額
assign?total_throw_inmoney_out=total_throw_inmoney;
assign?total_need_money_out=total_need_money;
assign?total_refund_money_out=total_refund_money;
assign?total_accumulated_money=accumulated_money;
///////控制模塊:狀態(tài)機,實現(xiàn)各個狀態(tài)的轉(zhuǎn)換//////////////////////////////////////////
reg?wait_second_time=1'd0;
always@(posedge?clk_in?or?posedge?rst)
if(rst)
state<=state_0;
else
case(state)
state_0://選擇商品
begin
if(confirm_button_out==1)
begin
state<=state_1;
end?
else?begin?
state<=state_0;
end
end
state_1://投錢
begin
if(confirm_button_out==1)//按確認鍵
state<=state_2;//找零
else
state<=state_1;//繼續(xù)投錢
end
state_2://確認購買
begin
if(total_throw_inmoney<total_need_money)//投入不足
state<=state_3;//蜂鳴器提示3秒
else?
begin????//如果投入大于等于所需錢數(shù)
state?<=state_4;
end
end
state_3://投入不足,蜂鳴器提示
if(wait_second_time==1'd1)
begin
state<=state_0;//回到初始狀態(tài)
end
else?begin
state<=state_3;
end
state_4://等待時間3秒
if(wait_second_time==1'd1)??//保持3s進入下一個狀態(tài)
state<=state_5;
else
state<=state_4;
state_5://結(jié)束
state<=state_0;
default:state<=state_0;
endcase

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

  • 1-23112322314JG.doc
    下載

相關(guān)推薦

西畴县| 安泽县| 桃园市| 平利县| 义乌市| 嵩明县| 寿宁县| 古交市| 西充县| 资溪县| 江陵县| 南木林县| 阳新县| 昌图县| 垫江县| 浙江省| 民乐县| 武安市| 乌兰县| 普兰店市| 山阳县| 朝阳区| 漳州市| 女性| 伽师县| 枞阳县| 景东| 丰镇市| 永年县| 景泰县| 六安市| 武夷山市| 河南省| 禹城市| 旬邑县| 巴青县| 平遥县| 西和县| 那坡县| 资兴市| 米脂县|