欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    EDA洗衣机实验报告.doc

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

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

    EDA洗衣机实验报告.doc

    实训报告课程名称: ED(洗衣机控制的设计) 学生姓名: 肖忠亮 学 号: 专业班级: 计算机软件 南昌大学实训报告学生姓名: 肖忠亮 学 号: 专业班级: 计算机软件 实训类型: 验证 综合 设计 创新 实训日期: 实验成绩: 一、实训项目名称洗衣机控制电路二、实训目的1熟悉verilog语言的程序的设计。2. 熟悉Quatus II软件的使用。3. 熟练掌握代码对硬件的烧写。4使用verilog语言设计具有创新的硬件电路。三、实训要求1. 熟悉EDA的开发环境Quartus II软件的使用;2. 设计原理图或者功能模块;3. 根据原理图或者功能图编写代码;4. 实现洗衣机控制系统的仿真:四、实训基本原理(附原理图、源程序清单)控制功能说明:1. 洗衣机的工作状态为待机5秒,正转60秒,待机5秒,反转60秒,并用3个led灯和7段显示器表示工作的状态和显示相应工作状态下的时间。2. 可以自定义来控制洗衣机的循环次数。3. 具有紧急情况的处理功能,4. 设定循环次数递减到0的时候就立刻报警,以表示设定的循环次数已经结束。设计代码如下:module washing(CPA,S1,S2,GO_ST,ADD,ALARM,LED,LED1,LED2,LED3,LED4,cur_state); /LED12表示前2个数码管,34表后二个数码管 LED 洗衣机工作的的状态的显示input CPA; /时钟信号input GO_ST; /暂停和开启按钮(相当于洗衣机遇到经济情况的时候的处理)input S1; /电源开关input S2; /表示给增加循环次数的确定的按钮input ADD; /增加循环次数的开始output 2:0cur_state; /记录洗衣机的状态output ALARM; /洗完后洗衣机的警报灯output 3:0LED; /4个状态的灯管显示output 7:0LED1; /洗衣机工作的时间十位output 7:0LED2; /时间的个位显示output 7:0LED3; /记录洗衣要循环的次数十位显示output 7:0LED4; /循环次数的个位显示reg 3:0 LED; /不工作状态,启动状态,第一个5秒状态,60秒状态,第二个5秒状态,洗完了状态警报状态,停止状态。reg 7:0 LED1;reg 7:0 LED2;reg 7:0 LED3;reg 7:0 LED4;reg 2:0dec; /用来对COUNTER2的数量进行的变换和计算的标志位reg 2:0 state; /标明状态变换reg CPB; /分频的作用reg ALARM; /铃声的响起reg 35:0 i;reg 7:0 COUNTER1; /数码管的显示reg 7:0 COUNTER2; /洗衣机循环次数的显示reg 2:0 cur_state; /表示现在状态和下一个状态parameter 2:0 END=3'h0 ,READY=3'h1 ,FIRST=3'h2 ,SECOND='h3 ,THIRD='h4 ,FINALLY='h5, STOP='h6;/*initial begin dec=3'b000; /初始化dec是0 COUNTER2的数据不会变动 cur_state=END; COUNTER1='h00; COUNTER2='h00; end*/always (posedge CPA) /一千万分频(这要对应你的EDA开发板的时钟)begin if(i=) begin i=0; CPB<=1; end else begin i=i+1; CPB<=0; endendalways (cur_state or GO_ST) /洗衣状态的切换 begin case(cur_state) END:LED='b1111; /未开始状态灯全都灭了 READY:LED='b1110; /装备状态亮第一盏灯 FIRST:LED='b1101; /第一个5秒状态亮第二盏灯 SECOND:LED='b1011; /60状态是亮第三盏灯 THIRD:LED='b0111; /第二个5秒是亮第四盏灯 FINALLY:LED='b0000; /洗完了衣服灯全都亮 endcase if(GO_ST) LED='b0000; /暂停的状态下是灯全亮 endalways (S1 or S2 or state or GO_ST) /洗衣机是否开启的按钮S1按钮是一直要开启的状态,否则进入停住状态 begin if(S1 && cur_state=END) begin cur_state=READY; end else if(!S1) begin cur_state=END; end else if(S2 && cur_state=READY) cur_state=FIRST; /进入洗衣服的第一步阶 else begin case (state) /状态的变换 'b010:cur_state=FIRST; 'b011:cur_state=SECOND; 'b100:cur_state=THIRD; 'b101:cur_state=FINALLY; endcase end endalways (posedge CPB) /5,60 ,5 的循环过程的计时 begin if(!GO_ST) begin case (cur_state) READY: begin state='b000; COUNTER1='h05; end FIRST: begin if(COUNTER13:0=4'h0 && COUNTER17:4=4'h0) /出现了循环次数的过大现象 begin state=3'b011; COUNTER1='h60; end else if(COUNTER13:0='h0) begin COUNTER17:4=COUNTER17:4-'h01; COUNTER13:0='h9; end else COUNTER13:0=COUNTER13:0-'h01; end SECOND: begin if(COUNTER13:0=4'h0 && COUNTER17:4=4'h0) /出现了循环次数的过大现象 begin state=3'b100; COUNTER1='h05; end else if(COUNTER13:0='h0) begin COUNTER17:4=COUNTER17:4-'h01; COUNTER13:0='h9; end else COUNTER13:0=COUNTER13:0-'h01; end THIRD: begin if(COUNTER13:0='h0 && COUNTER17:4='h0) /出现了循环次数的过大 现象 begin if(COUNTER2='h00) /表示洗衣机循环也结束了 begin state=3'b101; /表示结束状态 ALARM='b1; COUNTER1='hee; /表示当洗衣机洗完了衣服后数码管就会显示ee的字母来提示用户衣服洗完了 dec=3'b011; end else begin state='b010; /进入FIRST状态 if(COUNTER23:0='h0) /下面是当做完了一个洗衣循环的时候就要减去一个循环次数 begin dec='b010; /表示对COUNTER2的高位进行减数据 end else dec='b001; /表示对低位的数据进行减少 COUNTER1='h05; /当一轮循环了就可以对COUNTER1进行从新赋值 end end else if(COUNTER13:0='h0) begin COUNTER17:4=COUNTER17:4-'h01; COUNTER13:0='h9; end else COUNTER13:0=COUNTER13:0-'h01; end END: begin ALARM='b0; COUNTER1='hff; /表示数码管都没有输出数据,都是黑屏的 COUNTER2='h00; /表示数码管都没有输出数据,都是黑屏的 dec=2'b100; state='b000; /当结束的时候就state不会影响的cur_state的值 end endcase end if(ADD && cur_state=READY) begin if(COUNTER23:0='h9 && COUNTER27:4='h9) /出现了循环次数的过大现象 COUNTER2=8'h01; else if(COUNTER23:0='h9) begin COUNTER27:4=COUNTER27:4+'h01; COUNTER23:0='h0; end else COUNTER23:0=COUNTER23:0+'h01; end else if(dec='b001) /dec的不同则COUNGER2变换是不同的 begin COUNTER23:0=COUNTER23:0-'h1; dec='b000; /当对个位数的数据改动后就不要进行改动了 end else if(dec='b010) begin COUNTER27:4=COUNTER27:4-'h1; COUNTER23:0='h9; dec='b000; /当对十位数的数据改动后就不要进行改动了 end else if(dec='b011) /表示洗衣机洗完了衣服 begin COUNTER2='hee; /数码管显示EE表示洗衣机洗完了衣服 dec='b000; /同样要对dec进行复位 end else if(dec='b100) /表示洗衣机被关闭 begin COUNTER2='hff; /数码管不显示 dec='b000; /对dec进行复位 end endalways (COUNTER17:4) /对应数据数码管的显示begin case (COUNTER17:4) 0:LED17:0='b; 1:LED17:0='b; 2:LED17:0='b; 3:LED17:0='b; 4:LED17:0='b; 5:LED17:0='b; 6:LED17:0='b; 7:LED17:0='b; 8:LED17:0='b; 9:LED17:0='b; 'he:LED17:0='b; /显示e 'hf:LED17:0='b; /黑屏,这个用EDN的状态 endcase end always (COUNTER13:0) begin case (COUNTER13:0) 0:LED27:0='b; 1:LED27:0='b; 2:LED27:0='b; 3:LED27:0='b; 4:LED27:0='b; 5:LED27:0='b; 6:LED27:0='b; 7:LED27:0='b; 8:LED27:0='b; 9:LED27:0='b; 'he:LED27:0='b; /显示e 'hf:LED27:0='b; /黑屏,这个用EDN的状态 endcase endalways (COUNTER27:4) begin case (COUNTER27:4) 'h0:LED37:0='b; 'h1:LED37:0='b; 'h2:LED37:0='b; 'h3:LED37:0='b; 'h4:LED37:0='b; 'h5:LED37:0='b; 'h6:LED37:0='b; 'h7:LED37:0='b; 'h8:LED37:0='b; 'h9:LED37:0='b; 'he:LED37:0='b; /显示e 'hf:LED37:0='b; /黑屏,这个用EDN的状态 endcase end always (COUNTER23:0) begin case (COUNTER23:0) 0:LED47:0='b; 1:LED47:0='b; 2:LED47:0='b; 3:LED47:0='b; 4:LED47:0='b; 5:LED47:0='b; 6:LED47:0='b; 7:LED47:0='b; 8:LED47:0='b; 9:LED47:0='b; 'he:LED47:0='b; /显示e 'hf:LED47:0='b; /黑屏,这个用EDN的状态 endcase endendmodule 波形图的分析开始S1信号高电位,即S1信号开始有效,洗衣机开始开启,进入状态1,当ADD高电位,循环计数的控制信号开启,图中红色的显示在ADD有效的情况下LED4显示的数据是2表示,累加到 了循环2次的情况最后遇到了S2信号,表示对累加的数据进行确认,到S2到低点位的时候,状态变成了2,即开始洗衣服了。 待机5秒状态图中红色线圈到了的是表示洗衣机待机5秒。同样LED工作灯的显示由14变成13的情况。 洗衣机转动60秒图中红色的圈是表示状态有待机5秒状态变成转动60秒状态,可以看到状态有2变成3,同样LED的工作灯的显示也发生了变换由13变成了11,同样LED1和LED2数据随着计时60秒倒计时显示。这里只是刚刚工作第一个循环周期,有LED4看出是B0,表示2. 进入第二次的待机5秒图中显示了状态4维持了5秒进入状态2,而工作的LED显示也发生相应的变换,到这里就完成了一个循环周期,LED4显示的是B0,这循环要一直到LED4变成00的情况表示洗衣机已经洗完了。 洗衣机进入结束状态当循环次数成立C0(即数码管显示的是0)最后一个循环过后进入洗完后报警状态,即有状态4变成了状态5,同样报警信号ALARM也变高了。 RT图的显示 下面是上面RT图的部分引脚的显示左边的引脚显示:右边引脚的显示:五、主要仪器设备、软件及耗材Quartus II ,EDA开饭板,电脑。六、实训步骤1.分析要设计的项目目的,功能。2.对各功能进行分析,划分模块。3.编写代码实现个功能模块。4.建工程,进行代码调试,成功后进行波形图的分析。5.波形分析没有问题,并且功能都能在波形图上显示。6.烧写到EDA开发板上进行试验。七、调试过程及处理结果上面已经分析很详细,这就不多加分析了。八、思考讨论题或体会或对改进实验的建议1这里的洗衣机控制系统都是通过灯的显示来表示洗衣机工作的如今状态,不够切实际。2.这个洗衣机控制系统不是很实际化,具有制动化。3.可以对EDA开发板添加转机来具有真实性和客观性。九、参考资料CPLD/FPGA与ASIC设计实践教程

    注意事项

    本文(EDA洗衣机实验报告.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开