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

微波爐控制器Verilog代碼Quartus仿真

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

2-2401041P6035F.doc

共1個文件

名稱:微波爐控制器Verilog代碼Quartus仿真

軟件:Quartus

語言:Verilog

代碼功能:

微波爐控制器

芯片Altera Cyclone IV FPGA作為控制芯片,實現(xiàn)時間設置、溫度設定、火力選擇、聲音提示,在硬件組成上,涉及到電源供電、按鍵輸入、數碼管顯示、指示燈提示等。

由按鍵控制實現(xiàn)功能的轉換,7個LED提示指示燈,4位LED數碼管顯示加熱倒計時,3位LED數碼管顯示當前溫度值,1位LED數碼管顯示當前火力檔位。

各個按鍵的功能效果:

(1)暫停:在食物烹飪過程中,若按下該鍵,則停止食物烹飪,進入待機狀態(tài)。

(2)時間設定:設置系統(tǒng)工作時間,按下該鍵,可以設置時間,每按一下增加30秒

(3)溫度設定:設置加熱的最高溫度,按下該鍵,可以設置時間,每按一下增加10°C

(4)火力設定:設置系統(tǒng)工作的火力擋位,按下該鍵,可以在低火、中火、高火三個檔位之中切換。

(5)烹調:快速設定當前烹飪時間和火力到適合烹調的值。

(6)烘烤:快速設定當前烹飪時間和火力到適合烘烤的值。

(7)解凍:快速設定當前烹飪時間和火力到適合解凍的值。

(8)開始/確認:在選擇烹調、烘烤、解凍或者設置時間、設定溫度、選擇火力等烹飪參數后,按下此鍵,開始進行烹飪.

指示燈功能如下:

(1)完成提示:提示微波爐工作完成.該燈亮時,表示烹飪完成;

(2)意外報警:提示意外情況發(fā)生.該燈亮時,表示出現(xiàn)意外,微波爐暫停工作;

(3)解凍:該燈亮時,表示工作在解凍模式下;

(4)烘烤:該燈亮時,表示工作在烘烤模式下;

(5)烹調:該燈亮時,表示工作在烹調模式下;

(6)工作狀態(tài):指示微波爐處于工作狀態(tài),工作時燈亮,不工作時燈滅;

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

演示視頻:

設計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 仿真文件(testbench)

6. 仿真圖

整體仿真圖

分頻模塊

控制模塊

溫度設置模塊

時間設置模塊

顯示模塊

部分代碼展示:

//微波爐頂層模塊
module?microwave_top(
???input????????clk,//時鐘
???input????????reset_key,//復位按鍵
???input????????time_key,//設置時間
input????????temp_key,//設置溫度
???input????????fire_key,//設置火力
???input????????start_key,//啟動
???input????????stop_key,//暫停
???input????????key_1,//烹調
???input????????key_2,//烘烤
???input????????key_3,//解凍
???
???output???????bell,//結束提示(聲音)
output???????end_led???,//led完成
???output???????alarm_led?,//led報警
output???????led_1?????,//led烹調
output???????led_2?????,//led烘烤
output???????led_3?????,//led解凍
output???????work_led??,//led工作狀態(tài)
???output?[7:0]?min_ten_HEX,//數碼管顯示分鐘十位
???output?[7:0]?min_one_HEX,//數碼管顯示分鐘個位
???output?[7:0]?sec_ten_HEX,//數碼管顯示分鐘十位
???output?[7:0]?sec_one_HEX,//數碼管顯示分鐘個位
???output?[7:0]?fire_HEX,//數碼管顯示火力指示
???output?[7:0]?temp_h_HEX,//數碼管顯示溫度百位
???output?[7:0]?temp_t_HEX,//數碼管顯示溫度十位
???output?[7:0]?temp_o_HEX//數碼管顯示溫度個位
);
???
???wire?[2:0]???fire_led;//火力指示燈?
???wire?[2:0]???state_out;
???wire?[3:0]???minute_ten_display;
???wire?[3:0]???minute_one_display;
???wire?[3:0]???second_ten_display;
???wire?[3:0]???second_one_display;
???wire?????????clk_div;//1Hz
???wire?[3:0]?temp_h;//溫度百位
???wire?[3:0]?temp_t;//溫度十位
???wire?[3:0]?temp_o;?//溫度個位
//分頻模塊
div_clk?i_div_clk(
.clk????(clk),?
.clk_1Hz(clk_div)
);
????//狀態(tài)控制模塊
???state_ctrl?i_state_ctrl(
???.clk(clk_div),?
???.reset_key(reset_key),?
???.start_key(start_key),?
???.stop_key(stop_key),?
???.minute_ten(minute_ten_display),?
???.minute_one(minute_one_display),?
???.second_ten(second_ten_display),?
???.second_one(second_one_display),?
???.bell(bell),?
???.state_out(state_out),
???.fire_key(fire_key),?
???.fire_led(fire_led),
???.key_1(key_1),//烹調
???.key_2(key_2),//烘烤
???.key_3(key_3),//解凍
.end_led???(end_led),//led完成
???.alarm_led?(alarm_led),//led報警
.led_1?????(led_1),//led烹調
.led_2?????(led_2),//led烘烤
.led_3?????(led_3),//led解凍
.work_led??(work_led)//led工作狀態(tài)
???);
//時間控制模塊
???time_set?i_time_set(
???.clk(clk_div),?
???.reset_key(reset_key),?
???.key_1(key_1),//烹調
???.key_2(key_2),//烘烤
???.key_3(key_3),//解凍
???.time_key(time_key),?
???.state_out(state_out),?
???.minute_ten_display(minute_ten_display),?
???.minute_one_display(minute_one_display),?
???.second_ten_display(second_ten_display),?
???.second_one_display(second_one_display)
???);
//溫度控制模塊
temp_set?i_temp_set(
???.?clk??????(clk_div),
???.?reset_key(reset_key),
???.?temp_key?(temp_key),//溫度設置鍵
???.?temp_h(temp_h),//溫度百位
???.?temp_t(temp_t),//溫度十位
???.?temp_o(temp_o)?//溫度個位
);?
????//數碼管顯示模塊
???display?i_display(
???.?temp_h(temp_h),//溫度百位
???.?temp_t(temp_t),//溫度十位
???.?temp_o(temp_o),?//溫度個位
.?fire_led(fire_led),
???.minute_ten_display(minute_ten_display),?
???.minute_one_display(minute_one_display),?
???.second_ten_display(second_ten_display),?
???.second_one_display(second_one_display),?
???.min_ten_HEX(min_ten_HEX),?
???.min_one_HEX(min_one_HEX),?
???.sec_ten_HEX(sec_ten_HEX),?
???.sec_one_HEX(sec_one_HEX),
.?fire_HEX(fire_HEX),
???.?temp_h_HEX(temp_h_HEX),//數碼管顯示溫度百位
???.?temp_t_HEX(temp_t_HEX),//數碼管顯示溫度十位
???.?temp_o_HEX(temp_o_HEX)//數碼管顯示溫度個位
???);
???
endmodule

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

  • 2-2401041P6035F.doc
    下載

相關推薦