名称:微波炉控制器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)工作状态:指示微波炉处于工作状态,工作时灯亮,不工作时灯灭;
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真文件(testbench)
6. 仿真图
整体仿真图
分频模块
控制模块
温度设置模块
时间设置模块
显示模块
部分代码展示:文章来源:https://www.toymoban.com/news/detail-808879.html
//微波炉顶层模块 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
源代码
扫描文章末尾的公众号二维码文章来源地址https://www.toymoban.com/news/detail-808879.html
到了这里,关于微波炉控制器Verilog代码Quartus仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!