洗衣机程序实验报告.docx
- 文档编号:9880219
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:10
- 大小:111.16KB
洗衣机程序实验报告.docx
《洗衣机程序实验报告.docx》由会员分享,可在线阅读,更多相关《洗衣机程序实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
洗衣机程序实验报告
洗衣机程序实验报告
一.设计容
设计一个智能洗衣机的控制系统,能够实现进水、洗涤、脱水一系列自动过程。
采用EP2C5TC144实验板,控制器部分采用VerilogHDL语言编写,主体程序采用了状态机作为主要控制方式。
最后利用QuartusII进行仿真。
二.实现功能
当按下开始按键时,洗衣机开始工作,洗衣工作指示灯亮。
先注水1分钟,注水指示灯亮,当注水达一分钟时,注水停止,注水指示灯熄灭,进入洗涤过程。
洗涤过程要求洗衣桶正反转3次,洗涤过程完成后,进入脱水过程。
脱水指示灯亮,脱水一分钟后,再次注水一分钟,注水指示灯亮,再次脱水;整个脱水需要完成以上描述过程3次,完成后脱水指示灯灭,洗涤完成,洗衣工作指示灯灭。
三.洗衣机的工作状态
洗衣机控制器主要由状态机来描述,洗衣机工作共有6个状态:
空闲(idle)、注水(flood)、正转(wash1)、反转(wash2)、脱水(dry)、完成(finish)。
下图为洗衣机控制器的状态转移图:
四.设计思路
整个程序分为两个子模块,分频子模块与洗衣机状态控制器子模块。
1.分频模块
将20MHZ的晶振频率分频为1HZ的时钟频率供洗衣机状态控制器模块。
2.洗衣机状态控制器模块
Ls:
洗衣机开始工作的指示灯,洗衣完成后熄灭;
Lf:
注水灯,洗衣机注水时此灯点亮,注水完成后此灯熄灭;
Ld:
脱水灯,进入脱水过程此灯点亮,整个脱水过程完成后,此灯熄灭;
Forward:
电动机正转输出信号,当洗衣机正转时,forward=1;
Back:
反转输出信号,当洗衣机反转时,back=1;
Drain:
脱水指示信号,当洗衣机脱水时,drain=1;
Fw:
注水指示信号,当洗衣机注水时,fw=1。
五.程序设计
1.程序整体源代码
modulewmtest(clock,reset,ls,lf,ld,forward,back,drain,fw,start);
inputclock,reset,start;
outputls,lf,ld,forward,back,drain,fw;
wireclk_1hz;
fenpinufp(.clk(clock),.rst(reset),.clkout(clk_1hz));
washuwash(.clk(clk_1hz),.rst(reset),.start(start),.ls(ls),.ld(ld),.lf(lf),.forward(forward),
.back(back),.drain(drain),.fw(fw));
endmodule
modulefenpin(clk,rst,clkout);
inputclk,rst;
outputregclkout;
reg[24:
0]count;
always(posedgeclkorposedgerst)
begin
if(rst)
begin
count<=0;
clkout<=0;
end
elseif(count==25'd24_999_999)
begin
count<=0;
clkout<=~clkout;
end
else
count<=count+25'd1;
end
endmodule
modulewash(clk,rst,ls,lf,ld,forward,back,drain,fw,start);
inputclk,rst,start;
outputregls,lf,ld,forward,back,drain,fw;
reg[2:
0]n1,n2;
reg[3:
0]state;
reg[5:
0]times;
regs;
parameteridle=0,flood=1,wash1=2,wash2=3,wash3=4,dry=5,finish=6;
always(posedgeclkorposedgerst)
begin
if(rst)
begin
state<=idle;
lf<=1;ls<=1;ld<=1;forward<=1;back<=1;drain<=1;fw<=1;
times<=6'd0;
n1<=3'd0;n2<=3'd0;s<=0;
end
else
begin
case(state)
idle:
begin
if(start)
begin
ls<=0;
state<=flood;
end
else
state<=idle;
end
flood:
begin
if(n2==3)
begin
lf<=1;
fw<=1;
end
elsebegin
lf<=0;
fw<=0;
end
if(times==6'd60)
begin
times<=0;lf<=1;fw<=1;
if(s==1)
state<=dry;
else
state<=wash1;
end
elsebegin
times<=times+1;
state<=flood;
end
end
wash1:
begin
forward<=0;back<=1;
state<=wash2;
if(n1==3)
begin
forward<=1;
end
end
wash2:
begin
back<=0;forward<=1;
n1<=n1+1;
if(n1==3)
begin
state<=dry;
forward<=1;
back<=1;
end
else
state<=wash1;
end
dry:
begin
if(n2==3)
begin
ld<=1;
drain<=1;
end
elsebegin
ld<=0;
drain<=0;
end
if(times==6'd60)
begin
times<=0;
n2<=n2+1;
drain<=1;
if(n2==3)
begin
s<=0;
state<=finish;
end
else
begin
s<=1;
state<=flood;
end
end
elsebegin
times<=times+1;
state<=dry;
end
end
finish:
begin
ls<=1;
state<=idle;
end
endcase
end
end
endmodule
2.仿真实现
按下start按键后,洗衣机开始工作,ls=1;注水过程开始,fw=1,lf=1;60s注水过程完成后进入洗涤状态,fw=0,lf=0,且此时洗衣机先正转再反转重复此过程3次停止转动进入脱水过程;先脱水60s,此时drain=1,ld=1,之后注水60s,drain=0,fw=1,lf=1,重复3次后,脱水过程完成,ld=0;洗衣结束,ls=0。
3.引脚分配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 洗衣机 程序 实验 报告