JlJ
-X-
<八八一□u》
■j.s
图八mode4中由注水向洗衣状态转换时细节显示
实验总结
1心得体会
本学期电子课程设计以老师多个命题,学生自由选择命题的形式进行。
趣味性强,同时也可以学到很多东西。
我们认为,在这学期的课设中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在课设过程中,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
我们采用Verilog语言作为执行核心,通过了种从无到有,从不会到自由运用的过程。
在某种意义上说,这是一种锻炼,一种知识的积累,能力的提高。
完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。
很少有人会
步登天吧。
永不言弃才是最重要的
而且,这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
本次课程设计虽然结束了,却留下了很多遗憾,因为由于时间的紧缺和课程的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!
相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。
我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。
只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!
Tous,happinessequalssuccess!
快乐至上,享受过程,而不是结果!
认真对待每一个实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重要的东西,也是以后都将受益匪浅的!
2功能扩展洗衣机设定了启动,暂停和在启动功能,在运用时显得更为人性化。
附录:
源程序
module
auto_con(clk,clk2,clr,out,sel,mode,warn,speak,ts1,ts2,tm1,tm2,LEDW,LEDF);
inputclk,clr,clk2,warn;
input[4:
0]sel;
output[3:
0]out;
outputspeak,LEDW,LEDF;
output[3:
0]mode;
reg[3:
0]mode;
regLEDW,LEDF;
reg[3:
0]out;
reg[3:
0]state;
reg[1:
0]step;
output[3:
0]ts1,ts2,tm1,tm2;
reg[3:
0]ts1,ts2,tm1,tm2;
wirefin;
wirespeak;
regflag;
parameterstate0=4'b0001,state1=4'b0010,/*状态编码,采用二进制编码方式*/
state2=4'b0011,state3=4'b0100,state11=4'b0110,state12=4'b0111,state13=4'b1000,cloze=4'b0101,state00=4'b0000;
assignfin=((ts2==0)&(ts1==0)&(tm2==0)&(tm1==0));
/*蜂鸣器信号*/
/*该进程定义起始方式*/
/*模式编码,采用二进制编码方式*/
assignspeak=(warn||(state==cloze))&clk2;always@(posedgeclk)
begin
case(sel)
5'b00001:
mode<=4'b0001;
5'b00010:
mode<=4'b0010;
5'b00100:
mode<=4'b0011;
5'b01000:
mode<=4'b0100;
5'b10000:
mode<=4'b0101;
default:
mode<=4'b0000;
endcase
if(state==cloze)LEDF<=1'b1;/*洗衣完成时发光管发光*/
elseLEDF<=1'b0;
LEDW<=warn;
/*无水报警时发光管发光*/
begin
/*该部分控制倒计时*/
if(ts2!
=0)
ts2<=ts2-4'd1;
elseif(ts2==0&ts1!
=0)begints2<=4'd9;ts1<=ts1-4'd1;
end
elseif(ts2==0&ts1==0&tm2!
=0)begints2<=4'd9;ts1<=4'd5;tm2<=tm2-4'd1;
end
elseif(ts2==0&ts1==0&tm2==0&tm1!
=0)begin
ts2<=4'd9;
ts1<=4'd5;
tm2<=4'd9;
tm1<=tm1-4'd1;
end
end
if(clr)beginstate<=state00;flag<=1'b0;step<=2'b00;tm1<=0;tm2<=0;ts1<=0;ts2<=0;
end
if(fin)
case(sel)/*该进程控制各模式状态之间的转换*/
5'b00001:
case(state)/*M0DE1的状态转换*/
state00:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0001;
end
state0:
begin
if(flag==0)
begin
tm1<=2;tm2<=9;ts1<=5;ts2<=9;
state<=4'b0110;
flag<=1'b1;
end
else
begin
tm1<=0;tm2<=4;ts1<=5;ts2<=9;
end
4'b0110:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0010:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0011:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0100;
end
4'b0100:
begin
if(step==2'b10)state<=cloze;
else
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state0;step<=step+2'b1;
end
end
default:
state<=cloze;
endcase
5'b00010:
case(state)
/*M0DE2的状态转换*/
state00:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0001;
end
state0:
begin
if(flag=
=0)
begintm1<=1;tm2<=9;ts1<=5;ts2<=9;
state<=4'b0111;
flag<=1'b1;
end
else
begin
tm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=4'b0010;
end
end
4'b0111:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0010:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
end
4'b0011:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0100;
end
4'b0100:
begin
if(step==2'b10)state<=cloze;
else
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state0;
step<=step+2'b1;
end
end
default:
state<=cloze;
endcase
5'b00100:
case(state)
/*M0DE3的状态转换*/
state00:
beginstate<=4'b0001;
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
end
state0:
begin
if(flag=
=0)
begin
tm1<=0;tm2<=9;ts1<=5;ts2<=9;
state<=4'b1000;
flag<=1'b1;
end
else
begin
tm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=4'b0010;
end
end
4'b1000:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0010:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0011:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
4'b0100:
begin
if(step==2'b10)state<=cloze;
else
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state0;
step<=step+2'b1;
end
enddefault:
endcase
state<=cloze;
5'b01000:
begincase(state)4'b0000:
begin
/*MODE4的状态转换*/
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0001:
begin
tm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0010:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0011:
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0100:
begin
if(flag==0)
begin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0001;
flag<=flag+1'b1;
end
elsestate<=cloze;
end
default:
state<=cloze;endcase
case(state)4'b0000:
beginstate<=4'b0100;
end4'b0100:
beginenddefaultendcaseend
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=cloze;
state<=cloze;
default:
state<=state00;/*default语句,避免锁存器的产生*/endcaseend