EDA课程设计(论文)洗衣机控制器.doc

上传人:土8路 文档编号:10054577 上传时间:2021-04-14 格式:DOC 页数:16 大小:304KB
返回 下载 相关 举报
EDA课程设计(论文)洗衣机控制器.doc_第1页
第1页 / 共16页
EDA课程设计(论文)洗衣机控制器.doc_第2页
第2页 / 共16页
EDA课程设计(论文)洗衣机控制器.doc_第3页
第3页 / 共16页
EDA课程设计(论文)洗衣机控制器.doc_第4页
第4页 / 共16页
EDA课程设计(论文)洗衣机控制器.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《EDA课程设计(论文)洗衣机控制器.doc》由会员分享,可在线阅读,更多相关《EDA课程设计(论文)洗衣机控制器.doc(16页珍藏版)》请在三一文库上搜索。

1、目目 录录 摘要摘要 洗衣机控制器洗衣机控制器 .2 2 1.1.前言前言 .3 3 2.2.总体方案设计总体方案设计 .4 4 2.1 基本原理.4 2.2 原理框图.4 3.3.设计步骤和调试过程设计步骤和调试过程 .5 5 3.1 总体电路设计.5 3.2 模块设计与相应的模块程序.6 3.2.1 数码管显示 .6 3.2.2 时序电路控制 .7 3.2.3 预置时间 .8 3.2.4 译码器 .9 3.2.5 减法计数器 .10 3.2.6 洗衣机运转模块 .10 3.3 仿真及仿真结果分析.14 4.4.实验调试结果实验调试结果 .1515 5.5.设计总结设计总结 .1616 6.

2、6.参考文献参考文献 .1717 摘要摘要 洗衣机控制器洗衣机控制器 随着电子技术和计算机技术的发展,电子产品已与生活紧密相连,与此同时 EDA 技术已经越来越渗透到我们的生活中,给我们的生活带来了极大的方便。电子设计自 动化(EDA)技术,使得电子线路的设计人员能在计算机上完成电路的功能设计、逻辑设 计、性能分析、时序测试直至印刷电路板的自动设计。在高校电子电路课程中结合教 学内容引人 EDA 工具软件进行设计,使学生掌握一定的 EDA 技术和 EDA 软件的使用方 法。设计一个洗衣机控制器,要求洗衣机有进水,洗衣(正转、反转、暂停三种状态) , 放水,脱水。显示工作时间,要洗衣机在工作时间

3、内完成,定时到则停止,同时发出 提示音。 关键词关键词: :预设时间信号输入模块,状态控制模块,减法计数器模块,VHDL 语言程序 As the electronic technology and the development of computer technology, electronic products already and life are closely linked, at the same time EDA technology already more and more the penetration to our life, brings to our life gr

4、eat convenience. Electronic design automation (EDA) technology, make the design of electronic circuit personnel on the computer can complete circuit design, the function of logical design, performance analysis, timing test until printed circuit board of automatic design. In the electronic circuit co

5、urse teaching contents in the EDA software is designed, make the student to master certain EDA technology and EDA software use method. Design a washing machine controller, a washing machine, laundry water requirements (are turning, inversion, suspended three states), match-fixing, dehydration. Displ

6、ay work time, to work in the washing machine finish, time to stop, and at the same time, a prompt. Key words:Default time signal input module,State control module, Subtraction counter module, VHDL language program; 1.1.前言前言 随着电子技术和计算机技术的发展,电子产品已与生活紧密相连,电子产品的智 能化日益完善,电路的集成度越来越高,而产品的更新周期却越来越短。与此同时 EDA

7、 技术已经越来越渗透到我们的生活中,给我们的生活带来了极大的方便。 目前,EDA 技术已成为电子信息类学生一门重要的专业基础课程,并在教学、科研, 一级大学生电子设计竞赛等活动中,起着越来越重要的作用,成为电子信息类本科生 及研究生必须掌握的基础知识与基本技能。随着 EDA 技术的应用日益广泛,对 EDA 课 程 教学的要求也不断提高,以与 EDA 技术的发展相适应,正式基于以上考虑,进行 EDA 课程设计。 很多设备在嵌入电子技术后,其产品价值大大提高,如全自动洗衣机、数控机床 等。学习 EDA 技术是十分必要的,它可以提高电子产品设计的速度、精度、可靠性, 扩大设计规模等,降低人们的劳动强

8、度,提高工作效率;电子技术扩大了人们的视野。 计算机技术和微电子工艺的发展,使得现代数字系统的设计和应用进入了新的阶 段。电子设计自动化(EDA)技术在数字系统设计中起的作用越来越重要,新的工具和 新的设计方法不断推出,可编程逻辑器件不断增加新的模块,功能越来越强,硬件设 计语言也顺应形势,推出新的标准,更加好用,更加便捷。 由于 EDA 技术的发展,使得现代数字系用设计从设计思想,设计工具到实现方式 都产生了深刻的变化,呈现出新的特点,怎样体现这种变化,抓住 EDA 技术和数字设 计的实质,是每个在学习的学生中都应思考的问题,EDA 课程设计,其根本目的是在于 在有限的时间内,掌握了解数字设

9、计技术的本质及其重点,从而数字系统设计和 EDA 技术的精髓。 EDA 软件工具也在设计中起着重要的作用,好的 EDA 软件为数字设计开发提供了平 台和工具,它将设计者的设计思想自动、高效地转化为物理电路和网表结构,并以直 观、便捷的形式提供了仿真模拟手段。下面,将详细介绍此次课程设计的思路,以及 设计流程。 2.2.总体方案总体方案设计设计 2.12.1 基本原理基本原理 洗衣机控制器的设计主要是定时器的设计。由一片 FPGA 和外围电路构成了电器控 制部分。FPGA 接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作 状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制

10、动控制、起停控 制和运动状态控制。对芯片的编程采用模块化的 EDA (硬件描述语言)进行设计,设计 分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由 EDA 的元件例化语 句实现。中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示 控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停 控制等模块组成,它们分别调用底层模块。 首先,从秒脉冲出来的信号,经过一个控制电路后进入秒计数器进行秒计数,进行清零,这时 用户置入洗涤时间,并按开始按钮,洗衣机开始工作。当秒计数器变为零的时候,去分钟计数器上 面借数;与此同时,从十秒位转化出来的信号进入移位寄存器

11、后,LED 灯表示出电机运转状态;当 用户设定的洗涤时间结束后,电路报警并清零;同时电机指示灯熄灭。 2.22.2 原理框图原理框图 正转 20 秒暂停 10 秒反转 20 秒暂停 10 秒 定时到 停止 定时启动 图 2.1 系统总体框图 3.3.设计步骤和调试过程设计步骤和调试过程 3.13.1 总体电路设计总体电路设计 洗衣机控制器电路主要有五大部分组成,包括:减法计数器、时序控制电路、预 置时间、数码管显示、译码器组成。 具体电路如下图所示: 图 3.1 系统总体电路 3.3.2 2 模块设计与相应的模块程序模块设计与相应的模块程序 3.2.13.2.1 数码管显示数码管显示 根据课程

12、设计要求,必须将洗衣机的工作状态及工作时间在数码管和指示灯上显 示出来,此模块是用来控制洗衣机的工作状态及工作的频率,并把工作状态及工作时 间显示出来 实现数码管显示 Library iee; Use ieee.std_logic_1164.all; Entity encode is Port( Bcd : in std_logic_vector(3 downto o); A,b,c,d,e,f,g: out std_logic ); End encode; Architecture rtl of encode is Signal temp:std_logic_vector(6 downto

13、0); Begin Table Bcd = temp; 0000= 1111110; 0001= 0110000 0010= 1101101 0011= 1111001 0100= 0110011 0101= 1011011 0110= 1011111 0111= 1110000 1000= 1111111 1001= 1111011 End table; a=temp(6);b=temp(5);c=temp(4);d=temp(3);e=temp(2);f=temp(1); g=temp(0); end rtl 3.2.23.2.2 时序电路控制时序电路控制 此模块是为了实现洗衣机的正转、暂

14、转、反转的功能,它由一个状态控制模块构 成,是典型的状态机。 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all Entity shixu is Port(cp,en,rd:in std_logic; Q1,q2:out std_logic); End shixu; Architecture rtl of shixu is Begin Process(cp) Variable wash_time:integer range 0 to 19; Variable wash_time:integer r

15、ange 0 to 9; Variable state:std_logic; Variable wash_time:integer :=21; Variable wash_time:integer :=9; Begin If(en=0)wash_time:=19;wait_time:=9;state:=0; End if;if(en=0)then wash_time:=21;Q1=0;Q20) Then wash_time:=20;state:=not state; End if; end if; end if; If(wash_time=0)then Q1=0;Q2=0;else if (s

16、tate=0) Then Q1=1;Q2=0; else Q1=0;Q2=1; End if; end if; Else Q10 and start=1) then time_second:=time_second-1; else time_second:=59; end if; if(start=0) then time_remain0) then time_remain(3 downto 0)=time_remain(3 downto 0)-start; time_remain(3 downto 0)0) then time_remain(7 downto 4) =time_remain(

17、7 downto 4)-start; time_remain(7 downto 4)=time_remain(7 downto 4)-1; time_remain(3 downto 0)=1001;time_second:=59;end if; end if; else if (time_second=0 and time_second=1) if(time_remain=0)then time_is_up=0;else time_is_up=1; time_second:=time_second-1;end if;end if;end if; end if;end process; end

18、rtl; 3.2.43.2.4 译码译码器器 当洗涤时间结束时,洗衣机就会自动发出警报声,以此提醒用户洗涤工作完成, 此模块就是完成此功能。 library ieee; use ieee.std_logic_1164.all; entity decoder is port( Q1,Q2: in std_logic; REV,RUN,PAUSE: out std_logic );end decoder; architecture rtl of decoder is signal choose:std_logic_vector(1 downto 0); begin choose(1)=q1;cho

19、ose(0)REV=0;RUN=0;PAUSEREV=0;RUN=1;PAUSEREV=1;RUN=0;PAUSEREV=0;RUN=0;PAUSE=0; end case; end process; REV=Q2;RUN=Q1;PAUSE=not(Q1 OR Q2); end rtl; 3.2.53.2.5 减法计数器减法计数器 由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,当洗衣机开始 工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。 3.2.63.2.6 洗衣机运转模块洗衣机运转模块 library ieee; use ieee.std_logic_11

20、64.all; use ieee.std_logic_unsigned.all; entity washer_base is port(clk,clk_s,start,cs:in std_logic;-CS 为异常判断信号线 timer1,timer2:in std_logic_vector(4 downto 0);-洗衣时间 4/5,脱水时 间 1/5 vib_l,vib_r,over:out std_logic); end washer_base; architecture behav of washer_base is type states is(water_in,wash,water

21、_out,dry,waiting); signal state:states; signal timer_1,timer_2:std_logic_vector(4 downto 0); signal water_h,water_l,water_door,working:std_logic; signal min:std_logic_vector(4 downto 0); signal vibl,vibr:std_logic; begin states_switch:process(clk,start) begin if startevent and start=1 then stateif w

22、ater_h=0 then state=wash; else stateif timer_1=00000 then state=water_out; else stateif water_l=0 then state=dry; else stateif timer_2=00000 then state=waiting; else stateif cs=0 then state=water_in; else statestate=waiting; end case; end if; end process states_switch; download:process(start) begin

23、if startevent and start=1 then timer_1=timer1;timer_2=timer2;end if; end process; count:process(clk_s) - 计时 variable sec:std_logic_vector( 5 downto 0); begin if state=wash then min=timer_1+timer_2; if clk_sevent and clk_s=1 then if sec=111111 then sec:=000100;timer_1=timer_1-1; else sec:=sec+1;end i

24、f; end if; elsif state=dry then if clk_sevent and clk_s=1 then if sec=111111 then sec:=000100;timer_2=timer_2-1; else sec:=sec+1;end if; end if; end if; end process count; vib_l=vibl;vib_r=vibr; -连接洗衣机正反转信号与输出端口 wash_run:process(clk_s) variable run_time:std_logic_vector(4 downto 0); begin if clk_sev

25、ent and clk=1 and cs=1 then run_time:=run_time+1; if run_time17 then vibr=1;vibl=0; else run_time then vibl=1;vibr=0; end if; end if; end behav; 3.33.3 仿真及仿真结果分析仿真及仿真结果分析 EDA 工具在 EDA 技术应用中占据极其重要的位置,EDA 的核心是利用计算机完成电 子设计全程自动化,因此基于计算机环境的 EDA 软件的支持是必不可少的。此次设计 所用 EDA 工具是由著名的 Alter 公司生产的 MAXplus工具软件,它是一种集

26、成的开 发环境,支持原理图、VHDL 和 Verilog 语言文本文件,以及波形文件作为设计输入, 并支持这些文件的人以混合设计。 图 3.2 洗衣机控制信号仿真图 洗衣机接通电源,按 load 设置洗涤时间按 start、rd 置为高电平洗衣机开始工作, 当时钟第一个上升沿到达时 run(正转功能)为高电平维持 20s 以后变为低电平而 pause(暂停功能)随着时钟上升沿的到来变为高电平维持 10s 变为低电平,然后 rev(反转功能)开始随着时钟上升沿的到来变为高电平工作维持 20s 后变为低电平, 再停止 pause 置高,接下来电路一直重复上述工作,知道定时器计数结束。 图 3.3

27、总电路仿真波形 4.4.实验调试结果实验调试结果 电路设计完成以后,按照预定设计,输入相应数据,调试电源电路,选定电容, 电压线圈型号、参数。调试 LED 显示电路,选定上拉电阻大小(1K) ,连接好 LED 显示 器引脚。 组建 KEY 电路、晶振电路、完成控制信号集成放大电路参数的调试。连接各个外 围电路与芯片对应信号引脚,完成电路搭建 LED 灯按照设定时间规律间断性亮起,数 码管也显示输入时间并按减数计时产生相应的数字显示,直到到达预定时间停止工作 显示零,实验设计达到预期效果。 5.5.设计总结设计总结 本次课程设计是对所学的模拟电子技术基础和数字电子技术基础以及电工电子技术 实验的

28、高度总结应用,在设计的过程中发现了自己在知识上所存在的不足,也意识到 除了必须具备专业知识以外,还必须具有塌实坚毅不服输的品格。 设计该洗衣机控制器,让我加强了 FPGA 硬件编程的实际操作。对编程时出现的各 种问题,找到相应的办法解决,并逐步完善程序 控制电路设计在一片 FPGA 芯片内,具有体积小、可靠性高、设计周期短,功能灵活的 特点。这尤其适用于小批量多品种新产品的开发,以满足人们追求新异、个性化的高 品质生活的要求。 通过这次课程设计我对 FPGA 的编程更加熟悉,对定时器和计数器的设计,让 我更加明白时序组合门电路设计思路和方法。而且自已独立思考与设计,使我初步掌 握了 VHDL

29、的设计方法与一些技巧,本人从中受益匪浅。通过这个实验设计,我更加熟 练地掌握了一些常见的数字芯片的设计方法,在设计中也参了和查阅了很多资料,从 中学到不少课本上没有的东西。从本次课程设计的目的来看,收获也是不少的,它使 我们对课本以及以前学过的知识有了一个更好的总结与理解,也让我们知道了,光分 开使不够的,从外面学到的知识要把形成一各整体,这也很好的训练了外面对开发一 个项目应该有怎样的思路和准备更清晰。无论是从 C 语言课程设计到金工实习,还是 从电子实习到现在的数电课程设计,每一次自己都觉得有一个进步,虽然有些方面自 己做不出,但可以从老师和其他同学那里学到更好更多的东西,他们从另一个方面

30、透 析了自己的困难,这是很重要的,它让我学会了怎样学习别人的长处并把它变成自己 的长处。有这样的机会和收获,要感谢老师的辅导以及同学的帮助,是他们让自己有 了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路,虽然自己走 出来的路要崎岖的多,但觉得踏实、放心。 6.6.参考文献参考文献 1 潘松,黄继业.EDA技术实用教程 M .北京:科学出版社, 2010. 2 杨君,王景存.基于VerilogHDL的流水线的设计方法及应用J.武汉科技大学学报(自然科 学版) ,2002,25(4): 394396. 3王金明.数字体统设计与Verilog HDL M .北京:电子工业出版社.2010 4 王景存,李炳生,郝国法,等.用 FPGA 实现数字逻辑分析仪设计J.武汉科技大学学报(自然科学 版),2001,24(1):298300.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1