eda 洗衣机控制器 课程设计课程设计报告.doc
燕山大学课 程 设 计 说 明 书题目: 洗衣机控制器 学院(系): 电气工程学院 年级专业:08应用电子技术4班学 号: 4 学生姓名: 贾灵宇 指导教师: 吕宏诗 张强 教师职称: 实验师 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:电子实验中心 学 号4学生姓名贾灵宇专业(班级)08级应电4班设计题目洗衣机控制器设计技术参数 设置2种工作方式:洗衣、甩干; 显示倒计时时间:洗衣时间为5分,甩干时间为15秒; 具有紧急情况手动停止功能。设计要求 用2个拨码开关设置工作方式:洗衣、甩干; 用3个动态数码管显示时间。工作量学会使用Max+PlusII软件、Verilog HDL语言和实验箱;独立完成电路设计,编程下载、连接电路和调试;参加答辩并书写任务书。工作计划1. 了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;2. 学习Verilog HDL语言,用Verilog HDL进行程序设计;3. 学习使用实验箱,继续电路设计;4. 完成电路设计;5. 编程下载、连接电路、调试和验收;6. 答辩并书写任务书。参考资料数字电子技术基础.阎石主编.高等教育出版社.EDA课程设计A指导书. 郑兆兆等编.指导教师签字 吕宏诗、张强基层教学单位主任签字金海龙说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2011年 1 月 14 日 目 录第一章 设计说明31.1 设计思路31.2 模块介绍31.3真值表5第二章 Verilog HDL设计源程序6第三章 波形仿真12第四章 管脚锁定及硬件连线154.1 管脚锁定154.2硬件连线16第五章 总结17参考文献18第一章 设计说明1.1 设计思路 本课程设计共应用:三个计数器,分别为五进制计数器、十进制计数器、十五进制计数器;三个拨码开关;两个时钟信号,分别为0.5Hz和1Hz;和三个动态数码显示管。“洗衣机控制器”课程设计要求,洗衣机工作在两种工作方式:洗衣、甩干。这两种工作方式分别由拨码开关SW1和拨码开关SW2控制,开关拨起为高电平工作状态即启动。洗衣机工作在洗衣状态时,工作时间为5分钟,用数码管显示倒计时时间并最终停止在“0”,可以利用五进制加法计数器来计数控制,采用0.5Hz的时钟信号和十五进制计数器共同实现计时1分钟的功能。洗衣机工作在甩干状态时,工作时间为15秒钟,采用1Hz的时钟信号,用数码管显示倒计时时间并最终停止在“0”,利用初值为五的十进制减法计数器来控制个位的数码管显示,利用十进制计数器的进位来控制十位的数码管的显示数字。另外,设计要求有紧急情况手动停止功能,由拨码开关3控制,当拨码开关3为高电平时洗衣机为可启动状态由拨码开关2和3控制在不同工作状态正常工作,当拨码开关3为低电平时,计数器全部清零数码管显示为零,洗衣机紧急急停。并在完成了任务书的要求功能的基础上,增加了完成洗衣或甩干的工作时蜂鸣的效果。1.2 模块介绍本课程设计程序上运用了一个模块,综合了任务的所有要求。利用十五进制计数器和0.5Hz的时钟信号组合获得了以分钟为变化周期的控制信号,来驱动五进制加法计数器的工作,是数码管显示5分钟倒计时时间。用1Hz的时钟信号来驱动五为初值的十进制计数器,使动态数码管显示15秒倒计时时间。用开关SW1的高电平时洗衣机工作在洗衣状态,开关SW2高电平使其工作在甩干状态,开关SW3为总开关,高电平洗衣机在可启动状态,任意时刻低电平所有计数器均清零洗衣机紧急手动急停。当未急停,洗衣机在洗衣或甩干状态下完成倒计时的工作状态时蜂鸣,断开SW3即洗衣机关机蜂鸣停止。本“洗衣机控制器”课程设计共利用了实验箱上的四个模块分别为:频率组模块、8位数字开关组模块、动态数码管显示模块和创新附加的蜂鸣模块。分别介绍如下:1. 频率组模块设计中分别使用了三个不同频率的时钟信号,超低频率组A的0.5Hz、低频率组B的1 Hz、中频组C的1024 Hz。用0.5Hz的时钟信号配合十五进制计数器实现了洗衣状态中的以分钟为单位倒计时的频率控制。用1 Hz的时钟信号实现甩干状态中的以秒为单位的倒计时的频率控制。用1024 Hz的频率进行3个选定动态数码管的高速扫描以达到3个动态数码管同时显示的效果。2.8位数字开关组模块 设计中分别用到了三个开关,开关1高电平进入洗衣状态,开关2高电平进入甩干状态,开关3作为总开关高电平洗衣机才可以工作,在任一时刻低电平洗衣机紧急手动急停。3. 动态数码管显示模块设计中一共使用了3个动态数码管,分别为DS8A、DS7A、DS6A。DS8A来显示洗衣状态的5分钟倒计时时间的分钟数字,DS7A和DS6A组合显示甩干状态15秒倒计时时间,DS7A为十位数字,DS6A为个位数字。在不工作时各数码管均显示“0”。在1024Hz的频率信号驱动下,3个数码管同时显示。4.蜂鸣模块此模块是在完成了任务书中的要求后,额外附加的功能模块,完成了在洗衣机洗衣或甩干工作完成后蜂鸣的功能,并在洗衣机停机即开关3低电平时停止蜂鸣。1.3真值表(1)十进制计数器CQM3 M2 M1 M0HC 000000001000100001100100001010 0110001110100001001000001 (注: 代表时钟信号上升沿)(2)七段数码管N3N2N1N0Q6Q5Q4Q3Q2Q1Q00000000100100011010001010110011110001001第二章 Verilog HDL设计源程序本课程设计的Verilog HDL源程序如下:module whole(CP,CLK,CQ,Q,CONT1,CONT2,STP,SEG,SOU);input CP,CLK,STP,CONT1,CONT2,CQ;output Q,SEG,SOU;reg3:0 D,M,QT,WT,QS;reg OC,LDN,CC,HC,LDM,SOU;reg1:0 CRN,CRM;reg6:0 Q,Q1,Q2;reg2:0 SEG;reg1:0 TMP,TMP2,TMP3;reg3:0 N;always(posedge CP) /十五进制计数器beginif(CONT1)begin if(WT<=4'b1110&&WT>4'b0000)WT=WT-1; else if(WT)WT=4'b1110; else WT=WT;endendalways(posedge CP) /五进制加法计数器WT完成一个周期时自加一beginif(STP)QT='b0101;elsebeginif(WT=4'b0001)CC=1'b1;else CC=1'b0;if(QT<'b0101)QT=QT+CC;else if(QT>'b0100)QT='b0101; else QT=QT;endendalways /五进制计数器的进位和输出Dbegin if(QT=4'b0000&&CONT1=1)OC=1'b1; else OC=1'b0; D=QT;endalways(posedge CQ) /以5为初值的十进制计数器表示15秒倒计时的个位数字begin if(STP)QS=4'b0000; else begin if(CONT2)LDM=1; if(HC)CRM=CRM+1; if(CRM>2)QS=4'b0000; else if (LDM)QS='b0101;/ else if(QS<4'b1010&&QS>4'b0000)QS=QS-1; else if (QS)QS=4'b1001; else QS=QS; endendalways /十进制计数器的进位HC和输出Mbegin if(QS=4'b0000&&CRM<=2)HC=1'b1; else HC=1'b0; M=QS;endalways /将计数器的输出D,M转化成数码管的译码器的输入N begin if(CONT1) N=5-D; if(CONT2) begin if(M<10)N=M; else N=M-10; end endalways(posedge CLK) /数码管的译码器和段选信号位选信号的对应控制 begin case(N) 0:Q2='b; 1:Q2='b; 2:Q2='b; 3:Q2='b; 4:Q2='b; 5:Q2='b; 6:Q2='b; 7:Q2='b; 8:Q2='b; 9:Q2='b; endcase if(CONT1) begin if(TMP<'b10)TMP=TMP+1; else TMP='b00; case(TMP) 'b00:begin SEG='b000;Q=Q2; end 'b01:begin SEG='b001;Q='b; end 'b10:begin SEG='b010;Q='b; end endcase end else if(CONT2) begin if(CRM=1) begin if(TMP2<'b10)TMP2=TMP2+1; else TMP2='b00; case(TMP2) 'b00:begin SEG='b000;Q='b; end 'b01:begin SEG='b001;Q='b; end 'b10:begin SEG='b010;Q=Q2; end endcase end else begin if(TMP3<'b10)TMP3=TMP3+1; else TMP3='b00; case(TMP3) 'b00:begin SEG='b000;Q='b; end 'b01:begin SEG='b01;Q='b; end 'b10:begin SEG='b010;Q=Q2; end endcase end endendalways /蜂鸣器控制begin if(STP)SOU=0; else begin if(CONT2) begin if(Q2='b&&CRM>=2) SOU=1; else SOU=0; end else if(Q2='b)SOU=1; else SOU=0; endendendmodule第三章 波形仿真1.五进制加法计数器的波形仿真图上图为未紧急手动急停的情况。上图为紧急手动急停的情况。2. 以5为初值的十进制计数器的波形仿真图上图为未紧急手动急停的情况。上图为紧急手动急停的情况。3.动态数码显示管的波形仿真图上图为洗衣状态计数器输出为4时的动态数码管显示情况(因为五进制为加法计数器动态数码管为倒计时时间,所以输出Q为“1”)。上图为甩干状态计数器输出为15时的动态数码管显示情况。上图为甩干状态计数器输出为3时的动态数码管显示情况。4.蜂鸣的波形仿真图如上图SOU为蜂鸣器控制信号,高电平蜂鸣,低电平无蜂鸣。5.所有功能组合完整的波形仿真图上图为洗衣工作状态。上图为甩干工作状态。第四章 管脚锁定及硬件连线4.1 管脚锁定CP PIN198CQ PIN196CLK PIN193CONT1 PIN39CONT2 PIN40CONT3 PIN41SEG0 PIN191SEG1 PIN189SEG2 PIN179Q0 PIN197Q1 PIN195Q2 PIN192Q3 PIN190Q4 PIN187Q5 PIN177Q6 PIN175SOU PIN384.2硬件连线PIN198 CLOCK(T) 22脚PIN196 CLOCK(T) 21脚PIN193 CLOCK(T) 11脚PIN191 SS0PIN189 SS1PIN179 SS2PIN197 Q0PIN195 Q1PIN192 Q2PIN190 Q3PIN187 Q4PIN177 Q5PIN175 Q6第五章 总结为期两周的EDA课程设计结束了,我成功的完成了我的任务洗衣机控制器,但对我来说宝贵的不是结果而是过程,在思考、摸索、寻求帮助最终圆满完成设计的过程中我学会了许多。在第一周的开始,我们接触了全新的知识,了解了Max+PlusII软件、Verilog HDL语言和实验箱,这对我来说既新鲜又有趣,但第一次用一种新的语言来编写一个设计确实是个挑战。这一个星期我一直在从图书馆借来的资料上、网络上努力学习并掌握Max+PlusII软件、Verilog HDL语言,利用一切闲暇的时间仔细思考我的设计思路和方向,因为我知道方向比速度更重要。当我已经有了整体程序的大框后,一些细节的问题层出不穷,比如计数器的终值控制、清零的反应速度、对开关的状态敏感还是变化敏感等等。在一遍一遍的调试和修改中,我深刻理解了那句以前未体会的一句话:“阻挡你前行的并不是你面前的大山而是鞋子里的小石子。”不要忽略细枝末节的小问题,细节决定成功。拿着调试好了的仿真波形和程序设计,我兴高采烈的去上箱天真的以为课程设计的成功触手可及,而实际上由于缺乏经验在硬件和软件连接的过程中仍然着意象不到的问题。硬件的实现与软件构造的理想模型有着些许细小的差异,几经调试,多次从程序、锁定管脚到连线的确认,我终于得到了我期待的实验效果。感谢吕宏诗和张强两位老师在我整个设计过程中的指导和帮助,他们严谨认真的工作态度让我学会了设计过程中要精准仔细。感谢我的同学们在两周里的帮助和鼓励,他们的陪伴让我拥有克服任何困难的勇气。这次课程不是结束而是一个新的开始,在以后的生活中我会继续保持这次课程设计教给我的宝贵经验。参考文献 1.阎石. 数字电子技术基础. 高等教育出版社,2007年2.郑兆兆,李艳艳等. EDA课程设计指导书. 2010年燕山大学课程设计评审意见表指导教师评语:该生学习态度 (认真 较认真 不认真) 该生迟到、早退现象 (有 无)该生依赖他人进行设计情况 (有 无)平时成绩: 指导教师签字: 2011 年 1 月 14 日图面及其它成绩:答辩小组评语:设计巧妙,实现设计要求,并有所创新。 设计合理,实现设计要求。 实现了大部分设计要求。 没有完成设计要求,或者只实现了一小部分的设计要求。 答辩成绩: 组长签字: 2011 年 1月 14 日课程设计综合成绩:答辩小组成员签字: 2011年 1 月 14 日