Verilog数字电子技术洗衣机控制器.docx
- 文档编号:18206223
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:16
- 大小:346.95KB
Verilog数字电子技术洗衣机控制器.docx
《Verilog数字电子技术洗衣机控制器.docx》由会员分享,可在线阅读,更多相关《Verilog数字电子技术洗衣机控制器.docx(16页珍藏版)》请在冰点文库上搜索。
Verilog数字电子技术洗衣机控制器
2010学年度第一学期
电子技术基础课程设计
——智能洗衣机控制器
院系:
控制科学与工程系
专业:
自动化
班级:
1006班
姓名:
*******
学号:
********
指导教师:
课程设计名称
智能洗衣机控制器的设计
设计内容及要求
①设计一个智能洗衣机控制器,能够实现洗衣,漂洗和脱水的功能。
②要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机设定的工作模式(1~5)和整个过程所剩的工作时间用数码管显示出来(时间分辨率为1分钟),能够将洗衣机当前所处的状态(注水,洗衣,排水,甩干)用发光管或者数码管显示出来。
【模式1】:
洗衣模式--强力洗(洗衣30分钟)
【模式2】:
洗衣模式--普通洗(洗衣20分钟)
【模式3】:
洗衣模式--轻柔洗(洗衣10分钟)
【模式4】:
漂洗模式
【模式5】:
甩干模式
注:
在以上5个模式中,每次注水1分钟,漂洗5分钟,排水1分钟,甩干1分钟,模式1~3的洗衣时间如上所示,具体的洗衣步骤如下:
【模式1~3】:
注水->洗衣->排水->甩干->注水->漂洗->排水->甩干
->注水->漂洗->排水->甩干。
【模式4】:
注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
【模式5】:
甩干。
【要求】:
实现逻辑控制过程,可以选择性的加入注水口无水报警等人性化的状态提示,操作完毕使用蜂鸣器鸣叫两秒提示。
③画出洗衣机控制器的状态机,写出状态编码方案。
④用Verilog语言对设计进行描述,设计一个测试方案,并能够下载到实验板上调试成功。
⑤写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
并谈谈此次实验的收获、感想及建议
系统设计
1系统框图与说明
本次设计的重点在于智能控制器状态之间转换的条件和关系,并且在此基础上输出相应的显示。
图一系统结构框图
Pausewarn
Reset
Mode1
Mode2
Mode3
Mode4
Mode5
输入端口描述
Reset:
复位
Mode1-5:
模式选择
Pause:
暂停启动
Warn:
报警
2状态转换图
洗衣机共分为5个模式,4个状态。
模式分别为MODE1强力洗,MODE2普通洗,MODE3轻柔洗,MODE4漂洗,MODE5甩干;状态分别为state0注水,state1洗衣,state2排水,state3甩干。
另外,为使洗衣机增添功能,添加了两个个状态,一个为初始状态state00,另一个为cloze,即为洗衣完成时的状态。
图二状态转换图
3输入输出设计(按键,数码管,发光管,蜂鸣器)
控制器设定有8个按键,其中5个为选择模式的按钮,另外一个则是控制器的复位键reset。
当按下reset的时候,控制器回复到初始状态。
还有一个是表示无水时的传感信号,最后一个则是增加的控制洗衣机暂停和再启动的按键。
输出数码管也有6个,其中两个分别显示控制器当前状态和模式,另外四个用来表示当前状态所剩余时间。
发光二极管设定了两个,其中一个表示洗衣机水箱无水时的报警显示,另一个是表示洗衣完成时的显示。
相应的,在这两个发光管亮起时,蜂鸣器发出声音。
系统仿真
1各工作模式仿真波形
图三mode1状态转换
图四mode2状态转换
图五mode3状态转换
图六mode4状态转换
图七mode5状态转换
图八mode4中由注水向洗衣状态转换时细节显示
实验总结
1心得体会
本学期电子课程设计以老师多个命题,学生自由选择命题的形式进行。
趣味性强,同时也可以学到很多东西。
我们认为,在这学期的课设中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在课设过程中,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
我们采用Verilog语言作为执行核心,通过了种从无到有,从不会到自由运用的过程。
在某种意义上说,这是一种锻炼,一种知识的积累,能力的提高。
完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。
很少有人会一步登天吧。
永不言弃才是最重要的。
而且,这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
本次课程设计虽然结束了,却留下了很多遗憾,因为由于时间的紧缺和课程的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!
相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。
我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。
只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!
Tous,happinessequalssuccess!
快乐至上,享受过程,而不是结果!
认真对待每一个实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重要的东西,也是以后都将受益匪浅的!
2功能扩展
洗衣机设定了启动,暂停和在启动功能,在运用时显得更为人性化。
附录:
源程序
moduleauto_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)
begin
ts2<=4'd9;
ts1<=ts1-4'd1;
end
elseif(ts2==0&ts1==0&tm2!
=0)
begin
ts2<=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)begin
state<=state00;
flag<=1'b0;
step<=2'b00;
tm1<=0;tm2<=0;ts1<=0;ts2<=0;
end
if(fin)
case(sel)/*该进程控制各模式状态之间的转换*/
5'b00001:
case(state)/*MODE1的状态转换*/
state00:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0001;
end
state0:
begin
if(flag==0)
begintm1<=2;tm2<=9;ts1<=5;ts2<=9;
state<=4'b0110;
flag<=1'b1;
end
else
begintm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=4'b0010;
end
end
4'b0110:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0010:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
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
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state0;
step<=step+2'b1;
end
end
default:
state<=cloze;
endcase
5'b00010:
case(state)/*MODE2的状态转换*/
state00:
begintm1<=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
begintm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=4'b0010;
end
end
4'b0111:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0010:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0011:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0100;
end
4'b0100:
begin
if(step==2'b10)state<=cloze;
elsebegin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state0;
step<=step+2'b1;
end
end
default:
state<=cloze;
endcase
5'b00100:
case(state)/*MODE3的状态转换*/
state00:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0001;
end
state0:
begin
if(flag==0)
begintm1<=0;tm2<=9;ts1<=5;ts2<=9;
state<=4'b1000;
flag<=1'b1;
end
else
begintm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=4'b0010;
end
end
4'b1000:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0010:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0011;
end
4'b0011:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0100;
end
4'b0100:
begin
if(step==2'b10)state<=cloze;
elsebegin
tm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state0;
step<=step+2'b1;
end
end
default:
state<=cloze;
endcase
5'b01000:
begin/*MODE4的状态转换*/
case(state)
4'b0000:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0001:
begintm1<=0;tm2<=4;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0010:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0011:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=state+4'b0001;
end
4'b0100:
beginif(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
end
5'b10000:
begin/*MODE5的状态转换*/
case(state)
4'b0000:
begintm1<=0;tm2<=0;ts1<=5;ts2<=9;
state<=4'b0100;
end
4'b0100:
beginstate<=cloze;
end
defaultstate<=cloze;
endcase
end
default:
state<=state00;/*default语句,避免锁存器的产生*/
endcase
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog 数字 电子技术 洗衣机 控制器