EDA洗衣机控制器
- 格式:doc
- 大小:593.32 KB
- 文档页数:12
1数字频率计1)设计一个能测量方波信号的频率的频率计。
2)测量的频率范围是0 999999Hz。
3)结果用十进制数显示。
2乒乓球游戏机1)用8个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍2)一方发球后,球以固定速度向另一方运动(发光二极管依次电量),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动,在其他时候击球视为犯规,给对方加1分;都犯规,各加1分;3)甲乙各有数码管计分4)裁判有一按钮,可系统初始化,每次得分后,按下一次3彩灯控制器1)设计一个彩灯控制器,使十个彩灯(LED管)能连续发出四种以上不同的显示形式(如奇数依次亮),;2)随着彩灯显示图案的变化,发出不同的音响声(可用不同频率的矩形波产生)。
4速度表1)显示汽车时速Km/h2)车轮每转一圈,有一个传感脉冲;每个脉冲代表1m的距离3)采样周期设为10S4)*要求显示到小数点后2位5)数码管显示6)*超速报警5拔河游戏机1)设计一个能进行拔河游戏的电路。
2)电路使用15个(或9个)发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3)游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4)亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5)*用数码管显示获胜者的盘数6 6 数字跑表1)具有暂停/启动功能2)具有重新开始功能3)用6个数码管分别显示百分秒、秒和分钟4)能计两个人跑步时间,并能选择显示77 电梯控制器1)5层电梯控制器,用5个led显示电梯行进过程,并用数码管显示电梯当前所在楼层位置,每层电梯入口处设有上楼和下楼请求按钮,按下按钮,则相应楼层的led亮2)电梯到达请求楼层,相应的请求led灯灭,电梯门打开,开门5S,电梯自动关门,继续上行(下行)3)每层设有电梯上行和下行指示灯4)能记忆电梯内部的请求信号88 篮球计分器1)具有30秒计时、显示2)可对计时器清零、置数、启动和暂停3)30秒倒计时4)两个数码管显示两队比分5)超时报警并可解除报警99电子琴1)设计一个简易电子琴;2)利用一基准脉冲产生1,2,3,。
北京印刷学院EDA课程设计报告课程题目:基于FPGA的洗衣机控制器的设计课程名称:EDA技术课程设计院(系):信息与机电工程学院专业:电子信息工程姓名:薛大神学号:098888888指导老师:xxx实习日期:2012年6月28日-6月30日目录1.系统设计 (3)1.1 设计要求 (3)1.2 总体设计方案 (3)1.2.1 设计思路 (3)1.2.2 系统组成 (3)2. 单元硬件电路设计 (4)2.1 键盘模块 (4)2.2 显示模块 (4)2.3 中心控制模块 (4)3. 软件设计 (4)3.1 控制模块程序设计 (5)3.2 显示译码程序设计 (5)3.3 按键去抖程序设计 (5)3.4 分频模块程序设计 (6)4. 系统仿真测试 (6)4.1 控制模块仿真 (6)4.2 按键去抖模块仿真 (7)4.3 分频模块仿真 (7)4.4 控制器操作演示 (8)附录一使用说明 (9)附录二电路原理图 (9)附录三管脚分配图 (9)附录四程序清单 (10)摘要:洗衣机控制电路由一片altera公司的cyclone2系列EP2C35F672C6的FPGA 作为中心控制器加上必要的外围电路组成,实现对洗衣机工作状态的控制。
芯片编程采用Quartus2作为开发工具,由控制模块,分频模块,按键去抖模块,显示译码模块组成,顶层使用原理图实现,底层由Verilog HDL语句实现。
中心控制器FPGA根据控制键盘的信号,向洗衣机发出正传,反转,待机信号,并通过数码管和LED灯显示当前的状态及剩余时间。
该洗衣机控制电路可以方便快捷的实现对洗衣机的控制和状态的显示功能。
关键字:洗衣机 FPGA Verilog HDL语言 cyclone21.系统设计1.1设计要求1.洗衣机的状态为待机5s→正转60s→待机5s→反转60s→,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。
2.可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。
1、EDA技术发展及介绍 (1)1.1EDA技术的介绍 (2)1.2 EDA技术的发展 (2)1.3 EDA技术的发展趋势 (3)2、总体方案设计 (4)2.1设计内容 (4)2.2设计方案比较 (4)2.3方案选择 (5).2.4 设计框图 (5)3、特殊器件的介绍 (6)3.1 CPLD器件介绍 (6)3.2 FPGA器件介绍 (6).4. 单元模块及软件设计 (8)4.1 电路原理图 (8)4.2有源晶振电路 (8)4.3供电电路 (9)4.4 PS配置电路 (10)4.5 软件设计 (10)5.仿真 (15)5.1仿真 (15)5.2 生成的原理框图: (15)6.系统调试及结果分析 (16)7.总结及体会 (16)7.1 设计小结 (16)7.2 设计收获 (16)7.3 致谢 (16)8. 参考文献 (18)1、EDA技术发展及介绍1.1EDA技术的介绍EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
HDL硬件描述语言就是指对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种新兴语言。
它是文本的形式描述硬件电路的功能,信号连接关系以及时序关系。
它虽然没有图形输入那么直观,但功能更强,可以进行大规模,多个芯片的数字系统的设计。
设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。
2012年06月第16期科技视界SCIENCE &TECHNOLOGY VISION 科技视界Science &Technology Vision0前言当代,快节奏高质量的生活,使洗衣机越来越受到人们的青睐。
洗衣机在市场发展中备受欢迎,日渐成为人们生活中的必备品,因此革新洗涤技术成为业界人士非常关注的问题,越来越多的人投身于研究洗衣机[1],探索各种新的技术。
现代的电子设计技术的核心已趋转向基于计算机的电子设计自动化技术[2],即EDA(Electronic Design automation)技术,它以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,可以大大降低设计成本,缩短设计周期。
EDA 工具软件大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类,包括Protel、multiSIM10、OrCAD、Quartus II [3]、Matlab 等等,E⁃DA 设计方法分为图形输入和硬件描述文本输入[4]。
此次设计的基于EDA 的洗衣机控制器,以杭州康芯电子有限公司生产的GW48系列/SOPC/EDA 实验开发系统箱为硬件平台,Quartus II 6.0为软件平台,选择的目标芯片是Cyclone 系列EP1C6Q240C8,采用VHDL 语言输入法进行设计。
实验结果显示,系统运行良好,实现了全自动洗衣机的基本功能。
1研究内容本设计实现了对洗衣机整个过程的控制,主要研究内容如下:(1)上电复位后的初始化,初始化的洗涤模式是标准模式b,定时间为15分钟;(2)启/停控制,每按一次启/停键,状态转换一次;(3)控制器正/反向输出信号,工作控制过程如图1所示;(4)洗涤定时精确度0.1,选择的洗衣模式不同,正反基于EDA 的洗衣机控制器设计姚毅陈艳风(湖南人文科技学院通信与控制工程系湖南娄底417000)【摘要】EDA 技术融合了大规模集成电路制造技术、FPGA/CPLD 编程下载和自动检测等技术,利用EDA 技术设计系统可以大大的降低设计成本,缩短设计周期。
※※※※※※※※※※※※※※※※※※※※※※※※EDA课程设计报告书课题名称基于EDA的全自动洗衣机控制器设计姓名学号院系专业指导教师一、设计任务及要求:1.强洗:洗涤18分钟,漂洗14分钟,甩干4分钟。
2.标准:洗涤14分钟,漂洗8 分钟,甩干4分钟。
3.弱洗: 洗涤10分钟,漂洗6 分钟,甩干4分钟。
4.有强制开洗衣机盖的能力。
5.可实行多次洗衣的功能。
6.有启动和暂停和再重起的功能。
指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩验收盖章年月日基于EDA的全自动洗衣机控制器设计1设计目的《EDA技术与应用》课程是电子信息工程、自动控制、计算机科学与工程等专业的技术课之一,具有很强的工程实践性。
通过本次课程设计来掌握现代硬件数字电路的软件化设计的基本方法、掌握应用VHDL及EDA工具开发设计各种电路的基本方法,以及对现代电子设计自动化技术有一定的了解,会把所学的专业知识更好的用到实践中去。
2设计的主要内容和要求(1)设计一简易全自动洗衣机控制器。
该控制器由两大状态A和B组成,每个状态分三个子状态,每个状态分别由选择A和选择B控制。
其中A为步进选择按纽,每步跳转一个子状态、B也为步进选择按纽,但每步选择B中的所有组合中的一种。
(2)过程启动由启动/暂停键控制(暂停键在过程启动后任意时间可暂停/恢复过程)。
(3)过程启动后洗衣机盖开启能任意控制。
(4)能设置实现多次洗衣的功能。
3整体设计方案本次设计大致可以分成两个模块来看待:控制端和工作端。
控制部分使用了三个进程来处理,进程一控制状态COUNT_M,进程二控制状态COUNT_N,进程三控制开始和暂停。
其中,COUNT_M:当连顺出现一个,两个,三个高电平时分别表示强洗,标准,弱洗三种状态的洗衣过程。
再者,COUNT_N:当出现一个,两个,三个高电平时分别表示洗涤,漂洗与甩干,甩干。
其次,信号START控制洗衣机的暂停和重新启动。
宜宾学院课程设计2010-12-19宜宾学院课程设计任务书课程EDA技术课程设计题目洗衣机控制器设计专业电子信息工程姓名谢小龙学号080304044主要内容、基本要求、主要参考资料等主要内容:设计一个洗衣机控制器,要求洗衣机有正转、反转、暂停三种状态。
设定洗衣机的工作时间,要洗衣机在工作时间内完成:定时启动→正转20秒→暂停10秒→反转20秒→暂停10秒→定时未到回到“正转20秒→暂停10秒→……”,定时到则停止,同时发出提示音。
基本要求:1、设计一个电子定时器,控制洗衣机作如下运转:定时启动→正转20秒→暂停10秒→反转20秒→暂停10秒→定时未到回到“正转20秒→暂停10秒→……”,定时到则停止;2、若定时到,则停机发出音响信号;3、用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由“开始”信号开始;4、三只LED灯表示“正转”、“反转”、“暂停”三个状态。
主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限指导教师专业负责人2010-12-19一、总体设计思想1、基本原理洗衣机控制器的设计主要是定时器的设计。
由一片FPGA和外围电路构成了电器控制部分。
FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。
对芯片的编程采用模块化的VHDL (硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。
顶层和中间层多数是由VHDL的元件例化语句实现。
中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。
东北石油大学课程设计技术课程设 ED洗衣机控制电子科学学电子信息工专业班学生姓学生学号指导教师2014年 3 月7日东北石油大学课程设计任务书课程EDA技术课程设计洗衣机控制器题目专业姓名电子信息工程学号主要内容、基本要求、主要参考资料等主要内容:设计一个洗衣机控制器,要求洗衣机有正转、反转、暂停三种状态。
设定洗衣机的工作时间,要洗2010秒?定时未到回到“正转秒正转20?暂停10秒?反转20秒?暂停衣机在工作时间内完成:定时启动? 10秒?……”,定时到则停止,同时发出提示音。
秒?暂停基本要求:暂?反转20秒?1、设计一个电子定时器,控制洗衣机作如下运转:定时启动正转20秒?暂停10秒?,定时到则停止;?……”定时未到回到“正转20秒?暂停10秒秒停10?、若定时到,则停机发出音响信号;2,按倒计时方式对洗涤过程作计时显示,直到时间到3、用两个数码管显示洗涤的预置时间(分钟数)”信号开始;停机;洗涤过程由“开始三个状态。
“反转”、“暂停”正转4、三只LED灯表示“”、主要参考资料:,2005. .EDA技术实用教程(第二版). 北京:科学出版社潘松著[1],2006. 电子技术基础模拟部分. 北京:高教出版社[2] 康华光主编.,2003.北京:高教出版社.数字电子技术基础. [3] 阎石主编2014.3.7 完成期限指导教师专业负责人日年2014 33月一、设计思想1.基本原理洗衣机控制器的设计主要是定时器的设计。
由一片FPGA和外围电路构成了电器控制部分。
FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。
对芯片的编程采用模块化的VHDL (硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。
顶层和中间层多数是由VHDL 的元件例化语句实现。
中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。
EDA课程作业报告——洗衣机控制器学院电气学院专业建筑电气与智能化班级092 班姓名何涛学号109035039浙江科技学院2012年10月29日目录1.设计内容与目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.1课题选择. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2设计思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12.程序设计与思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 2.1定义输入输出和中间变量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2.2分频. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2.3停机与复位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.4设定定时时间(分)与复位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.5工作状态选择. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.6工作状态输出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42.7数码管选择与显示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43.结果截图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 3.1程序框图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 3.2引脚设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53.3仿真波形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64.调试中遇到的问题和解决方法. . . . . . . . . . . . . . . . . . . . . . . . .65.心得与体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66.附录:所有程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71.设计内容与目的1.1课题选择项目5:洗衣机控制器 ● 设计要求: ● 设计一个洗衣机洗涤程序控制器,控制洗衣机的电机作如下规律运转:●用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运转,洗涤中按倒计时方式对洗涤过程作计时显示,用LED 表示电机的正、反转,如果定时时间到,则停机并发出音响信号。
1.2设计思路根据课题要求,首先需要一个输入,设定定时时间,然后计时启动,分别在0秒、20秒、30秒、50秒时输出正传、暂停、反转、暂停的信号并保持,60秒时正好一个循环,所以可以每次循环结束后计数,与设定定时时间比较,判断后选择停止(蜂鸣器发出警报)或继续循环输出。
由于使用的EPM240T100C5开发板上引脚是低电平有效,所以要讲没有用到的引脚全部设置高电平,在主菜单Assignments \ Device \ Device & Pin Option \ Unused Pins 下拉菜单选择As input tri-stated 。
2.程序设计与分析2.1定义输入输出和中间变量clk50mhz 是芯片晶振输入;beep 是蜂鸣器输出;led1、led2、led3分别代表电机正转、反转、暂停;ledout 是7位数码管输出;shuout 是数码管选择输出;start 是电机开关,start=0,则电机启动,start=1则电机停止;count,count1,count2,counter,count1,都是计数变量;num 存储定时时间;flag 是选择工作状态信号。
定时启动 正转(20秒) 暂停(10秒)反转(20秒) 暂停(10秒)停止定时到定时未到2.2分频将50mhz晶振分频,其中200hz用于扫描数码管,50hz用于输入按键的消抖,1hz用于计数单位。
2.3停机与复位当内部计数count2等于定时时间num时,表示定时时间到了,控制电机停机en=0,start=0时,复位en=1。
2.4设定定时时间(分)与复位每输入set定时时间增加1分钟,到9之后回到0,最多定时9分钟,输入clr则定时清02.5工作状态选择根据计数,flag赋值,flag=0正转;flag=1暂停;flag=反转,;lag=3暂停;判断定时是否到,如到,则计数变量清零,否则继续循环。
2.6工作状态输出正转20秒,暂停10秒,反转20秒,暂停10秒。
2.7数码管选择与显示3.结果截图3.1程序框图:3.2引脚设置:3.3仿真波形:4.调试中遇到的问题和解决方法:按照计划编写完所有程序后第一次编译,错误很多,有漏写end的,有把变量名num 错写成sum的,有在两条子程序中对同一个变量赋值的,等等。
最后根据错误提示内容,找出错误并一一改正。
仿真时,因为实际所需频率过高,而把分频比例改小后再仿真,缩小仿真时间。
将程序下载到开发板上调试时,由于程序写的不够严谨,而出现的,定时到了之后虽然蜂鸣器发出警报,但表示电机正转、反转和暂停的LED灯继续循环交替亮着,然后再在程序中补写了一个“停机与复位”子程序,计时时间到了之后将所有计数器清0,并且控制使能信号en阻止程序运行,也就没有了输出。
另外,由于1hz、50hz、200hz变量定义问题,只能定义输出引脚,否则会随机选择引脚输出,还是自己定义一下引脚好了。
5.心得与体会:再一次的体验到了细心对一个编程者的重要性,和程序的规范性对于程序的重要性,这些平时我们忽略的问题,其实有时候关乎着我们编程的成功率;再者,在verilog语言中,我们必须注意其与C语言的异同,比如格式和变量定义,还有模块的调用,和时钟信号的应用。
还有,verilog HDL设计语言是一门很好的硬件描述语言,可以直白的描述实际的电路,实际的系统模型,易懂而且易于实现,我觉得在以后多加练习,可以对以后的学习和工作带来莫大的帮助。
这次期末的课程设计就是对我们的一次考核,也可以说是一次考验,在平时做题目比较简单,而这次课程设计综合考核了我们的学习结果。
课程设计培养了学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
这次的课题洗衣机控制器的设计,让我对身边的电气控制的设计产生了兴趣,希望这可以成为我今后不断前进的第一个动力。
6.附录:所有程序:module xiyiji1(clk50mhz,clr,set,start,led1,led2,led3,beep,_1hz,_200hz,_50hz,ledout,shuout); input clk50mhz,clr,set,start;output reg led1,led2,led3,beep,_1hz,_200hz,_50hz,shuout;output reg [6:0] ledout;reg [3:0] flag,num,count2,counter1;reg [7:0] count1;reg [31:0] counter,count;reg en;//分频,从50mhz分频到200hzalways @(posedge clk50mhz)beginif(counter==32'd124999)begincounter<=1'b0;_200hz<=~_200hz;endelsebegin counter<=counter+1'b1;endend//分频,从200hz分频到50hzalways @(posedge _200hz)beginif(counter1==4'd9)begincounter1<=1'b0;_50hz<=~_50hz;endelsebegin counter1<=counter1+1'b1;endend//分频,从200hz分频到1hzalways @(posedge _200hz)beginif(count==32'd99)begincount<=1'b0;_1hz<=~_1hz;endelsebegin count<=count+1'b1;endend//设定时间(分)always @(posedge _50hz)beginif(!clr) begin num<=1'b0;endelsebeginif(num==4'd10)num<=1'b0;elseif(set==0)num<=num+1'b1;endend//停机&复位always @(posedge clk50mhz)beginif(!start)beginif(count2==num) begin en<=0; endendelse begin en<=1; endend//工作状态选择always @( posedge _1hz)beginif(!start)beginif(en)beginif(count1==8'd60)begincount1<=1'b0;count2<=count2+1'b1;endelse if(count2==num) begin count2<=1'b0;endelsebegincase(count1)8'd0 : flag<=2'd0;8'd20: flag<=2'd1;8'd30: flag<=2'd2;8'd50: flag<=2'd3;default:flag<=flag;endcasecount1<=count1+1'b1;endendelse begin count1<=1'b0;count2<=1'b0;endendelse begin count1<=1'b0;count2<=1'b0;endend//工作状态输出always @(posedge clk50mhz)beginif(!start)beginif(en)begincase(flag)2'd0: begin led1<=0;led2<=1;led3<=1; end2'd1: begin led1<=1;led2<=1;led3<=0; end2'd2: begin led1<=1;led2<=0;led3<=1; end2'd3: begin led1<=1;led2<=1;led3<=0; enddefault: begin led1<=1;led2<=1;led3<=1; endendcaseendelse begin beep<=0;led1<=1;led2<=1;led3<=1;endendelse begin beep<=1;led1<=1;led2<=1;led3<=1;end end//数码管显示always@(posedge clk50mhz)begincase (num)4'd0:ledout<=7'b1000000;4'd1:ledout<=7'b1111001;4'd2:ledout<=7'b0100100;4'd3:ledout<=7'b0110000;4'd4:ledout<=7'b0011001;4'd5:ledout<=7'b0010010;4'd6:ledout<=7'b0000010;4'd7:ledout<=7'b1111000;4'd8:ledout<=7'b0000000;4'd9:ledout<=7'b0010000;default:ledout<=7'b1000000;endcaseend//选择数码管always@(posedge _200hz)begin shuout<=~shuout;endendmodule。