Verilog数字电子技术-洗衣机控制器
基于Verilog_HDL的洗衣机程序
EDA 嵌入式系统课程设计印刷学院课程设计报告——嵌入式系统EDA 课程设计名称:EDA 技术课程设计课程设计题目:洗衣机控制电路专业:电子信息工程专业班级:XX XXX学生姓名:XXXXXXXXXXXXXXXXXXXXXXXX指导老师:XXXXXXX时间:XXXXXX至XXXXX 年XXXX 月XXXX 日目录一、设计任务要求 (3)1、基本要求 (3)二、总体设计方案 (3)1、系统功能 (3)2、系统设计 (3)1)系统结构框图 (3)2)模块分析 (3)1、分频模块 (3)2、七段数码管显示模块 (3)3、洗衣机主程序模块 (3)三、应用设备及软件介绍 (3)1、主要仪器设备(实验用的软硬件环境) (3)2、实验的软件环境 (4)3、操作方法与实验步骤 (4)四、调试过程分析、遇到的问题及解决方法 (4)1、分频模块 (3)2、七段数码管显示模块 (3)3、洗衣机主程序模块 (3)五、设计结论 (3)六、DE2管脚分配说明 (3)七、参考文献 (3)八、附录 (3)附录一分频模块 (9)附录二七段数码管显示模块 (9)附录三洗衣机主程序模块 (9)一、设计任务要求1、基本要求:1)洗衣机的状态为待机5s→正转60s→待机5s→反转60s→,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。
2)可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。
3)具有紧急情况的处理功能。
当发生紧急情况时,立即转入待机状态,紧急情况解除后,继续执行后续步骤。
4)洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束。
二、设计方案1、系统功能基本功能:能够实现洗衣机在设置洗衣次数后待机5s→正转60s→待机5s→反转60s的四种基本状态,并且可显示循环次数,当遇到紧急状态时可打开紧急开关,暂停洗衣机的工作。
当洗衣机循环次数递减到0时洗衣机自动报警。
2、系统设计1)系统结构框图,如图1-1所示:通过分频模块得到1Hz clk作为标准时钟输入到洗衣机主程序模块中,rst,en,start,add,四个输入信号作为洗衣机主程序模块的总输入,所得到的led信号分别用三个红灯显示,alarm信号用一个红灯显示,numa 信号、numb信号、tim信号用七段数码管显示,最终实现了洗衣机的各项功能。
基于Verilog HDL的FPGA程序(智能洗衣机)
华中科技大学电子线路课程设计题目:智能洗衣机院系:控制科学与工程系班级:自动化100X班姓名:联系方式:fanjunchao1991@指导老师:目录一题目分析。
1二系统流程图.。
2三主要模块介绍.。
5四各按键功能.。
6 五仿真波形.。
7 六实验总结。
8 七附录。
9一:题目分析本次课程设计要求以Verilog HDL硬件描述语言为基础,以DE2开发板为工具,编写智能洗衣机的模拟程序。
首先,我在熟悉题目要求的前提下,将题目要求划分为以下几个小的项目,每个项目尽量用单独的模块实现其功能:①洗衣过程的转换:控制洗衣过程在每个过程对应的状态机之间转换,用control.v模块实现。
②洗衣时间的显示:通过直接调用上学期编写的24小时智能时钟程序的计时模块,并用总时间减去已用时间得到剩余时间,用led_show.v实现。
本程序的特色:①led灯表示水位:通过一定的算法,实现用led灯的亮灭表示水位。
Led依次点亮表示注水过程,相反,表示排水和甩干过程。
②1602 LCD液晶屏:用LCD显示所有操作步骤和过程,包括选择模式,当前洗衣模式和状态,洗衣完毕等。
这些过程都是用LCD液晶屏具体显示。
③按键使用和去抖:因为要使用按键进行模式的选择,所以我用软件去抖的方式实现按键按动时的去抖。
④暂停键模拟断电保护:设计了一个暂停键,模拟真实情况中的断电保护。
当暂停时模拟现实中的断电;暂停结束模拟现实中的重新上电,程序从断点继续运行。
二:系统流程图MODE 1 OR MODE 2 OR MODE 3:MODE 4MODE 5流程图说明:第一个为总的控制系统的流程图,后面三个为总流程图中,每种模式的详细流程图。
三:主要模块介绍module my_start:顶层模块,调用下层模块。
module HZ_1:分频模块,通过10分频和5分频将50Mhz分频成为1hz。
module control:控制模块,控制洗衣模式状态机的转换。
Verilog课程设计_洗衣机设计电路
Verilog课程设计----洗衣机控制器设计要求:设计一个电子定时器,控制洗衣机作如下运转:定时启动--->正转20秒-->暂停10秒-->反转20秒-->暂停10秒-->定时未到,回到“正转20秒-->暂停10秒-->反转20秒-->暂停10秒”;若定时到,则停机发出音响信号。
用两个数码管显示洗涤的预置时间(分钟数),按倒计时的方式计时,直到时间到停机;洗涤过程由“开始”信号开始。
三只LED灯表示“正转”、“反转”、“暂停”三个状态。
设计过程中用三个表示状态的寄存器zz(正转)、fz(反转)、pause(暂停),以及三个寄存器表示LED灯,LED1表示zz;LED2表示fz;LED3表示pause。
用data_out1,data_out2显示预置时间。
Beep为音响信号。
实验源程序如下:`timescale 1ns/1ns //源程序的测试文件module tb_wash;parameter DELY=5;reg clk,start,sure;reg[6:0]count0;wire beep,led1,led2,led3,zz,fz,pause;wire [6:0]data_out1,data_out2;wash C1(data_out1,data_out2,beep,led1,led2,led3,zz,fz,pause,start,count0,sure,clk); initialbeginstart=0;sure=0;count0=7'b0000111;#DELY start=1;#(DELY*10) sure=1;#(DELY*20) sure=0;endalwaysbeginclk=0;#(DELY*2) clk=~clk;#(DELY*2) clk=~clk;//产生振荡时钟endinitial#(DELY*3000)$finish;endmodulemodulewash(data_out1,data_out2,beep,led1,led2,led3,zz,fz,pause,start,count0,sure,clk); input clk,sure;//sure用于输入数据之后的确定键,确定后洗衣机开始工作input[6:0]count0;//count0输入洗涤时间input start;//电源开关output [6:0]data_out1,data_out2;//数码管时间输出reg [6:0]data_out1,data_out2;output zz,fz,pause;reg zz,fz,pause;output led1,led2,led3;reg led1,led2,led3;reg[5:0]counts;output beep; //音响reg beep;reg[6:0]count;//计数分钟reg[3:0]countm;//计数秒wire [3:0]bcd_1;reg [3:0]bcd_2;reg signal;//用于控制音响信号initial begindata_out1=7'b0;data_out2=7'b0;counts<=6'b0;countm<=4'b0;count<=count0;bcd_2<=4'b0;zz<=0;fz<=0;pause<=0;beep<=0;led1<=0;led2<=0;led3<=0;signal<=0;endalways@(posedge clk)beginif(sure==1)beginsignal<=1;count<=count0;//对count赋初值endif((count>0)&&(start==1)&&(signal==1))beginif(counts==6'b111100)//60begincounts<=6'b1;count<=count-1;endelsebegincounts<=counts+1'b1;if(counts<=5'b10100) //20beginzz<=1;fz<=0;pause<=0;led1<=1;led2<=0;led3<=0;endelseif(counts<=6'b11110|counts>6'b110010&&counts<=6'b111011)//30 50~59 beginpause<=1;zz<=0;fz<=0;led2<=1;led1<=0; led3<=0;endelsebeginfz<=1;zz<=0;pause<=0;led3<=1;led1<=0; led2<=0;endendendif(signal==1&&count==0)//控制洗涤结束时音响响的时间beginif(countm==4'b1001)beep<=0;elsebegincountm<=countm+1;beep<=1;led2=0;pause=0;endendend//always//show the numberalways@(count)beginif(count>=7'd90)bcd_2<=4'd9;else if(count>=7'd80)bcd_2<=4'd8;else if(count>=7'd70)bcd_2<=4'd7;else if(count>=7'd60)bcd_2<=4'd6;else if(count>=7'd50)bcd_2<=4'd5;else if(count>=7'd40)bcd_2<=4'd4;else if(count>=7'd30)bcd_2<=4'd3;else if(count>=7'd20)bcd_2<=4'd2;else if(count>=7'd10)bcd_2<=4'd1;elsebcd_2<=4'd0;endassign bcd_1=count-bcd_2*4'd10; always@(bcd_1)//数码管个位的显示begincase (bcd_1)4'b0000:data_out1=7'b0111111;//04'b0001:data_out1=7'b0000110;4'b0010:data_out1=7'b1011011;4'b0011:data_out1=7'b1001111;4'b0100:data_out1=7'b1100110;4'b0101:data_out1=7'b1101101;4'b0110:data_out1=7'b1111100;4'b0111:data_out1=7'b0000111;4'b1000:data_out1=7'b1111111;4'b1001:data_out1=7'b1100111;default:data_out1=7'b0000000;endcaseendalways@(bcd_2)//数码管十位的显示begincase (bcd_2)4'b0000:data_out2=7'b0111111;//04'b0001:data_out2=7'b0000110;4'b0010:data_out2=7'b1011011;4'b0011:data_out2=7'b1001111;4'b0100:data_out2=7'b1100110;4'b0101:data_out2=7'b1101101;4'b0110:data_out2=7'b1111100;4'b0111:data_out2=7'b0000111;4'b1000:data_out2=7'b1111111;4'b1001:data_out2=7'b1100111;default:data_out2=8'b0000000;endcaseendendmodule程序编号之后在linux系统的nclaunch里面仿真出来波形如下:波形符合设计的要求。
洗衣机VHDL控制器实验报告
数字电路和逻辑设计综合实验实验报告实验名称:洗衣机控制器班级:班内序号:姓名:学号:数电设计综合实验—洗衣机控制器一.设计课题的任务要求设计制作一个全自动洗衣机的控制器:●洗衣机的工作步骤为洗衣、漂洗和脱水三个过程,工作时间分别为:洗衣20秒,漂洗30 秒,脱水15 秒;●用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;●用显示器件显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应提示使用者;●用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留的状态;●选做:三个过程的时间有多个选项供使用者选择。
●选做:可以预约洗衣时间。
●选做:自拟其它功能。
二.系统设计(包括设计思路、总体框图、分块设计)◆设计思路首先从题目进行分析,采用VHDL模块化的设计方法来进行洗衣机控制器的设计,即自顶向下,从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块.最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。
本控制器基本功能描述洗衣机控制器可工作于五种模式下:单洗涤、单漂洗、单脱水、漂洗十脱水、洗涤十漂洗+脱水,可以使洗衣机控制器工作在任意一种模式,并显示出洗衣机的工作状态和剩余工作时间,在剩余时间结束后有报警声提示使用者,并且可实现暂停洗衣和继续的功能,此外,加入附加功能,可自选三个过程是使用时间并且可预约洗衣时间。
由此分析可将洗衣机控制器分为控制模块、倒计时模块,初始模式选择模块,报警模块,洗衣时间选择模块,选通译码模块和分频器模块。
【设计过程】:1)审题,初步确定思路。
2)用VHDL语言进行编程。
3)适时对程序进行修改。
4)编译成功后,进行仿真,观察波形图。
5)将程序下载到实验板上,调试各功能。
6)通过计算机仿真和下载调试,发现问题,返回原程序进行修改。
7)进行总体的调试。
利用WHDL设计洗衣机控制器
利用VHDL设计洗衣机控制器1 引言2 选题研究的意义2.1 课题来源2.2 课题研究的背景2.3 研究的目的和意义.4 应解决的主要问题及应达到的技术要求2.4.1 需解决的主要问题洗衣机控制系统的核心部件是控制器。
洗衣机控制电路包括控制器、控制对象、状态显示电路、计时器及报警电路。
它是一闭环系统,内部结构有洗衣机状态转换时间信号产生器、状态计数器、数据选择器和状态译码器,它能自动发出顺序循环控制信号(S、R、L),并同时完成在该状态下的计时功能。
另外,它还向控制对象提供一个工作过程的周期信号(T),作循环次数累计。
控制对象是由4位二进制计数器和4位数值比较器构成,它对T作计数,与此同时与人工输入的预置循环数比较,随时将反应受控器自身状态的信号反馈给控制器,从而实现系统的控制功能。
2.4.2 需实现洗衣机控制器的控制功能⑴洗衣机的状态为待机5s→正转60s→待机5s→反转60s,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。
⑵自行设定洗衣机的循环次数,这里设最大的循环次数为15次。
⑶具有紧急情况的处理功能。
当发生紧急情况时,立即转入到待机状态,紧急情况解除后继续执行后续步骤。
⑷洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束。
⑸输入变量:时钟CLK,直接清零RD,暂停/连续EN,设定洗衣机的循环次数SET。
⑹输出变量:三个工作状态S、R、L,一个过程周期T(T4),8421BCD码Q7…Q0输出及报警信号。
2.5 国内外研究现状,发展趋势及存在的主要问题2.6设计工具介绍3 洗衣机控制器设计的方案论证3.1 洗衣机控制器设计的方案选择设计洗衣机控制器,通常可以用三种方法来实现。
方法一,可以用纯机械式来设计控制器。
本方法利用机械原理来设计定时器。
例如可以利用弹簧储存能量和释放能量的过程得到定时时间。
其原理如同机械式(上发条)的钟表。
由于长时间工作,金属容易疲劳,一旦出现这样的情况,其定时的误差变大,导致定时不准确。
Verilog数字电子技术-洗衣机控制器
Verilog数字电子技术-洗衣机控制器2010学年度第一学期电子技术基础课程设计——智能洗衣机控制器院系: 控制科学与工程系专业: 自动化班级: 1006班姓名: ******* 学号: ********指导教师:课程设计名称智能洗衣机控制器的设计设计内容及要求设计一个智能洗衣机控制器~能够实现洗衣~漂洗和脱水的功能。
要求能够使用按键模拟对洗衣机的控制~能够设置工作模式~为了便于观察~将洗衣机设定的工作模式(1~5)和整个过程所剩的工作时间用数码管显示出来(时间分辨率为1分钟)~能够将洗衣机当前所处的状态,注水~洗衣~排水~甩干,用发光管或者数码管显示出来。
【模式1】: 洗衣模式,,强力洗, 洗衣30分钟, 【模式2】 :洗衣模式,,普通洗 ,洗衣20分钟, 【模式3】 :洗衣模式,,轻柔洗,洗衣10分钟, 【模式4】 :漂洗模式【模式5】 :甩干模式注:在以上5个模式中~每次注水1分钟~漂洗5分钟~排水1分钟,甩干1分钟~模式1,3的洗衣时间如上所示~具体的洗衣步骤如下:【模式1,3】:注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
【模式4】:注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
【模式5】:甩干。
【要求】:实现逻辑控制过程~可以选择性的加入注水口无水报警等人性化的状态提示~操作完毕使用蜂鸣器鸣叫两秒提示。
画出洗衣机控制器的状态机~写出状态编码方案。
用Verilog语言对设计进行描述~设计一个测试方案~并能够下载到实验板上调试成功。
写出设计性实验报告~并打印各层次的源文件和仿真波形~然后作简要说明。
并谈谈此次实验的收获、感想及建议系统设计1 系统框图与说明本次设计的重点在于智能控制器状态之间转换的条件和关系~并且在此基础上输出相应的显示。
基于Verilog的洗衣机控制电路设计
基于Verilog的洗衣机控制电路设计作者:赵根陈正楠叶琳琳兰兴宇孙静马彧来源:《电脑知识与技术》2019年第09期摘要:为了实现洗衣机的控制功能,应用FPGA技术,以Verilog语言为基础,包含控制器,计时器,状态显示,控制对象,报警电路等模块,实现电路的设计,经验证,功能良好。
关键词:Verilog;FPGA;洗衣机电路系统中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2019)09-0225-02洗衣机电路系统是通过对洗衣机运行时间,循环次数的设定,可根据人们的需要,实现全自动洗衣功能,洗衣过程中发生突发情况可以报警示意,洗衣结束后发出提示音提醒,方便人们的日常生活,为人们带来生活中的便利。
1 原理Verilog HDL是一种硬件描述的语言(采用文本形式描述数字系统的硬件结构和行为语言),用它可以表示(逻辑表达式、逻辑电路图、示数字逻辑系统)。
程序主要包括计数器8421BCD码显示模块,控制器模块,受控器模块。
控制器通过端口的输入,向洗衣机发出正转,反转,待机指令,并通过数码管和LED显示控制时间。
2 总体设计3 详细设计3.1 设计要求(1)控制功能1)洗衣机的工作状态:待机5秒,正转60秒,待机5秒,反转60秒,并用3个LED和7段显示器分别表示洗衣机工作状态和显示相应工作状态下时间。
2)使用者可自行设定循环次数,当前设定最大循环次数为15次。
3)具有紧急情况处理功能,如果发生紧急情况,会立即待机,等待紧急解除后,继续执行下一步骤。
4)设定循環次数到零时即刻报警,表示设定次数已完成,在顶层电路定义各输入及输出变量。
(2)在Qaurtus∏建立计数器电路的顶层电路文件并完成编译或仿真。
(3)信号说明,输入信号:时钟CLK,直接清零RD,暂停/连续EN,洗衣机的循环次数I3I2I1I0;输出信号:三个工作状态S,R,L,一个工作过程周期T(T4),8421BCD码num[7..0],报警信号。
数字电子技术课程设计--简易洗衣机控制器设计
课程设计任务书题目: 简易洗衣机控制器设计初始条件:利用定时器、数码管、LED等数字电路器件设计实现简易洗衣机功能。
(也可以使用单片机系统设计)要求完成的主要任务:(包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1 课程设计工作量:1周内完成对简易洗衣机控制电路的设计、仿真与调试。
2技术要求:洗衣机电机的工作顺序:启动——>正转20s——>暂停10s——>反转20s——>暂停10s——>停止①设计一个定时器控制洗衣机电机的运转,②三只LED灯表示“正转”、“反转”和“暂停”3个状态。
③用数码管显示洗涤时间,按倒计时方式对洗涤过程作计时显示,直到时间到停机,并发出音响信号报警。
④设置停止键,在洗涤过程中随时按该键可终止动作,并使显示器清0。
3 查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:第17周(7、8节):理论讲解第18周:理论设计及实验室安装调试;地点:鉴主15通信工程实验室(1),鉴主13通信工程专业实验室;第19周:撰写设计报告及答辩;地点:鉴主17楼研究室。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录1 绪论 (3)2设计任务要求及总体思路 (3)3设计基本原理 (4)4设计方案 (4)5单元电路的设计和元件的选择 (6)5.1秒脉冲发生器 (6)5.2分秒计数器 (8)5.3时间译码及控制门 (11)5.4总电路图 (12)6仿真结果 (13)6.1秒脉冲发生器 (13)6.2分秒计数器 (13)6.2.1正转 (14)6.2.2暂停 (15)6.2.3反转 (16)6.2.4定时时间到 (17)7仿真结果分析 (18)8体会 (18)9元器件清单 (19)10 参考文献 (20)摘要现代生活人民生活水平越来越高,家家户户几乎都有一台洗衣机。
洗衣机由于洗涤方便受到广大用户的喜爱。
VHDL语言的洗衣机控制器设计
目录一、目的 (2)二、内容及要求 (2)1、设计的主要内容 (2)2、设计的主要要求 (3)三、原理 (3)1.基于状态机的控制电路设计 (3)2.洗衣机控制器的工作原理 (3)(1)洗衣机的工作状态 (3)(2)全自动洗衣过程 (4)(3)单独执行某个洗衣程序 (4)(4)设计思路 (5)四、步骤及仿真图 (7)五、程序设计 (10)(1)时钟分频模块 (10)(2)数码管显示 (11)(3)定时器电路 ......................................................................................................... 12。
(4)预置时间和编码电路 (13)(5)时序电路 (13)(6)译码器 (14)六、心得体会 (14)七、参考文献 (15)一、目的1.学习掌握全自动洗衣机的控制原理。
2.掌握基于有限状态机的控制电路设计方法.二、内容及要求1、设计的主要内容:设计一个全自动洗衣机控制器电路,实现对洗衣机的全自动控制。
根据全自动洗衣机的控制原理设计一个控制电路,使之能够控制全自动洗衣机完成整个工作过程。
洗衣机工作过程分为两种情况:(1)全部自动完成当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”;使用)者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s);然后进水阀门关闭,电机开始运转,开始洗衣过程,并历时 9s;然后电机停止运转,排水阀门打开,开始排水,并根据水位设置(高、中、低、少)历时不同的时间timedrain(7s、6s、5s、4s);然后排水阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd……当甩干结束后,整个洗衣过程完成,扬声器发出持续 15 秒的急促的“嘀嘀”音,提示用户洗衣结束。
基于Verilog HDL的洗衣机控制电路设计
信息与电HChina Computer&Communication 秋件开茨爲惑用2021年第2期基于Verilog HDL的洗衣机控制电路设计杨凯饪王颖*(大连理工大学城市学院电子与自动化学院,辽宁大连116024)摘要:随着人们的生活水平提高,人们对洗衣机的需求越来越大,因此洗衣机的市场逐步扩大,洗衣机行业竞争也愈演愈烈。
在此背景下,本文以Verilog HDL为基础实现了以洗衣机控制电路为核心,结合所需的外围电路,共同对洗衣机的工作状态进行自由控制。
关键词:Verilog HDL;硬件描述语言;中心控制模块;洗衣机控制电路中图分类号:TN702文献标识码:A文章编号:1003-9767(2021)02-151-02Design of Washing Machine Control Circuit Based on Verilog HDLYANG Kaiyu,WANG Ying*(School of Electronics and Automation,City Institute,Dalian University of Technology,Dalian Liaoning116024,China)Abstract:With the improvement of people's living standards,people's demand for washing machines is increasing.Therefore, the market for washing machines is gradually expanding,and the competition in the washing machine industry is intensifying.In this context,this article uses Verilog HDL as the basis to realize the washing machine control circuit as the core,combined with the required peripheral circtdts,to jointly control the working state of the washing machine freely.Keywords:Verilog HDL;hardware description language;central control module;washing machine control circuit1总体设计系统包括中心控制模块、分频模块、按键去抖模块、BCD码转换电路和数码显示电路21。
智能洗衣机控制器设计 Verilog编程
智能洗衣机控制器设计报告鑫鑫出品2010-3-18目录一.设计背景 (2)二.功能简介基本功能 (2)扩展功能 (3)三.模块设计及端口设置主模块main (3)工作模式设定模块mode (4)进水量设定模块Water_t (4)无供水信号产生模块waterless (5)危险信号产生模块Unsafe (5)洗衣过程控制模块wash (6)报警模块alart (7)LED灯状态模块LEDs (7)模块级连线图 (8)四.电路工作原理 (9)以s的值为主要状态标志的基本工作流程图 (10)五.Verilog源程序及注释 (11)六.小结 (18)一.设计背景。
如今,带有微型控制芯片的家用电器迅速普及。
通过用户简单的设定,这些智能家电能自动完成家务,并向用户及时提供反馈信息。
这极大地方便了人们的生活。
智能洗衣机是智能家电的代表。
用户只需按几个键,智能洗衣机就能自动完成注水、洗衣、排水、甩干等一系列工作,并在发生事故时给予用户报警并作出正确反应,极大减轻用户的洗衣负担,同时保障用户安全。
基于以上功能要求,本人进行了智能洗衣机控制器的设计,并作出此设计报告。
二.功能简介。
基本功能:a.可选5种洗衣模式,列举如下1>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
其中洗衣为30分钟;2>普通洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
其中洗衣为20分钟;3>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
智能洗衣机控制器设计Verilog编程
智能洗衣机控制器设计V e r i l o g编程LELE was finally revised on the morning of December 16, 2020智能洗衣机控制器设计报告鑫鑫出品2010-3-18目录一.设计背景 (2)二.功能简介基本功能 (2)扩展功能 (3)三.模块设计及端口设置主模块main (3)工作模式设定模块mode (4)进水量设定模块Water_t (4)无供水信号产生模块waterless (5)危险信号产生模块Unsafe (5)洗衣过程控制模块wash (6)报警模块alart (7)LED灯状态模块LEDs (7)模块级连线图 (8)四.电路工作原理 (9)以s的值为主要状态标志的基本工作流程图 (10)五.Verilog源程序及注释 (11)六.小结…………………………………………………………………18一.设计背景。
如今,带有微型控制芯片的家用电器迅速普及。
通过用户简单的设定,这些智能家电能自动完成家务,并向用户及时提供反馈信息。
这极大地方便了人们的生活。
智能洗衣机是智能家电的代表。
用户只需按几个键,智能洗衣机就能自动完成注水、洗衣、排水、甩干等一系列工作,并在发生事故时给予用户报警并作出正确反应,极大减轻用户的洗衣负担,同时保障用户安全。
基于以上功能要求,本人进行了智能洗衣机控制器的设计,并作出此设计报告。
二.功能简介。
基本功能:a.可选5种洗衣模式,列举如下1>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干 ->注水->漂洗->排水->甩干。
其中洗衣为30分钟;2>普通洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干 ->注水->漂洗->排水->甩干。
全自动洗衣机的设计-Verilog程序
实验报告2016 年 5 月 24学 院:大数据与信息工程学院 专 业:电子与通信工程 学 号:2015021718 学生姓名:杨 鹏 举 指导教师: 李 良 荣目录一、实验题目 (3)二、实验目的 (3)三、实验要求 (3)四、洗衣机工作原理与功能说明 (3)状态图如下 (4)程序RTL视图如下 (5)五、详细代码如下 (5)模块一实现洗衣机状态转换和各状态输出控制 (6)模块二实现复位信号的异步复位同步释放 ·····错误!未定义书签。
模块三实现当前状态的数码管显示 (6)模块四实现按键检测 (14)模块五实现顶层的调用 (16)一、实验题目自动洗衣机设计二、实验目的1、熟练掌握Quartus II 工程文件的建立过程。
2、掌握Verilog的基本语法、语句、模块的使用。
3、了解模块的建立与使用。
4、了解FPGA的开发基本流程。
三、实验要求1、初始状态,准备启动。
2、开始进水;为防止进水过程出现故障,故不用定时器控制,而是手动给一个信号模拟水位检测传感器,表示进水完成。
3、开始洗涤:正反洗涤4次开始排水。
4、排水后立即脱水。
5、洗涤之后漂洗2次,每次漂洗过后都排水甩干。
6、整个过程全部用数码管来显示状态机状态,并用两个led灯表示电机的正转与反转状态。
四、洗衣机工作原理与功能说明自动洗衣机的工作原理:洗衣机有7个工作状态分别为空闲(idle)、加水(water)、洗衣(wash)、排水(drain)、甩干(dry)、漂洗(rinse)、结束音乐提示(music)。
一次完整的洗涤,进水3次、洗涤1次、漂洗两次、排水3次、甩干3次。
一次完整的状态转换为:空闲(idle)、加水(water)、洗衣(wash)、排水(drain)、甩干(dry)、加水(water)、漂洗(rinse)、排水(drain)、甩干(dry)、加水(water)、漂洗(rinse)、排水(drain)、甩干(dry)、结束音乐提示(music)。
电子技术课程设计基于verylog的智能洗衣机控制器设计
实验报告项目名称智能洗衣机控制器的设计课程名称电子技术课程设计课程设计日期2011/2/24班级学号姓名成绩目录一、已知条件 (3)二、性能指标要求 (3)三、输入输出设计 (3)四、模块对应器件的设计 (4)五、ASM图设计 (4)六、完整程序代码 (7)七、管脚分配 (30)八、时序仿真 (31)九、实验总结 (43)一、已知条件用Verilog设计一个智能洗衣机控制器。
二、性能指标要求①设计一个智能洗衣机(全自动洗衣机)控制器,能够实现洗衣,漂洗和脱水的功能。
②要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机的工作模式和所剩的工作时间用数码管显示出来,能够将洗衣机当前所处的状态用发光管或者数码管显示出来。
【模式1】:洗特别脏的衣服(洗衣30秒钟)【模式2】:洗脏的衣服(洗衣20秒钟)【模式3】:洗一般的衣服(洗衣10秒钟)【模式4】:漂洗(每次漂洗5秒钟)【模式5】:脱水(每次脱水3秒钟)【洗衣全过程】:洗衣+脱水+漂洗+脱水+漂洗+脱水,注水完成使用外部传感器S=1表示。
【漂洗模式】:漂洗+脱水+漂洗+脱水,注水完成使用外部传感器S=1表示。
【脱水模式】:脱水。
【注】:操作完毕使用蜂鸣器鸣叫两秒提示。
③画出洗衣机控制器的状态机,写出状态编码方案。
④用Verilog语言对设计进行描述,设计一个测试方案,通过Muxplus对设计进行仿真验证。
并能够下载到实验板上调试成功。
⑤写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
并谈谈此次实验的收获、感想及建议三、输入输出设计输入:1Hz时钟七个按键:复位启动模式选择注水完成洗衣全过程漂洗脱水输出:状态数码管,显示0~5模式选择数码管,显示0~5秒钟数码管,十位数码管、个位数码管,可显示0~30蜂鸣器四、模块对应器件的设计模式选择:一个5进制加计数器,用数码管显示0~5。
用一个按键做触发时钟模式1:30进制减计数器,用1Hz时钟模式2:20进制减计数器,用1Hz时钟模式3:10进制减计数器,用1Hz时钟模式4:5进制减计数器,用1Hz时钟模式5:3进制减计数器,用1Hz时钟三个组合选择:用三个按键洗衣全过程:49进制减计数器,用1Hz时钟(30+3+5+3+5+3=49)漂洗模式:39进制减计数器,用1Hz时钟(20+3+5+3+5+3=39)脱水模式:29进制减计数器,用1Hz时钟(10+3+5+3+5+3=29)注水完成:一个按键控制(S)蜂鸣器:2进制减计数器。
智能洗衣机控制器设计verilog编程
智能洗衣机控制器设计报告鑫鑫出品2010-3-18目录一.设计背景 (2)二.功能简介基本功能 (2)扩展功能 (3)三.模块设计及端口设置主模块main (3)工作模式设定模块mode (4)进水量设定模块Water_t (4)无供水信号产生模块waterless (5)危险信号产生模块Unsafe (5)洗衣过程控制模块wash (6)报警模块alart (7)LED灯状态模块LEDs (7)模块级连线图 (8)四.电路工作原理 (9)以s的值为主要状态标志的基本工作流程图 (10)五.Verilog源程序及注释 (11)六.小结 (18)一.设计背景。
如今,带有微型控制芯片的家用电器迅速普及。
通过用户简单的设定,这些智能家电能自动完成家务,并向用户及时提供反馈信息。
这极大地方便了人们的生活。
智能洗衣机是智能家电的代表。
用户只需按几个键,智能洗衣机就能自动完成注水、洗衣、排水、甩干等一系列工作,并在发生事故时给予用户报警并作出正确反应,极大减轻用户的洗衣负担,同时保障用户安全。
基于以上功能要求,本人进行了智能洗衣机控制器的设计,并作出此设计报告。
二.功能简介。
基本功能:a.可选5种洗衣模式,列举如下1>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
其中洗衣为30分钟;2>普通洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
其中洗衣为20分钟;3>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
基于Verilog的洗衣机控制电路设计
基于Verilog的洗衣机控制电路设计作者:孙浩付一含赵根徐栋义王颖来源:《电脑知识与技术》2019年第07期摘要:为了实现洗衣机的控制功能,以Verilog为基础,包含控制器,计时器,状态显示,控制对象,报警电路等模块,实现电路的设计,经验证,功能良好。
关键词:Verilog;FPGA;Qaurtus∏中图分类号:TP393 文献标识码:A文章编号:1009-3044(2019)07-0244-02开放科学(资源服务)标识码(OSID):洗衣机控制电路通过对洗衣机运行时间,循环次数的设定,可根据人们的需要,实现全自动洗衣功能,洗衣过程中发生突发情况可以报警示意,洗衣结束后发出提示音提醒,方便人们的日常生活,为人们带来生活中的便利。
1 原理Verilog HDL是一种硬件描述语言(以文本形式来描述数字系统硬件的结构和行为的语言),用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
程序主要包括计数器8421BCD码显示模块,控制器模块,受控器模块。
控制器通过端口的输入,向洗衣机发出正转,反转,待机指令,并通过数码管和LED显示控制时间。
2 总体设计3 详细设计3.1 设计要求(1)控制功能:1º洗衣机工作状态为待机5秒,正转60秒,待机5秒,反转60秒,并用3个LED和7段显示器分别表示其工作状态和显示相应工作状态下的时间。
2º可自行设定循环次数,最大循环次数为15次。
3º具有紧急情况处理功能,发生紧急情况,立即待机,紧急解除后,继续执行后续步骤。
4º设定循环次数到零时立即报警,表示设定次数已结束,在顶层电路定义各输入及输出变量。
(2)在Qaurtus∏建立计数器电路的顶层电路文件并完成编译和仿真。
(3)信号说明输入信号:时钟CLK,直接清零RD,暂停|连续EN,洗衣机的循环次数I3I2I1I0;输出信号:三个工作状态S、R、L,一个工作过程周期T,8421BCD码num[7..0],报警信号。
Verilog-HDL洗衣机控制器
定义5种状态,零停机、一设定时间、二漂洗、三洗涤、四脱水,要求设定时间给漂洗,漂洗正反转各10秒,洗涤正反转各5秒,脱水正反转各1秒,有一个设定时间键,有一个切换模式键,四种工作状态分别有四个LED 显示。
mod 切换模式,一共有停机s0,调整时间s1,漂洗s2,洗涤s3,脱水s4,共五种状态add 为调整时间累加,最后赋给timecountpiaocount 是漂洗计数xicount是洗涤计数tuocount是脱水计数zheng表示电机正转fan表示电机反转module wash(mod,add,led1,led2,led3,led4,clk,zheng,fan);input mod,add,clk;output led1,led2,led3,led4,zheng,fan;reg led1,led2,led3,led4;reg zheng,fan;reg [9:0] timecount,counter;reg [4:0] piaocount,xicount,tuocount;reg [2:0] state;parameter s0=3'b000;parameter s1=3'b001;parameter s2=3'b010;parameter s3=3'b011;parameter s4=3'b100;always @(posedge add)beginif(counter<600)counter<=counter+10'd60;elsecounter<=0;endalways @(posedge clk)beginbeginzheng<=0;fan<=0;endcase(state)s0:beginzheng<=0;fan<=0;timecount<=0;led1<=1'b0;led2<=1'b0;led3<=1'b0;led4<=1'b0;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s1;elsestate<=s0;ends1:beginled1<=1'b1;led2<=1'b0;led3<=1'b0;led4<=1'b0;begintimecount<=counter;endif(mod)state<=s2;elsestate<=s1;ends2:beginled1<=1'b0;led2<=1'b1;led3<=1'b0;led4<=1'b0;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s3;elsestate<=s2;beginpiaocount<=piaocount+1'b1; if(piaocount==5'b01010)piaocount<=5'b00000;else if(piaocount>=5'b00101) beginzheng<=1'b1;fan<=1'b0; endelsebeginzheng<=1'b0;fan<=1'b1; endendends3:beginled1<=1'b0;led2<=1'b0;led3<=1'b1;led4<=1'b0;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s4;elsestate<=s3;beginxicount<=xicount+1'b1;if(xicount==5'b10100)xicount<=5'b00000;else if(xicount>=5'b01010) beginzheng<=1'b1;fan<=1'b0; endelsebeginzheng<=1'b0;fan<=1'b1; endendends4:beginled1<=1'b0;led2<=1'b0;led3<=1'b0;led4<=1'b1;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s0;elsestate<=s4;begintuocount<=tuocount+1'b1;if(tuocount==5'b00010)tuocount<=5'b00000;else if(tuocount>=4'b00001) beginzheng<=1'b1;fan<=1'b0; endelsebeginzheng<=1'b0;fan<=1'b1; endendenddefault:beginstate<=s0; endendcaseendendmodule仿真图。
全自动洗衣机的设计-Verilog程序文件
实验报告2016 年 5 月 24 学 院:大数据与信息工程学院 专 业:电子与通信工程 学 号:2015021718 学生:鹏 举 指导教师: 良 荣目录一、实验题目 (3)二、实验目的 (3)三、实验要求 (3)四、洗衣机工作原理与功能说明 (3)状态图如下 (4)程序RTL视图如下 (4)五、详细代码如下 (5)模块一实现洗衣机状态转换和各状态输出控制 (5)模块二实现复位信号的异步复位同步释放 (11)模块三实现当前状态的数码管显示 (12)模块四实现按键检测 (13)模块五实现顶层的调用 (15)一、实验题目自动洗衣机设计二、实验目的1、熟练掌握Quartus II 工程文件的建立过程。
2、掌握Verilog的基本语法、语句、模块的使用。
3、了解模块的建立与使用。
4、了解FPGA的开发基本流程。
三、实验要求1、初始状态,准备启动。
2、开始进水;为防止进水过程出现故障,故不用定时器控制,而是手动给一个信号模拟水位检测传感器,表示进水完成。
3、开始洗涤:正反洗涤4次开始排水。
4、排水后立即脱水。
5、洗涤之后漂洗2次,每次漂洗过后都排水甩干。
6、整个过程全部用数码管来显示状态机状态,并用两个led灯表示电机的正转与反转状态。
四、洗衣机工作原理与功能说明自动洗衣机的工作原理:洗衣机有7个工作状态分别为空闲(idle)、加水(water)、洗衣(wash)、排水(drain)、甩干(dry)、漂洗(rinse)、结束音乐提示(music)。
一次完整的洗涤,进水3次、洗涤1次、漂洗两次、排水3次、甩干3次。
一次完整的状态转换为:空闲(idle)、加水(water)、洗衣(wash)、排水(drain)、甩干(dry)、加水(water)、漂洗(rinse)、排水(drain)、甩干(dry)、加水(water)、漂洗(rinse)、排水(drain)、甩干(dry)、结束音乐提示(music)。
程序功能说明:程序有4个输入start启动信号、water_test 水满检测信号,水满了就置一、drain_test排水检测,水排完了就置一、emergency紧急停止信号,任何情况下输入都进入idle状态,即停止工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010学年度第一学期电子技术基础课程设计――智能洗衣机控制器控制科学与工程系 自动化 1006 班******* ********院 系: 专 业: 班 级: 姓 名: 学 号: 指导教师:课程设计名称智能洗衣机控制器的设计设计内容及要求①设计一个智能洗衣机控制器,能够实现洗衣,漂洗和脱水的功能。
②要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机设定的工作模式(1~5)和整个过程所剩的工作时间用数码管显示出来(时间分辨率为 1 分钟),能够将洗衣机当前所处的状态(注水,洗衣,排水,甩干)用发光管或者数码管显示出来。
模式1 】:洗衣模式--强力洗(洗衣30 分钟)模式2 】:洗衣模式--普通洗(洗衣20 分钟)模式3】:洗衣模式--轻柔洗(洗衣10 分钟)模式4 】:漂洗模式模式5 】:甩干模式注:在以上 5 个模式中,每次注水 1 分钟,漂洗 5 分钟,排水 1 分钟,甩干1分钟,模式1〜3的洗衣时间如上所示,具体的洗衣步骤如下:【模式 1 〜3】:注水->洗衣->排水->甩干->注水->漂洗->排水->甩干-> 注水-> 漂洗-> 排水-> 甩干。
【模式4】:注水-> 漂洗-> 排水-> 甩干-> 注水-> 漂洗-> 排水-> 甩干。
【模式 5 】:甩干。
【要求】:实现逻辑控制过程,可以选择性的加入注水口无水报警等人性化的状态提示,操作完毕使用蜂鸣器鸣叫两秒提示。
③画出洗衣机控制器的状态机,写出状态编码方案。
④用Verilog 语言对设计进行描述,设计一个测试方案,并能够下载到实验板上调试成功。
⑤写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
并谈谈此次实验的收获、感想及建议系统设计1 系统框图与说明本次设计的重点在于智能控制器状态之间转换的条件和关系,并且在此基础上输出相应的显示图一系统结构框图Pause warnResetModelMode2Mode3Mode4Mode5输入端口描述Reset :复位Mode1-5 :模式选择Pause :暂停启动Warn :报警2状态转换图洗衣机共分为5个模式,4个状态。
模式分别为M0DE1强力洗,M0DE2普通洗,M0DE3轻柔洗,M0DE4漂洗,M0DE5 甩干;状态分别为stateO 注水,statel 洗衣,state2 排水,state3 甩干。
另外,为使洗衣机增添功能,添加了两个个状态,一个为初始状态stateOO,另一个为cloze,即为洗衣完成时的状态。
图二状态转换图3输入输出设计(按键,数码管,发光管,蜂鸣器)控制器设定有8个按键,其中5个为选择模式的按钮,另外一个则是控制器的复位键reset。
当按下reset的时候,控制器回复到初始状态。
还有一个是表示无水时的传感信号,最后一个则是增加的控制洗衣机暂停和再启动的按键。
输出数码管也有6个,其中两个分别显示控制器当前状态和模式,另外四个用来表示当前状态所剩余时间。
发光二极管设定了两个,其中一个表示洗衣机水箱无水时的报警显示,另一个是表示洗衣完成时的显示。
相应的,在这两个发光管亮起时,蜂鸣器发出声音。
系统仿真1各工作模式仿真波形图三model 状态转换图四mode2状态转换图六mode4状态转换iooooococoocooooowooxxxxMoocoowxmoawao c图七mode5状态转换图八mode4中由注水向洗衣状态转换时细节显示实验总结1心得体会本学期电子课程设计以老师多个命题,学生自由选择命题的形式进行。
趣味性强,同时也可以学到很多东西。
我们认为,在这学期的课设中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在课设过程中,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
我们采用Verilog 语言作为执行核心,通过了种从无到有,从不会到自由运用的过程。
在某种意义上说,这是一种锻炼,一种知识的积累,能力的提高。
完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。
很少有人会步登天吧。
永不言弃才是最重要的而且,这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
本次课程设计虽然结束了,却留下了很多遗憾,因为由于时间的紧缺和课程的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。
我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。
只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!To us, happiness equals success! 快乐至上,享受过程,而不是结果!认真对待每一个实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重要的东西,也是以后都将受益匪浅的!2 功能扩展洗衣机设定了启动,暂停和在启动功能,在运用时显得更为人性化。
附录:源程序moduleauto_con(clk,clk2,clr,out,sel,mode,warn,speak,ts1,ts2,tm1,tm2,LEDW,LEDF); input clk,clr,clk2,warn; input[4:0] sel; output[3:0] out;output speak,LEDW,LEDF; output[3:0] mode; reg[3:0] mode; reg LEDW,LEDF; reg[3:0] out; reg[3:0] state; reg[1:0] step;output[3:0] ts1,ts2,tm1,tm2; reg[3:0] ts1,ts2,tm1,tm2; wire fin; wire speak; reg flag;parameter state0=4'b0001,state1=4'b0010, /* 状态编码,采用二进制编码方式 */state2=4'b0011,state3=4'b0100, state11=4'b0110,state12=4'b0111, state13=4'b1000,cloze=4'b0101, state00=4'b0000;assign fin=((ts2==0) & (ts1==0) & (tm2==0) & (tm1==0)); assign speak=(warn||(state==cloze))&clk2; always @(posedge clk) begincase(sel)5'b00001:mode<=4'b0001; 5'b00010:mode<=4'b0010; 5'b00100:mode<=4'b0011; 5'b01000:mode<=4'b0100; 5'b10000:mode<=4'b0101; default: mode<=4'b0000;endcaseif(state==cloze) LEDF <= 1'b1; /* 洗衣完成时发光管发光 */ elseLEDF <= 1'b0;begin if(ts2!=0)ts2 <= ts2 - 4'd1;LEDW <= warn; /* 无水报警时发光管发光 *//* 蜂鸣器信号 *//* 该进程定义起始方式 *//* 模式编码,采用二进制编码方式 *//* 该部分控制倒计时 */else if(ts2==0 & ts1 != 0) begin ts2 <=4'd9; ts1 <= ts1-4'd1;endelse if(ts2==0 & ts1==0 & tm2!=0) begin ts2 <= 4'd9; ts1 <= 4'd5; tm2 <=tm2 - 4'd1;endelse if(ts2==0 & ts1==0 & tm2==0 & tm1!=0) begints2 <= 4'd9;ts1 <= 4'd5;tm2 <= 4'd9;tm1 <= tm1 - 4'd1;endendif(clr) begin state<=state00; flag<=1'b0; step<=2'b00;tm1<=0;tm2<=0;ts1<=0;ts2<=0;endif(fin)case(sel) /* 该进程控制各模式状态之间的转换*/ 5'b00001:case(state) /*M0DE1 的状态转换*/state00:begin tm1<=0;tm2<=0;ts1<=5;ts2<=9; state<=4'b0001;endstate0:beginif(flag==0)begin tm1<=2;tm2<=9;ts1<=5;ts2<=9;state<=4'b0110;flag<=1'b1;endelsebegin tm1<=0;tm2<=4;ts1<=5;ts2<=9;state<=4'b0010;endend4'b0110:begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0011;end4'b0010:begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0011;end4'b0011:begin tm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0100;end4'b0100:beginif(step==2'b10) state<=cloze;elsebegin tm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=state0;step<=step+2'b1;endenddefault: state<=cloze;endcase5'b00010:case(state) /*M0DE2的状态转换*/ state00:begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0001;endstate0:beginif(flag= =0)begin tm1<=1;tm2<=9;ts1<=5;ts2<=9;state<=4'b0111;flag<=1'b1;endelsebegintm1<=0;tm2<=4;ts1<=5;ts2<=9;state<=4'b0010;endend4'b0111:begin tm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0011;end4'b0010:begin tm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0011;state<=4'b0100;endend4'b0011:begin tm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0100;end4'b0100:beginif(step==2'b10) state<=cloze; else begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=state0;step<=step+2'b1;endenddefault:state<=cloze;endcase5'b00100:case(state)/*M0DE3的状态转换*/ state00:beginstate<=4'b0001;tm1<=0;tm2<=0;ts1<=5;ts2<=9;endstate0:beginif(flag= =0)begin tm1<=0;tm2<=9;ts1<=5;ts2<=9;state<=4'b1000;flag<=1'b1;endelsebegintm1<=0;tm2<=4;ts1<=5;ts2<=9; state<=4'b0010;endend4'b1000:begintm1<=0;tm2<=0;ts1<=5;ts2<=9; state<=4'b0011;end4'b0010:begintm1<=0;tm2<=0;ts1<=5;ts2<=9; state<=4'b0011;end4'b0011:begin tm1<=0;tm2<=0;ts1<=5;ts2<=9;end5'b10000:begin /*M0DE5的状态转换*/ 4'b0100:beginif(step==2'b10) state<=cloze; else begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=state0;step<=step+2'b1;endend default: endcase state<=cloze;5'b01000:begincase(state)4'b0000:begin /*MODE4的状态转换*/ tm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=state+4'b0001;end 4'b0001:begintm1<=0;tm2<=4;ts1<=5;ts2<=9; state<=state+4'b0001;end 4'b0010:begintm1<=0;tm2<=0;ts1<=5;ts2<=9; state<=state+4'b0001;end4'b0011:begintm1<=0;tm2<=0;ts1<=5;ts2<=9; state<=state+4'b0001; end4'b0100: beginif(flag==0)begintm1<=0;tm2<=0;ts1<=5;ts2<=9;state<=4'b0001;flag<=flag+1'b1;endelse state<=cloze;enddefault:state<=cloze; endcasecase(state) 4'b0000:begin state<=4'b0100;end 4'b0100:beginend defaultendcase enddefault: state<=state00; /*default 语句,避免锁存器的产生*/ endcase end tm1<=0;tm2<=0;ts1<=5;ts2<=9; state<=cloze;state<=cloze;。