电子技术课程设计基于Verylog的智能洗衣机控制器设计

上传人:汽*** 文档编号:484498263 上传时间:2022-08-30 格式:DOC 页数:44 大小:1,008.50KB
返回 下载 相关 举报
电子技术课程设计基于Verylog的智能洗衣机控制器设计_第1页
第1页 / 共44页
电子技术课程设计基于Verylog的智能洗衣机控制器设计_第2页
第2页 / 共44页
电子技术课程设计基于Verylog的智能洗衣机控制器设计_第3页
第3页 / 共44页
电子技术课程设计基于Verylog的智能洗衣机控制器设计_第4页
第4页 / 共44页
电子技术课程设计基于Verylog的智能洗衣机控制器设计_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《电子技术课程设计基于Verylog的智能洗衣机控制器设计》由会员分享,可在线阅读,更多相关《电子技术课程设计基于Verylog的智能洗衣机控制器设计(44页珍藏版)》请在金锄头文库上搜索。

1、实验报告项目名称 智能洗衣机控制器的设计 课程名称 电子技术课程设计 课程设计日期 2011/2/24 班 级 学 号 姓 名 成 绩 目录一、已知条件3二、性能指标要求3三、输入输出设计3四、模块对应器件的设计4五、ASM图设计4六、完整程序代码7七、管脚分配30八、时序仿真31九、实验总结43一、 已知条件用Verilog设计一个智能洗衣机控制器。 二、 性能指标要求 设计一个智能洗衣机(全自动洗衣机)控制器,能够实现洗衣,漂洗和脱水的功能。 要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机的工作模式和所剩的工作时间用数码管显示出来,能够将洗衣机当前所处的状态用

2、发光管或者数码管显示出来。【模式1】 :洗特别脏的衣服( 洗衣30秒钟)【模式2】 :洗脏的衣服 (洗衣20秒钟)【模式3】 :洗一般的衣服(洗衣10秒钟)【模式4】 :漂洗(每次漂洗5秒钟)【模式5】 :脱水(每次脱水3秒钟)【洗衣全过程】:洗衣脱水漂洗脱水漂洗脱水,注水完成使用外部传感器S=1表示。【漂洗模式】:漂洗脱水漂洗脱水,注水完成使用外部传感器S=1表示。【脱水模式】:脱水。【注】:操作完毕使用蜂鸣器鸣叫两秒提示。 画出洗衣机控制器的状态机,写出状态编码方案。 用Verilog语言对设计进行描述,设计一个测试方案,通过Muxplus对设计进行仿真验证。并能够下载到实验板上调试成功。

3、 写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。 并谈谈此次实验的收获、感想及建议三、 输入输出设计输入:1Hz时钟七个按键:复位启动模式选择注水完成洗衣全过程漂洗脱水输出:状态数码管,显示05模式选择数码管,显示05秒钟数码管,十位数码管、个位数码管,可显示030蜂鸣器四、 模块对应器件的设计 模式选择: 一个5进制加计数器,用数码管显示05。用一个按键做触发时钟模式1:30进制减计数器,用1Hz时钟模式2:20进制减计数器,用1Hz时钟模式3:10进制减计数器,用1Hz时钟模式4:5进制减计数器,用1Hz时钟模式5:3进制减计数器,用1Hz时钟三个组合选择:用三个按键

4、洗衣全过程:49进制减计数器,用1Hz时钟 (30+3+5+3+5+3=49)漂洗模式:39进制减计数器,用1Hz时钟(20+3+5+3+5+3=39)脱水模式:29进制减计数器,用1Hz时钟(10+3+5+3+5+3=29)注水完成:一个按键控制(S) 蜂鸣器:2进制减计数器。1Hz时钟启动:一个按键控制复位:一个按键控制五、 ASM图设计 a) 整机ASM图b) 控制器ASM图符号说明:CR:复位状态S1S5:模式1模式5 状态Mode:模式选择S:外部传感器,表示注水完成FullPro:全过程洗衣RinseMode:漂洗模式Beep:蜂鸣状态End:终止状态原理说明:用户可以选择单选模式

5、和组合模式:在单选模式下,用户选择5种模式中的一种,模式终止之后即进入蜂鸣报警(Beep)状态,不再进行其他模式。其中,模式14要保证注水完成(S=1)才能进行。在组合模式下:1、 用户如果选择的是模式1模式3(Mode=13),如果注水完成(S=1),则进行“洗衣(S1S3) 脱水(S5)漂洗(S4)脱水(S5)漂洗(S4)脱水(S5)”,洗衣过程的时间长短由用户选择的模式1模式3决定。2、 用户如果选择了模式4(Mode=4),如果注水完成(S=1),则进行“漂洗(S4)脱水(S5)漂洗(S4)脱水(S5)”3、 用户如果选择了模式5(Mode=4) ,则进行“脱水(S5)”组合模式结束后

6、,进入蜂鸣报警状态(Beep),系统终止。 六、 完整程序代码/=washer.v=/module washer(State,Mode,Second,Beep,CP,nCR,En,ModeCh,FullPro,Rinse,Dehy,_500hz,S);input CP,nCR,En,ModeCh,FullPro,Rinse,Dehy,_500hz,S;output7:0Second;output3:0State,Mode;output Beep;reg7:0Second;reg3:0State,Mode;reg Beep;reg ModeEnd;wire Mode_En; wire veryE

7、n,dirtyEn,normEn,rinseEn,dehyEn,fModeEn,rModeEn,dModeEn;wire Stop; supply1 Vdd;reg3:0State1,State2,State3,State4,State5,State6,State7,State8;reg7:0Second1,Second2,Second3,Second4,Second5,Second6,Second7,Second8;reg countEnd,countEnd1,countEnd2,countEnd3,countEnd4,countEnd5,countEnd6,countEnd7,countE

8、nd8; /*模式选择*/assign Mode_En=Vdd&(En);count5asc U1(Mode,ModeEnd,nCR,Mode_En,ModeCh);/*单选模式*/assign veryEn=Vdd&En&(Stop)&(FullPro)&(Rinse)&(Dehy)&(Mode=4b0001)&S;assign dirtyEn=Vdd&En&(Stop)&(FullPro)&(Rinse)&(Dehy)&(Mode=4b0010)&S;assign normEn=Vdd&En&(Stop)&(FullPro)&(Rinse)&(Dehy)&(Mode=4b0011)&S;a

9、ssign rinseEn=Vdd&En&(Stop)&(FullPro)&(Rinse)&(Dehy)&(Mode=4b0100)&S;assign dehyEn=Vdd&En&(Stop)&(FullPro)&(Rinse)&(Dehy)&(Mode=4b0101);verydirty U2(State1,Second1,countEnd1,CP,nCR,veryEn);/模式1dirty U3(State2,Second2,countEnd2,CP,nCR,dirtyEn); /模式2normal U4(State3,Second3,countEnd3,CP,nCR,normEn); /

10、模式3rinse U5(State4,Second4,countEnd4,CP,nCR,rinseEn); /模式4dehydration U6(State5,Second5,countEnd5,CP,nCR,dehyEn); /模式5/*组合模式*/assign fModeEn=Vdd&En&(Stop)&(FullPro)&(Rinse)&(Dehy)&(Mode=4b0001&Mode=4b0101);full U7(State6,Second6,countEnd6,CP,nCR,fModeEn,Mode,S);/全过程RinseMode U8(State7,Second7,countE

11、nd7,CP,nCR,rModeEn,S);/漂洗模式dehydration U9(State8,Second8,countEnd8,CP,nCR,dModeEn);/脱水模式/*选择切换模块*/always(veryEn or dirtyEn or normEn or rinseEn or dehyEn or fModeEn or rModeEn or dModeEn or nCR or countEnd)beginif(veryEn)begin Second=Second1;State=State1;countEnd=countEnd1; endif(dirtyEn)begin Secon

12、d=Second2; State=State2; countEnd=countEnd2; endif(normEn)begin Second=Second3; State=State3; countEnd=countEnd3; endif(rinseEn)begin Second=Second4; State=State4; countEnd=countEnd4; endif(dehyEn)begin Second=Second5; State=State5; countEnd=countEnd5; endif(fModeEn)begin Second=Second6; State=State6; countEnd=countEnd6; endif(rModeEn)begin Second=Second7; State=State7; countEnd=countEnd7; endif(dModeEn)begin Second=Second8; State=State8; countEnd=countEnd8; endif(nCR)begin Second=8h00; State=4b0000; countEnd=1b0; endif(countEnd=1b1)begin Second=8h00; State=4b0000; endend/*蜂鸣器模块*

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

当前位置:首页 > 大杂烩/其它

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