• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

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

07/01 14:25
393
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240113133Z5Z9.doc

共1个文件

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

软件:Quartus

语言:VHDL

代码功能:

洗衣机控制器:

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

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

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

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

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

本代码已在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

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=557

  • 2-240113133Z5Z9.doc
    下载

相关推荐