电子综合设计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点,