EDA课程设计洗衣机控制器

上传人:s9****2 文档编号:432760550 上传时间:2022-09-23 格式:DOC 页数:15 大小:4.01MB
返回 下载 相关 举报
EDA课程设计洗衣机控制器_第1页
第1页 / 共15页
EDA课程设计洗衣机控制器_第2页
第2页 / 共15页
EDA课程设计洗衣机控制器_第3页
第3页 / 共15页
EDA课程设计洗衣机控制器_第4页
第4页 / 共15页
EDA课程设计洗衣机控制器_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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

1、北京印刷学院EDA课程设计报告课程题目:基于FPGA的洗衣机控制器的设计课程名称:EDA技术课程设计院 (系):信息与机电工程学院专 业:电子信息工程姓 名:薛大神学 号:098888888指导老师:xxx实习日期:2012年6月28日-6月30日目录1系统设计3 1.1 设计要求31.2 总体设计方案3 1.2.1 设计思路3 1.2.2 系统组成32. 单元硬件电路设计4 2.1 键盘模块4 2.2 显示模块4 2.3 中心控制模块43. 软件设计4 3.1 控制模块程序设计5 3.2 显示译码程序设计5 3.3 按键去抖程序设计5 3.4 分频模块程序设计64. 系统仿真测试6 4.1

2、控制模块仿真6 4.2 按键去抖模块仿真7 4.3 分频模块仿真7 4.4 控制器操作演示8附录一 使用说明9附录二 电路原理图9附录三 管脚分配图9附录四 程序清单10摘要:洗衣机控制电路由一片altera公司的cyclone2系列EP2C35F672C6的FPGA作为中心控制器加上必要的外围电路组成,实现对洗衣机工作状态的控制。芯片编程采用Quartus2作为开发工具,由控制模块,分频模块,按键去抖模块,显示译码模块组成,顶层使用原理图实现,底层由Verilog HDL语句实现。中心控制器FPGA根据控制键盘的信号,向洗衣机发出正传,反转,待机信号,并通过数码管和LED灯显示当前的状态及剩

3、余时间。该洗衣机控制电路可以方便快捷的实现对洗衣机的控制和状态的显示功能。关键字:洗衣机 FPGA Verilog HDL语言 cyclone21系统设计1.1设计要求1洗衣机的状态为待机5s正转60s待机5s反转60s,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。 2可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。 3具有紧急情况的处理功能。当发生紧急情况时,立即转入待机状态,紧急情况解除后,继续执行后续步骤; 4洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束1.2总体设计方案1.2.1设计思路题目要求设计一个洗衣机控制电路

4、,实现对洗衣机工作状态的控制。设计分键盘模块,显示模块,中心控制模块,晶体振荡模块四部分。中心控制器FPGA根据控制键盘的信号,向洗衣机发出正传,反转,待机信号,并通过数码管和LED灯显示当前的状态及剩余时间。1.2.2系统组成洗衣机控制电路主要由键盘模块,显示模块,时钟分频模块,中心控制模块三部分组成组成。FPGA键盘模块(按键,拨码开关等)显示模块(数码管,LED灯等)晶体振荡模块(产生50MHz信号)图1-1 系统结构框图2单元硬件电路设计2.1键盘模块设有2两个按键rst,add;2个拨码开关start和en紧急状态开关。rst用于复位,当按下reset的时候,控制器回复到初始状态。,

5、add用于初始状态下设置循环次数,start用于启动停止洗衣机。2.2显示模块 设有6个LED灯,3个数码管。3个LED灯用来表示当前状态, 2个LED表示电机转动方向,另一个LED灯表示紧急状态;2个数码管用来表示当前状态所剩余时间,1个数码管表示当前剩余循环次数。 但在实验箱中,数码管已经将显码译码过程包含在相应的数码管内,故不需要单独对数码管显示进行仿真。2.3中心控制模块中心控制模块是以一片altera公司的Cyclone2系列EP2C35F672C6的FPGA为主体,配合一些外围电路实现的。Cyclone2 系列FPGA采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最

6、小的优化。采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,Cyclone II 器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。3软 件 设 计对可编程逻辑器件FPGA的编程采用Quartus2作为开发工具,顶层使用原理图实现,底层由Verilog HDL语句实现。软件设计由控制模块,分频模块,按键去抖模块,显示译码模块四部分组成,由于输入时钟为50Mhz,因此使用了分频模块输出1hz的方波,给控制模块提供每1s自减1的信号,控制

7、模块输出的倒计时输入给数码管显示译码模块,通过译码模块定时器的值可以在数码管上显示,控制模块由此1hz的方波信号可以控制洗衣机的正转、反转、待机和报警工作方式。按键消抖模块的作用是为了消除按键抖动而设立的。3.1控制模块程序设计如图3-1状态转换图与图3-2软件流程图所示,控制模块采用有限状态机实现对洗衣机工作状态的控制。启动start后,控制器首先进入待机s0状态,时间从5秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机正转s1状态,时间从60秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机待机s2状态,同理等待5秒;当t为零后,进入s3洗衣机发转状态,时

8、间从60秒倒计时,如果没有到0秒则继续等待,时间自减;整个过程依次循环。紧急状态emergency,当按下紧急停止按钮后,处于正反转状态中的电机停止转动,同时紧急报警LED灯亮,因此紧急状态不设定独立状态状态转换图:S0: 待机状态 s1:正转状态 s2:待机状态 s3:反转状态S0S1S2S3t=0t=0t=0t=0t !=0t !=0t !=0t !=0图3-1状态转换图软件流程图:循环设置循环开始待机5秒正转60秒待机5秒反转60秒达到循环次数最大值循环结束循环次数未到报警开始图3-2软件流程图3.2显示译码程序设计数码管显示译码模块主要功能是把定时器送来的值译码并通过数码管显示出来。f

9、pga的Verilog HDL硬件语言是并行的这有别于软件的描述语言扫描方式。但在实验箱中,数码管已经将显码译码过程包含在相应的数码管内,故不需要单独对数码管显示进行仿真。3.3按键去抖程序设计在进行独立按键或者矩阵式按键的设计的时候,我们在按下键盘的时候其实并不只是按下去而是有一个抖动的过程,就连松手的过程也有抖动,然而这个抖动通常被人们所忽略,从而导致输入数据的错误和乱码,因此我们必须对按键进行按键的消抖处理。fpga的Verilog HDL语言是硬件描述语言,主要运用了状态机和延时的消抖方式。3.4分频模块程序设计由于使用的FPGA的输入时钟是50Mhz,定时模块的频率是1hz,因此需要

10、进行两次1000分频和一次50分频,从而得到1hz的时钟频率输入给定时模块。4系统仿真测试4.1 控制模块仿真如图4-1所示,rst置高电平,控制器复位,rst低电平后,add按下两次,设置循环次数为2,按下start后置为高电平,洗衣机开始工作。图4-1洗衣机正常运行的仿真图如图4-2所示,紧急状态发生,en变为高电平,洗衣机暂停工作,电机停止运转,紧急状态结束后,恢复原状态。图4-2紧急暂停仿真图如图4-3所示,紧急暂停结束,en恢复低电平,再次开始工作,进入下一循环。图4-3紧急状态结束,状态恢复4.2 按键去抖模块仿真如图4-4所示,当按键时间低于8个上升沿脉冲,则无效,当按键时间大于

11、等于8个上升沿,则按键有效图4-4按键去抖仿真4.3 100分频模块仿真如图4-5所示,为100分频模块仿真图4-5 100分频模块仿真4.4控制器操作演示图图4-6紧急暂停演示图此时,最右侧的数码管显示剩余循环次数3次,左面两个数码管显示本次电机正转还剩27s,而左侧第4个亮的LED灯表示当前电机停止,也就是处于紧急状态。状态灯(右侧第二个表示当前紧急状态停止)图4-6洗衣机反转演示图当前显示循环次数还有2次,电机正在反转,反转时间还剩5秒,控制器处于反转状态(右侧第三个LED绿灯)。附录一 使用说明 (1)电路上电后,先按下复位键rst复位,在Start拨码开关未闭合前可以由add按键开关设置总的工作循环次数,确定洗衣机控制器工作循环次数。(2)设定好允许工作时间后,闭合Start开关,洗衣机控制器开始工作。(3)可以看见指示待机LED灯亮5s,正转LED灯亮60S,待机LED亮5s,反转LED灯亮60s,如此反复直至工作允许时间为0。附录二 电路原理图图附录2 电路原理图附录三 管脚分配图图附录3 管脚分配图附录四 程序清单控制模块程序module washer(clk,rst,en

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号