名稱:洗衣機(jī)工作模式Verilog代碼AX301開發(fā)板Quartus
軟件:Quartus
語言:Verilog
代碼功能:
設(shè)置洗衣機(jī)工作模式:0——洗滌+漂洗;1——洗滌;2——輕柔洗滌;3——脫水。
設(shè)置水位狀態(tài):0-1-2-3-4表示5種水位。
設(shè)置小時(shí)、分鐘。
可以倒計(jì)時(shí)。
洗滌結(jié)束報(bào)警。
洗衣機(jī)正轉(zhuǎn)反轉(zhuǎn)指示燈,高電平亮。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在AX301開發(fā)板驗(yàn)證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
設(shè)計(jì)文檔:
整體仿真圖
消抖仿真圖
顯示模塊
分頻模塊
狀態(tài)控制模塊
部分代碼展示:
module?wash_machine( input?clk_50M,//50M input?reset_key_in,//復(fù)位 input?set_time_key_in,//設(shè)置 input?confirm_key_in,//確認(rèn) input?error_key_in,//故障按鍵 output?running_led,//洗衣機(jī)正在運(yùn)行指示燈(1秒閃) output?alert_bell,//蜂鳴器報(bào)警 output?[2:0]?rotate_led,//洗衣機(jī)正轉(zhuǎn)反轉(zhuǎn)指示燈,高電平亮 output?[5:0]?bit_select,//數(shù)碼管位選 output?[7:0]?seg_select//數(shù)碼管段選 ); wire?clk_1Hz; wire?reset_key;//復(fù)位 wire?set_time_key;//設(shè)置 wire?confirm_key;//確認(rèn) wire?error_key;//故障按鍵 wire?[7:0]?countdown_hour_time;//時(shí) wire?[7:0]?countdown_minute_time;//分 wire?[3:0]?water_level;//水位 wire?[3:0]?wash_mode;//模式 //按鍵消抖模塊 key_xiaodou?reset_key_xiaodou( .?clkin(clk_50M),?? .?key_in(reset_key_in),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(reset_key),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); key_xiaodou?set_time_key_xiaodou( .?clkin(clk_50M),?? .?key_in(set_time_key_in),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(set_time_key),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); key_xiaodou?confirm_key_xiaodou( .?clkin(clk_50M),?? .?key_in(confirm_key_in),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(confirm_key),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); key_xiaodou?error_key_xiaodou( .?clkin(clk_50M),?? .?key_in(error_key_in),//輸入 .?key_posedge(),//消抖后按鍵上升沿 .?key_negedge(error_key),//消抖后按鍵下降沿 .?key_value()//消抖后按鍵 ); //分頻模塊 div_1Hz?i_div_1Hz( .?clk_50M(clk_50M), .?clk_1Hz(clk_1Hz) ); //狀態(tài)機(jī)控制模塊 state_control?i_state_control( .?clk_50M(clk_50M), .?clk_1Hz(clk_1Hz), .?reset_key(reset_key),//復(fù)位 .?set_time_key(set_time_key),//設(shè)置 .?confirm_key(confirm_key),//確認(rèn) .?error_key(error_key),//故障按鍵 .?running_led(running_led),//洗衣機(jī)正在運(yùn)行指示燈(1秒閃) .?alert_bell(alert_bell),//蜂鳴器報(bào)警 .?rotate_led(rotate_led),//洗衣機(jī)正轉(zhuǎn)反轉(zhuǎn)指示燈,高電平亮 .?countdown_hour_time(countdown_hour_time),//時(shí) .?countdown_minute_time(countdown_minute_time),//分 .?water_level(water_level),//水位 .?wash_mode(wash_mode)//模式 ); //顯示模式 display?i_display( .?clk(clk_50M), .?water_level(water_level),//水位 .?wash_mode(wash_mode),//模式 .?countdown_hour_time(countdown_hour_time),//時(shí) .?countdown_minute_time(countdown_minute_time),//分 .?bit_select(bit_select),//數(shù)碼管位選 .?seg_select(seg_select)//數(shù)碼管段選 ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=328
閱讀全文