首页 > 总结汇报 > 工作总结 / 正文
电子技术课程设计智能洗衣机控制器
2020-10-21 00:54:59 ℃电子技术基础课程设计 ——智能洗衣机控制器 目录 一、课程设计的目的 二、课程设计的课题与要求 1. 课程设计的课题 2. 课程设计的要求 三、设计思路与过程 1. 设计前提概述 2. ASM图 3. 状态图 4. 输入输出设计 四、程序内容 五、仿真波形图 1. 模式一的仿真 2. 模式二的仿真 3. 模式三的仿真 4. 模式四的仿真 5. 模式五的仿真 六、课设感想与收获 一、课程设计的目的 1.了解数字系统的组成,学习数字系统的设计方法。
2.学习数字系统由上向下设计法的工具-ASM图 3.熟悉现代数字系统的实现方法:用PLD器件取代传统的中规模集成器件实现数字电路与系统。
4. 学习分层次化实现数字电路与系统的方法。
5.学习使用硬件描述语言(Hardware Description Language)对数字电路与系统进行建模、仿真与实现的方法。
二、课程设计的课题与要求 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。
四、程序内容 module washclother(clk,clkk,k1,k2,k3,k4,k5,k6,state,mode,ttime,alarm,zhushui); input clk; //整个程序的时钟信号 input clkk; //扬声器的时钟信号 input k1; //模式一的控制按键 input k2; //模式二的控制按键 input k3; //模式三的控制按键 input k4; //模式四的控制按键 input k5; //模式五的控制按键 input k6; //工作使能按键 output [3:0] state; //状态 数码管显示信号 output [3:0] mode; //模式 数码管显示信号 output [7:0] ttime; //模式的总时间 output alarm,zhushui; reg zhushui; //注水信号 reg alarm; //扬声器信号 reg [3:0] jiao; //扬声器响的时间计时 reg [7:0] ttime; reg [3:0] mode; reg [3:0] state; reg work; //开始工作信号 reg over; //结束信号 always @(posedge clk or posedge k6) begin if(k6==1) //k6按下,work为1,开始工作 work<=1; else //k6未按,模式初始化 begin over<=1; jiao<=4'b0000; work<=0; if(k1==1) //初始化为模式一 begin ttime<=8'h55; mode<=4'b0001; end else if(k2==1) //初始化为模式二 begin ttime<=8'h45; mode<=4'b0010; end else if(k3==1) //初始化为模式三 begin ttime<=8'h35; mode<=4'b0011; end else if(k4==1) //初始化为模式四 begin ttime<=8'h20; mode<=4'b0100; end else if(k5==1) //初始化为模式五 begin ttime<=8'h5; mode<=4'b0101; end else //初始化为0 begin mode<=4'b0000; state<=4'b0000; ttime<=8'h0; end end if(work==1) //开始从某一模式工作 begin case(mode) //确定模式 4'b0001:begin //模式一的过程 if(((ttime>8'h53)&&(ttime<8'h56))||((ttime<8'h21)&&(ttime>8'h18))||((ttime<8'h11)&&(ttime>8'h8))) begin //注水状态 zhushui<=1'b0; state<=4'b0001; end else zhushui<=1'b1; if((ttime>8'h23)&&(ttime<8'h54)) state<=4'b0010; //洗衣状态 if(((ttime>8'h13)&&(ttime<8'h19))||((ttime<8'h9)&&(ttime>8'h3))) state<=4'b0011; //漂洗状态 if(((ttime>8'h20)&&(ttime<8'h24))||((ttime<8'h14)&&(ttime>8'h10))||((ttime<8'h4)&&(ttime>8'h0))) state<=4'b0100; //脱水状态 if(ttime>8'h0) begin //时间递减到0 if(ttime[3:0]==4'b0000) begin ttime[3:0]<=4'b1001; ttime[7:4]<=ttime[7:4]-1'b1; end else ttime[3:0]<=ttime[3:0]-1'b1; end end 4'b0010:begin //模式二的过程 if(((ttime>8'h43)&&(ttime<8'h46))||((ttime<8'h21)&&(ttime>8'h18))||((ttime<8'h11)&&(ttime>8'h8))) begin zhushui<=1'b0; state<=4'b0001; end else zhushui<=1'b1; if((ttime>8'h23)&&(ttime<8'h44)) state<=4'b0010; if(((ttime>8'h13)&&(ttime<8'h19))||((ttime<8'h9)&&(ttime>8'h3))) state<=4'b0011; if(((ttime>8'h20)&&(ttime<8'h24))||((ttime<8'h14)&&(ttime>8'h10))||((ttime<8'h4)&&(ttime>8'h0))) state<=4'b0100; if(ttime>0) begin if(ttime[3:0]==4'b0000) begin ttime[3:0]<=4'b1001; ttime[7:4]<=ttime[7:4]-1'b1; end else ttime[3:0]<=ttime[3:0]-1'b1; end end 4'b0011:begin //模式三的过程 if(((ttime>33)&&(ttime<36))||((ttime<21)&&(ttime>18))||((ttime<11)&&(ttime>8))) begin zhushui<=1'b0; state<=4'b0001; end else zhushui<=1'b1; if((ttime>8'h23)&&(ttime<8'h34)) state<=4'b0010; if(((ttime>8'h13)&&(ttime<8'h19))||((ttime<8'h9)&&(ttime>8'h3))) state<=4'b0011; if(((ttime>8'h20)&&(ttime<8'h24))||((ttime<8'h14)&&(ttime>8'h10))||((ttime<8'h4)&&(ttime>8'h0))) state<=4'b0100; if(ttime>8'h0) begin if(ttime[3:0]==4'b0000) begin ttime[3:0]<=4'b1001; ttime[7:4]<=ttime[7:4]-1'b1; end else ttime[3:0]<=ttime[3:0]-1'b1; end end 4'b0100:begin //模式四的过程 if(((ttime>8'h18)&&(ttime<8'h21))||((ttime<8'h11)&&(ttime>8'h8))) begin zhushui<=1'b0; state<=4'b0001; end else zhushui<=1'b1; if(((ttime>8'h13)&&(ttime<8'h19))||((ttime<8'h9)&&(ttime>8'h3))) state<=4'b0011; if(((ttime>8'h10)&&(ttime<8'h14))||((ttime<8'h4)&&(ttime>8'h0))) state<=4'b0100; if(ttime>8'h0) begin if(ttime[3:0]==4'b0000) begin ttime[3:0]<=4'b1001; ttime[7:4]<=ttime[7:4]-1'b1; end else ttime[3:0]<=ttime[3:0]-1'b1; end end 4'b0101:begin //模式五的过程 if((ttime>8'h3)&&(ttime<8'h6)) begin zhushui<=1'b0; state<=4'b0001; end else zhushui<=1'b1; if((ttime<8'h4)&&(ttime>8'h0)) state<=4'b0100; if(ttime>8'h0) begin if(ttime[3:0]==4'b0000) begin ttime[3:0]<=4'b1001; ttime[7:4]<=ttime[7:4]-1'b1; end else ttime[3:0]<=ttime[3:0]-1'b1; end end 4'b0000:begin //停止工作 state<=4'b0000; ttime<=8'h0; zhushui<=1'b1; alarm<=1'b0; end endcase if((over==1)&&(ttime[7:0]==8'h1)) begin over<=0; jiao<=4'b0010; //扬声器鸣叫2S end if(jiao>4'b0000) begin alarm<=~clkk; //扬声器鸣叫 jiao<=jiao-1'b1; //鸣叫时间递减到0 end else alarm<=0; end end endmodule 五、仿真波形图 1. 模式一的仿真 2. 模式二的仿真 3. 模式三的仿真 4. 模式四的仿真 5. 模式五的仿真 六、课设感想与收获 每次课程设计都有些让我们即恐惧又兴奋,因为它充满挑战。本次课程设计亦是如此,趣味性强,同时也可以学到很多东西。
在这次课设中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在课设过程中,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
我不仅了解了数字系统的组成,学会了数字系统的设计方法及数字系统由上向下设计法的工具-ASM图,而且熟悉了现代数字系统的实现方法:用PLD器件取代传统的中规模集成器件实现数字电路与系统。我还掌握了分层次化实现数字电路与系统的方法,了解了使用硬件描述语言(Hardware Description Language)对数字电路与系统进行建模、仿真与实现的方法。
课设的过程永远是那么的纠结,那么的刺激,那么的值得回味,在某种意义上说,这是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。
而且,这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
虽然大二学过数电,对Verilog语言有一定的涉猎,但是并不熟悉,未掌握其核心内容,这次课程设计,不仅复习了数电知识的内容,而且使我对Verilog语言有了更进一步的了解,不管是从结构上,还是从语法上。Verilog语言是一门很实用的语言,应该说是一门很精确的语言。
我很高兴能顺利做完这门课程设计,迎接下一个挑战吧。
猜你喜欢
- 2024-01-19 2024年某县委办公室上半年党风廉政工作总结
- 2024-01-19 关于青年干部担当先行工作总结(范文推荐)
- 2024-01-19 (9篇)各单位第三季度工作总结汇编【精选推荐】
- 2024-01-19 2024年基层干部群众心理疏导工作总结【完整版】
- 2024-01-19 2024年关于基层党员干部三年思想工作总结
- 2024-01-19 2024年关于XX县防汛抗旱工作总结【精选推荐】
- 2024-01-19 乡镇武装部长三季度以来工作总结、存在问题和下一步工作建议(全文完整)
- 2024-01-19 县农业农村局工作总结及2024年工作计划【优秀范文】
- 2024-01-19 2024年度乡工作总结及2024年工作计划(2)(完整)
- 2024-01-19 公司主题教育阶段性工作总结(1)(完整文档)
- 搜索
-
- 预备党员征求党内外群众意见 08-14
- 最新国家开放大学电大专科《外国文学》 10-17
- 【副科级干部考察材料】干部晋升要政审 12-12
- 2020新冠疫苗预防接种应急预案 12-24
- 2021村两委换届推进会讲话 11-05
- 国家开放大学电大《学前教育学》2021期 11-14
- 关于开展《中国共产党机构编制工作条例 10-04
- 学习2020年中央第七次西藏工作座谈会心 10-07
- 2020年全国“两会”精神学习知识测试题 06-01
- 年度组织生活会对照检查整改承诺书 10-21
- 网站分类
-
- 标签列表
-