欢迎来到天天文库
浏览记录
ID:2401853
大小:170.50 KB
页数:15页
时间:2017-11-15
《eda课程设计基于vhdl的洗衣机控制器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、子信息科学与技术专业课程设计任务书学生姓名专业班级学号题目洗衣机控制器课题性质A课题来源D指导教师同组姓名无主要内容(1)设计一个洗衣机控制器,使洗衣机作如下运转:定时启动—〉正转20秒—〉暂停10秒—〉反转20秒—〉暂停10秒—〉定时不到,重复上面过程。(2)若定时到,则停止,并发出音响信号。(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由开始信号开始。(4)三只LED灯表示正转、反转、暂停三个状态。任务要求(1)制定完整地设计方案,结
2、合框图进行说明。(2)给出主要模块的VHDL程序。(3)如有可能,在实验箱上进行下载验证。(4)给出完整地设计报告。参考文献(1)黄智伟.FPGA系统设计与实践电子工业出版社2005.1(2)焦素敏.EDA课程设计指导书河南工业大学2008.2(3)焦素敏.EDA技术基础清华大学出版社2009.8(4)阎石.数字电子技术基础高等教育出版社2006.5审查意见指导教师签字:教研室主任签字:2012年2月20日说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1设计任务
3、及要求(1)设计一个洗衣机控制器,控制洗衣机如下运转:定时启动-正转20秒-暂停10秒-反转10秒-暂停10秒-定时未到回到“正转20秒-暂停10秒-……”,定时到停止;(2)若定时到,则停机发出音响信号;(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由“开始”信号开始;(4)三只LED灯表示“正转”、“反转”、“暂停”三个状态。设计出的洗衣机控制器可以实现按预置的时间对衣服进行洗涤,并在结束后发出音响提示。本次设计分工如下,有预置洗涤时
4、间模块、倒计时减法计数器、状态控制模块、发出音响模块和译码模块。 2设计原理及总体框图(1)设计的总体框图正转暂停反转暂停停止定时启动定时未到(2)设计总原理洗衣机控制器的设计主要是定时器的设计。由一片FPGA(FieldProgrammableGateArray)和外围电路构成了电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。对FPGA芯片的编程采用模块化的VHDL(硬
5、件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由VHDL的元件例化语句实现。中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。3程序设计(1)VHDL语言(VHSICHardwareDescriptionLanguage,甚高速集成电路硬件描述语言)是一种设计、仿真、综合的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,其优点是:支
6、持自上而下和基于库的设计,支持范围广,具有多层次描述系统硬件功能的能力。VHDL语言已成为IEEE的一种工业标准,是实现信息系统硬件开发所必备的知识和技能。(2)设计的各个模块程序a、倒计时减法计数器模块由于洗衣机有工作时间,必须要一模块来控制它的工作时间范围,所以我设计了一个减法计数器模块,当洗衣机开始工作后,减法计数器即会实现减数功能,直到时间减到零,洗衣机便停止工作。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGN
7、ED.ALL;ENTITYCOUNTISPORT(CLK,TLA,START,ENTER:INSTD_LOGIC;INI:INSTD_LOGIC_VECTOR(7DOWNTO0);SHOW:OUTSTD_LOGIC_VECTOR(7DOWNTO0);FINISH:OUTSTD_LOGIC);ENDCOUNT;ARCHITECTUREoneOFCOUNTISSIGNALFINI:STD_LOGIC;SIGNALSHOW1:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS
8、(TLA,CLK,START)VARIABLENUM:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFENTER='1'THENNUM:=INI;--预置洗涤时间ELSIF(TLA'EVENTANDTLA='1')THENIFSTART='1'ANDNUM/=0THEN--倒计时NUM:=NUM-1;ENDIF;ENDIF;IFENTER='0'ANDNUM=0THENFINI<='1';NUM:="00000000";--停止信号发出ELSEFINI<='0'
此文档下载收益归作者所有