全自动洗衣机控制器的设计与仿真_第1页
全自动洗衣机控制器的设计与仿真_第2页
全自动洗衣机控制器的设计与仿真_第3页
全自动洗衣机控制器的设计与仿真_第4页
全自动洗衣机控制器的设计与仿真_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 全自动洗衣机控制器的设计与仿真 初始条件: 设计一个全自动洗衣机控制器,功能为:1. 具备水位设定开关一个:普通(进水阀开启3分钟)脏(进水阀开启4分钟)极脏(进水阀开启5分钟);2. 具备模式设定开关一个:轻柔(电机单次正反转时间均为10秒)标准(电机单次正反转时间均为20秒)增强(电机单次正反转时间均为30秒);3. 洗衣流程为;(电机的暂停时间均为2秒) 浸泡:进水浸泡(5分钟) 清洗:正转暂停反转(前三个步骤循环5次)排水 漂洗:进水正转暂停反转(后三个步骤循环3次)排水(整个漂洗过程循环2次) 脱

2、水:电机正转同时排水(5分钟),完成后停止并发出报警信号。过程由“开始”按钮启动,按下该钮后,自动按4个流程执行,无需人工干预。 要求完成的主要任务: 1. 以XX方式显示运行时间,以指示灯方式表示进水阀、排水阀、电机的正反转、结束报警等信号。电机和阀门的驱动电路另行设计(本次省略)2广泛调研,提出几种可行的方案,多方论证,确定设计方案,用EDA软件仿真;3. 按格式要求撰写课程设计说明书一份;4提供程序代码一份;5. 参考文献不少于5篇,其中期刊文献不少于2篇。时间安排:1. 06月28日 布置设计任务;2. 07月02日 收集资料并确定设计方案;3. 07月0304日 系统设计、仿真和调试

3、; 4. 07月05日 撰写课程设计报告; 5. 07月06日 答辩;课设答疑/答辩地点:鉴主15楼实验室指导教师签名: 2012年 6 月 25 日系主任(或责任教师)签名: 2012年 6 月 25 日1绪论2.设计任务及完成的功能2.1设计任务:设计一个全自动洗衣机。2. 2功能:具备水位设定开关一个:普通(进水阀开启3分钟)脏(进水阀开启4分钟)极脏(进水阀开启5分钟);具备模式设定开关一个:轻柔(电机单次正反转时间均为10秒)标准(电机单次正反转时间均为20秒)增强(电机单次正反转时间均为30秒);洗衣流程为;(电机的暂停时间均为2秒) 浸泡:进水浸泡(5分钟) 清洗:正转暂停反转(

4、前三个步骤循环5次)排水 漂洗:进水正转暂停反转(后三个步骤循环3次)排水(整个漂洗过程循环2次) 脱水:电机正转同时排水(5分钟),完成后停止并发出报警信号。过程由“开始”按钮启动,按下该钮后,自动按4个流程执行,无需人工干预。3设计原理及模块实现 3.1设计原理及整体框图根据设计的要求需要分频器、循环计数、译码显示三部分组成。整体框图如下图31所示:显示译码 循环计数分频器时钟信号 图31设计方案总方框图3.2单元模块设计模块一:分频器 由于设计要求计数单元属于秒脉冲技术单元而CPLD器件给出的时钟信号为50MHZ故需要一个分频器对50MHZ的频率进行分频所以需要设计一个50M分频器其VH

5、DL源程序如下所示:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;entity clk_div isport( clk : in std_logic; clk1:out std_logic);end clk_div;architecture mix of clk_div issignal count :integer range 0 to 49999999;begin clk_div_proc:process(clk) begin if

6、rising_edge(clk) then if count=49999999 then count<=0; else count<=count+1; end if; if count>24999999 then-?±è50% clk1<='1' else clk1<='0' end if; end if; end process clk_div_proc;end mix;该程序生成的元件符号如图32所示图32分频器元器件符号3.2.2模块二:循环计数循环计数模块是本设计的骨干精髓部分,分别用两个信号控制水位设定

7、和模式设定两个键位然后组合形成九中工作方式,通过计算九中方式的时间,循环计数然后编写程序。其VHDL源程序如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY xiyiji IS PORT(WSET,PDES,START,CLK,SG:IN STD_LOGIC; COME,DOUT:BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0); MIU2,MIU1,SEC2,SEC1:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); BAOJ:B

8、UFFER STD_LOGIC);END xiyiji;ARCHITECTURE BEHAV OF xiyiji ISSIGNAL DT1,DT2:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL DICSOUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUNT0,COUNT1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL TIM3,TIM4,TIM5,TIM6:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL TIM1,TIM2,TIM7,TIM8:STD_LOGIC_VECTOR(8

9、DOWNTO 0);SIGNAL CMKS:STD_LOGIC;BEGINPROCESS(WSET,SG) BEGINIF SG='0' THENDT1<="00"ELSIF WSET'EVENT AND WSET='1' THENIF DT1=0 THENDT1<="01"ELSEDT1<=DT1+1;END IF;END IF;END PROCESS;PROCESS(PDES,SG)BEGINIF SG='0' THENDT2<="00"ELSIF P

10、DES'EVENT AND PDES='1' THENIF DT2=0 THENDT2<="01"ELSEDT2<=DT2+1;END IF;END IF;END PROCESS; PROCESS(START,SG)BEGINIF SG='0' THENCMKS<='0'ELSIF START'EVENT AND START='1' THEN DICSOUNT<=DT1&DT2;CMKS<=CMKS XOR '1'END IF;END PRO

11、CESS; PROCESS(SG,CLK,CMKS,BAOJ)BEGINIF CMKS='0'THEN SEC1<="0000"elsIF CLK'EVENT AND CLK='1' THEN IF BAOJ='1' THEN SEC1<=SEC1;SEC2<=SEC2;MIU1<=MIU1;MIU2<=MIU2;ELSIF SEC1<9 THENSEC1<=SEC1+1;ELSIF SEC1=9 AND SEC2<5 THENSEC2<=SEC2+1;SEC1&l

12、t;="0000"ELSIF SEC1=9 AND SEC2=5 AND MIU1<9 THENMIU1<=MIU1+1;SEC1<="0000"SEC2<="0000"ELSIF SEC1=9 AND SEC2=5 AND MIU1=9 AND MIU2<5 THENMIU2<=MIU2+1;SEC1<="0000"SEC2<="0000"MIU1<="0000"END IF;END IF;END PROCESS;PRO

13、CESS(CLK,CMKS,DICSOUNT)VARIABLE N1,N2,DATA1:INTEGER;BEGIN CASE DICSOUNT ISWHEN "0101"=>N1:=180;N2:=10;WHEN "0110"=>N1:=180;N2:=20;WHEN "0111"=>N1:=180;N2:=30;WHEN "1001"=>N1:=240;N2:=10;WHEN "1010"=>N1:=240;N2:=20;WHEN "1011"

14、=>N1:=240;N2:=30;WHEN "1101"=>N1:=300;N2:=10;WHEN "1110"=>N1:=300;N2:=20;WHEN "1111"=>N1:=300;N2:=30;WHEN OTHERS=>N1:=0;N2:=0;END CASE;IF CMKS='0' THENCOME<="00"DOUT<="00"ELSIF CLK'EVENT AND CLK='1' THENIF COU

15、NT0<3 THENIF COUNT0=0 THEN DATA1:=5;ELSIF COUNT0>0 THEN DATA1:=3;END IF;IF TIM1<N1 THEN COME<="10"TIM1<=TIM1+1;ELSIF TIM1=N1 AND COUNT0="000" AND TIM2<300 THENCOME<="00"DOUT<="00"TIM2<=TIM2+1;ELSIF TIM1=N1 AND TIM2=300 THENCOME<=&

16、quot;00"DOUT<="00" IF COUNT1<DATA1 THENIF TIM3<N2 THENDOUT<="10"TIM3<=TIM3+1;ELSIF TIM3=N2 AND TIM4<2 THENTIM4<=TIM4+1;DOUT<="00"ELSIF TIM4=2 AND TIM5<N2 THENTIM5<=TIM5+1;DOUT<="01"ELSIF TIM5=N2 AND TIM6<2 THENTIM6<=

17、TIM6+1;DOUT<="00"ELSIF TIM6=2 THENCOUNT1<=COUNT1+1;TIM3<="00000"TIM4<="00000"TIM5<="00000"TIM6<="00000"END IF;ELSIF COUNT1=DATA1 AND TIM7<N1 THENTIM7<=TIM7+1;DOUT<="00"COME<="01"ELSIF TIM7=N1 THENCOUN

18、T0<=COUNT0+1;TIM1<="000000000"TIM7<="000000000"COME<="00"COUNT1<="000"END IF;END IF;ELSIF COUNT0=3 AND TIM8<300 THENTIM8<=TIM8+1;COME<="01"DOUT<="10"ELSIF TIM8=300 THENCOME<="00"DOUT<="00"

19、;END IF;END IF;END PROCESS;PROCESS(SG,TIM8)BEGIN IF TIM8=300 and count0=3 THEN BAOJ<='1'ELSE BAOJ<='0'END IF;END PROCESS;END BEHAV;生成的元件符号如图33所示图33循环计数元器件符号3.2.2模块三:译码显示模块该模块需要做四个译码显示分别显示分钟十位、分钟个位、秒十位、秒分位显示从开始进行的时间,其中正反转等的显示分别用LED灯指示(正转灯1亮,反转灯2亮暂停亮灯都处于熄灭状态),在此只需要在输出的时候一一对应即可不需要做出故只做数显模块。数显的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY seg7 ISPORT(bcd:IN STD_LOGIC_VECTOR(3 DOWNTO 0); a,b,c,d,e,f,g:OUT STD_LOGIC); END ENTITY seg7; ARCHITECTURE one OF seg7 IS S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论