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

    EDA课程设计洗衣机控制器.doc

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

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

    EDA课程设计洗衣机控制器.doc

    北京印刷学院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 控制模块仿真··············································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次。 3具有紧急情况的处理功能。当发生紧急情况时,立即转入待机状态,紧急情况解除后,继续执行后续步骤; 4洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束1.2总体设计方案1.2.1设计思路题目要求设计一个洗衣机控制电路,实现对洗衣机工作状态的控制。设计分键盘模块,显示模块,中心控制模块,晶体振荡模块四部分。中心控制器FPGA根据控制键盘的信号,向洗衣机发出正传,反转,待机信号,并通过数码管和LED灯显示当前的状态及剩余时间。1.2.2系统组成洗衣机控制电路主要由键盘模块,显示模块,时钟分频模块,中心控制模块三部分组成组成。FPGA键盘模块(按键,拨码开关等)显示模块(数码管,LED灯等)晶体振荡模块(产生50MHz信号)图1-1 系统结构框图2单元硬件电路设计2.1键盘模块设有2两个按键rst,add;2个拨码开关start和en紧急状态开关。rst用于复位,当按下reset的时候,控制器回复到初始状态。,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工艺设计,裸片尺寸被尽可能最小的优化。采用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的信号,控制模块输出的倒计时输入给数码管显示译码模块,通过译码模块定时器的值可以在数码管上显示,控制模块由此1hz的方波信号可以控制洗衣机的正转、反转、待机和报警工作方式。按键消抖模块的作用是为了消除按键抖动而设立的。3.1控制模块程序设计如图3-1状态转换图与图3-2软件流程图所示,控制模块采用有限状态机实现对洗衣机工作状态的控制。启动start后,控制器首先进入待机s0状态,时间从5秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机正转s1状态,时间从60秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机待机s2状态,同理等待5秒;当t为零后,进入s3洗衣机发转状态,时间从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显示译码程序设计数码管显示译码模块主要功能是把定时器送来的值译码并通过数码管显示出来。fpga的Verilog HDL硬件语言是并行的这有别于软件的描述语言扫描方式。但在实验箱中,数码管已经将显码译码过程包含在相应的数码管内,故不需要单独对数码管显示进行仿真。3.3按键去抖程序设计在进行独立按键或者矩阵式按键的设计的时候,我们在按下键盘的时候其实并不只是按下去而是有一个抖动的过程,就连松手的过程也有抖动,然而这个抖动通常被人们所忽略,从而导致输入数据的错误和乱码,因此我们必须对按键进行按键的消抖处理。fpga的Verilog HDL语言是硬件描述语言,主要运用了状态机和延时的消抖方式。3.4分频模块程序设计由于使用的FPGA的输入时钟是50Mhz,定时模块的频率是1hz,因此需要进行两次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个上升沿脉冲,则无效,当按键时间大于等于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,start,add,fore,back,numa,numb,alarm,led,tim);input clk,rst,start,add,en; /en为紧急状态信号output fore,back,alarm;output 3:0numa,numb,tim; /numa为倒计时个位,numb为倒计时十位output 2:0led;reg 2:0led;reg 3:0tim;reg 3:0numa,numb;reg fore,back,alarm;reg 3:0count3;reg 3:0state;wire A;parameter s0=4'b0001,s1=4'b0010,s2=4'b0100,s3=4'b1000;always(posedge add or posedge rst) /循环次数count设置beginif(rst)count3<=1'b0;else beginif(start=0)beginif(count3<=14)count3<=count3+1'b1;elsecount3<=1'b0;endend end always(posedge clk or posedge rst) beginif(rst) /系统复位begin back<=1'b0; fore<=1'b0; numa<=4'b0000; numb<=4'b0000;state<=s0; led<=3'b001;alarm=1'b0;end elsebeginif(!en && start) /start为1,en为0则正常工作begin alarm<=1'b0; if(tim) /循环次数tim>0,开始工作 begin case(state)s0:begin if(numb=0&&numa=0) /时间为0,状态转移begin state<=s1;numa<=4'b0100;numb<=4'b0000;led<=3'b001;back<=1'b0;fore<=1'b0;end else begin state<=s0;led<=3'b100; back<=1'b1;fore<=1'b0;end ends1:begin if(numb=0&&numa=0)begin state<=s2;numa<=4'b1001;numb<=4'b0101;back<=1'b0;fore<=1'b1;led<=3'b010;end else begin state<=s1;led<=3'b001;back<=1'b0;fore<=1'b0;end ends2:begin if(numb=0&&numa=0)begin state<=s3;numa<=4'b0100;numb<=4'b0000;back<=1'b0;fore<=1'b0;led<=3'b001;end else begin state<=s2;back<=1'b0;fore<=1'b1;led<=3'b010;end ends3:begin if(numb=0&&numa=0)begin state<=s0;numa<=4'b1001;numb<=4'b0101;led<=3'b100;back<=1'b1;fore<=1'b0;end else begin state<=s3;back<=1'b0;fore<=1'b0;led<=3'b001;end enddefault:state<=s0; endcase if(numb,numa>0) /倒计时控制部分beginif(numa=0) /numa为0,则numa赋值9,numb自减1 begin numa<=4'b1001;numb<=numb-1'b1;endelse numa<=numa-1'b1;endif(numa=0 && numb=0 && state=s0 && !en && led=3'b100) begin /一次循环结束tim自减1 tim<=tim-1'b1; end end else begin back<=1'b0;fore<=1'b0;numa<=4'b0000; numb<=4'b0000;state<=s0;led<=3'b001;endend else if(en && start) /en为1,进入紧急状态begin back<=1'b0;fore<=1'b0;alarm<=1'b1;endelse /start为0,给循环次数tim赋值begin tim<=count3;numa<=4'b0000; numb<=4'b0000;alarm<=1'b0; end endend endmodule

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开