洗衣机控制器设计VHDL代码Quartus仿真
名称:洗衣机控制器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
用VHDL语言设计一个洗衣机控制器,使洗衣机作如下运转:定时启动—〉正转25秒—〉暂停5秒—〉反转25秒—〉暂停5秒—〉定时不到,重复上面过程。
(2)若定时到,则停止。
(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由开始信号开始。
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; --译码器驱动电路模块 ENTITY decoder IS PORT ( clk_in : IN STD_LOGIC ; washing_time : IN STD_LOGIC_VECTOR (7 downto 0);--剩余时间(分钟) duanxuan2 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--显示个位 duanxuan1 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--显示十位 ); END decoder ; architecture Behavioral of decoder is SIGNAL state_div : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00"; SIGNAL data_buf : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; SIGNAL shang_buf : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; SIGNAL yushu_buf : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL shang : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL yushu : STD_LOGIC_VECTOR(3 DOWNTO 0); begin --除法,将 washing_time;除以10,商为十位,余数为个位 PROCESS (clk_in) BEGIN IF (clk_in'EVENT AND clk_in = '1') THEN CASE state_div IS WHEN "00" => data_buf <= washing_time; shang_buf <= "00000000"; yushu_buf <= "0000"; state_div <= "01"; WHEN "01" => IF (data_buf >= "00001010") THEN data_buf <= data_buf - "00001010";--将除以10转换为减10,减得次数就是商,剩下的就是余数 shang_buf <= shang_buf + "00000001"; yushu_buf <= yushu_buf; state_div <= "01"; ELSE data_buf <= data_buf; shang_buf <= shang_buf; yushu_buf <= data_buf(3 DOWNTO 0); state_div <= "10"; END IF; WHEN "10" => data_buf <= washing_time; shang <= shang_buf; yushu <= yushu_buf; state_div <= "00"; WHEN OTHERS => 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