资源描述
华东理工大学2009 -2010 学年第2学期电子综合设计DEA课程设计作业 2010.6 班级:XXXX 学号: XXX 姓名:XXXX开课学院:信息学院 任课老师: XXXX 成绩: 题目:1、简易全自动洗衣机控制器设计 2、通信系统信道编码器设计作业要求:电子系统设计EDA课程是电子信息工程、自动控制、计算机科学与工程等专业的技术课之一,具有很强的工程实践性。课程学习要求学生:掌握现代硬件数字电路的软件化设计的基本方法、掌握应用VHDL及EDA工具开发设计数字系统的基本方法以及对现代电子系统设计技术有一定的了解 设计报告要求:1、按照设计题目要求构建设计框图 2、用EDA设计软件按照设计题目要求进行原型设计并给出仿真结果 3、对仿真结果进行一定的讨论 4、原程序和仿真波形等附录。教师评语: 教师签名: 年 月 日电子综合设计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 xiyiji IS PORT(COUNT_N,COUNT_M,START,COOK,CLK:IN STD_LOGIC; LOOK:OUT STD_LOGIC; DOUT :OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END XIYIJI;ARCHITECTURE BEHAV OF xiyiji ISSIGNAL DT1,DT2:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL DICSOUNT,TEM:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DCP:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CT:STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL CT1,CT2:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SG,CMKS:STD_LOGIC;BEGIN PROCESS(COUNT_N,SG) BEGINIF SG=1 THENDT1=00;ELSIF COUNT_NEVENT AND COUNT_N=1 THENIF DT1=3 THENDT1=01;ELSEDT1=DT1+1;END IF;END IF;END PROCESS;PROCESS(COUNT_M,SG)BEGINIF SG=1 THENDT2=00;ELSIF COUNT_MEVENT AND COUNT_M=1 THENIF DT2=3 THENDT2=01;ELSEDT2=DT2+1;END IF;END IF;END PROCESS; PROCESS(START)BEGINIF SG=1 THENCMKS=0;ELSIF STARTEVENT AND START=1 THEN DICSOUNT=DT1&DT2;CMKS=CMKS XOR 1;END IF;END PROCESS; PROCESS(CLK,START,COOK)BEGINIF START=1 AND DCP=0000 THENDCP=DICSOUNT;ELSIF CLKEVENT AND CLK=1 THENIF COOK=1 THENDOUT0000 THENDOUT=00;ELSIF SG=1 THENIF CT10001 THENCT1=0000;SGIF CT35 THENCT=CT+1;IF CT18 THENDOUT=01;CT1=CT1+1;ELSIF CT1=8 THENDOUT=00;CT1=CT1+1;ELSIF CT28 THENDOUT=10;CT2=CT2+1;ELSIF CT2=8 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=0110;CT=000000;CT1=0000;CT2=0000;DOUTIF CT27 THENCT=CT+1;IF CT16 THENDOUT=01;CT1=CT1+1;ELSIF CT1=6 THENDOUT=00;CT1=CT1+1;ELSIF CT26 THENDOUT=10;CT2=CT2+1;ELSIF CT2=6 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=0111;CT=000000;CT1=0000;CT2=0000;DOUTIF CT8 THENCT=CT+1;IF CT13 THENDOUT=01;CT1=CT1+1;ELSIF CT1=3 THENDOUT=00;CT1=CT1+1;ELSIF CT23 THENDOUT=10;CT2=CT2+1;ELSIF CT2=3 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=0000;CT=000000;CT1=0000;CT2=0000;SGIF CT27 THENCT=CT+1;IF CT16 THENDOUT=01;CT1=CT1+1;ELSIF CT1=6 THENDOUT=00;CT1=CT1+1;ELSIF CT26 THENDOUT=10;CT2=CT2+1;ELSIF CT2=6 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=1010;CT=000000;CT1=0000;CT2=0000;DOUTIF CT15 THENCT=CT+1;IF CT13 THENDOUT=01;CT1=CT1+1;ELSIF CT1=3 THENDOUT=00;CT1=CT1+1;ELSIF CT23 THENDOUT=10;CT2=CT2+1;ELSIF CT2=3 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=1011;CT=000000;CT1=0000;CT2=0000;DOUTIF CT8 THENCT=CT+1;IF CT13 THENDOUT=01;CT1=CT1+1;ELSIF CT1=3 THENDOUT=00;CT1=CT1+1;ELSIF CT23 THENDOUT=10;CT2=CT2+1;ELSIF CT2=3 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=0000;CT=000000;CT1=0000;CT2=0000;SGIF CT19 THENCT=CT+1;IF CT14 THENDOUT=01;CT1=CT1+1;ELSIF CT1=4 THENDOUT=00;CT1=CT1+1;ELSIF CT24 THENDOUT=10;CT2=CT2+1;ELSIF CT2=4 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=1110;CT=000000;CT1=0000;CT2=0000;DOUTIF CT11 THENCT=CT+1;IF CT12 THENDOUT=01;CT1=CT1+1;ELSIF CT1=2 THENDOUT=00;CT1=CT1+1;ELSIF CT22 THENDOUT=10;CT2=CT2+1;ELSIF CT2=2 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=1111;CT=000000;CT1=0000;CT2=0000;DOUTIF CT8 THENCT=CT+1;IF CT13 THENDOUT=01;CT1=CT1+1;ELSIF CT1=3 THENDOUT=00;CT1=CT1+1;ELSIF CT23 THENDOUT=10;CT2=CT2+1;ELSIF CT2=3 THENDOUT=00;CT1=0000;CT2=0000;END IF;ELSEDCP=0000;CT=000000;CT1=0000;CT2=0000;SGDOUT=00;END CASE;END IF;END IF;END PROCESS;LOOK=SG; END BEHAV;二、仿真波形如下强洗全部过程强洗 漂洗、甩干强洗(甩干)标准全部过程标准(漂洗、甩干)标准(甩干)弱洗全过程弱洗(漂洗、甩干)九、弱洗(甩干)强开盖子:一、强洗强开盖一、 标准强开盖二、 弱洗强开盖暂停和启动一、 强洗暂停二、 强洗重新启动三、 标准暂停四、 标准重新启动五、 弱洗暂停六、 弱洗重新启动两次洗衣一、 两次强洗两次标准(漂洗、甩干)二、 两次弱甩干三、设计思想讨论设计时参考了已有程序,此芯片有五个输入和三个输出,输入COUNT_M和输入COUNT_N是状态控制键,输入START是输入启动和暂停键,以及一个时钟CLK。输出是洗衣结束铃声端口和电机驱动端口。在设计中,为便于调试和观察将时钟周期假设为30S。本次设计大致可以分成两个模块来看待,控制端和工作端。控制部分使用了三个进程来处理,进程一控制状态COUNT_M,进程二控制状态COUNT_N,进程三控制开始和暂停。工作部分使用了一个进程来处理,在该进程中主要处理强制开盖,洗衣的各个状态,以及洗衣结束后的铃声。控制端COUNT_M中,SG是工作结束标志信号,信号TS控制洗衣机的暂停和重新启动,DT是状态的中间变量。COOKK为强开洗衣机盖子信号端,DCP输入状态中间信号。洗衣机正常工作过程:洗衣机总共有九种工作状态,这九种状态可以分成三大部分,强洗,标准,弱洗,此三种状态的洗衣过程类似,因此以强洗来解释说明。洗涤完成后,将信号TP变换到漂洗状态,然后变换到甩干,甩干结束后将TP置零,以及输出状态置一。然后等待下次洗涤。CLK主分频器洗涤定时器水流控制器正反向控制主分频器四、心得体会这次EDA对我来说是一项很大的挑战,看到题目后几乎没有思路,翻阅教材,看了下自动洗衣机那张的讲解,有了眉目,但是设计的内容过于庞杂,很难下手。这时候,我选择从已有的程序着手,先看懂,然后和同学讨论思路,最后形成了这个作业。做仿真波形的时候,就是验证结论的时候,过程还算顺利。通过这次作业,我觉得许多困难的事,需要借鉴已有的经验,请查阅资料,和同学交流讨论,就基本可以完成。
展开阅读全文