My title page contents

全自动洗衣机控制器设计VHDL代码Quartus仿真

名称:全自动洗衣机控制器设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

全自动洗衣机控制器

1.洗衣机控制器可以驱动洗衣机进行洗涤、漂洗和供干;并能点亮相应功能指示灯,洗涤30分钟 ,漂洗10分钟,烘干15分钟,全部流程完成后报警提示

2.洗衣机可实现自清洗功能,自清洗模式与正常模式分开,并有自洗指示灯

3.计时显示用两位数码管显示数字即可,不需要显示“分钟”字样


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


演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件


3. 程序编译


4. 仿真文件



5. 仿真图

整体仿真图


按下start_key启动洗衣机流程,一共55分钟,洗涤30分钟,漂洗10分钟,烘干15分钟


洗涤30分钟结束切换到漂洗,mode_led是模式指示灯,由[0]切换到[1]亮







漂洗10分钟结束切换到烘干,mode_led是模式指示灯,由[1]切换到[2]亮


流程结束,bell信号变为高电平,报警提示


按下self_wash_key自清洗,同时self_wash_led灯亮


部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
-- 1.洗衣机控制器可以驱动洗衣机进行洗涤、漂洗和供干;并能点亮相应功能指示灯,洗涤30分钟 ,漂洗10分钟,烘干15分钟,全部流程完成后报警提示
-- 2.洗衣机可实现自清洗功能,自清洗模式与正常模式分开,并有自洗指示灯
-- 3.计时显示用两位数码管显示数字即可,不需要显示“分钟”字样
ENTITY washmachine IS
   PORT (
      clk            : IN STD_LOGIC;
      start_key      : IN STD_LOGIC;--启动按键
      self_wash_key  : IN STD_LOGIC;--自清洗按键
      self_wash_led  : OUT STD_LOGIC;--自清洗led
      bell           : OUT STD_LOGIC;--报警提示
      mode_led       : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--模式功能指示灯
      min_ten_HEX    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管十位
      min_one_HEX    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管个位
   );
END washmachine;
ARCHITECTURE behave OF washmachine IS
     
   TYPE State_type IS (s_idle,s_self_wash,s_start,s_washing,s_rinsing,s_drying,s_end);  -- 定义状态
   SIGNAL State : State_Type:=s_idle;    -- 创建信号
   SIGNAL min_ten_display : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL min_one_display : STD_LOGIC_VECTOR(7 DOWNTO 0);
   
   SIGNAL self_wash_cnt   : STD_LOGIC_VECTOR(11 DOWNTO 0) := "000000000000";
   SIGNAL end_cnt         : STD_LOGIC_VECTOR(11 DOWNTO 0) := "000000000000";
   
   SIGNAL minute_ten      : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0101";
   SIGNAL minute_one      : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0101";
   SIGNAL second_cnt      : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   
   SIGNAL selfwash_led    : STD_LOGIC := '0';
   
   SIGNAL bell_buf        : STD_LOGIC := '0';
   
   SIGNAL mode_led_buf    : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";
BEGIN
   min_ten_HEX <= min_ten_display;
   min_one_HEX <= min_one_display;
   
   --状态机控制
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         CASE state IS
            WHEN s_idle =>--空闲状态
               IF (self_wash_key = '1') THEN--按下自清洗按键
                  state <= s_self_wash;
               ELSIF (start_key = '1') THEN--按下启动按键
                  state --自清洗
               IF (self_wash_cnt >= "001001011000") THEN--自清洗时间10分钟
                  state <= s_idle;
               ELSE
                  state --启动
               state --洗涤
               IF (minute_ten = "0010" AND minute_one = "0101" AND second_cnt = "00000000") THEN--流程一共55分钟,洗涤30分钟
                  state <= s_rinsing;
               ELSE
                  state --漂洗
               IF (minute_ten = "0001" AND minute_one = "0101" AND second_cnt = "00000000") THEN--漂洗10分钟
                  state <= s_drying;
               ELSE
                  state --烘干
               IF (minute_ten = "0000" AND minute_one = "0000" AND second_cnt = "00000000") THEN--烘干15分钟
                  state <= s_end;
               ELSE
                  state --结束
               IF (end_cnt >= "000000011110") THEN--报警时间30s
                  state <= s_idle;
               ELSE
                  state 
         END CASE;
      END IF;
   END PROCESS;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 全自动洗衣机控制器设计VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员