燕山大学课程设计说明书燕山大学课程设计说明书题目:洗衣机控制器学院(系):电气工程学院年级专业:11级应电三班学号:110103040040学生姓名:指导教师:李建霞吕宏诗教师职称:实验师燕山大学课程设计说明书第1页共20页燕山大学课程设计(论文)任务书院(系):电气工程学院基层教学单位:电子实验中心学号110103040040学生姓名专业(班级)应电三班设计题目洗衣机控制器设计技术参数●设置2种工作方式:洗衣、甩干;●洗衣状态时在双色点阵上显示X,甩干状态时显示D;●显示倒计时时间:洗衣时间为5分,甩干时间为15秒;●具有紧急情况手动停止功能。设计要求●用2个拨码开关设置工作方式:洗衣、甩干;●用双色点阵显示工作状态;●用3个动态数码管显示时间。工作量●学会使用Max+PlusII软件、VerilogHDL语言和实验箱;●独立完成电路设计,编程下载、连接电路和调试;●参加答辩并书写任务书。工作计划1.了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;2.学习VerilogHDL语言,用VerilogHDL进行程序设计;3.学习使用实验箱,继续电路设计;4.完成电路设计;5.编程下载、连接电路、调试和验收;答辩并书写任务书。参考资料《数字电子技术基础》.阎石主编.高等教育出版社。《EDA课程设计A指导书》。指导教师签字李建霞吕宏诗基层教学单位主任签字李鑫滨2014年1月08日燕山大学课程设计说明书第2页共20页目录第1章设计说明………………………………………………………………31.设计要求分析………………………………………………………32.设计思路………………………………………………………………33.设计模块介绍…………………………………………………………34.真值表…………………………………………………………………5第2章VerilogHDL设计源序…………………………………………………7第3章波形仿真……………………………………………………………11第4章管脚锁定及硬件连线……………………………………………164.1管脚锁定……………………………………………………………164.2硬件连线……………………………………………………………17第5章心得体会……………………………………………………………18参考文献……………………………………………………………………19评审意见表……………………………………………………………………20燕山大学课程设计说明书第3页共20页第一章设计分析一.设计要求分析设计要求洗衣机有两种工作方式:洗衣和甩干,用两个拨码开关来控制洗衣机处于哪种工作模式。当两个拨码开关中有一个处于高电平时,洗衣机处于对应的工作方式下,(但两个拨码开关不能同时处于高电平,也就是说洗衣和甩干不能同时工作。)当洗衣时要求显示“X”,并同时开始五分钟的倒计时,从5:00倒计时到0:00然后停止。当甩干时要求显示“D”,同时开始从15倒计时到00然后停止。因为设计要求用三个数码管,所以洗衣模式和甩干模式下数码管是需要共用。甩干模式下只需要两个数码管下显示即可,所以让最高位显示0即可。即从015倒计时到000。洗衣机要有紧急情况手动停止功能,即当在某一模式下工作时,若紧急停止(此时开关为低电平),则要停止计数。当开关再次变为高电平时,则从5:00或015重新开始倒计时。二.设计思路说明根据上文可知该洗衣机控制器设计共需要实验箱的五个功能模块,分别为:8位数字开关组A,动态数码管显示模块,8*8双色点阵显示模块,频率组模块,蜂鸣器模块。用8位数字开关组A中的两个开关控制洗衣机的工作模式。两个开关分别记为K1和K2。当K1打到高电平时,洗衣机便处于洗衣模式。当K2打到高电平时,洗衣机便处于甩干模式。(注意K1和K2不能同时处于高电平)用8*8双色点阵显示模块来显示对应的工作模式。当K1为高电平时,洗衣机为洗衣模式,点阵要显示“X”,当K2为高电平是,为甩干模式,要显示“D”。用动态数码管显示模块来显示倒计时时间,选用从左到右的前三个来显示。用频率组模块中的两个频率:1024HZ和1HZ。其中1HZ用来做倒计时使用。1024HZ用来做双点阵和动态数码管的动态扫描。另外附加一蜂鸣功能,当倒计时到000是开始蜂鸣,表示工作完成。三.设计模块介绍燕山大学课程设计说明书第4页共20页五个功能模块8位数字开关组A,动态数码管显示模块,8*8双色点阵显示模块,频率组模块,蜂鸣器模块。下面依次介绍五种模块。(1)8位数字开关组A(内锁)该模块共有8个开关SW1--SW8,开关打到ON是为高电平,开关打到OFF时为低电平。各开关内锁引脚如下图所示。设计中分别用到了两个开关,这里用SW1和SW2。SW1高电平进入洗衣状态,SW2高电平进入甩干状态,当开关打到低电平时,停止工作。(2)8为数字动态数码管(外接)动态数码管有三个位选信号SS0,SS1,SS2,每个时刻只能选中一个数码管并在管子上显示数字,需要用定义三个变量来控制位选信号,为SS[2:0]。选择DS8,DS7和DS6这三个数码管,洗衣模式下DS8显示分钟,DS7显示秒的十位,DS6显示秒的个位。显示的数值由数码管段位引线的数值ABCDEFG来决定。而ABCDEFG的输入时从下载板上通过导线引出来的。为使同一时刻看到两个数码管同时显示,需要用高频率脉冲这里用1024HZ的频率进行动态扫描。(3)8*8双色点阵显示模块(外接)双色点阵扫描控制电路是从屏左上角像素点为起点开始扫描的终止于右下角像素点。所用的双点阵是行共阴,列共阳。有绿色发光二极管和红色发光二极管两种,燕山大学课程设计说明书第5页共20页选取红色的灯接孔,ROW为共阴引线插孔,RA为共阳引线接孔,某一时刻只能有同一列或者同一行的矩形形状的二极管发光,因此应该定义多个状态,不同状态会有不同的二极管被点亮。使多个状态动态高频扫描,由于灯具有余辉特性和人眼有视觉暂留现象,给人眼的感觉就是稳定的显示。要显示“X”,“D”此时需要8个状态。定义一个寄存器变量T[2:0],每一个变量取值对应一个状态。(4)频率组模块不同的引脚对应不同的频率,此设计只需要两个频率值,一个是作为倒计时使用的时钟信号,每来一个脉冲数值减一,所以频率值为1HZ。另一个是高频率脉冲,用来对动态数码管和双点阵进行动态扫描的,这里选择频率值1024HZ。每个引脚对应的频率值如下图所示。即使用21号和11号引脚。4.真值表双点阵显示“X”ROWRA0111111101000000111111110101000010211111011001001003111101110001100041110111100011000511011111001001006101111110100001070111111110000001行列列T燕山大学课程设计说明书第6页共20页双点阵显示“D”ROWRA011111110000011101111111010001001021111101100100010311110111010000104111011110100001051101111100100010610111110001001070111111100001110数码管显示真值表SSQ6Q5Q4Q3Q2Q1Q000000111111000100001100010101101100111001111010011001100101110110101101111101011100001111000111111110011101111行列T燕山大学课程设计说明书第7页共20页第二章VerilogHDL设计源程序(所有的程序放在一个模块,包含所有的功能。)程序变量说明:CP高频脉冲1024HZCLK1低频脉冲计时1HZK1控制洗衣开关K2控制甩干开关Q数码管输出SEG数码管位选信号ROW双点阵行输入RA双点阵列输入ALARM蜂鸣器modulexiyiji(CP,CLK1,K1,K2,Q,SEG,ROW,RA,ALARM);inputCP,CLK1,K1,K2;//时钟及洗衣甩干控制output[6:0]Q;reg[6:0]Q;//数码管输出outputALARM;regALARM;output[0:7]ROW;//双点阵灯行控制reg[0:7]ROW;output[0:7]RA;//双点阵列控制reg[0:7]RA;reg[2:0]T;//动态扫描变量output[2:0]SEG;//段选信号reg[3:0]ss,A,B,C,S,G;//五分钟倒计时时的分和秒的十位reg[2:0]SEG;//数码管的输位选信号reg[1:0]TMP;//数码管的d动态扫描------------洗衣机五分钟减法计数器-----------------always@(posedgeCLK1)beginif(K1==0)beginA=5;B=0;C=0;end//洗衣时间预置elsebeginif(C==0)beginif(B==0)beginif(A==0)begin//洗衣倒计时A=0;B=0;C=0;end燕山大学课程设计说明书第8页共20页elsebeginA=A-1;B=5;C=9;endendelsebeginA=A;B=B-1;C=9;endendelsebeginA=A;B=B;C=C-1;endendend--------------甩干十五秒减法计数器---------------always@(posedgeCLK1)beginif(K2==0)beginS=1;G=5;end//甩干时间预置elsebegin//甩干倒计时if(G==0)beginif(S==0)beginS=0;G=0;endelsebeginS=S-1;G=9;endendelsebeginS=S;G=G-1;endendend燕山大学课程设计说明书第9页共20页always@(posedgeCP)beginif(TMP2)TMP=TMP+1;elseTMP=0;if(K1==1)begincase(TMP)//位选信号0:beginSEG=3'b000;ss=A;end1:beginSEG=3'b001;ss=B;end2:beginSEG=3'b010;ss=C;end//显示洗衣倒计时endcaseendif(K2==1)begincase(TMP)//位选信号0:beginSEG=3'b000;ss=4'b0000;end1:beginSEG=3'b001;ss=S;end2:beginSEG=3'b010;ss=G;end//显示甩干倒计时endcaseendif(K1==0&&K2==0)begincase(TMP)0:beginSEG=3'b010;ss=4'b0000;end1:beginSEG=3'b001;ss=4'b0000;end2:beginSEG=3'b000;ss=4'b0000;end//不工作时显示0endcaseendcase(ss)//段选信号0:Q='b0111111;1:Q='b0000110;2:Q='b1011011;3:Q='b1001111;4:Q='b1100110;5:Q='b1101101;6:Q='b1111101;7:Q='b0000111;燕山大学课程设计说明书第10页共20页8:Q='b1111111;9:Q='b1101111;endcaseendalways@(posedgeCP)//双色点阵beginT=T+1;if(K1==1)//显示Xbegincase(T)0:beginROW=8'b11111110;RA=8'b10000001;end1:beginROW=8'b11111101;RA=8'b01000010;end2:beginROW=8'b11111011;RA=8'b00100100;end3:beginROW=8'b11110111;RA=8'b00