VHDL洗衣机设计.pdf

上传人:1398****507 文档编号:72410851 上传时间:2023-02-10 格式:PDF 页数:24 大小:1.73MB
返回 下载 相关 举报
VHDL洗衣机设计.pdf_第1页
第1页 / 共24页
VHDL洗衣机设计.pdf_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《VHDL洗衣机设计.pdf》由会员分享,可在线阅读,更多相关《VHDL洗衣机设计.pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-.EDAEDA 课程实训报告课程实训报告一、实训课题:一、实训课题:洗衣机控制器的设计二、设计的内容及要求:二、设计的内容及要求:1设计一个洗衣机控制器,要求为:1)洗衣机控制器可以驱动洗衣机进行洗涤、漂洗或烘干;2)洗衣机控制器可以设置洗衣机的工作时间,工作时间最短1 分钟,最长30 分钟,在工作过程中,工作时间以倒计时显示,若时间为 0 洗衣机停止工作;3)洗衣机在待机状态时,洗衣机控制器可以设置洗衣机的工作方式和工作时间;4)可以暂停或停止洗衣机工作;5)利用四个数码管显示洗衣机待机时的设置时间和工作时的运行时间,利用一位数码管显示洗衣机待机时所设置的工作方式运行时的工作方式;6)利用

2、三个 LED 分别表示驱动洗衣机进行洗涤、漂洗或烘干。2 洗衣机控制器可以划分为状态机模块、计时器模块、设置模块和显示选择模块。在 QuartusII中输入各个模块的代码,编译综合,仿真,完成各个模块的软件设计;4把各个模块组合起来,综合编译,仿真,完成整个交通灯控制器系统的软件设计;5.选择电路方案锁定管脚,把程序下载到实验箱中,利用实验箱进行硬件实现;6.完成实训报告。实训报告包括:1)设计的任务和要求;2)模块的划分和系统总框图;-.可修编.-.3)各个模块的实现,包括模块的作用,模块的输入与输出情况,模块状态图,模块的代码以及注释,模块的波形图;4)系统的实现,包括系统总原理图,系统的

3、波形图;5)管脚的锁定关系;三设计思路:三设计思路:状态切换有限状态机 按定时时间及时定时计数器 显示时间数码管译码驱动器 接收设置时间时间设置键盘扫描器 接收设置模式模式设置键盘扫描器 切换显示运行时间和设置时间二路选择器 切换显示运行模式和设置模式二路选择器整体设计示意图:整体设计示意图:四系统组成以及系统各部分的设计:四系统组成以及系统各部分的设计:1.1.状态机的设计:状态机的设计:-.可修编.-.状态机要完成的功能:状态机要完成的功能:能设置工作模式;控制洗涤、漂洗、干衣的驱动输出;能启动、暂停、停止洗衣机控制器;能重启、暂停和停止定时器;能接收定时器的到时标志;能使能键盘扫描计数器

4、;能控制二路选择器。状态图分析设计如下:状态图分析设计如下:-.可修编.-.模块设计图如下:模块设计图如下:状态机仿真图如下:状态机仿真图如下:-.可修编.-.2.2.定时器设计:定时器设计:定时器的功能:定时器的功能:能通过使能端暂停和允许定时器工作;能停止并复位定时器;能进行定时;能输出定时标志模块设计图如下:模块设计图如下:定时器波形图如下:定时器波形图如下:-.可修编.-.3.3.时间设置:时间设置:时间设置键盘扫描器的功能:时间设置键盘扫描器的功能:能响应按键;能在使能端的控制下工作模式设计图如下:模式设计图如下:波形图如下:波形图如下:-.可修编.-.4.4.模式设置模式设置:模式

5、设置键盘扫描器的功能:模式设置键盘扫描器的功能:预设工作模式,”000”为待机,”001”为洗涤,”010”为漂洗,”022”为干衣,”100”为暂停模式设计图如下:模式设计图如下:波形图如下:波形图如下:-.可修编.-.5.5.二路选择器二路选择器二路选择器的功能:二路选择器的功能:设置显示运行时间还是设置时间,显示运行模式还是设置模式。模式设计图如下:模式设计图如下:整体结构图:整体结构图:-.可修编.-.整体波形图:整体波形图:五五下载时选择的开发系统模式以及管脚下载时选择的开发系统模式以及管脚1.1.管教配置:管教配置:-.可修编.-.2.2.实验电路结构图:实验电路结构图:-.可修编

6、.-.87654321扬声器PIO19-PIO16PIO23-PIO20PIO27-PIO24PIO31-PIO28PIO35-PIO32PIO39-PIO36D8PIO47D7PIO46D6PIO45D5PIO44D4PIO43D3PIO42D2PIO41D1PIO40FPGA/CPLD目标芯片PIO47-PIO40PIO7PIO6PIO5PIO4PIO3PIO2PIO0D16D15D14D13D12D11D9单脉冲单脉冲键8键7键6键5单脉冲键4键3键2键1实验电路结构图NO.7附录附录代码:代码:1.1.状态机状态机LIBRARY ieee;USE ieee.std_logic_1164

7、.all;ENTITY SHELL_WASHMACHINE ISPORT(CLK,modein0,modein1,modein2,pause,start,stop,tcin:IN std_logic;END;ARCHITECTURE BEHAVIOR OF SHELL_WASHMACHINE ISTYPE type_sreg IS(dry,ready,rinse,waitup,wash);SIGNAL sreg,next_sreg:type_sreg;SIGNAL next_ken,next_modeout0,next_modeout1,next_modeout2,next_sel,next_

8、ten,next_tstop,next_wout0,next_wout1,next_wout2:std_logic;SIGNAL modeout:std_logic_vector(2 DOWNTO 0);ken,modeout0,modeout1,modeout2,sel,ten,tstop,wout0,wout1,wout2:OUTstd_logic);-.可修编.SPEAKER译码器译码器译码器译码器译码器译码器-.SIGNAL wout:std_logic_vector(2 DOWNTO 0);BEGINPROCESS(CLK,stop,next_sreg,next_ken,next_s

9、el,next_ten,next_tstop,PROCESS(sreg,modein0,modein1,modein2,pause,start,tcin,modeout,wout)BEGINCASE sreg ISWHEN dry=next_sreg=dry;next_ken=0;next_modeout0=0;next_modeout1=0;next_modeout2=0;next_sel=0;next_ten=0;next_tstop=0;next_wout0=0;next_wout1=0;next_wout2=0;next_modeout2,next_modeout1,next_mode

10、out0,next_wout2,next_wout1,next_wout0)IF(stop=1)THENsel=0;ken=1;ten=1;modeout2=0;modeout1=0;modeout0=0;wout2=0;wout1=0;wout0=0;BEGINsreg=ready;tstop=1;ELSIF CLK=1 AND CLKevent THENken=next_ken;sel=next_sel;ten=next_ten;modeout2=next_modeout2;modeout1=next_modeout1;modeout0=next_modeout0;wout2=next_w

11、out2;wout1=next_wout1;wout0=next_wout0;sreg=next_sreg;tstop=next_tstop;END IF;END PROCESS;modeout=std_logic_vector(000);wout=std_logic_vector(000);-.可修编.-.IF(pause=0 AND tcin=0)THENnext_sreg=dry;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(011);wout=(std_logic_vector(100);

12、END IF;IF(tcin=0 AND pause=1)THENnext_sreg=waitup;next_ten=0;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(100);wout=(std_logic_vector(000);END IF;IF(tcin=1)THENnext_sreg=ready;next_ten=1;next_tstop=1;next_ken=1;next_sel=0;modeout=(std_logic_vector(000);wout IF(modein1=0 AND modein0=0

13、)OR(modein2=1)OR(start=0)THENnext_sreg=ready;next_ten=1;next_tstop=1;next_ken=1;next_sel=0;modeout=(std_logic_vector(000);wout=(std_logic_vector(000);END IF;IF(modein0=1 AND modein1=1 AND modein2=0 AND start=1)THENnext_sreg=dry;.可修编.-.next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_

14、vector(011);wout=(std_logic_vector(100);END IF;IF(modein0=0 AND modein1=1 AND modein2=0 AND start=1)THENnext_sreg=rinse;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(010);wout=(std_logic_vector(010);END IF;IF(modein0=1 AND modein1=0 AND modein2=0 AND start=1)THENnext_sreg=w

15、ash;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(001);wout IF(pause=0 AND tcin=0)THENnext_sreg=rinse;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(010);wout=(std_logic_vector(010);END IF;IF(tcin=0 AND pause=1)THENnext_sreg=waitup;next_ten=0;next_t

16、stop=0;next_ken=0;.可修编.-.next_sel=1;modeout=(std_logic_vector(100);wout=(std_logic_vector(000);END IF;IF(tcin=1)THENnext_sreg=ready;next_ten=1;next_tstop=1;next_ken=1;next_sel=0;modeout=(std_logic_vector(000);wout IF(modein1=0 AND modein0=0)OR(modein2=1)OR(pause=1)THENnext_sreg=waitup;next_ten=0;nex

17、t_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(100);wout=(std_logic_vector(000);END IF;IF(modein0=1 AND modein1=1 AND modein2=0 AND pause=0)THENnext_sreg=dry;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(011);wout=(std_logic_vector(100);END IF;IF(modein0=0 AND mo

18、dein1=1 AND modein2=0 AND pause=0)THENnext_sreg=rinse;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;.可修编.-.modeout=(std_logic_vector(010);wout=(std_logic_vector(010);END IF;IF(modein0=1 AND modein1=0 AND modein2=0 AND pause=0)THEN-next_sreg=wash;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=

19、(std_logic_vector(001);wout IF(pause=0 AND tcin=0)THENnext_sreg=wash;next_ten=1;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(001);wout=(std_logic_vector(001);END IF;IF(tcin=0 AND pause=1)THENnext_sreg=waitup;next_ten=0;next_tstop=0;next_ken=0;next_sel=1;modeout=(std_logic_vector(100)

20、;wout=(std_logic_vector(000);END IF;IF(tcin=1)THENnext_sreg=ready;next_ten=1;next_tstop=1;next_ken=1;next_sel=0;modeout=(std_logic_vector(000);wout=(std_logic_vector(000);END IF;.可修编.-.next_modeout2=modeout(2);next_modeout1=modeout(1);next_modeout0=modeout(0);next_wout2=wout(2);next_wout1=wout(1);ne

21、xt_wout0 END CASE;END PROCESS;END BEHAVIOR;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY WASHMACHINE ISPORT(modein:IN std_logic_vector(2 DOWNTO 0);END;ARCHITECTURE BEHAVIOR OF WASHMACHINE ISPONENT SHELL_WASHMACHINEPORT(CLK,modein0,modein1,modein2,pause,start,stop,tcin:IN std_logic;ken,modeout0,mod

22、eout1,modeout2,sel,ten,tstop,wout0,wout1,wout2:OUTstd_logic);modeout:OUT std_logic_vector(2 DOWNTO 0);wout:OUT std_logic_vector(2 DOWNTO 0);CLK,pause,start,stop,tcin:IN std_logic;ken,sel,ten,tstop:OUT std_logic);END PONENT;BEGINSHELL1_WASHMACHINE:SHELL_WASHMACHINE PORT MAP(CLK=CLK,modein0=modein(0),

23、modein1=modein(1),modein2=modein(2),pause=pause,start=start,stop=stop,tcin=tcin,ken=ken,modeout0=modeout(0),modeout1=modeout(1),modeout2=modeout(2),sel=sel,ten=ten,tstop=tstop,wout0=wout(0),wout1=wout(1),wout2=wout(2);END BEHAVIOR;2 2定时器:定时器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logi

24、c_unsigned.all;entity dingshi isport(clk,ten,tstop:in std_logic;ims:in std_logic_vector(3 downto 0);-.可修编.-.iss:in std_logic_vector(3 downto 0);img:in std_logic_vector(3 downto 0);isg:in std_logic_vector(3 downto 0);cin:out std_logic;omg,osg:buffer std_logic_vector(3 downto 0);oms:buffer std_logic_v

25、ector(3 downto 0);oss:buffer std_logic_vector(3 downto 0);end;architecture cml of dingshi isbeginPROCESS(clk,ten,tstop)BEGINIF ten=1 THENIF tstop=1 THENosg0000 OR omg0000 OR oms0000 THENosg=1001;ELSEosg=0000;END IF;ELSEosg=osg-1;END IF;END IF;END IF;END PROCESS;PROCESS(clk,ten,tstop,osg)BEGINIF ten=

26、1 THENIF tstop=1 THENoss0000 OR oms0000 THENoss=0101;ELSEoss=0000;END IF;ELSE-.可修编.-.oss=oss-1;END IF;END IF;END IF;END IF;END PROCESS;PROCESS(clk,ten,tstop,osg,oss)BEGINIF ten=1 THENIF tstop=1 THENomg0 THENomg=1001;ELSEomg=0000;END IF;ELSEomg=omg-1;END IF;END IF;END IF;END IF;END PROCESS;PROCESS(cl

27、k,ten,tstop,osg,oss,omg)BEGINIF ten=1 THENIF tstop=1 THENoms=ims;ELSIF clkEVENT AND clk=1 THENIF omg=0 and osg=0 and oss=0 THENIF oms=0 THENoms=0000;ELSEoms=oms-1;END IF;END IF;END IF;END IF;END PROCESS;-.可修编.-.PROCESS(clk,ten,tstop,osg,oss,omg,oms)BEGINIF ten=1 THENIF tstop=0 THENIF clkEVENT AND cl

28、k=1 THENIF oms=0 AND omg=0 AND oss=0 AND osg=1THENcin=1;ELSEcin=0;END IF;END IF;END IF;END IF;END PROCESS;END cml;3.3.时间设置:时间设置:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity key ISport(kin:in std_logic;ken:in std_logic;ims,iss,img,isg:buffer std_logic_vector(3 downt

29、o 0);end key;ARCHITECTURE cml OF key ISBEGINPROCESS(kin,ken)BEGINIF ken=1 THENIF kinEVENT AND kin=1 THENIF isg=1001 THENisg=0000;ELSEisg=isg+1;END IF;END IF;-.可修编.-.END IF;END PROCESS;PROCESS(kin,ken,isg)BEGINIF ken=1 THENIF kinEVENT AND kin=1 THENIF isg=9 THENIF iss=0101 THENiss=0000;ELSEiss=iss+1;

30、END IF;END IF;END IF;END IF;END PROCESS;PROCESS(kin,ken,isg,iss)BEGINIF ken=1 THENIF kinEVENT AND kin=1 THENIF iss=0101 AND isg=1001 THENIF img=1001 THENimg=0000;ELSEimg=img+1;END IF;END IF;END IF;END IF;END PROCESS;PROCESS(kin,ken,isg,iss,img)BEGINIF ken=1 THENIF kinEVENT AND kin=1 THENIF img=1001

31、AND iss=0101 AND isg=1001 THENIF ims=0010 THENims=0000;ELSEims=ims+1;END IF;END IF;-.可修编.-.END IF;END IF;END PROCESS;END cml;4.4.模式设置:模式设置:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mode isport(kin:in std_logic;ken:in std_logic;modeset:buffer std_logic_vector(2 d

32、ownto 0);LED:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);end mode;architecture cml of mode issignal a:std_logic_vector(2 downto 0);signal k:std_logic;beginprocess(kin,ken)beginif ken=1 thenif rising_edge(kin)thenif a=100 thena=000;elsea=a+1;end if;end if;end if;end process;modesetLEDLEDLEDLED=000;end case;end

33、process;end cml;5.二路选择器:二路选择器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mulsel isport(ims:in std_logic_vector(3 downto 0);iss:in std_logic_vector(3 downto 0);img:in std_logic_vector(3 downto 0);isg:in std_logic_vector(3 downto 0);oms:in std_logic_vector(3 downto

34、 0);oss:in std_logic_vector(3 downto 0);omg:in std_logic_vector(3 downto 0);osg:in std_logic_vector(3 downto 0);msdis:out std_logic_vector(3 downto 0);mgdis:out std_logic_vector(3 downto 0);isdis:out std_logic_vector(3 downto 0);igdis:out std_logic_vector(3 downto 0);modedis:out std_logic_vector(2 d

35、ownto 0);modeset:in std_logic_vector(2 downto 0);modeout:in std_logic_vector(2 downto 0);sel:in std_logic);end mulsel;architecture cml of mulsel isbeginprocess(sel,ims,iss,isg,oms,isg,oss,omg,osg)beginif sel=1 thenmsdis=oms;mgdis=omg;isdis=oss;igdis=osg;modedis=modeout;else-.可修编.-.msdis=ims;mgdis=img;isdis=iss;igdis=isg;modedis=modeset;end if;end process;end cml;-.可修编.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁