数电实习报告洗衣机_第1页
数电实习报告洗衣机_第2页
数电实习报告洗衣机_第3页
数电实习报告洗衣机_第4页
数电实习报告洗衣机_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE820XX—20XX学年第二学期《数字电子技术课程设计》报告(适用专业:测控20XX级)专业班级姓名学号开课系室电工电子学教学中心设计日期设计题目洗衣机的简易控制电路设计目录一、设计任务及要求3(一)具体要求3(二)输入输出资源说明3二、设计原理与方案5(一)顶层设计方案5(二)分频器设计方案5(三)控制器设计方案6(四)计时器(倒计时)设计方案6(五)显示器设计方案6三、电路设计、仿真与实现7(一)顶层设计实现7(二)分频器的设计实现9(三)控制器设计实现10(四)计数器(倒计时)的设计实现13(五)显示器设计实现17(六)FitDesign结果20四、分析与讨论20一、设计任务及要求:洗衣机是家庭常用电器,一般可以有多种工作模式可供选择。在此要求设计具有两种工作模式的简易洗衣机控制电路,具有复位、模式设置、启动、暂停功能,并能显示洗衣机的工作状态(如洗涤时间倒计时,电动机的正反转、暂停)。(一)具体要求:1、设置为复位按钮S0,按钮状态S0=0时,对系统状态进行复位,计数器清零。S0=1时,进入模式选择。2、设置模式选择按钮S1。按钮状态S1=0时,执行洗衣模式一,控制洗衣机的电机按照图1的规律循环运转;S1=1执行洗衣模式二,控制洗衣机的电机按照图2规律循环运转。启动启动正转(20s)反转(20s)间歇(10s)间歇(10s)停止定时到图1洗衣模式一启动启动正转(25s)反转(25s)间歇(5s)间歇(5s)停止定时到图2洗衣模式二3、设置启动按钮S2。洗衣模式设定后,按钮状态S2=1时,设定洗衣时间为10分钟,按钮状态S2=0时,设定洗衣时间为5分钟。在洗衣过程中分别用3个LED灯来显示电动机的正转、翻转,间歇等状态。4、设置暂停按钮S3。当按钮状态S3=0时,洗衣暂停,计数器状态、显示均保持,并点亮1个LED灯显示暂停状态。S3=1时正常运转。(二)输入输出资源说明:1、输入信号:四个控制按钮S0、S1、S2、S3(按钮按下时S=0,松开时S=1)。2、外部输入脉冲信号时钟源CP(50MHz),应设计一分频器得到5Hz信号供计数器使用。3、输出3组显示译码信号,并在FPGA内部经过译码后获得7段LED显示码,并通过扫描方式在三个发光LED显示数码管上显示当前洗衣时间的倒计时(分钟)、每个洗衣循环的60s倒计时的十位和个位。4、输出4个高低电平信号,分别接到外部的4个LED灯指示电机的正转、间歇、反转和系统的暂停。(输出高电平时,对应的LED灯亮)其具体框图如下:(此图只是大概结构,设计时可根据自己的思路稍微改动电路图)正转指示灯LED1正转指示灯LED1S0S2S3控制器洗涤时间倒计时计数器七段LED数码管译码扫描显示50MHz反转指示灯LED3暂停指示灯LED4间歇指示灯LED2CLKS1分频器1Hz60s倒计时计数器图3洗衣机控制器结构框图根据如上说明,本设计的主要任务和设计要求是:按照现代数字系统的Top-Down模块化设计方法,提出简易洗衣机控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码等模块化子系统的设计方案。在Quartus的EDA设计环境中,采用原理图和Verilog语言混合输入的方法,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于Verilog语言实现的子模块(包括分频器、计数器、主控制器、扫描显示译码四部分)的逻辑功能仿真,并对顶层设计进行功能仿真。在2步的基础上,采用Altera公司的CPLD器件EP1C12F324C8对顶层设计进行适配(FitDesign),生成下载文件。采用DownLoad软件将设计的JED文件烧录到试验板的芯片上,实际测试。二、设计原理与方案:(一)、顶层设计方案:本系统总共分分频器,控制器,计时器(倒计时),和显示器四大部分。其中提结果如下图(图一总体电路结果图即顶层结果图)图一总体电路结果图即顶层结果图其中,分频器为其他模块提供合适的脉冲信号,控制器接收外部控制信号并且产生相对应的控制其他模块的信号,计时器(倒计时)负责洗衣时间得倒计时并且根据倒计时的时间控制电机(三个LED灯)的运转以及将倒计时结束的信号返回给控制器,显示器将倒计时的现态时间显示。(二)、分频器设计方案:分频器一输入两输出,输入为50MHZ的原脉冲信号,输出clko1为1HZ脉冲信号(给计数器),输出clko2为1KHZ脉冲信号(给控制器及显示器)。(三)、控制器设计方案:控制器的输入信号有:时间脉冲,四个按键,jieshu(倒计时结束反馈输入信号)。输出信号有:TIME(倒计时的起始时间),moshi(洗衣机的模式控制信号),zanting(洗衣机暂停控制信号)。其中,时间脉冲由分频器分出1KHZ的时间脉冲。四个按键分别是:s[0]是复位键,当s[0]=1(没有按下去)时,洗衣机工作正常,当s[0]=0(按下去)时,洗衣机停止工作所有数据清零(倒计时的时间以及电机状态);s[1]是模式选择按键,当s[1]=0时,moshi=0(表示模式一),当s[1]=1时,mosh=1()表示模式二;s[2]是启动按键,当s[2]=0时,TIME=5,洗衣机以5分钟为起始时间开始倒计时电机开始工作,当s[2]=1时,TIME=10,洗衣机以10分钟为起始时间开始倒计时电机开始工作;s[3]是暂停键,当s[3]=0时,zanting=1(表示暂停)当s[3]=1时,zanting=0(表示正常工作)。(四)、计时器(倒计时)设计方案:计时器的输入有:TIME(倒计时起始时间输入),clk(1HZ脉冲输入),moshi(模式控制输入),zanting(暂停控制输入)。输出有:jieshu(倒计时结束输出,反馈给控制器),fen(倒计时现态时间的分输出,给显示器),miaoshi(倒计时现态时间的秒的十位输出,给显示器),miaoge(倒计时现态时间秒的个位输出,给显示器),LED(电机状态输出,表示电机的工作状态)。计时器的工作原理是:当clk出现上升沿时,将时间自减一秒,如果输入时间(TIME)发生了改变则按新输入时间倒计时,如果没有发生改变则按原有状态时间继续倒计时直到时间为0:00为止并且反馈倒计时结束(jieshu)信号。(五)、显示器设计方案:将输入的倒计时现态时间(fen,miaoshi,miaoge)以七段码的形式通过数码管输出,数码管的扫描信号del。三、电路设计、仿真与实现:(一)、顶层设计实现:顶层设计实现如图一所示,生成的电路图如图二所示图二顶层电路的实现总体仿真结果:(二)、分频器的设计实现:分频器的源程序:modulefenpin(clk,//源脉冲输入clko1,//1HZ脉冲输出clko2//1KHZ脉冲输出);/*==================================*/inputclk;outputclko1;outputclko2;/*==================================*/regclko1;regclko2;reg[31:0]zhong1;//控制1HZ的中间变量reg[31:0]zhong2;//控制1KHZ的中间变量/*==================================*/Initial//初始化beginzhong1<=32'd0;zhong2<=32'd0;end/*==================================*/always@(posedgeclk)//变频 begin zhong1<=(zhong1==32'd50_000_000)?32'd0:(zhong1+32'd1);//仿真的时候//把50_000_000改小 clko1<=(zhong1==32'd50_000_000)?1'd1:1'd0; zhong2<=(zhong2==32'd50_000)?32'd0:(zhong2+32'd1); clko2<=(zhong2==32'd50_000)?1'd1:1'd0; end/*==================================*/endmodule分频器的仿真结果:(三)、控制器设计实现:控制器的源程序:modulekongzhi(clk,//脉冲s,//按键TIME,//洗衣时间moshi,//模式jieshu,//反馈的结束没有用zanting//暂停);/*========================================*/inputclk;input[3:0]s;output[3:0]TIME;outputmoshi;inputjieshu;outputzanting;/*========================================*/reg[3:0]TIME;regmoshi;regzanting;/*========================================*/initialbeginzanting<=1'b0;TIME<=4'b0000;moshi<=1'b0;end/*========================================*/always@(posedgeclk)begin//是否复位或者结束if(s[0]===1'b0)//复位,输出归0beginTIME<=4'b0000;//led<=4'b0000;//moshi<=1'b0;endelseif(s[0]===1'b1)//不复位,输出保持beginbeginTIME<=TIME;//led<=led;//moshi<=moshi;end/*========================================*/begin//模式选择if(s[1]===1'b0)//模式1beginmoshi<=1'b0;endelseif(s[1]===1'b1)//模式2beginmoshi<=1'b1;endend/*========================================*/begin//启动if(s[2]===1'b0)//5分钟beginTIME<=4'd5;endelseif(s[2]===1'b1)//10分钟beginTIME<=4'd10;endend/*========================================*/begin//是否暂停if(s[3]===1'b1)//正常工作beginzanting<=1'b0;endelseif(s[3]===1'b0)//暂停beginzanting<=1'b1;endendendend/*========================================*/endmodule控制器的仿真结果:(四)、计数器(倒计时)的设计实现:计数器(倒计时)的源程序moduledaojishi(clk,//脉冲TIME,//上一级(控制器)给的洗衣时间信号moshi,//模式zanting,//暂停jieshu,//是否结束,其实没有用到,可以再加一个灯显示fen,//分miaoshi,//秒的十位miaoge,秒的个位LED//4个指示灯);/*===========================================*/inputclk;//1HZ脉冲input[3:0]TIME;//输入的原始时间inputmoshi;//洗衣机的模式inputzanting;//暂停,0正常,1暂停outputjieshu;//是否结束,0正常,1结束output[3:0]fen;//三位输出,分,秒(十),秒(个)output[2:0]miaoshi;output[3:0]miaoge;output[3:0]LED;//4个指示灯,LED[0]正转,LED[1]反转,LED[2]间歇,LED[3]暂停/*===========================================*/regjieshu;reg[3:0]time1,time2;reg[3:0]fen;reg[2:0]miaoshi;reg[3:0]miaoge;reg[3:0]LED;/*===========================================*/initialbeginjieshu=1'b0;miaoshi=3'b000;miaoge=4'b0000;LED=4'b0000;time1=4'b0000;time2=4'b0000;end/*===========================================*/always@(posedgeclk)beginif(TIME===4'd0)//判断是否复位,0复位,非0正常beginfen=4'd0;miaoshi=3'd0;miaoge=4'd0;LED=3'b000;endelseif(TIME!=4'd0)//正常beginbegintime1=TIME;time2<=time1;if(time1!=time2)//判断TIME是否改变,假如改变了,则赋值给fen(分)//并且miaoshi,miaoge归零,否则不变beginfen=time1;miaoshi=3'd0;miaoge=4'd0;endelsebeginfen=fen;endendbeginif(zanting===1'b1)//是否暂停,1暂停,0正常beginLED[3]=1'b1;LED[2]=1'b0;LED[1]=1'b0;LED[0]=1'b0;end/*===========================================*/elseif(zanting===1'b0&&fen===0&&miaoshi===0&&miaoge===0)//如果没有暂停并且呈0:00,则结束beginLED=4'b0000;jieshu=1'b1;endelseif(zanting===1'b0&&(fen!=0||miaoshi!=0||miaoge!=0))//如果没有暂停并且时间还有,则倒计时beginjieshu=1'b0;LED[3]=1'b0;begin//倒计时if(miaoge===4'b0000)//秒的个位为0则借位beginif(miaoshi!=3'd0)beginmiaoshi=miaoshi-3'd1;miaoge=4'd9;endelseif(miaoshi===3'b000)//如果秒的十位也为0则向分借位beginfen=fen-4'd1;miaoshi=3'd5;miaoge=4'd9;endendelsebeginmiaoge=miaoge-4'd1;endend/*===========================================*/begin//模式选择if(moshi===1'b0)//模式1beginif(miaoshi===3'd5||miaoshi===3'd4)//正转beginLED[0]=1'b1;LED[1]=1'b0;LED[2]=1'b0;endif(miaoshi===3'd3||miaoshi===3'd0)//间歇beginLED[0]=1'b0;LED[1]=1'b0;LED[2]=1'b1;endif(miaoshi===3'd2||miaoshi===3'd1)//反转beginLED[0]=1'b0;LED[1]=1'b1;LED[2]=1'b0;endend/*===========================================*/elseif(moshi===1'b1)//模式2beginif(miaoshi===3'd5||miaoshi===3'd4||(miaoshi===3'd3&&miaoge>=4'd5))//正转beginLED[0]=1'b1;LED[1]=1'b0;LED[2]=1'b0;endif((miaoshi===3'd3&&miaoge<=4'd4&&miaoge>=4'd0)||(miaoshi===3'd0&&miaoge<=4'd4&&miaoge>=4'd0))//间歇beginLED[0]=1'b0;LED[1]=1'b0;LED[2]=1'b1;endif(miaoshi===3'd2||miaoshi===3'd1||(miaoshi===3'd0&&miaoge>=5))//反转beginLED[0]=1'b0;LED[1]=1'b1;LED[2]=1'b0;endendend/*===========================================*/endendendend/*===========================================*/endmodule计数器(倒计时)的仿真结果:(五)、显示器设计实现:显示器的源程序:modulexianshi(clk,fen,miaoshi,miaoge,del,duanma);/*==============================================*/inputclk;//1KHZ脉冲input[3:0]fen;//分input[2:0]miaoshi;//秒十input[3:0]miaoge;//秒个output[2:0]del;//3-8output[6:0]duanma;//7段码/*==============================================*/reg[2:0]del;reg[6:0]duanma;reg[6:0]feno;reg[6:0]miaoshio;reg[6:0]miaogeo;/*==============================================*/initialbegindel<=3'b000;duanma<=7'b0000_000;end/*==============================================*/always@(posedgeclk)//3-8译码器扫描beginif(del===3'b111)begindel<=3'b000;endelsebegindel<=del+3'b001;endend/*==============================================*/always@(fenormiaoshiormiaoge)//翻译成七段码 begin case(miaoge)//秒的个位 4'b0000:miaogeo<=7'B0111_111;//0 4'b0001:miaogeo<=7'b0000_110;//1 4'b0010:miaogeo<=7'b1011_011;//2 4'b0011:miaogeo<=7'b1001_111;//3 4'b0100:miaogeo<=7'b1100_110;//4 4'b0101:miaogeo<=7'b1101_101;//5 4'b0110:miaogeo<=7'b1111_101;//6 4'b0111:miaogeo<=7'b0000_111;//7 4'b1000:miaogeo<=7'b1111_111;//8 4'b1001:miaogeo<=7'b1101_111;//9 default:miaogeo<=7'b0000_000;//暗 endcase case(miaoshi)//秒的十位 3'b000:miaoshio<=7'B0111_111;//0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论