长沙学院课程设计说明书题目 洗衣机控制器的设计系(部) 电子与通信工程系专业(班级)电气工程及其自动化 2班姓名 赵健康 学号 2011024212 指导教师 谢明华 起止日期 2013 —12-16 至 2013-12-31课题名称 洗衣机控制器的设计设 计 内 容 及 要 求(1)课题内容:1、 设计一个电子定时器,定时180秒,在这3分钟之内控制洗衣机作如下运转:定时启动 正转20秒 暂停10秒 反转20秒 暂停10秒 定时未到 回到 正转20秒 暂停10秒 ,疋时到则停止;2、 疋时到,则停机发出1秒钟的音响信号;3、 用数码管显示当前洗衣机的动作及该动作运行的时间正转、反转及暂停 动作分别用H、F和P来表示2)主要任务:完成该系统的硬件和软件的设计,并制作出实物装置,调试 好后并能实际运用(指导教师提供制作所需的器件),最后就课程设计本身提 交一篇课程设计说明书设 计 工 作 量1、 VHDL语言程序设计;2、 波形仿真;3、 在实验装置上进行硬件测试,并进行演示;4、 提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、 仿真分析、硬件测试、调试过程,参考文献、设计总结等•进度安排起止日期(或时间量)设计内容(或预期目标)备注第1天课题介绍,答疑,收集材料第2天设计方案论证第3天进一步讨论方案,对设计方案进行必要的 修正,方案确定后开始进行VHDL语言程序 设计第4天设计VHDL语言程序第5〜9天在实验装置上进行硬件测试,对VHDL语言 程序进行必要的修正,并进行演示第10天编写设计说明书EDA技术课程设计任务书系(部):电子与通信工程系 专业:电气工程及其自动化指导教师:谢明华教研室意见系(部)主管领导意见年 月曰年 月曰长沙学院课程设计鉴定表姓名赵健康学号2011024212专业电气工程及其自动化班级电气2 班设计题目 洗衣机控制器的设计 指导教师 谢明华指导教师意见:评定等级: 教师签名: 日期:答辩小组意见:评定等级: 答辩小组长签名: 日期:教研室意见:教研室主任签名: 日期:系(部)意见:系主任签名: 日期:说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格"四类;目录设计方案 5设计原理及其实现过程 52.1 设计总原理 52.2 设计框图 62.3 模块设计和相应模块 62。
3.1 预制时间和减法计数器模块 62.3.2 数码管动态扫描及状态显示模块 72.3.3 分频模块 9三 总电路仿真波形及引脚分配 103 1 仿真波形及分析 1032 引脚分配 11四 测试结果 12五 课程设计心得 12六 参考文献 13设计方案本定时器实际上包含两级定时的概念,一是总洗涤过程的定时 ,而是在总洗涤过程中又包含电机的正转、反转和暂停三种定时,并且这三种定时是反复循环直至所设定的总定时时间到 位置•当总定时时间在 0〜20min以内设定一个书之后 T为高电平1,然后用倒计时的方法每 分钟减1直至T变为0.在此期间,若Z仁Z2=1 ,实现正转;若Z仁Z2=0 ,实现暂停;若Z1=1 , Z2=0,实现反转•实现定时的方法很多,比如采用单稳电路实现定时,又如将定时初值预置 到计数器中,使计数器运行在减计数状态 ,当减到全零时,则定时时间到 •如图所示的电路原理框图就是采用这种方法实现的由秒脉冲发生器产生的时钟信号经 60分频后,得到分脉冲信号•洗涤定时的时间的初值先通过拨盘或数码开关设置到洗涤时间计数器中 ,每当分脉冲到来计数器减1,直至减到定时时间到为止。
运行中间,剩余时间经译码后在数码管上进行显 示二设计原理及其实现过程21设计总原理洗衣机控制器的设计主要是定时器的设计由一片 FPGA (Field Programmable GateArray )和外围电路构成了电器控制部分 .FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、 制动控制、起停控制和运动状态控制对 FPGA芯片的编程采用模块化的 VHDL (硬件描述语言)进行设计,设计分为三层实现, 顶层实现整个芯片的功能顶层和中间层多数是由VHDL的元件例化语句实现中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、 定时器、显示控制、键盘扫描以及对直流电机控制板进行速度设定、正反转控制、 启停控制等模块组成,它们分别调用底层模块22设计框图r时到总设计框翩23模块设计和相应模块2.3.1预制时间和减法计数器模块由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围, 所以我们设计了一个减法计数器模块,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零 ,洗衣机便停止工作预制时间和减法计数器模块程序library ieee;use ieee.std_logic_1164.a;luse ieee std_logic_unsigned.all;en tity count isPort( clk,en, ld:in std」ogic);End en tity;Architecture one of count issignal c1,c2, c3,a,a1, a2,a3,a4,a5,a6: integer range 15 downto;0sig nal b: in teger range 5 dow nto 0;signal clk1,clk2,k: std_logic; process(clk1, ld,en) beg inif en=' 1' the nif ( clk1' eve nt and clk仁'1') thenif k= ' 1' thenif c1=0 and c2=0 and c3=0 thena1<=c1;a2<=c2; a3<=c3;elsec1<=c1-1;if c1=0 then c2〈=c2-1; c1<=9;if c2=0 then c3<=c3—1;c2〈=9;end if; end if;a1<=c1; a2<=c2;a3<=c3;end if;if a3=1 and (a2〉5) then a4<=10; a5<=15;a6<=15;elsif a3=1 and (a2>4)then a4〈=15; a5<=15; a6〈 =12;elsif a3=1 and (a2>2)then a4<=15; a5〈 =14; a6<=15;elsif a3=1 and (a2>1)then a4〈=15; a5〈=15; a6〈=12;elsif a3=1 and( a2=0 or a2=1) then a4〈 =10; a5〈=15; a6<=15;elsif a3=0 and( a2〉8)then a4〈=15; a5<=15; a6〈=12;elsif a3=0 and (a2>6)then a4〈=15; a5〈 =14; a6<=15;elsif a3=0 and (a2〉5)then a4<=15; a5〈=15; a6〈 =12;elsif a3=0 and(a2〉3)then a4〈=10; a5〈=15; a6<=15;elsif a3=0 and(a2〉2)then a4<=15; a5<=15; a6<=12;elsif a3=0 and(a2〉0) then a4<=15; a5〈 =14; a6<=15;elsif a3=0 and (a2=0) then a4<=15; a5<=15; a6〈=12;end if;end if;end if;else k<=ld ;c1<=9; c2<=7;c3〈 =end if;end process ;end count; 本文为互联网收集,请勿用作商业用途2。
3 2 数码管动态扫描及状态显示模块此模块用于不同工作状态时,数码管显示相应的 H、F和P来表示洗衣机正转、反转和暂停动作,并实现数码管的动态扫描数码管动态扫描及状态显示模块程序library ieee;use ieee std_logic_1164.all;use ieee std_logic_unsigned all ;entity zhuangtai isPort( led_selout:out std_logic_vector(7 downto 0) led7s:out std_logic_vector(6 downto 0));End entity;Architecture one of zhuangtai issignal clk2:std_logic;process(clk2)variable s:integer range 6 downto 0;beginthenif (clk2'event and clk2=' 1') s:=s+1;if s=6 then s: =0;end if;b〈=s;end if;end process p2;process(b)begincase b iswhen 0=>a<=a1;when 1=>a〈 =a2;when 2=>a<=a3;when 3=>a<=a4;when 4=〉a〈=a5;when 5=>a〈 =a6; end case;end process ;process(a)begincase a iswhen 0=〉led7s〈="1000000”;—-0when 1=〉led7s<="1111001";—— 1when 2=>led7s<="0100100";—-2when 3=>led7s〈="0110000";—— 3when 4=>led7s<=” 0011001”;-—4when 5=〉led7s<="0010010”;— -5 when 6=〉led7s〈="0000010";—— 6 when 7=〉led7s<=” 1111000";-— 7 when 8=>led7s〈 ="0000000";--8 when 9=〉led7s〈=”0010000”;-—9 when 10=〉 led7s<=”0001001”;--H when 12=〉led7s〈=”0001100";— -p when 14=>led7s<=” 0001110”;--F when 15=>led7s<=” 1111111”;-—15 when others=>null; end case; end process ; process(b) begin case b is when 0=〉led_selout<="00000001”;— -0 when 1=>led_selout<=” 00000010";--1 when 2=〉led_selout<="00000100”;—— 2 when 3=>led_selout<="00001000";--3 when 4=〉led_selout〈=”00010000";—— 4 when 5=〉led_selout<=” 00100000";--5 when others=〉 null ; end case;end process ; End;2。
33 分频模块 此模块是为了获得控制洗衣机运转时所需要的不同的频率,以使得洗衣机能够在不同状 态时正常运转分频模块程序 library ieee;use ieee.std_logic_1164 all;use ieee std_logic_unsigned all;entity fenpin is Port( clk:in std_logic); End entity;Architecture one of fenpin is signal clk1,clk2:std_logic; process(clk)variable s:integer range 10000 downto ;0 beginif (clk'event and clk='1' ) then S:=s+1;if s〉5000 then s:=0;elsif s<=2 thenclk2〈='0';elseclk2〈='1'; end if;end if; end process ; process(clk)variable s:integer range 25000000 downto 0; beginif (clk'event and clk='1') then S:=s+1;if s>25000000 then s:=0;elsif s〈=2 thenclk1<='0';elseclk1〈='1'; end if;end if; end process ; end;三 总电路仿真波形及引脚分配3 。
1 仿真波形及分析站 Md eIhi Iittih 3«i 15 G5 na: ■< [ ■] ISllSS he ErtwHl: 12& 34 nx SilaiB Ers9A1 IPS.□ ni.E^ED aZAU p32D □rmjidq.3 X^Eqn.p >.e口 UlG--KI £ CL E逝AM•:门ni1IMA Vj& i1.dA 1Jt>3iM 4•II■]也- &]a i―»- 対A 0H'i・ “A H唧:0 T--A ■11--3]X Q・ 31A・* LDL OJA电—FL l“硼* c4厂工】 C» 12- 勺A・2 L3-B-]-Jb BO LqA 12 L5・41A 12 LB- 珂M |—LT-.21A •W IB・ 叮x a0 LBL SA ■总电路仿真波形洗衣机接通电源,按Id、en置为高电平洗衣机开始工作,当时钟第一个上升沿到达时(正转功能)为高电平维持20s以后变为低电平而(暂停功能)随着时钟上升沿的到来变为 高电平维持10s变为低电平,然后(反转功能)开始随着时钟上升沿的到来变为高电平工作 维持20s后变为低电平,再停止置高电平,接下来电路一直重复上述工作, 直到定时器计数结束。
32引脚分配端口号引脚号网络名CLKPIN_J3ENPIN_M3FPGA_M1LDPIN_M4FPGA_M2LED_SELOUT0]PIN_G4E_7SEG_A1LED_SEL0U「]PIN_G3E_7SEG_A2LED_SEL0UT[2PIN_E2E_7SEG_A3LED_SEL0UT3]PIN_F2E_7SEG_A4LED_SEL0UT[4PIN_F1E_7SEG_A5LED_SEL0UT[5]PIN_G2E_7SEG_A6LED_SEL0UT6]PIN_G1E_7SEG_A7LED_SEL0UT[7]PIN_H2E_7SEG_A8LEDS:0:PIN_L3E_7SEG_ALEDS:1:PIN_L4E_7SEG_BLEDS:2:PIN_H3E_7SEG_CLEDS[3]PIN_H4E_7SEG_DLEDS[4]PIN_H1E_7SEG_ELEDS : 5]PIN_L2E_7SEG_FLEDS : 6]PIN_K4E_7SEG_G四测试结果电路设计完成以后, 按照预定设计,执行相应操作,三只数码管按照设定时间规律间断 性亮起,并分别一次间断性地显示 H F和P,表示洗衣机正在进行正传、反转和暂停工作。
同时,另外三只数码管也显示输入时间, 并按减数计时产生相应的数字显示, 直到到达预定时间停止工作显示零,,洗衣机停止工作,实验设计达到预期效果五课程设计心得本次洗衣机控制器的课程设计过程中, 采用的是是模块化层次化的设计方法, 通过这样分模块化的思考方式,设计显得相对容易很多,思路也比较简单洗衣机控制器主要只有三 个状态,要实现几种状态的多次循环的改变, 还要有计时和数码管动态显示的功能 因此电路可主要分为以下几个模块:预制时间与减法计数器模块、数码管动态显示模块、分频模块. 通过每个模块的设计,最后运用 VHDL语言的进程语句进行模块间的组合,从而完成总程序的设计通过此次课程设计,对于VHDL语言有了基本的掌握,对其设计方法也有了一些技巧性 的了解,为将来的硬件设计打下了一定的基础对于 FPGA的编程、定时器和计数器的设计都熟悉了起来,加深了对时序组合电路的印象在此次课程设计中,感谢指导老师的耐心解答和同学的热情帮助! 课程设计的整个过程中,发现自己很多方面的知识掌握得不太好, 不牢固,很多知识不知道如何运用到实际中去•在今后的学习解决问题归根结底,还是自己学的东西不够扎实,没有真正理解学到的知识,争取将来能够为国家的电力行过程中,一定要认认真真,扎扎实实,好好地学习理论知识业做出自己应有的贡献。
六 参考文献,2005.2006.[1] 潘松著 .EDA 技术实用教程 (第二版) . 北京:科学出版社[2] 康华光主编 . 电子技术基础 模拟部分 . 北京:高教出版社,[3] 阎石主编数字电子技术基础 . 北京:高教出版社 ,2003 。