My title page contents

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

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

软件:Quartus

语言:VHDL

代码功能:

用VHDL语言设计一个洗衣机控制器,使洗衣机作如下运转:定时启动—〉正转25秒—〉暂停5秒—〉反转25秒—〉暂停5秒—〉定时不到,重复上面过程。

(2)若定时到,则停止。

(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由开始信号开始。


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


演示视频:

设计文档:

洗衣机程序设计.doc

洗衣机程序设计

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仿真

发表评论

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

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

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