77范文网 - 专业文章范例文档资料分享平台

洗衣机VHDL控制器实验报告(2)

来源:网络收集 时间:2019-02-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2. 完整过程仿真波形 ? 波形1:

有上面的波形分析,cat为数码显示管的选通,在实验中,使用了cat1和cat0两个显示管,在start开始信号拉高之后,cat信号显示。Nextt为工作模式选择Led为模式选择灯,clr为复位按钮,拉高有效。

? 波形2:

由上面波形分析, start信号开始之后,开始工作,pause为暂停按钮,当pause拉高之后, pause_show灯亮,并停止当前的工作,由波形可看出数码显示管在停止期间没有变,当Pause变低之后,工作继续进行,pause_show灯灭。

第6页,共16页

? 波形3:

由上面波形,工作模式选的是第五种,洗衣、漂洗、脱水顺序进行,由state_now显示当前的工作状态,当洗衣、漂洗、脱水过程都结束之后,out_beeper发出警报声提醒使用者工作结束。

四. 源程序

(1)核心控制显示模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY controller IS

PORT( clk1s,pause:IN STD_LOGIC; 接收的时钟信号和暂停信号

start:IN STD_LOGIC; 工作开关

s1,s2,s3:IN INTEGER RANGE 0 TO 3; 从模式选择器接收来的三个基本状态的组合序

cl_beeper:IN STD_LOGIC; 清空和从报警器接受的报警信号

tim_out:OUT INTEGER RANGE 0 TO 30;输出时间

pause_show:OUT STD_LOGIC; 暂停显示

state_now:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);显示当前工作模式 startbeeper:OUT STD_LOGIC ;发给报警器的报警信号

第7页,共16页

);

END controller;

ARCHITECTURE a OF controller IS SIGNAL tim_tmp:INTEGER RANGE 0 TO 30;

SIGNAL state_over:INTEGER RANGE 0 TO 1; 某一工作状态完成后的反馈信号 SIGNAL s_now,s_next,s_last:INTEGER RANGE 0 TO 3; 内部信号,存储3个工作状

BEGIN

p1:PROCESS(clk1s,start,cl_beeper,state_over,pause,s_now) BEGIN

IF (clk1s'EVENT AND clk1s='1') THEN

CASE start IS WHEN '0'=> --开关置零

state_over<=1; s_now<=s1; s_next<=s2; s_last<=s3; WHEN '1'=>

--开关置1,开始工作

IF state_over=1 THEN state_over<=0; CASE s_now IS

WHEN 0=>

CASE cl_beeper IS

WHEN '1'=> startbeeper<='0'; WHEN OTHERS=> startbeeper<='1'; END CASE;

tim_tmp<=0;state_now<=\ WHEN 1=> tim_tmp<=20;state_now<=\

WHEN 2=> tim_tmp<=30;state_now<=\ WHEN 3=> tim_tmp<=15;state_now<=\ WHEN OTHERS=> NULL; END CASE;

CASE pause IS

WHEN '0'=> --暂停信号无效时,正常工作

pause_show<='0'; IF tim_tmp>0 THEN tim_out<=tim_tmp; tim_tmp<=tim_tmp-1; ELSE

第8页,共16页

ELSE

tim_out<=0; s_now<=s_next; s_next<=s_last; s_last<=0; state_over<=1;

END IF;

WHEN '1'=> pause_show<='1'; --暂停有效时,保持时间不变,WHEN OTHERS=> NULL;

同时点亮暂停状态灯

END CASE;

END IF;

WHEN OTHERS=> NULL;

END CASE; END IF;

END PROCESS; END;

(2)工作方式选择模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY choice IS

PORT( nextt:IN STD_LOGIC; 工作模式选择开关 start:IN STD_LOGIC;开始工作

s1,s2,s3:OUT INTEGER RANGE 0 TO 3; 选择后的初始状态,送到控制器

led:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));显示当前模式 END choice;

ARCHITECTURE bodyofchoice OF choice IS TYPE choice_state IS (A,B,C,D,E); SIGNAL cs:choice_state;

BEGIN

P1:PROCESS(nextt) BEGIN

IF(nextt'EVENT AND nextt='1') THEN IF start='0' THEN

CASE cs IS --用一个按钮实现不同模式的选择,把相应初始状态组合装到s1-s3中,送到控制器去

when A=> s1<=1;s2<=0;s3<=0;led<=\ when B=> s1<=2;s2<=0;s3<=0;led<=\ when C=> s1<=3;s2<=0;s3<=0;led<=\

第9页,共16页

when D=> s1<=2;s2<=3;s3<=0;led<=\

when E=> s1<=1;s2<=2;s3<=3;led<=\ when others=>null; END CASE; END IF; END IF; END PROCESS P1; END bodyofchoice;

(3)分频模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY clk1000 IS

PORT(

clkcl:IN STD_LOGIC; clk1000:OUT STD_LOGIC); END clk1000;

ARCHITECTURE bodyofclk1000 OF clk1000 IS SIGNAL count1:INTEGER RANGE 0 TO 499; SIGNAL buf:STD_LOGIC; BEGIN

P1:PROCESS(clkcl) BEGIN

IF(clkcl'EVENT AND clkcl='1') THEN IF count1=499 THEN

buf<=NOT buf;clk1000<=buf; ELSE

clk1000<=buf; END IF;

count1<=count1+1; END IF;

END PROCESS P1;

END bodyofclk1000;

(4)选通译码模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY seg7 IS

PORT( start,en_app:IN STD_LOGIC; cp:IN STD_LOGIC;

第10页,共16页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库洗衣机VHDL控制器实验报告(2)在线全文阅读。

洗衣机VHDL控制器实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/471657.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: