微波炉控制 FPGA 设计 VHDL Quartus
名称:微波炉控制 FPGA 设计 VHDL Quartus
软件:Quartus
语言:VHDL
功能介绍
本设计使用 VHDL 实现微波炉控制逻辑,面向加热、烧烤和解冻三种模式,设置了独立的模式选择输入,以及时间、温度和火力设置接口。操作接口还包括复位、启动/继续和暂停,适合用于学习带参数设置与运行状态控制的 FPGA 数字系统。 顶层设置门状态输入 door_check 和 9 位外部温度输入 temp_in。其中门状态为 1 表示门未关闭,温度输入按摄氏度表达。输出包括结束提示 bell、完成指示 end_led、门开/过温报警指示 alarm_led,以及三种模式指示灯和工作状态指示灯,便于分析操作条件与状态反馈之间的关系。 显示接口采用共阳极数码管段码形式,分别输出四位分钟/秒钟显示、一位火力显示和三位温度显示。设计同时覆盖控制、参数设置与显示三个方面,可作为 VHDL 模块化设计、顶层接口连接及 Testbench 仿真分析的学习参考。运行环境
开发语言:VHDL。 工程软件:Quartus,工程名为 microwave_top_vhdl,使用 .qpf 工程文件与 .qsf 设置文件组织设计。 顶层实体:microwave_top_vhdl。 仿真环境:ModelSim,配合 tb_microwave_compare 测试模块进行仿真分析。 接口形式:系统时钟、操作按键、门状态输入、9 位温度输入,以及指示灯、结束提示和共阳极数码管段码输出。设计思路
设计采用分模块组织方式,将微波炉控制过程拆分为时钟分频、状态控制、时间设置、温度设置和显示处理,再由 microwave_top_vhdl 顶层统一连接。阅读时可先理解各类按键和指示输出的含义,再沿着设置、启动、暂停与结束提示的控制关系分析模块之间的配合。 控制部分围绕加热、烧烤和解冻三种模式展开。模式选择按键与时间、温度、火力设置按键承担不同的操作职责,启动/继续和暂停接口用于工作过程控制。门状态与外部温度输入则为门开、过温报警逻辑提供输入条件,适合结合状态控制模块研究操作输入、状态变化与指示输出之间的关系。 显示部分将时间、火力和温度分别引出:时间对应分钟十位、分钟个位、秒钟十位和秒钟个位,温度对应百位、十位和个位,火力使用独立段码输出。这种接口划分便于在仿真中分别观察控制状态和显示结果,也便于学习数值处理与数码管译码之间的连接方式。 仿真分析可从顶层整体行为入手,再分别查看分频、状态控制、时间设置、温度设置和显示模块。对照 Testbench 激励与波形时,应重点关注按键操作前后的输出变化、门状态和温度输入对报警输出的影响,以及时间与参数显示是否与当前控制过程对应。模块结构
microwave_top_vhdl:顶层模块,集中定义系统时钟、操作按键、门状态、温度输入,以及提示、指示灯和数码管段码输出。 div_clk_vhdl:时钟分频模块,用于组织设计所需的分频逻辑。 state_ctrl_vhdl:状态控制模块,是分析模式选择、启动/继续、暂停及状态指示关系的重点。 time_set_vhdl:时间设置模块,对应时间参数处理部分。 temp_set_vhdl:温度设置模块,对应温度参数处理部分。 display_vhdl:显示模块,对应数值显示与数码管段码输出部分。 tb_microwave_compare:仿真测试模块,用于结合输入激励分析顶层设计行为。演示视频
微波炉控制设计演示视频,可配合顶层接口、模块说明与仿真内容观看。仿真图/仿真说明/设计文档图片
设计文档围绕工程文件、程序文件、程序编译、RTL 图、Testbench 和仿真图展开,适合按工程结构、逻辑连接和波形分析的顺序阅读。 仿真说明覆盖顶层设计,以及分频模块、状态控制模块、时间设置模块、温度设置模块和显示模块。可结合对应模块代码与 Testbench 理解信号关系,重点分析操作输入、控制状态和显示输出之间的配合。















部分代码
以下展示顶层模块 microwave_top_vhdl 的部分代码,完整源码请下载压缩包查看。
entity microwave_top_vhdl is
port (
clk : in std_logic; -- 系统时钟
reset_key : in std_logic; -- 复位按键
time_key : in std_logic; -- 设置时间
temp_key : in std_logic; -- 设置温度
fire_key : in std_logic; -- 设置火力(功率调节)
start_key : in std_logic; -- 启动/继续
stop_key : in std_logic; -- 暂停
--模式选择(解冻/加热/烧烤)
key_1 : in std_logic; -- 烹调(加热)
key_2 : in std_logic; -- 烘烤(烧烤)
key_3 : in std_logic; -- 解冻
door_check : in std_logic; -- 1 表示门未关闭
temp_in : in std_logic_vector(8 downto 0); -- 外部温度传感器输入(℃)
bell : out std_logic; -- 结束提示(蜂鸣器)
end_led : out std_logic; -- 完成指示灯
alarm_led : out std_logic; -- 报警指示灯(门开/过温)
led_1 : out std_logic; -- 烹调模式指示灯
led_2 : out std_logic; -- 烘烤模式指示灯
led_3 : out std_logic; -- 解冻模式指示灯
work_led : out std_logic; -- 工作状态指示灯
min_ten_HEX : out std_logic_vector(7 downto 0); -- 分钟十位数码管段码(共阳极)
min_one_HEX : out std_logic_vector(7 downto 0); -- 分钟个位数码管段码(共阳极)
sec_ten_HEX : out std_logic_vector(7 downto 0); -- 秒钟十位数码管段码(共阳极)
sec_one_HEX : out std_logic_vector(7 downto 0); -- 秒钟个位数码管段码(共阳极)
fire_HEX : out std_logic_vector(7 downto 0); -- 火力数码管段码(共阳极)
temp_h_HEX : out std_logic_vector(7 downto 0); -- 温度百位数码管段码(共阳极)
temp_t_HEX : out std_logic_vector(7 downto 0); -- 温度十位数码管段码(共阳极)
temp_o_HEX : out std_logic_vector(7 downto 0) -- 温度个位数码管段码(共阳极)
);
end entity microwave_top_vhdl;
代码文件(付费下载)
📥
付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 微波炉控制 FPGA 设计 VHDL Quartus
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 微波炉控制 FPGA 设计 VHDL Quartus