1、智能洗衣机电子技术基础课程设计智能洗衣机控制器院 系: 控制科学与工程系 专 业: 自动化 班 级: 0807班 姓 名: 李公兵 学 号: u2000813726 指导教师: 龚军 一、课程设计名称 智能洗衣机控制器 二、 设计内容与要求 1、 设计一个智能洗衣机控制器,能够实现洗衣,漂洗和脱水的功能。 2、要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机设定的工作模式(15)和整个过程所剩的工作时间用数码管显示出来(时间分辨率为1分钟),能够将洗衣机当前所处的状态(注水,洗衣,排水,甩干)用发光管或者数码管显示出来。【模式1】: 洗衣模式强力洗( 洗衣30分钟)
2、【模式2】 :洗衣模式普通洗 (洗衣20分钟)【模式3】 :洗衣模式轻柔洗(洗衣10分钟)【模式4】 :漂洗模式【模式5】 :甩干模式注:在以上5个模式中,每次注水1分钟,漂洗5分钟,排水1分钟,甩干1分钟,模式13的洗衣时间如上所示,具体的洗衣步骤如下:【模式13】:注水-洗衣-排水-甩干-注水-漂洗-排水-甩干 -注水-漂洗-排水-甩干。【模式4】:注水-漂洗-排水-甩干-注水-漂洗-排水-甩干。【模式5】:甩干。【要求】:实现逻辑控制过程,可以选择性的加入注水口无水报警等人性化的状态提示,操作完毕使用蜂鸣器鸣叫两秒提示。 3、画出洗衣机控制器的状态机,写出状态编码方案。 4、 用Veri
3、log语言对设计进行描述,设计一个测试方案,并能够下载到实验板上调试成功。 5、 写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。 并谈谈此次实验的收获、感想及建议3、分析设计 1、五个模式:模式1、模式2、模式3、模式4、模式5四个状态:注水、洗衣(漂洗)、排水、甩干 2、端口描述:输入端口:Cp:输入50Mhz的频率信号 Cr:清零信号 Model15:模式选择输出端口:Export:显示模式 Light:洗衣完成显示灯3、状态流程图4、模块设计 1、分频模块 因为出入的是频率为50Mhz的方波,要变成频率为1hz的方波,必须对其进行分频。 代码如下: module f
4、enpin (in,out); input in; output out; reg 24:0 cnt; reg out; always (posedge in) begin if(cnt=d249999) begin out=out; cnt=0; end else cnt=cnt+1; end Endmodule波形仿真如下:(由于50M是一个很大的数字,故仿真时看不到输出波形的跳变)2、译码模块 时间需要用数码管显示出来,故必须对由七段显示器组成的数码管进行译码。 代码如下:module yima(out,in);input 3:0 in;output 6:0 out;reg 6:0 ou
5、t;always (in)begin case(in) 4h0: out = 7b1000000; 4h1: out = 7b1111001; 4h2: out = 7b0100100; 4h3: out = 7b0110000; 4h4: out = 7b0011001; 4h5: out = 7b0010010; 4h6: out = 7b0000010; 4h7: out = 7b1111000; 4h8: out = 7b0000000; 4h9: out = 7b0011000; endcaseendEndmodule仿真波形如下(假设输入为十进制5)说明:输入为0101(即十进制数
6、5),输出的为十进制数18(二进制0010010,即第二位和第五位为1),显示在数码管上的恰好是十进制数5。3、计数模块(60进制减计数器) 程序片段: begin if(Second3:0!=0) Second3:0 = Second3:0 - 4d1; else if(Second3:0=0 & Second7:4 != 0) begin Second3:0 =4d9; Second7:4 = Second7:4-4d1; end else if(Second7:4=0 & Second3:0=0 & Minute3:0!=0) begin Second3:0 = 4d9; Second7
7、:4 = 4d5; Minute3:0 = Minute3:0 - 4d1; end else if(Second7:4=0 & Second3:0=0 & Minute3:0=0 & Minute7:4!=0) begin Second3:0 = 4d9; Second7:4 = 4d5; Minute3:0 = 4d9; Minute7:4 =d249999) begin out=out; cnt=0; endelse cnt=cnt+1;endEndmodulemodule yima(out,inG);input 3:0 in;output 6:0 out;reg 6:0out;alwa
8、ys (in)begin case(in) 4h1: out = 7b1111001; 4h2: out = 7b0100100; 4h3: out = 7b0110000; 4h4: out = 7b0011001; 4h5: out = 7b0010010; 4h6: out = 7b0000010; 4h7: out = 7b1111000; 4h8: out = 7b0000000; 4h9: out = 7b0011000; 4h0: out = 7b1000000; endcaseendEndmodulemodule Wash(cp,rct,moshi,out,over,hm,lm
9、,hs,ls);input cp,rct;input 4:0 moshi;output 4:0 out;output over;output6:0 hm,lm,hs,ls;reg 4:0 out;reg over;reg 7:0 sec,min;reg xop;reg 4:0 zhuangtai;reg3:0 bu;wire Finish;parameter zhuangtai1=4b0001,zhuangtai2=4b0010, zhuangtai3=4b0011,zhuangtai4=4b0100,Cloze=4b0110; assign Finish=(sec3:0=0) & (sec7
10、:4=0) & (min3:0=0) & (min7:4=0); always (posedge cps)begin if(rct) begin zhuangtai=zhuangtai1; xop=1b0; sec3:0=0;sec7:4=0;min3:0=0;min7:4=0; bu=0; end if(zhuangtai=Cloze) over = 4b0001; else over = 4b0000; begin if(sec3:0!=0) sec3:0 = sec3:0 - 4d1; else if(sec3:0=0 & sec7:4 != 0) begin sec3:0 =4d9;
11、sec7:4 = sec7:4-4d1; end else if(sec7:4=0 & sec3:0=0 & min3:0!=0) begin sec3:0 = 4d9; sec7:4 = 4d5; min3:0 = min3:0 - 4d1; end else if(sec7:4=0 & sec3:0=0 & min3:0=0 & min7:4!=0) begin sec3:0 = 4d9; sec7:4 = 4d5; min3:0 = 4d9; min7:4 =4b1100) zhuangtai=Cloze; else begin min7:4=0;min3:0=0;sec7:4=5;se
12、c3:0=9; zhuangtai=zhuangtai2; bu=bu+2b1; end end zhuangtai2:begin if(xop=0) begin min7:4=2;min3:0=9;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; xop=1b1; bu=bu+2b1; end else begin min7:4=0;min3:0=4;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; bu=bu+2b1; end end zhuangtai3: begin min7:4=0;min3:0=0;sec7:4=5;s
13、ec3:0=9; zhuangtai=zhuangtai4; bu=bu+2b1; end zhuangtai4: begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai1; bu=bu+2b1; end default: zhuangtai=4b1100) zhuangtai=Cloze; else begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai2; bu=bu+2b1; end end zhuangtai2:begin if(xop=0) be
14、gin min7:4=1;min3:0=9;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; xop=1b1; bu=bu+2b1; end else begin min7:4=0;min3:0=4;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; bu=bu+2b1; end end zhuangtai3: begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai4; bu=bu+2b1; end zhuangtai4: begin min7:4=0;min3:
15、0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai1; bu=bu+2b1; end default: zhuangtai=4b1100) zhuangtai=Cloze; else begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai2; bu=bu+2b1; end end zhuangtai2:begin if(xop=0) begin min7:4=0;min3:0=9;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; xop=1b1; bu=bu+
16、2b1; end else begin min7:4=0;min3:0=4;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; bu=bu+2b1; end end zhuangtai3: begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai4; bu=bu+2b1; end zhuangtai4: begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai1; bu=bu+2b1; end default: zhuangtai
17、=4b0111) zhuangtai=Cloze; else begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai2; bu=bu+2b1; end end zhuangtai2:begin min7:4=0;min3:0=4;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai3; bu=bu+2b1; end zhuangtai3: begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai4; bu=bu+2b1; end zh
18、uangtai4: begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=zhuangtai1; bu=bu+2b1; end default: zhuangtai=Cloze; endcase 5b10000:case(zhuangtai) zhuangtai1:begin min7:4=0;min3:0=0;sec7:4=5;sec3:0=9; zhuangtai=Cloze; end default: zhuangtai=Cloze; endcase default: zhuangtai=Cloze; endcaseendalways (zhuangtai) begincase(zhuangtai) zhuangtai1:out=5b01000; zhuangtai2:out=5b00001; zhuangtai3:out=5b00010; zhuangtai4:out=5b00100; Cloze:out=5b10000; default:out=5b0000; endcaseendyima(lm,min3:0);yima(hm,min7:4);yima(ls,sec3:0);yima(hs,sec7:4);fenpin (cp,cps);endmodule
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1