已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长 沙 学 院课程设计说明书题目 洗衣机控制器的设计系(部) 电子与通信工程系 专业(班级) 电气工程及其自动化姓名 学号 指导教师 起止日期 2011-12-19至2011-12-31eda技术课程设计任务书系(部):电子与通信工程系 专业:电气工程及其自动化 指导教师: 课题名称洗衣机控制器的设计设计内容及要求(1)课题内容:1、 设计一个电子定时器,定时180秒,在这3分钟之内控制洗衣机作如下运转:定时启动正转20秒暂停10秒反转20秒暂停10秒定时未到回到“正转20秒暂停10秒”,定时到则停止;2、 定时到,则停机发出1秒钟的音响信号;3、 用数码管显示当前洗衣机的动作及该动作运行的时间。正转、反转及暂停动作分别用a、b和c来表示。(2)主要任务:完成该系统的硬件和软件的设计,并制作出实物装置,调试好后并能实际运用(指导教师提供制作所需的器件),最后就课程设计本身提交一篇课程设计说明书。设计工作量1、vhdl语言程序设计;2、波形仿真;3、在实验装置上进行硬件测试,并进行演示;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。进度安排起止日期(或时间量)设计内容(或预期目标)备注第1天课题介绍,答疑,收集材料第2天设计方案论证第3天进一步讨论方案, 对设计方案进行必要的修正,方案确定后开始进行vhdl语言程序设计第4天设计vhdl语言程序第59天在实验装置上进行硬件测试,对vhdl语言程序进行必要的修正,并进行演示第10天编写设计说明书教研室意见年 月 日系(部)主管领导意见年 月 日长沙学院课程设计鉴定表姓名学号专业电气工程及其自动化班级设计题目指导教师瞿 曌指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目 录1:设计方案2:设计原理及其实现过程 2.1:设计总原理 2.2:设计框图 2.3:设计总原理图 2.4:模块设计和相应模块设计程序 2.4.1:减法计数器2.4.2:预置洗涤时间模块2.4.3:状态控制模块2.4.4:信号输入、输出模块2.4.5:警报声输出模块2.5:总电路仿真波形2.6:测试结果3:课程设计结论及心得4:参考文献1:设计方案本定时器实际上包含两级定时的概念,一是总洗涤过程的定时,而是在总洗涤过程中又包含电机的正转、反转和暂停三种定时,并且这三种定时是反复循环直至所设定的总定时时间到位置。当总定时时间在020min以内设定一个书之后t为高电平1,然后用倒计时的方法每分钟减1直至t变为0。在此期间,若z1=z2=1,实现正转;若z1=z2=0,实现暂停;若z1=1,z2=0,实现反转。实现定时的方法很多,比如采用单稳电路实现定时,又如将定时初值预置到计数器中,使计数器运行在减计数状态,当减到全零时,则定时时间到。如图所示的电路原理框图就是采用这种方法实现的。由秒脉冲发生器产生的时钟信号经60分频后,得到分脉冲信号。洗涤定时的时间的初值先通过拨盘或数码开关设置到洗涤时间计数器中,每当分脉冲到来计数器减1,直至减到定时时间到为止。运行中间,剩余时间经译码后在数码管上进行显示。2、设计原理及其实现过程2.1设计总原理洗衣机控制器的设计主要是定时器的设计。由一片fpga (field programmable gate array)和外围电路构成了电器控制部分。fpga接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。对fpga芯片的编程采用模块化的vhdl (硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由vhdl的元件例化语句实现。中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。2.2设计框图2.3设计总原理图 实验总原理图2.4模块设计和相应模块程序2.4.1减法计数器 由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,所以我们设计了一个减法计数器模块,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。减法计数器模块countlibrary ieee;use ieee.std_logic_1164.alluse ieee.std_logic_unsigned.all;entity count isport( clk:in std_logic; t1a: in std_logic; start:in std_logic; finish:out std_logic; ini : in std_logic_vector(7 downto 0); show: out std_logic_vector(7 downto 0); enter:in std_logic );end entity count;architecture five of count is signal fini:std_logic;signal show1 :std_logic_vector(7 downto 0);begin process(t1a,clk,start)variable num : std_logic_vector(7 downto 0):=11111111;beginif enter=1 then num:=ini;elsif (t1aevent and t1a=1 and start=1 and num/=0) then num:=num-1;end if;if enter=0 and num=0 then fini=1;num:=00000000;else fini=0;end if;show1=num;end process ;process(clk)beginif clkevent and clk=1 then finish=fini;show=show1;end if;end process;end ;2.4.2预置洗涤时间模块 此模块由一个累加器和一个命令控制器组成,用来实现预置洗涤时间的功能,洗涤时间以分钟数为单位,用户可根据自己的需求来设定洗涤时间的长短。预置洗涤时间模块vhdl程序1)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder isport(in1:in std_logic ; q: out std_logic_vector(2 downto 0) );end adder;architecture nine of adder issignal add:std_logic_vector(2 downto 0);beginq=add;process(in1)beginif in1event and in1=1 thenaddtimetimetime time time time time time time=0;end case;end process;end ;2.4.3状态控制模块 此模块是为了实现洗衣机的正转、暂停、反转的功能,它由一个状态控制模块构成,是典型的状态机。状态控制模块vhdl程序1)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity state isport(clk : in std_logic; t10_ena :out std_logic; t20_ena:out std_logic; t10a :in std_logic; t20a :in std_logic; finishb:in std_logic; start: in std_logic; enter: in std_logic; led: out std_logic_vector(2 downto 0); p : out std_logic_vector(7 downto 0) );end entity;architecture one of state istype states is (st0,st1,st2,st3,st4);signal c_st:states;begincom:process(clk,enter,t20a,t10a)beginif enter=1 or finishb=1 or start=0 then c_st=st0; p=00000000;led=000;t10_ena=0;t20_ena c_st=st1;t20_ena=1;t10_ena led=001;p=00010100; if t20a=1 then c_st=st2;t20_ena=0;t10_ena=1; else c_st=st1;t20_ena=1;t10_ena led=010;p=00001010; if t10a=1 then c_st=st3;t20_ena=1;t10_ena=0; else c_st=st2;t20_ena=0;t10_ena led=100;p=00010100; if t20a=1 then c_st=st4;t20_ena=0;t10_ena=1; else c_st=st3;t20_ena=1;t10_ena led=010;p=00001010; if t10a=1 then c_st=st1;t20_ena=1;t10_ena=0; else c_st=st4;t20_ena=0;t10_enac_st=st0;end case;end if;end process;end one;2) library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ten isport(clk :in std_logic; t10_en :in std_logic; t10:out std_logic );end entity ten;architecture three of ten issignal num : integer range 640 downto 0:=0;beginprocess(clk,t10_en)begin if(t10_en=1) then if clkevent and clk=1 then if num=639 then num=0; else num=num+1;end if;end if;elsif t10_en=0 then num=0;end if ;end process;process(clk)beginif clkevent and clk=1 then if(num=639) then t10=1; else t10=0;end if;end if;end process;end architecture three;3) library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity twenty isport(clk :in std_logic; t20_en :in std_logic; t20:out std_logic );end entity twenty;architecture four of twenty issignal num : integer range 1280 downto 0:=0;beginprocess(clk,t20_en)begin if(t20_en=1) then if clkevent and clk=1 then if num=1279 then num=0; else num=num+1;end if;end if;end if;if t20_en=0 then num=0;end if ;end process;process(clk)beginif clkevent and clk=1 then if(num=1279) then t20=1; else t20=0;end if;end if;end process;end architecture four;2.4.4信号输入、输出模块 根据课程设计要求,必须将洗衣机的工作状态及工作时间在数码管和指示灯上显示出来,此模块是用来控制洗衣机的工作状态及工作的频率,并把工作状态及工作时间显示出来。信号输入、输出模块vhdl程序1) library ieee;use ieee.std_logic_1164.all;entity one isport(clk:in std_logic; fout:out std_logic; start: in bit);end entity one;architecture one of one is signal count:integer range 0 to 32; signal mid:std_logic;beginprocess(clk,start)beginif start=1 thenif clkevent and clk=1 then if count=31 then count=0; mid=not mid;else count=count+1;end if;fout=mid;end if;end if;end process;end architecture one;2) library ieee;use ieee.std_logic_1164.all;entity freq_div1min isport(fout0:in std_logic; fout1: out std_logic);end entity freq_div1min;architecture one of freq_div1min is signal count:integer range 0 to 60; signal mid:std_logic;beginprocess(fout0)beginif fout0event and fout0=1 then if count=29 then count=0; mid=not mid;else count=count+1;end if;fout1=mid;end if;end process;end architecture one;2.4.5警报声输出模块 当洗涤时间结束时,洗衣机就会自动发出警报声,以此提醒用户洗涤工作完成,此模块就是实现次功能。 图9 warming仿真波形由上仿真波形可以看出,输入一个脉冲信号clk,当洗衣机工作状态结束时,warming输出端会有一个输出脉冲,此时洗衣机会发出鸣叫声。警报声输出模块warminglibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity warming isport(clk: in std_logic; finishc:in std_logic; warn:out std_logic );end warming;architecture six of warming isbeginproce
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多层陶瓷片式电感市场现状及未来发展趋势(2024版)
- 融文:2024撰写现代化PR报告的专业指南
- 荣泰煤矿6-2中煤大巷煤柱回收开采方案
- 水源地合理开采及恢复机制研究
- 广州-PEP-2024年11版小学4年级上册英语第6单元测验试卷
- Python程序设计实践-教学大纲、授课计划
- 2024年电能仪表项目资金需求报告代可行性研究报告
- 预制菜分类原则(征求意见稿)编制说明
- 珠宝销售个人工作计划
- 新娘结婚致辞
- 2024产学研合作框架协议
- 2023年甘肃省工程设计研究院有限责任公司招聘笔试真题
- 2022部编版道德与法治三年级下册《请到我的家乡来》教学设计
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)化学试卷(含标准答案)
- 北京联合大学《影视作品欣赏》2023-2024学年第一学期期末试卷
- 《心理健康教育主题班会》主题
- 8 冀中的地道战(教学设计)2023-2024学年统编版语文五年级上册
- 中国燃气招聘笔试题库2024
- 左邻右舍一家亲(教学设计)-2023-2024学年五年级上册综合实践活动蒙沪版
- 疲劳试验机市场需求与消费特点分析
- 10以内连加练习题完整版51
评论
0/150
提交评论