EDA全自动洗衣机控制器的设计与仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目:全自动洗衣机控制器的设计与仿真初始条件:设计一个全自动洗衣机控制器,功能为:1.具备水位设定开关一个:①普通(进水阀开启3分钟)②脏(进水阀开启4分钟)③极脏(进水阀开启5分钟);2.具备模式设定开关一个:①轻柔(电机单次正反转时间均为10秒)②标准(电机单次正反转时间均为20秒)③增强(电机单次正反转时间均为30秒);3.洗衣流程为;(电机的暂停时间均为2秒)①浸泡:进水→浸泡(5分钟)②清洗:正转→暂停→反转(前三个步骤循环5次)→排水③漂洗:进水→正转→暂停→反转(后三个步骤循环3次)→排水(整个漂洗过程循环2次)④脱水:电机正转同时排水(5分钟),完成后停止并发出报警信号。过程由“开始”按钮启动,按下该钮后,自动按4个流程执行,无需人工干预。要求完成的主要任务:1.以XX方式显示运行时间,以指示灯方式表示进水阀、排水阀、电机的正反转、结束报警等信号。电机和阀门的驱动电路另行设计(本次省略)2.广泛调研,提出几种可行的方案,多方论证,确定设计方案,用EDA软件仿真;3.按格式要求撰写课程设计说明书一份;4.提供程序代码一份;5.参考文献不少于5篇,其中期刊文献不少于2篇。时间安排:1.06月28日布置设计任务;2.07月02日收集资料并确定设计方案;3.07月03~04日系统设计、仿真和调试;4.07月05日撰写课程设计报告;5.07月06日答辩;课设答疑/答辩地点:鉴主15楼实验室指导教师签名:2012年6月25日系主任(或责任教师)签名:2012年6月25日1绪论2.设计任务及完成的功能2.1设计任务:设计一个全自动洗衣机。2.2功能:2.2.1具备水位设定开关一个:①普通(进水阀开启3分钟)②脏(进水阀开启4分钟)③极脏(进水阀开启5分钟);2.2.2具备模式设定开关一个:①轻柔(电机单次正反转时间均为10秒)②标准(电机单次正反转时间均为20秒)③增强(电机单次正反转时间均为30秒);2.2.3洗衣流程为;(电机的暂停时间均为2秒)①浸泡:进水→浸泡(5分钟)②清洗:正转→暂停→反转(前三个步骤循环5次)→排水③漂洗:进水→正转→暂停→反转(后三个步骤循环3次)→排水(整个漂洗过程循环2次)④脱水:电机正转同时排水(5分钟),完成后停止并发出报警信号。过程由“开始”按钮启动,按下该钮后,自动按4个流程执行,无需人工干预。3设计原理及模块实现3.1设计原理及整体框图根据设计的要求需要分频器、循环计数、译码显示三部分组成。整体框图如下图3—1所示:图3—1设计方案总方框图3.2单元模块设计3.2.1模块一:分频器由于设计要求计数单元属于秒脉冲技术单元而CPLD器件给出的时钟信号为50MHZ故需要一个分频器对50MHZ的频率进行分频所以需要设计一个50M分频器其VHDL源程序如下所示:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;USEieee.std_logic_unsigned.all;entityclk_divis译码循环计数时钟信号分频器显示port(clk:instd_logic;clk1:outstd_logic);endclk_div;architecturemixofclk_divissignalcount:integerrange0to49999999;beginclk_div_proc:process(clk)beginifrising_edge(clk)thenifcount=49999999thencount=0;elsecount=count+1;endif;ifcount24999999then---????±è50%clk1='1';elseclk1='0';endif;endif;endprocessclk_div_proc;endmix;该程序生成的元件符号如图3—2所示图3—2分频器元器件符号3.2.2模块二:循环计数循环计数模块是本设计的骨干精髓部分,分别用两个信号控制水位设定和模式设定两个键位然后组合形成九中工作方式,通过计算九中方式的时间,循环计数然后编写程序。其VHDL源程序如下所示:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYxiyijiISPORT(WSET,PDES,START,CLK,SG:INSTD_LOGIC;COME,DOUT:BUFFERSTD_LOGIC_VECTOR(1DOWNTO0);MIU2,MIU1,SEC2,SEC1:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);BAOJ:BUFFERSTD_LOGIC);ENDxiyiji;ARCHITECTUREBEHAVOFxiyijiISSIGNALDT1,DT2:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALDICSOUNT:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALCOUNT0,COUNT1:STD_LOGIC_VECTOR(2DOWNTO0);SIGNALTIM3,TIM4,TIM5,TIM6:STD_LOGIC_VECTOR(4DOWNTO0);SIGNALTIM1,TIM2,TIM7,TIM8:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALCMKS:STD_LOGIC;BEGINPROCESS(WSET,SG)BEGINIFSG='0'THENDT1=00;ELSIFWSET'EVENTANDWSET='1'THENIFDT1=0THENDT1=01;ELSEDT1=DT1+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(PDES,SG)BEGINIFSG='0'THENDT2=00;ELSIFPDES'EVENTANDPDES='1'THENIFDT2=0THENDT2=01;ELSEDT2=DT2+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(START,SG)BEGINIFSG='0'THENCMKS='0';ELSIFSTART'EVENTANDSTART='1'THENDICSOUNT=DT1&DT2;CMKS=CMKSXOR'1';ENDIF;ENDPROCESS;PROCESS(SG,CLK,CMKS,BAOJ)BEGINIFCMKS='0'THENSEC1=0000;elsIFCLK'EVENTANDCLK='1'THENIFBAOJ='1'THENSEC1=SEC1;SEC2=SEC2;MIU1=MIU1;MIU2=MIU2;ELSIFSEC19THENSEC1=SEC1+1;ELSIFSEC1=9ANDSEC25THENSEC2=SEC2+1;SEC1=0000;ELSIFSEC1=9ANDSEC2=5ANDMIU19THENMIU1=MIU1+1;SEC1=0000;SEC2=0000;ELSIFSEC1=9ANDSEC2=5ANDMIU1=9ANDMIU25THENMIU2=MIU2+1;SEC1=0000;SEC2=0000;MIU1=0000;ENDIF;ENDIF;ENDPROCESS;PROCESS(CLK,CMKS,DICSOUNT)VARIABLEN1,N2,DATA1:INTEGER;BEGINCASEDICSOUNTISWHEN0101=N1:=180;N2:=10;WHEN0110=N1:=180;N2:=20;WHEN0111=N1:=180;N2:=30;WHEN1001=N1:=240;N2:=10;WHEN1010=N1:=240;N2:=20;WHEN1011=N1:=240;N2:=30;WHEN1101=N1:=300;N2:=10;WHEN1110=N1:=300;N2:=20;WHEN1111=N1:=300;N2:=30;WHENOTHERS=N1:=0;N2:=0;ENDCASE;IFCMKS='0'THENCOME=00;DOUT=00;ELSIFCLK'EVENTANDCLK='1'THENIFCOUNT03THENIFCOUNT0=0THENDATA1:=5;ELSIFCOUNT00THENDATA1:=3;ENDIF;IFTIM1N1THENCOME=10;TIM1=TIM1+1;ELSIFTIM1=N1ANDCOUNT0=000ANDTIM2300THENCOME=00;DOUT=00;TIM2=TIM2+1;ELSIFTIM1=N1ANDTIM2=300THENCOME=00;DOUT=00;IFCOUNT1DATA1THENIFTIM3N2THENDOUT=10;TIM3=TIM3+1;ELSIFTIM3=N2ANDTIM42THENTIM4=TIM4+1;DOUT=00;ELSIFTIM4=2ANDTIM5N2THENTIM5=TIM5+1;DOUT=01;ELSIFTIM5=N2ANDTIM62THENTIM6=TIM6+1;DOUT=00;ELSIFTIM6=2THENCOUNT1=COUNT1+1;TIM3=00000;TIM4=00000;TIM5=00000;TIM6=00000;ENDIF;ELSIFCOUNT1=DATA1ANDTIM7N1THENTIM7=TIM7+1;DOUT=00;COME=01;ELSIFTIM7=N1THENCOUNT0=COUNT0+1;TIM1=000000000;TIM7=000000000;COME=00;COUNT1=000;ENDIF;ENDIF;ELSIFCOUNT0=3ANDTIM8300THENTIM8=TIM8+1;COME=01;DOUT=10;ELSIFTIM8=300THENCOME=00;DOUT=00;ENDIF;ENDIF;ENDPROCESS;PROCESS(SG,TIM8)BEGINIFTIM8=300andcount0=3THENBAOJ='1';ELSEBAOJ='0';ENDIF;ENDPROCESS;ENDBEHAV;生成的元件符号如图3—3所示图3—3循环计数元器件符号3.2.2模块三:译码显示模块该模块需要做四个译码显示分别显示分钟十位、分钟个位、秒十位、秒分位显示从开始进行的时间,其中正反转等的显示分别用LED灯指示(正转灯1亮,反转灯2亮暂停亮灯都处于熄灭状态),在此只需要在输出的时候一一对应即可不需要做出故只做数显模块。数显的VHDL源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYseg7ISPORT(bcd:INSTD_LOGIC_VECTOR(3DOWNTO0);a,b,c,d,e,f,g:OUTSTD_LOGIC);ENDENTITYseg7;ARCHITECTUREoneOFseg7ISSIGNALdout:STD_LOGIC_VECTOR(6DOWNTO0);BEGINWITHbcdSELECTdout=0111111WHEN0000,0000110WHEN0001,1011011WHEN0010,1001111WHEN0011,1100110WHEN0100,1101101WHEN0101,1111101WHEN0110,0000111WHEN0111,1111111WHEN1000,1101111WHEN1001,0000000WHENOTHERS;a=dout(6);b=dout(5);c=dout(4);d=dout(3);e=dout(2);f=dout(1);g

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功