全自动洗衣机控制器设计VHDL代码Quartus仿真
名称:全自动洗衣机控制器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
全自动洗衣机控制器
1.洗衣机控制器可以驱动洗衣机进行洗涤、漂洗和供干;并能点亮相应功能指示灯,洗涤30分钟 ,漂洗10分钟,烘干15分钟,全部流程完成后报警提示
2.洗衣机可实现自清洗功能,自清洗模式与正常模式分开,并有自洗指示灯
3.计时显示用两位数码管显示数字即可,不需要显示“分钟”字样
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
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仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 全自动洗衣机控制器设计VHDL代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm