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

这篇具有很好参考价值的文章主要介绍了微波炉控制器Verilog代码Quartus仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名称:微波炉控制器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. 工程文件

微波炉控制器Verilog代码Quartus仿真,fpga开发

2. 程序文件

微波炉控制器Verilog代码Quartus仿真,fpga开发

3. 程序编译

微波炉控制器Verilog代码Quartus仿真,fpga开发

4. RTL图

微波炉控制器Verilog代码Quartus仿真,fpga开发

5. 仿真文件(testbench)

微波炉控制器Verilog代码Quartus仿真,fpga开发

6. 仿真图

整体仿真图

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

分频模块

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

控制模块

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

温度设置模块

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

时间设置模块

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

显示模块

微波炉控制器Verilog代码Quartus仿真,fpga开发

微波炉控制器Verilog代码Quartus仿真,fpga开发

部分代码展示:

//微波炉顶层模块
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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于AHB协议的SRAM控制器的Verilog实现(详解代码)(一)——sram_core的实现

    目录  一、sramc(sram_controller)的总框架和模块划分 Features of sramc 结构框图和信号描述 二、sram_core的Verilog实现 动手开敲前的构思 Verilog代码和代码分析 三、sram_core的仿真验证 下载链接 sram因为其高读写速度常常作为CPU和嵌入式IC的缓存,是一个数字系统中必不可少的存在,因此

    2024年01月16日
    浏览(36)
  • verilog实现I2C控制器 (小梅哥思路)----详细解析

    模块框图如下所示 输入输出信号: 整体的思路如下: 通过输入的命令组合,完成一次8字节数据的传输。定义了6种命令, WR 写数据请求 (6’b000_001) STA 起始位请求(6’b000_010) RD 读数据请求(6’b000_100) STO 停止位请求(6’b001_000) ACK 应答位请求(6’b010_000) NACK 无应答请求(

    2024年02月03日
    浏览(33)
  • 基于FPGA和Verilog实现的9层电梯控制器仿真设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85628810 资源下载地址:https://download.csdn.net/download/sheziqiong/85628810 电梯最少可以往返于0—9层楼。 乘客要去的楼层数A可手动输入并显示,按取消键可清除本次输入。 可自动显示电梯运行的楼层数B 当AB时,电梯上升; 当AB时,

    2024年02月02日
    浏览(59)
  • 基于FPGA的4x4矩阵键盘控制器verilog开发实现

    欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 三、测试结果        基于FPGA的4x4矩阵键盘控制器是一种使用FPGA(现场可编程门阵列)来实现对4x4矩阵键盘进行控制的设备。该控制器能够有效地降低硬件资源的使用,提高系

    2024年02月11日
    浏览(36)
  • DDR3 控制器 MIG IP 详解完整版 (VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月06日
    浏览(68)
  • 【DDR】基于Verilog的DDR控制器的简单实现(一)——初始化

    在FPGA中,大规模数据的存储常常会用到DDR。为了方便用户使用,Xilinx提供了DDR MIG IP核,用户能够通过AXI接口进行DDR的读写访问,然而MIG内部自动实现了许多环节,不利于用户深入理解DDR的底层逻辑。 本文以美光(Micron)公司生产的DDR3芯片MT41J512M8RH-093为例,说明DDR芯片的操作

    2024年02月02日
    浏览(37)
  • DDR3 控制器 MIG IP 详解完整版 (native&VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月13日
    浏览(55)
  • DDR3 控制器 MIG IP 详解完整版 (AXI4&VIVADO&Verilog)

    DDR系列文章分类地址: (1)DDR3 基础知识分享 (2)DDR3 控制器 MIG IP 详解完整版 (AXI4VivadoVerilog) (3)DDR3 控制器 MIG IP 详解完整版 (nativeVivadoVerilog) (4)基于 DDR3 的串口传图帧缓存系统设计实现 (5)基于 DDR3 的native接口串口局部传图缓存系统设计实现 (6)基于 DDR3 的

    2024年02月11日
    浏览(32)
  • 从零开始 verilog 以太网交换机(二)MAC接收控制器的设计与实现

    🔈声明: 😃博主主页:王_嘻嘻的CSDN主页 🧨 从零开始 verilog 以太网交换机系列专栏:点击这里 🔑未经作者允许,禁止转载,侵权必删 🚩关注本专题的朋友们可以收获一个经典交换机设计的全流程,包括设计与验证(FPGA);以太网MAC的基础知识。新手朋友们还将获得一个

    2024年01月19日
    浏览(42)
  • m基于FPGA的FOC控制器verilog实现,包括CLARK,PARK,PID及SVPWM,含testbench

    目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件 Quartus II 12.1(64-Bit) ModelSim-Altera 6.6d Starter Edition 仿真结果如下: 整个系统的结构如下所示: 1、采集到两相电流 2、经过clarke变换后得到两轴正交电流量, 3、经过旋转变换后得到正交的电流量

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包