EDA技术大作业--全自动洗衣机控制器_第1页
EDA技术大作业--全自动洗衣机控制器_第2页
EDA技术大作业--全自动洗衣机控制器_第3页
EDA技术大作业--全自动洗衣机控制器_第4页
EDA技术大作业--全自动洗衣机控制器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA技术大作业电子钟电路设计要求:1、准确计时,以数字形式显示时、分、秒的时间;2、小时为24进制,分与秒的计时要求为60进制;3、具有校时功能;4、整点报时。姓名:武启明 学号:1893130125 专业:光电信息科学与工程班级:131 教师评价成绩: 评阅人:安徽科技学院数理与信息工程学院物电系EDA全自动洗衣机控制器1设计目的     EDA技术与应用课程是电子信息工程、自动控制、计算机科学与工程等专业的技术课之一,具有很强的工程实践性。通过本次课程设计来掌握现代硬件数字电路的软件化设计的基本方法、掌握应用VHDL及EDA工具开发设计各

2、种电路的基本方法,以及对现代电子设计自动化技术有一定的了解,会把所学的专业知识更好的用到实践中去。 2设计的主要内容和要求    (1)设计一简易全自动洗衣机控制器。该控制器由两大状态A和B组成,每个状态分三个子状态,每个状态分别由选择A和选择B控制。其中A为步进选择按纽,每步跳转一个子状态、B也为步进选择按纽,但每步选择B中的所有组合中的一种。  (2)过程启动由启动/暂停键控制(暂停键在过程启动后任意时间可暂停/恢复过程)。  (3)过程启动后洗衣机盖开启能任意控制。  (4)能设

3、置实现多次洗衣的功能。 3整体设计方案  本次设计大致可以分成两个模块来看待:控制端和工作端。  控制部分使用了三个进程来处理,进程一控制状态COUNT_M,进程二控制状态COUNT_N,进程三控制开始和暂停。其中,COUNT_M:当连顺出现一个,两个,三个高电平时分别表示强洗,标准,弱洗三种状态的洗衣过程。再者,COUNT_N:当出现一个,两个,三个高电平时分别表示洗涤,漂洗与甩干,甩干。其次,信号START控制洗衣机的暂停和重新启动。 工作部分使用了一个进程来处理,在该进程中主要处理强制开盖,洗衣的各个状态。控制端中,中间变量SG

4、是工作结束标志信号, DT是状态的中间变量。COOK为强开洗衣机盖子信号端,DCP输入状态中间信号。LOOK为时间到输出停机,当其输出为高电平时所有数据为0。然后等待下次洗涤始工作,直至再次按下START键,又从新开洗衣机正常工作过程。与暂停后的再次启动不同。ST为时间计数的中间变量。  整体设计方案如下: 图3-1 整体设计方框图4 软件设计  EDA工具在EDA技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电子设计全程自动化,因此基于计算机环境的EDA软件的支持是必不可少的。此次设计所用EDA工具是由著名的A

5、lter公司生产的MAXplus工具软件,它是一种集成的开发环境,支持原理图、VHDL和Verilog语言文本文件,以及波形文件作为设计输入,并支持这些文件的人文混合设计。本实验主要采用单纯的软件仿真来做,不涉及硬件电路的设计。故主要是先编写程序,然后编译,再时序仿真。最后观查仿真结果是否符合当初的设计要求。 4.1库和实体及信号声明部分 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;   &

6、#160;           -库使用说明 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; ARCHITECT

7、URE BEHAV OF xiyiji IS             -内部信号声明  SIGNAL DT1,DT2:STD_LOGIC_VECTOR(1 DOWNTO 0);  SIGNAL DICSOUNT,TEM:STD_LOGIC_VECTOR(3 DOWNTO 0);  SIGNAL DC

8、P: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 4.2进程一(控制状态COUNT_N)       每次

9、按下COUNT_N依次代表00-01-10-11状态。当COUNT_N为11时又跳到01状态,如此循环。其中01状态代表强洗状态,10代表标准状态,11代表弱洗状态。由于是单纯的软件仿真,故用COUNT_N的上升沿代表按下COUNT_N键。 PROCESS(COUNT_N,SG)             -进程一控制状态COUNT_N   BEGIN     IF S

10、G='1' THEN      DT1<="00"     ELSIF COUNT_N'EVENT AND COUNT_N='1' THEN      IF DT1=3 THEN       DT1<="01

11、"    ELSE       DT1<=DT1+1;END IF;  END IF; END PROCESS;4.3进程二(控制状态COUNT_M)     每次按下COUNT_M依次代表00-01-10-11状态。当COUNT_M为11时又跳到01状态,如此循环。其中01状态代表洗涤状态,10代表漂洗甩干状态,11代表甩干状态。由于是单纯的软件仿真,故用CO

12、UNT_M的上升沿代表按下COUNT_M键。   PROCESS(COUNT_M,SG)              -进程二控制状态COUNT_M    BEGIN     IF SG='1' THEN        DT2<=

13、"00"      ELSIF COUNT_M'EVENT AND COUNT_M='1' THEN      IF DT2=3 THEN       DT2<="01"      ELSE   &#

14、160;   DT2<=DT2+1;END IF; END IF; END PROCESS; 4.4进程三(控制开始和暂停)     按下START代表开始洗衣状态,再次按下代表暂停状态,再次按下代表停止状态如此循序进行。由于是单纯的软件仿真。故用START的上升沿代表按下START键。         PROCESS(START)  

15、60;                    -进程三控制开始和暂停   BEGIN   IF SG='1' THEN     CMKS<='0'      ELSIF &

16、#160;START'EVENT AND START='1'  THEN         DICSOUNT<=DT1&DT2;CMKS<=CMKS XOR '1'      END IF;  END PROCESS;4.5进程四(工作部分)    强开盖:当时

17、钟信号为上升沿的时候,按下强开盖按钮,无论洗衣机是何种洗衣状态都要开启洗衣机盖。用COOK的上升沿代表按下COOK按钮。     强洗(36分钟),洗涤时电机分别正、反转4分钟,正反转间停30秒;漂洗时电机分别正、反转3分钟,间停30秒;甩干时电机分别正转1.5分钟,间停30秒。     标准(28分钟),洗涤时电机分别正、反转3分钟,正反转间停30秒;漂洗时电机分别正反转1.5分钟,间停30秒;甩干时电机分别正转1.5分钟,间停30秒。     

18、;弱洗(20分钟),洗涤时电机分别正、反转2分钟,正反转间停30秒;漂洗时电机分别正、反转1分钟,间停30秒;甩干时电机分别正转1.5分钟,间停30秒。PROCESS(CLK,START,COOK)         -进程四工作部分    BEGIN  IF START='1' AND DCP="0000" THEN    

19、0; -启动        CP<=DICSOUNT;    ELSIF CLK'EVENT AND CLK='1' THEN      IF COOK='1' THEN         -强开盖  &#

20、160;  DOUT<="00"       ELSIF START='1' AND DCP>"0000" THEN     DOUT<="00"     ELSIF SG='1' THEN      

21、;IF CT1<"0001" THEN       CT1<="0000"SG<='0'      END IF;      ELSIF CMKS='1' THEN     CASE DCP IS &

22、#160;    WHEN "0101"=>        -强洗部分      IF CT<35 THEN       CT<=CT+1; IF CT1<8 THEN    DOUT<="01&qu

23、ot;CT1<=CT1+1;       ELSIF CT1=8 THEN      DOUT<="00"CT1<=CT1+1;       ELSIF CT2<8 THEN       DOUT<="10"CT2<

24、;=CT2+1;       ELSIF CT2=8 THEN        DOUT<="00"CT1<="0000"CT2<="0000"       END IF;    ELSE   DCP<="0

25、110"CT<="000000"CT1<="0000"CT2<="0000"DOUT<="00"      END IF;    WHEN "0110"=>          -强洗-漂洗-甩干    IF C

26、T<27 THEN      CT<=CT+1;     IF CT1<6 THEN       DOUT<="01"CT1<=CT1+1;      ELSIF CT1=6 THEN       DOUT&l

27、t;="00"CT1<=CT1+1;       ELSIF CT2<6 THEN      DOUT<="10"CT2<=CT2+1;      ELSIF CT2=6 THEN       DOUT<="00"CT1<=

28、"0000"CT2<="0000"       END IF;    ELSE   DCP<="0111"CT<="000000"CT1<="0000"CT2<="0000"DOUT<="00"  END IF; WHEN "

29、;0111"=>                          IF CT<8 THEN            -强洗-甩干    CT<

30、=CT+1;   IF CT1<3 THEN             -甩干       DOUT<="01"CT1<=CT1+1;       ELSIF CT1=3 THEN    

31、60;  DOUT<="00"CT1<=CT1+1;       ELSIF CT2<3 THEN       DOUT<="10"CT2<=CT2+1;       ELSIF CT2=3 THEN     

32、   DOUT<="00"CT1<="0000"CT2<="0000"       END IF;     ELSE    DCP<="0000"CT<="000000"CT1<="0000"CT2<="0000"SG<='

33、1'    END IF;       WHEN "1001"=>       - 标准部分        IF CT<27 THEN        CT<=CT+1; &#

34、160;   IF CT1<6 THEN                           DOUT<="01"CT1<=CT1+1;        ELSIF 

35、;CT1=6 THEN       DOUT<="00"CT1<=CT1+1;       ELSIF CT2<6 THEN       DOUT<="10"CT2<=CT2+1;       ELSIF CT

36、2=6 THEN      DOUT<="00"CT1<="0000"CT2<="0000"       END IF;    ELSE   DCP<="1010"CT<="000000"CT1<="0000"CT2<="000

37、0"DOUT<="00"    END IF; WHEN "1010"=>       - 标准-漂洗甩干     IF CT<15 THEN    CT<=CT+1;IF CT1<3 THEN     

38、60;    -甩干       DOUT<="01"CT1<=CT1+1;       ELSIF CT1=3 THEN       DOUT<="00"CT1<=CT1+1;       EL

39、SIF CT2<3 THEN       DOUT<="10"CT2<=CT2+1;       ELSIF CT2=3 THEN       DOUT<="00"CT1<="0000"CT2<="0000"  &

40、#160;    END IF;    ELSE   DCP<="1011"CT<="000000"CT1<="0000"CT2<="0000"DOUT<="00"      END IF;      WHEN "101

41、1"=>                        IF CT<8 THEN        -标准-甩干      CT<=CT+1;   

42、0; IF CT1<3 THEN            -甩干       DOUT<="01"CT1<=CT1+1;       ELSIF CT1=3 THEN       DOUT<=&qu

43、ot;00"CT1<=CT1+1;       ELSIF CT2<3 THEN       DOUT<="10"CT2<=CT2+1;       ELSIF CT2=3 THEN        DOUT<="

44、;00"CT1<="0000"CT2<="0000"       END IF; ELSE DCP<="0000"CT<="000000"CT1<="0000"CT2<="0000"SG<='1'     END IF;   

45、60;   WHEN "1101"=>         - 弱洗部分       IF CT<19 THEN  CT<=CT+1;IF CT1<4 THEN           

46、;                DOUT<="01"CT1<=CT1+1;       ELSIF CT1=4 THEN       DOUT<="00"CT1<=CT1+1;   &

47、#160;   ELSIF CT2<4 THEN       DOUT<="10"CT2<=CT2+1;       ELSIF CT2=4 THEN DOUT<="00"CT1<="0000"CT2<="0000"    

48、   END IF; ELSE DCP<="1110"CT<="000000"CT1<="0000"CT2<="0000"DOUT<="00"    END IF; WHEN "1110"=>      -弱洗-漂洗-甩干  

49、0;  IF CT<11 THEN       CT<=CT+1;    IF CT1<2 THEN                          

50、  DOUT<="01"CT1<=CT1+1;      ELSIF CT1=2 THEN       DOUT<="00"CT1<=CT1+1;      ELSIF CT2<2 THEN       DOUT<

51、="10"CT2<=CT2+1;       ELSIF CT2=2 THEN     DOUT<="00"CT1<="0000"CT2<="0000"     END IF;  ELSE  DCP<="1111"CT<="00000

52、0"CT1<="0000"CT2<="0000"DOUT<="00"    END IF; WHEN "1111"=>         -弱洗-甩干      IF CT<8 THEN  CT<=CT+1;IF C

53、T1<3 THEN         -甩干      DOUT<="01"CT1<=CT1+1;      ELSIF CT1=3 THEN      DOUT<="00"CT1<=CT1+1;   

54、   ELSIF CT2<3 THEN      DOUT<="10"CT2<=CT2+1; ELSIF CT2=3 THEN                        

55、0;      DOUT<="00"CT1<="0000"CT2<="0000"               END IF;    ELSE DCP<="0000"CT<="000000"CT1<="0000"CT2<="0000"SG<='1' 

温馨提示

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

评论

0/150

提交评论