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

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

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

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
    下载

相关推荐