资源描述:
《eda洗衣机控制器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第一章设计说明1.1设计要求●设置2种工作方式:洗衣、甩干;●显示倒计时时间:洗衣时间为5分,甩干时间为15秒;●具有紧急情况手动停止功能。●用2个拨码开关设置工作方式:洗衣、甩干;●用3个动态数码管显示时间。1.2设计思路通过三个减法计数器(十进制、六进制、五进制)同步连接以实现倒计时功能;在启动前使用两个拨码开关对计数器预置初值,以实现两种功能(洗衣:五分钟倒计时,甩干:15秒钟倒计时),另外由一个拨码开关控制计时器的启动与暂停(洗衣机的启动与急停);使用三个共阴极数码管显示时间,显示方式为动态扫描法。1.3模块介绍(1)减法计时器模块
2、(cnt1、cnt2、cnt3)图1Modulecnt1(.CP(CLK),.ENA(X10),.F(F),.LDN(LDN),.Q(X5),.OC(X1));Modulecnt2(.F(F),.LDN(LDN),.CP(CLK),.ENA(X1),.Q(X6),.OC(X2));Modulecnt3(.F(F),.LDN(LDN),.CP(CLK),.ENA(X4),.Q(X7),.OC(X3));三个减法计数器模块分别为十进制、六进制、五进制。CLK为时钟信号输入端;ENA为减法计数器使能端;F、LDN为预置数控制端,当LDN有效时进入
3、预置数状态,这时F为“1”则置为十五秒,F为“0”则置为五分钟;Q为计数值输出端;OC为借位端。(2)数码管动态扫描模块图2Modulecnt4(.CLK(CLK1),.Q1(X5),.Q2(X6),.Q3(X7),.Q(X8),.SEG(SEG[2:0]));CLK为高频时钟信号输入端;Q1、Q2、Q3为显示信号输入端;Q为显示信号输出端;SEG为数码管位选信号输出端。10(3)七段显示译码模块Moduledec7s(.A(X8),.Q(Q[6:0]));A译码信号输入端,Q为共阴极数码管段位信号输出端。(4)RS触发器模块Moduler
4、s_ff(.Q(X9),.QN(X11),.SD(LDN),.RD(X12));SD、RD分别为置一与置零输入端,Q为输出端。(5)顶层模块图3moduletop(Q,SEG,CLK,CLK1,FNC,F,LDN);Q为数码管段控信号输出;SEG为数码管位控信号输出;CLK为计数器时钟信号输入端;CLK1为动态扫描高频时钟信号输入端;FNC为计数器启动暂停控制信号输入端;F、LDN为功能控制信号输入端。第二章VerilogHDL设源程序2.1moduletop(Q,SEG,CLK,CLK1,FNC,F,LDN)(顶层模块)moduletop
5、(Q,SEG,CLK,CLK1,FNC,F,LDN);inputCLK,CLK1,FNC,F,LDN;output[6:0]Q;output[2:0]SEG;wireX4,X9,X10,X11,X1,X2,X3,X12;wire[3:0]X5,X6,X7,X8;rs_ffu6(.Q(X9),.QN(X11),.SD(LDN),.RD(X12));assignX10=(X9&&FNC);assignX12=((~X3)&&X2&&X1);cnt1u1(.CP(CLK),.ENA(X10),.F(F),.LDN(LDN),.Q(X5),.OC(
6、X1));cnt2u2(.F(F),.LDN(LDN),.CP(CLK),.ENA(X1),.Q(X6),.OC(X2));assignX4=(X1&&X2);cnt3u3(.F(F),.LDN(LDN),.CP(CLK),.ENA(X4),.Q(X7),.OC(X3));cnt4u4(.CLK(CLK1),.Q1(X5),.Q2(X6),.Q3(X7),.Q(X8),.SEG(SEG[2:0]));dec7su5(.A(X8),.Q(Q[6:0]));endmodule2.2modulecnt1(CP,ENA,F,LDN,Q,OC)(十进
7、制计数器1)modulecnt1(CP,ENA,F,LDN,Q,OC);inputCP,ENA,F,LDN;10outputOC;output[3:0]Q;regOC;reg[3:0]Q_TEMP,Q;always@(posedgeCP)beginif(F&&LDN)Q_TEMP=4'b0101;elseif((~F)&&LDN)Q_TEMP=4'b1001;if(ENA)if(Q_TEMP>4'b0000)Q_TEMP=Q_TEMP-1;elseQ_TEMP=4'b1001;elseQ_TEMP=Q_TEMP;endalwaysbegin
8、if(Q_TEMP==4'b0000&&ENA)OC=1'b1;elseOC=1'b0;Q=Q_TEMP;endendmodule2.3modulecnt2(F,LDN,CP,E