• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

微波炉控制器Verilog代码Quartus仿真

06/21 13:11
713
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2401041P6035F.doc

共1个文件

名称:微波炉控制器Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

微波炉控制器

芯片Altera Cyclone IV FPGA作为控制芯片,实现时间设置、温度设定、火力选择、声音提示,在硬件组成上,涉及到电源供电、按键输入、数码管显示、指示灯提示等。

由按键控制实现功能的转换,7个LED提示指示灯,4位LED数码管显示加热倒计时,3位LED数码管显示当前温度值,1位LED数码管显示当前火力档位。

各个按键的功能效果:

(1)暂停:在食物烹饪过程中,若按下该键,则停止食物烹饪,进入待机状态。

(2)时间设定:设置系统工作时间,按下该键,可以设置时间,每按一下增加30秒

(3)温度设定:设置加热的最高温度,按下该键,可以设置时间,每按一下增加10°C

(4)火力设定:设置系统工作的火力挡位,按下该键,可以在低火、中火、高火三个档位之中切换。

(5)烹调:快速设定当前烹饪时间和火力到适合烹调的值。

(6)烘烤:快速设定当前烹饪时间和火力到适合烘烤的值。

(7)解冻:快速设定当前烹饪时间和火力到适合解冻的值。

(8)开始/确认:在选择烹调、烘烤、解冻或者设置时间、设定温度、选择火力等烹饪参数后,按下此键,开始进行烹饪.

指示灯功能如下:

(1)完成提示:提示微波炉工作完成.该灯亮时,表示烹饪完成;

(2)意外报警:提示意外情况发生.该灯亮时,表示出现意外,微波炉暂停工作;

(3)解冻:该灯亮时,表示工作在解冻模式下;

(4)烘烤:该灯亮时,表示工作在烘烤模式下;

(5)烹调:该灯亮时,表示工作在烹调模式下;

(6)工作状态:指示微波炉处于工作状态,工作时灯亮,不工作时灯灭;

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工作状态
???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)
);
????//状态控制模块
???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工作状态
???);
//时间控制模块
???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
    下载

相关推荐