洗衣机控制器VHDL代码Quartus DE2-115开发板

名称:洗衣机控制器VHDL代码Quartus  DE2-115开发板(文末获取)

软件:Quartus

语言:VHDL

代码功能:

洗衣机控制器

(1)设计一个洗衣机控制器,使洗衣机作如下运转:定时启动—〉正转20秒—〉暂停10秒—〉反转20秒—〉暂停10秒—〉定时不到,重复上面过程。

(2)若定时到,则停止,并发出提示信号。

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

(4)三只LED灯表示正转、反转、暂停三个状态。

本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:

DE2-115开发板.png

洗衣机程序设计

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. 仿真图

洗涤预制时间寄存模块

时序电路模块

十进制减法计数模块

译码器驱动电路模块

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
ENTITY washing_machine IS
   PORT (
      clk_in     : IN STD_LOGIC;--50Hz
      start_key  : IN STD_LOGIC;--启动按键
      
      set_time_key: IN STD_LOGIC ;--预置时间按键,按一次增加5分钟,超过60分钟自动回零
      
      led        : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--正转,反转,暂停
      end_led    : OUT STD_LOGIC;--洗衣结束信号
      
      dig_led1    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管1
      dig_led2   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管2
   );
END washing_machine;
ARCHITECTURE Behavioral OF washing_machine IS
--洗涤预制时间寄存模块/十进制减法计数模块/时序电路模块/译码器驱动电路模块/数码管显示模块   
--洗涤预制时间寄存模块
Component pre_set_time IS
PORT (
clk_in     : IN STD_LOGIC;--50Hz     
set_time_key: IN STD_LOGIC ;--预置时间按键,按一次增加5分钟,超过60分钟自动回零
preset_time    :  OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
end Component ;
--译码器驱动电路模块
Component 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 Component ;
--数码管显示模块
Component display IS
PORT (
duanxuan2  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
duanxuan1  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
dig_led1    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管1
dig_led2   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管2
);
end Component ;
Component subtraction IS
PORT (
clk_in  : IN STD_LOGIC;--50Hz
start_key_rise  : IN STD_LOGIC;
min_en_rise    : IN STD_LOGIC;
preset_time    : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
washing_time   : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
end Component ;
Component Sequential_circuit IS
PORT (
clk_in     : IN STD_LOGIC;--50Hz
start_key  : IN STD_LOGIC;--启动按键
washing_time   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);      
led        : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--正转,反转,暂停
end_led    : OUT STD_LOGIC;--洗衣结束信号
      
start_key_rise_out    : OUT STD_LOGIC;
min_en_rise_out   : OUT STD_LOGIC
);
end Component ;
   SIGNAL preset_time    :  STD_LOGIC_VECTOR(7 DOWNTO 0):= "00000000";
   SIGNAL washing_time        : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";--预置洗衣时间15分钟
   
   SIGNAL start_key_rise      : STD_LOGIC:='0';
   SIGNAL min_en_rise         : STD_LOGIC:='0';   
   
   SIGNAL duanxuan2             : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL duanxuan1            : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
BEGIN
源代码

 扫描文章末尾的公众号二维码

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值