电子综合设计EDA综合设计题
设计一简易全自动洗衣机控制器。该控制器由两大状态A和B组成,每个状态分三个子状态,每个状态分别由选择A和选择B控制。其中A为步进选择按纽,每步跳转一个子状态、B也为步进选择按纽,但每步选择B中的所有组合中的一种。当启动时,时间序列控制器按已选的B类子状态顺序执行。
过程启动由启动/暂停键控制(暂停键在过程启动后任意时间可暂停/恢复过程)
过程启动后机盖开启应均能暂停过程,复盖间停30秒后重新继续原过程。
A: B:
强洗 标准 弱洗 洗涤 漂洗 甩干
(洗涤,漂洗时电机分别正转、反转)
强洗:(共36分钟)
洗涤 18分
漂洗 14分
甩干 4分
(洗涤时电机分别正转4分、反转4分,正反转间停30秒;漂洗时电机分别正转3分、反转3分,正反转间停30秒;甩干时电机分别正转1.5分,间停30秒)
标准:(共26分钟)
洗涤 14分
漂洗 8 分
甩干 4分
(洗涤时电机分别正转3分、反转3分,正反转间停30秒;漂洗时电机分别正转1.5分、反转1.5分,正反转间停30秒;甩干时电机分别正转1.5分,间停30秒)
弱洗(共20分钟)
洗涤 10分
漂洗 6分
甩干 4分
(洗涤时电机分别正转2分、反转2分,正反转间停30秒;漂洗时电机分别正转1分、反转1分,正反转间停30秒;甩干时电机分别正转1.5分,间停30秒)
设定秒脉冲已给定,指示为LED,整过程完成后,蜂鸣器响30秒。整个设计为正逻辑。
程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY XY IS
PORT(A,B,START,QK,CLK:IN STD_LOGIC;
ZHENGDONG:OUT STD_LOGIC;
DOUT :OUT STD_LOGIC_VECTOR(1 DOWNTO 0));
END XY;
ARCHITECTURE BEHAV OF XY IS
SIGNAL DT1,DT2:STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL DT,TEM:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL TP:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL SG,TS:STD_LOGIC;
BEGIN
PROCESS(A,SG)
BEGIN
IF SG='1' THEN
DT1 ="00";
ELSIF A'EVENT AND A='1' THEN
IF DT1=3 THEN
DT1 ="01";
ELSE
DT1 =DT1+1;
END IF;
END IF;
END PROCESS;
PROCESS(B,SG)
BEGIN
IF SG='1' THEN
DT2 ="00";
ELSIF B'EVENT AND B='1' THEN
IF DT2=3 THEN
DT2 ="01";
ELSE
DT2 =DT2+1;
END IF;
END IF;
END PROCESS;
PROCESS(START)
BEGIN
IF SG='1' THEN
TS ='0';
ELSIF START'EVENT AND START='1' THEN
DT =DT1&DT2;TS =TS XOR '1';
END IF;
END PROCESS;
PROCESS(CLK,START)
BEGIN
IF START='1' AND TP="0000" THEN
TP =DT;
ELSIF CLK'EVENT AND CLK='1' THEN
IF QK='1' THEN
DOUT ="00";
ELSIF START='1' AND TP "0000" THEN
DOUT ="00";
ELSIF SG='1' THEN
IF CT1 "0001" THEN
CT1 ="0000";SG ='0';
END IF;
ELSIF TS='1' THEN
CASE TP IS
WHEN "0101"=
IF CT 35 THEN
CT =CT+1;
IF CT1 8 THEN
DOUT ="01";CT1 =CT1+1;
ELSIF CT1=8 THEN
DOUT ="00";CT1 =CT1+1;
ELSIF CT2 8 THEN
DOUT ="10";CT2 =CT2+1;
ELSIF CT2=8 THEN
DOUT ="00";CT1 ="0000";CT2 ="0000";
END IF;
ELSE
TP ="0110";CT ="000000";CT1 ="0000";CT2 ="0000";DOUT ="00";
END IF;
WHEN "0110"=
IF CT 27 THEN
CT =CT+1;
IF CT1 6 THEN
DOUT ="01";CT1 =CT1+1;
ELSIF CT1=6 THEN
DOUT ="00";CT1 =CT1+1;
ELSIF CT2 6 THEN
DOUT ="10";CT2 =CT2+1;
ELSIF CT2=6 THEN
DOUT ="00";CT1 ="0000";CT2 ="0000";
END IF;
ELSE
TP ="0111";CT ="000000";CT1 ="0000";CT2 ="0000";DOUT ="00";
END IF;
WHEN "0111"=
IF CT 8 THEN
CT =CT+1;
IF CT1 3 THEN
DOUT ="01";CT1 =CT1+1;
ELSIF CT1=3 THEN
DOUT ="00";CT1 =CT1+1;
ELSIF C
洗衣机大作业.doc
下载此电子书资料需要扣除0点,





