电子技术基础课程设计Word格式.docx
《电子技术基础课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《电子技术基础课程设计Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
1.课程设计的课题
设计一个智能洗衣机(全自动洗衣机)控制器,能够实现洗衣,漂洗和脱水的功能。
2.课程设计的要求
能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机的工作模式和所剩的工作时间用数码管显示出来,能够将洗衣机当前所处的状态用发光管或者数码管显示出来。
【模式1】:
洗特别脏的衣服(洗衣30秒钟)
【模式2】:
洗脏的衣服(洗衣20秒钟)
【模式3】:
洗一般的衣服(洗衣10秒钟)
【模式4】:
漂洗(每次漂洗5秒钟)
【模式5】:
脱水(每次脱水3秒钟)
【洗衣全过程】:
洗衣+脱水+漂洗+脱水+漂洗+脱水,注水完成使用外部传感器S=1表示。
【漂洗模式】:
漂洗+脱水+漂洗+脱水,注水完成使用外部传感器S=1表示。
【脱水模式】:
脱水。
【注】:
操作完毕使用蜂鸣器鸣叫两秒提示。
1.设计前提概述
本设计任务主要是实现各个模式之间的切换以及各个状态之间的转变。
课题已经要求有模式一到五这五个模式,故按照这五个模式来思考。
另外,课题也明确要求了三个状态:
洗衣,漂洗与脱水。
但是,注水是洗衣机必须进行的操作,也占有整个模式中的部分时间,所以也将注水当作一种状态,而且洗衣和漂洗之前都必须注水。
综上,设计的模式有五个:
模式一,模式二,模式三,模式四和模式五。
设计的状态有四个:
注水,洗衣,漂洗与脱水,分别对应s1,s2,s3,s4。
2.ASM图
每个状态都有规定的具体时间,时间到了,发生转换。
图中T1,T2,T3,T4,T5,T6,TT表示用时间来控制状态的转换。
在程序中,有具体的T1,T2,T3,T4,T5,T6,TT的表示,为作图简便,图中不作具体说明。
3.状态图
图中S1,S2,S3,S4分别对应状态注水,洗衣,漂洗,脱水。
而图中的T1,T2,T3,T4,T5,T6,TT同ASM图中的符号,在ASM图中已说明,详情见程序,这里不重复说明。
4.输入输出设计
本程序共有5个模式:
模式一,模式二,模式三,模式四,模式五。
4个状态:
注水,洗衣,漂洗,脱水。
设计6个输入按键,分别为K1,K2,K3,K4,K5,K6。
K1为控制模式一的按键;
K2为控制模式二的按键;
K3为控制模式三的按键;
K4为控制模式四的按键;
K5为控制模式五的按键;
K6为控制洗衣机工作的按键。
输出设备有一个发光二极管,四个数码管。
发光二极管亮表示注水完成,发光二极管灭表示正在注水。
一个数码管用来显示当前的模式,1,2,3,4,5分别表示模式一,模式二,模式三,模式四,模式五;
一个数码管用来表示当前的状态,1,2,3,4分别表示注水,洗衣,漂洗,脱水状态;
两个数码管用来显示当前模式所剩下的时间,时间以1递减至0。
modulewashclother(clk,clkk,k1,k2,k3,k4,k5,k6,state,mode,ttime,alarm,zhushui);
inputclk;
//整个程序的时钟信号
inputclkk;
//扬声器的时钟信号
inputk1;
//模式一的控制按键
inputk2;
//模式二的控制按键
inputk3;
//模式三的控制按键
inputk4;
//模式四的控制按键
inputk5;
//模式五的控制按键
inputk6;
//工作使能按键
output[3:
0]state;
//状态数码管显示信号
0]mode;
//模式数码管显示信号
output[7:
0]ttime;
//模式的总时间
outputalarm,zhushui;
regzhushui;
//注水信号
regalarm;
//扬声器信号
reg[3:
0]jiao;
//扬声器响的时间计时
reg[7:
regwork;
//开始工作信号
regover;
//结束信号
always@(posedgeclkorposedgek6)
begin
if(k6==1)//k6按下,work为1,开始工作
work<
=1;
else//k6未按,模式初始化
over<
jiao<
=4'
b0000;
=0;
if(k1==1)//初始化为模式一
ttime<
=8'
h55;
mode<
b0001;
end
elseif(k2==1)//初始化为模式二
h45;
b0010;
elseif(k3==1)//初始化为模式三
h35;
b0011;
elseif(k4==1)//初始化为模式四
h20;
b0100;
elseif(k5==1)//初始化为模式五
h5;
b0101;
else//初始化为0
state<
h0;
if(work==1)//开始从某一模式工作
case(mode)//确定模式
4'
b0001:
begin//模式一的过程
if(((ttime>
8'
h53)&
&
(ttime<
h56))||((ttime<
h21)&
(ttime>
h18))||((ttime<
h11)&
h8)))
begin//注水状态
zhushui<
=1'
b0;
end
else
b1;
if((ttime>
h23)&
h54))
//洗衣状态
h13)&
h19))||((ttime<
h9)&
h3)))
//漂洗状态
h20)&
h24))||((ttime<
h14)&
h10))||((ttime<
h4)&
h0)))
//脱水状态
if(ttime>
h0)
begin//时间递减到0
if(ttime[3:
0]==4'
b0000)
ttime[3:
0]<
b1001;
ttime[7:
4]<
=ttime[7:
4]-1'
elsettime[3:
=ttime[3:
0]-1'
b0010:
begin//模式二的过程
h43)&
h46))||((ttime<
h44))
0)
b0011:
begin//模式三的过程
33)&
36))||((ttime<
21)&
18))||((ttime<
11)&
8)))
h34))
b0100:
begin//模式四的过程
h18)&
h21))||((ttime<
h10)&
h14))||((ttime<
b0101:
begin//模式五的过程
h3)&
h6))
if((ttime<
h0))
b0000:
begin//停止工作
alarm<
endcase
if((over==1)&
(ttime[7:
0]==8'
h1))
//扬声器鸣叫2S
if(jiao>
4'
=~clkk;
//扬声器鸣叫
=jiao-1'
//鸣叫时间递减到0
else
endmodule
1.模式一的仿真
2.模式二的仿真
3.模式三的仿真
4.模式四的仿真
5.模式五的仿真
每次课程设计都有些让我们即恐惧又兴奋,因为它充满挑战。
本次课程设计亦是如此,趣味性强,同时也可以学到很多东西。
在这次课设中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在课设过程中,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
我不仅了解了数字系统的组成,学会了数字系统的设计方法及数字系统由上向下设计法的工具-ASM图,而且熟悉了现代数字系统的实现方法:
我还掌握了分层次化实现数字电路与系统的方法,了解了使用硬件描述语言(HardwareDescriptionLanguage)对数字电路与系统进行建模、仿真与实现的方法。
课设的过程永远是那么的纠结,那么的刺激,那么的值得回味,在某种意义上说,这是一种锻炼,一种知识的积累,能力的提高。
完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。
很少有人会一步登天吧。
永不言弃才是最重要的。
而且,这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
虽然大二学过数电,对Verilog语言有一定的涉猎,但是并不熟悉,未掌握其核心内容,这次课程设计,不仅复习了数电知识的内容,而且使我对Verilog语言有了更进一步的了解,不管是从结构上,还是从语法上。
Verilog语言是一门很实用的语言,应该说是一门很精确的语言。
我很高兴能顺利做完这门课程设计,迎接下一个挑战吧。