欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    EDA课程设计 全自动洗衣机.doc

    • 资源ID:4144016       资源大小:233.50KB        全文页数:13页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA课程设计 全自动洗衣机.doc

    EDA课程设计 全自动洗衣机1 设计任务及要求利用可编程逻辑器件丰富的内部资源,借助EDA(电子设计自动化)工具(如MAXplus)把家电控制器电路集成在一片FPGA(现场可编程门阵列)芯片内,这样就无需专门的单片机和外部逻辑电路。从而减小了电路的体积、提高了系统的稳定性。本次电路设计是洗衣机控制器设计。设计的主要内容是:(1)设计一个洗衣机控制器,使洗衣机作如下运转:定时启动正转20秒暂停10秒反转20秒暂停10秒定时不到,重复上面过程。(2)若定时到,则停止,并发出音响信号。(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由开始信号开始。(4)三只LED灯表示正转、反转、暂停三个状态。设计的主要要求是:(1)根据设计题目要求编写相应程序代码(2)对编写的VHDL程序代码进行编译和仿真(3)利用实验箱完成硬件验证(可选)(4)总结设计内容,完成课程设计说明书2设计原理及总体框图洗衣机控制器的设计主要是定时器的设计,由一片FPGA和外围电路构成了电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制(洗衣机洗涤过程如图2所示)。对FPGA芯片的编程采用模块化的VHDL (硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由VHDL的元件例化语句实现。中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。洗衣机控制器电路主要有五大部分组成,包括:减法计数器、时序控制电路、预置时间和编码电路、数码管显示、译码器组成。具体电路如图3所示:图3洗衣机控制器总体设计图3 程序设计(1)时间设置电路:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity settime isport(load:in std_logic;k:in std_logic_vector(9 downto 0);o:out std_logic_vector(3 downto 0);end settime;architecture rt1 of settime issignal p1:std_logic_vector(3 downto 0);begin process(load)beginif(load'event and load='1')thencase k iswhen "1000000000"=>p1<="0001"when "0100000000"=>p1<="0010"when "0010000000"=>p1<="0011"when "0001000000"=>p1<="0100"when "0000100000"=>p1<="0101"when "0000010000"=>p1<="0110"when "0000001000"=>p1<="0111"when "0000000100"=>p1<="1000"when "0000000010"=>p1<="1001"when "0000000001"=>p1<="1010"when others=>p1<="0000"end case;end if;end process;o<=p1;end rt1;(2)数码管显示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity showtime is port(num:in std_logic_vector(3 downto 0);dout:out std_logic_vector(6 downto 0);end showtime;architecture a1 of showtime isbeginwith num selectdout<="1111110" when "0000", "0110000" when "0001", "1101101" when "0010", "1111001" when "0011", "0110011" when "0100", "1011011" when "0101", "1011111" when "0110", "1110000" when "0111", "1111111" when "1000", "1111011" when "1001", "0000000" when others;end a1;(3)序电路library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity SHIXU isport(clk:in std_logic;TG:in std_logic;start:in std_logic;SHUCHU:BUFFER std_logic_VECTOR(2 DOWNTO 0);end SHIXU; architecture behav of SHIXU isSIGNAL QQ:STD_LOGIC_VECTOR(5 DOWNTO 0);beginprocess(clk,tg,QQ)beginif(tg='1')or(start='0') then shuchu<="001"QQ<="111011"else if(clk'event) and (clk='1')then if QQ="000000" then QQ<="111011" ;shuchu<="100" ; elsif QQ="111010"then shuchu<="100" ; elsif QQ="100111"then shuchu<="001" elsif QQ="011101"then shuchu<="010" elsif QQ="001001"then shuchu<="001" end if;QQ<=QQ-1;end if;end if; END PROCESS;end behav;译码器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity YIMA isport(run:out std_logic;rev:out std_logic;pause:out std_logic;SHURU:IN std_logic_VECTOR(2 DOWNTO 0);end YIMA; architecture behav of yima isbeginprocess(shuru)begincase shuru is when "001"=>rev<='0'run<='0'pause<='1'when "010"=>rev<='1'run<='0'pause<='0'when "100"=>rev<='0'run<='1'pause<='0'when others=>rev<='0'run<='0'pause<='1'end case;end process;end behav;(5)减法计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity counter isport(start:IN std_logic;clk:IN std_logic;CHUSHItime:IN integer range 0 to 15;XIANSHItime:OUT integer range 0 to 15;JINWEI:BUFFER std_logic);end counter; architecture behav of counter issignal ZHONGJIANtime:integer range 0 to 15;beginprocess(clk)beginif(start='0')then ZHONGJIANtime<=CHUSHItime;XIANSHItime<=CHUSHItime;jinwei<='0'else if(clk'event and clk='1')then if(ZHONGJIANtime=0) then XIANSHItime<=0;JINWEI<='1' else ZHONGJIANtime<=ZHONGJIANtime-1;XIANSHItime<=ZHONGJIANtime; end if; end if;end if;end process;end behav; 4 编译及仿真EDA工具在EDA技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电子设计全程自动化,因此基于计算机环境的EDA软件的支持是必不可少的。此次设计所用EDA工具是由著名的Alter公司生产的MAXplus工具软件,它是一种集成的开发环境,支持原理图、VHDL和Verilog语言文本文件,以及波形文件作为设计输入,并支持这些文件的人以混合设计。 图4洗衣机控制器程序仿真图 MAXplus工具软件具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果,同是还支持主流第三方EDA工具,所以可以说MAXplus是当今最优秀的EDA工具软件之一。利用MAXplus工具软件仿真仿真结果如图4所示5 硬件调试与结果分析洗衣机接通电源,按load设置洗涤时间按start、rd置为高电平洗衣机开始工作,当时钟第一个上升沿到达时run(正转功能)为高电平维持20s以后变为低电平而pause(暂停功能)随着时钟上升沿的到来变为高电平维持10s变为低电平,然后rev(反转功能)开始随着时钟上升沿的到来变为高电平工作维持20s后变为低电平,再停止pause置高,接下来电路一直重复上述工作,知道定时器计数结束。电路设计完成以后,按照预定设计,输入相应数据,三只LED灯按照设定时间规律间断性亮起,数码管也显示输入时间并按减数计时产生相应的数字显示,直到到达预定时间停止工作显示零,实验设计达到预期效果。6 参考文献1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.4 赵岩岭 刘春等.在MAXplus平台下用VHDL进行数字电路设计. 西安:西电出版社,2005心得体会通过这次的EDA设计,我可以说是受益良多。看到洗衣机控制器的题目,我首先想到的是状态机的设计,因为课本上说状态机其实就是控制器,后来经过看书觉得应该是摩尔型状态机,可是自习分析后发现设计题目比较复杂,如果用状态机的思路来设计,比较困难超出了我的能力。结合以前做课程设计(数字电路设计交通等控制器)的经验,如果用模块化层次化的设计思路更清晰,设计起来也更容易,特别是更符合EDA设计的的流程,故自己开始设计各功能模块。洗衣机控制器主要实几种状态的循环改变,还有计时和数码显示的功能,所以我觉得电路主要有五大部分组成,包括:减法计数器、时序控制电路、预置时间和编码电路、数码管显示、译码器组成。在分析过程中,我遇到了不少困难,因为第一次遇到一个比较复杂的设计,刚开始不知道从哪里入手,所以借鉴了一些书和网上的资料,主要参看了赵岩岭 刘春等老师编著的在MAXplus平台下用VHDL进行数字电路设计关于控制器的一些设计方法和范例,并且在无忧电子开发网(

    注意事项

    本文(EDA课程设计 全自动洗衣机.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开