数字逻辑电路课程设计-全自动洗衣机控制器的设计_第1页
数字逻辑电路课程设计-全自动洗衣机控制器的设计_第2页
数字逻辑电路课程设计-全自动洗衣机控制器的设计_第3页
数字逻辑电路课程设计-全自动洗衣机控制器的设计_第4页
数字逻辑电路课程设计-全自动洗衣机控制器的设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、数字逻辑电路课程设计设计题目全自动洗衣机控制器的设计姓 名 学 号 专 业 班 级 完成日期 目录一、实验目的3二、设计题目与思路3三、总体方案的设计与选择4四、使用元件5五、分析与心得5六、附件一:实验代码5一 、实验目的1 进一步掌握数字电路课程所学的理论知识。2 了解数字电路设计的基本思想和方法,学会科学分析和解决问题。3 熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。4. 培养认真严谨的工作作风和实事求是的工作态度。二 、设计题目与思路本次数字电路课程设计我选择的题目是“全自动洗衣机控制器”。这个系统的主要功能是:1 设计一个全自动洗衣机控制器电路,实现对洗

2、衣机的全自动控制。 根据全自动洗衣机的控制原理设计一个控制电路,使之能够控制全自动洗衣机完成整个工作过程。洗衣机工作过程如下: 当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”);使用者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s);然后进水阀门关闭,电机开始运转,开始洗衣过程,并历时9s;然后电机停止运转,排水阀门打开,开始排水,并根据水位设置(高、中、低、少)历时不同的时间time

3、drain(7s、6s、5s、4s);然后排水阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd当甩干结束后,整个洗衣过程完成,扬声器发出持续15秒的急促的“嘀嘀”音,提示用户洗衣结束。 洗衣机工作过程简记如下: 空闲(idle)第一次加水(water1)7s洗衣(wash)9s第一次排水(drain1)6s第二次加水(water2)7s漂洗(rinse)9s第二次排水(drain2)6s甩干(dry)5s蜂鸣15s2、控制器只要送出对应的控制信号就可以了。这些控制信号控制的继电器不需要购买。3、用开关启动洗衣机,数码管动态显示剩余时间,发光二极管点亮或停止,表示电机的运动规律。三、

4、总体方案的设计与选择1总体方案的设计经过分析问题及初步的整体思考,拟定以下方案:总体电路共分三大块。第一块实现洗衣机运行过程控制;第二块实现花洗衣机水位控制;第三块实现数码管状态显示。主体框图如下: CLK主分频器洗涤定时器水流控制器正反向控制主分频器四、 使用元件1.设计所需的元件:TDS系列数字电路实验系统 - 1套;ISP系统可编程器件以及集成电路 - -1套;PC 计算机 - 1台;实验板一个;万用表一个;导线若干;五、分析与心得 这次课程设计对我来说是一项很大的挑战,看到题目后几乎没有思路,翻阅教材,看了下自动洗衣机那张的讲解,有了眉目,但是设计的内容过于庞杂,很难下手。这时候,我选

5、择从已有的程序着手,先看懂,然后和同学讨论思路,最后形成了这个作业。做仿真波形的时候,就是验证结论的时候,过程还算顺利。通过这次作业,掌握了从没接触过的VHDL语言,加强了动手能力,发现了学会查阅资料的重要性,受益匪浅。附件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY test ISPORT(clk:IN STD_LOGIC;-500HZ信号,用于扫描数码管-clear:IN STD_LOGIC; -复位信号- start:IN STD_LOGIC; -开始暂停-model1:I

6、N STD_LOGIC_VECTOR(3 DOWNTO 0);-模式控制-w:OUT STD_LOGIC;m:OUT STD_LOGIC;-d:OUT STD_LOGIC;v:OUT STD_LOGIC;SDISP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-输出水位-ADISP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);DISP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)-控制数码管显示的数字的信号-);END test;ARCHITECTURE a OF test ISSIGNAL water1:INTEGER RANG

7、E 0 TO 1;SIGNAL wash :INTEGER RANGE 0 TO 1;SIGNAL drain1 :INTEGER RANGE 0 TO 1;SIGNAL water2 :INTEGER RANGE 0 TO 1;SIGNAL rains :INTEGER RANGE 0 TO 1;SIGNAL drain2 :INTEGER RANGE 0 TO 1;SIGNAL dry :INTEGER RANGE 0 TO 1;SIGNAL beep :INTEGER RANGE 0 TO 1; SIGNAL model:INTEGER RANGE 0 TO 7;SIGNAL count

8、:INTEGER RANGE 0 TO 9;-模值为9的计数器-BEGIN-water1!-p1:PROCESS(clk,clear,start)VARIABLE shuiwei:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF clear='1' THENmodel<=0;shuiwei:="0010"v<='0'm<='0'count<=0;water1<=0;wash<=0;drain1<=0; water2<=0;rains<=0; drai

9、n2<=0;dry<=0;beep<=0;ADISP<="0000"ELSIF clk'event AND clk='1' AND start='1' THENwater1<=1;-ADISP<="0001"IF (water1=1) THEN ADISP<="0000"-IF shuiwei = 1;-count<=7;shuiwei(3 downto 0):=model1;case shuiwei isWHEN "0000"

10、 => count<=4;-0WHEN "0001" => count<=5;WHEN "0010" => count<=7;WHEN "0011" => count<=8;WHEN OTHERS =>count<=7;END case; SDISP<=shuiwei;-WHEN 1 => SDISP<="0001"-1-WHEN 2 => SDISP<="0010"-2-WHEN 3 => SDIS

11、P<="0011"-3-WHEN 4 => SDISP<="0100"-4-WHEN OTHERS =>SDISP<="0000"-0v<='0'm<='0'-ADISP<="0001"-w<='1'-m<='0'-d<='0'-IF (w<='1') THEN m<='0'd<='0'END IF;IF(

12、count=0) THEN wash<=1;water1<=0;ELSE count<=count-1;ADISP<="0000"END IF;END IF;-wash!-IF (wash=1) THENcount<=9;water1<=0;ADISP<="0001"v<='0'm<='0'-w<='0'-m<='1'-d<='0'-IF (m<='1') THEN w<=&#

13、39;0'd<='0'END IF;IF(count=0) THEN drain1<=1;wash<=0;ELSE count<=count-1;ADISP<="0001"END IF;END IF;-drain1!-IF (drain1=1) THEN -ADISP<="0011"count<=6;wash<=0;v<='0'm<='1'-w<='0'-m<='0'-d<='1&#

14、39; -IF (d<='1') THEN m<='0'w<='0'END IF;IF(count=0) THEN water2<=1;drain1<=0;ELSE count<=count-1;ADISP<="0010"END IF;END IF;-water2!-IF (water2=1) THENcount<=7;drain1<=0;ADISP<="0011"v<='0'm<='0'-w<=&

15、#39;1'-m<='0'-d<='0'IF(count=0) THEN rains<=1;water2<=0;ELSE count<=count-1;ADISP<="0011"END IF;END IF;-rinse!-IF (rains=1) THENcount<=9;ADISP<="0100"v<='0'm<='0'-w<='1'-m<='0'-d<='0

16、9;IF(count=0) THEN drain2<=1;rains<=0;ELSE count<=count-1;ADISP<="0100"END IF;END IF;-drain2!-IF (drain2=1) THENcount<=6;ADISP<="0101"v<='0'm<='0'-w<='0'-m<='0'-d<='1'IF(count=0) THEN dry<=1;drain2<=0;

17、ELSE count<=count-1;ADISP<="0101"END IF;END IF;-dry!-IF (dry=1) THENcount<=1;ADISP<="0110"v<='0'm<='0'-w<='0'-m<='1'-d<='0'IF(count=0) THEN beep<=1;dry<=0;ELSE count<=count-1;ADISP<="0110"END

18、 IF;END IF; -beep!-IF (beep=1) THEN-VARIABLE a: integer:=0;-L1:LOOPcount<=0;ADISP<="0111"v<='1'm<='1'IF(model=2)THENv<='0'm<='0'ADISP<="0000"ELSE model<=model+1;-END loop L1;END IF;END IF;END IF;END PROCESS p1; -SIGNAL disp_tmp:INTEGER RANGE 0 TO 9;-从0到9,显示在数码管上的数字-BEGIN-p1:PROCESS(clk,clear) -500HZ扫描信号控制计数器当前值-BEGIN -IF clear='1' THEN-count<=0;-ELSIF clk'event AND clk='1' THEN

温馨提示

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

评论

0/150

提交评论