扫码加入

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

智能饮水机设计VHDL代码Quartus仿真

1小时前
44
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24112019522c12.doc

共1个文件

名称:智能饮水机设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

设计智能饮水机要求实现以下功能:

控制模块:实现对水温的控制。设置不同加热模式,沏茶、冲咖啡、泡牛奶等多个功能;设置保温模式,限制水反复加热的次数,若水反复加热次数超过上限值,放掉现有加热容器内的水重新加生水进去;若是生水直接加温到给定温度,必须是水烧开以后的水温,若是滚沸后的开水,则将温度直接下降或上升到给定温度。

节能模块:当水温达到预置温度后,半个小时内无人使用,暂停给水加热,有人用水,则恢复到上一时刻的设置状态;当水温达到预置温度后,一个小时内无人使用,暂停给水加热,有人用水,则除保持水反复加热的次数外,其他设置恢复初试状态。

显示模块:现有的水温、设置的水温;水加热的次数;加热的具体模式、保温模式。

采用50MHZ时钟源的FPGA芯片,使用VHDL语言编程。Quartus9.0版本

 

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

 

演示视频:

设计文档:

1. 工程文件

 

2. 程序文件

 

 

 

 

3. 程序编译

 

4. RTL图

状态图

 

 

5. 仿真图

饮水机控制模块仿真

 

 

显示模块仿真

 

 

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--分频模块,分频到10Hz
ENTITY fenping IS
   PORT (
      clk_50M    : IN STD_LOGIC;
      clk_10Hz    : OUT STD_LOGIC--10Hz
   );
END fenping;
ARCHITECTURE behave OF fenping IS
   SIGNAL time_count       : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000";
BEGIN
--分频
   PROCESS (clk_50M)
   BEGIN
      IF (clk_50M'EVENT AND clk_50M = '1') THEN
         IF (time_count = "00000000010011000100101101000000") THEN--5000000
            time_count <= "00000000000000000000000000000000";
            clk_10Hz <= '1';
         ELSE
            time_count <= time_count + "00000000000000000000000000000001";--计数
            clk_10Hz <= '0';
         END IF;
      END IF;
   END PROCESS;
   
   
END behave;

 

 

 

  • 2-24112019522c12.doc
    下载

相关推荐