智能洗衣机控制器设计verilog编程
- 格式:doc
- 大小:269.00 KB
- 文档页数:17
华中科技大学电子线路课程设计题目:智能洗衣机院系:控制科学与工程系班级:自动化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课程设计----洗衣机控制器设计要求:设计一个电子定时器,控制洗衣机作如下运转:定时启动--->正转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里面仿真出来波形如下:波形符合设计的要求。
智能洗衣机控制器设计报告鑫鑫出品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数字电子技术-洗衣机控制器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的洗衣机控制电路设计作者:赵根陈正楠叶琳琳兰兴宇孙静马彧来源:《电脑知识与技术》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],报警信号。
信息与电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。
智能洗衣机控制器设计报告鑫鑫出品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>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
实验报告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)。
实验报告项目名称智能洗衣机控制器的设计课程名称电子技术课程设计课程设计日期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进制减计数器。
全自动直筒洗衣机FPGA控制器的开发设计文章提出了一种基现场可编程门阵列(简称FPGA)实现的洗衣机控制器,本洗衣机控制器不仅工作性能稳定抗干扰能力强和结构简单,而且占用硬件资源少,能够通过配置系统参数以满足不同类型洗衣机的控制要求,对洗衣机水位和洗涤力度的控制效果良好,具有一定的实用价值。
标签:FPGA;洗衣机;控制器1 概述洗衣机的发明使人类告别了手工洗衣的繁重劳动,但是最初由于技术不发达洗衣机的自动化程度显然不高,洗衣的几个过程仍需要人工切换操作来进行。
随着科技的发展,洗衣机也由最初的洗涤和脱水的手动切换过程发展到了半自动半手工,发展成为目前普遍使用的全自动洗衣机,现实要求洗衣机的体积更小、集成度更高、应用更简单、洗衣机的控制引入了微型处理器进行编程,实现对洗衣机内外部水流的控制,洗衣机控制精度不同对控制器的精度要求也不同,对于控制精度要求高的洗衣机需要精度高的控制。
本系统采用有FPGA芯片的在线可编程控制器,该系统控制器硬件使用VHDL语言设计而成,不仅性能稳定抗干扰能力强而且方便调试维护和系统升级,保障洗衣机系统的正常运行。
2 系统的功能部件介绍该洗衣机控制器根据功能可以划分为五个模块,分别为时间预置编码器模块、减法计数器模块、数码管显示模块、时序电路模块和译码器模块。
(1)时间预置编码器模块:接收用户所输入的预置时间信息,并将时间信息进行编码,编码成机器语言后转交给减法计数器。
(2)减法计数器模块:将接收的编码时间预置信息转换成开始信号发送给电机使电机开始运行,并将预设的时间信息和剩余的时间信息发送给数码管模块进行显示。
(3)数码管显示电路模块:接收减法计数器模块传递的时间信息,并进行译码显示。
(4)电机时序控制电路:接收减法计数器模块传递的运行开始和结束信号,安排电机的运行状态并输出。
(5)译码器:接收电机运行状态的信号并译码,实现实时控制电机的正反转状态以及暂停状态。
3 控制逻辑各模块功能的VHPL语言实现3.1 时间预置编码器模块的VHDL语言LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FENG ISPORT(CP,CLR:IN STD_ 31A ISPORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0)D1,D2,D3:IN 1,Q2,Q3,Q4,ALM:OUT_ARCOFCH41ASBPIDEGINPROCESS(D1,D2,D3,D4)V ARIPIDABLE:S;USEIEEE.STD_LOGIC_1164.ALLENTITYSELISPORTARCHITECTURBEGIN PROCESS(CLK)V ARIABLEE.STD;WHENENDCASE;ENDPROCESSNSIGNED.ALLNTITYCOUNTISPORT(CLK,EN:INH,L:OUTBEGINCLK’EVEN’THENIFEN=‘1’THENIFELSIFLL=0THEN LL1PROCESS ;ENDCOUNT_AREND DISP_ARC;2,减法计数器模块的VHDL语言LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALLENTITY LOCKB IS PORT(D1,D2,D3,D4:IN STD_LOGIC;CLK,CLR:IN LOGIC;Q:OUT STD_LOGIC);END FENG;ARCHITECTURE FENG_ARC OF FENG IS BEGINPROCESS(CP,CLR)BEGINIF CLR=‘0’THEN QQEND PROCESS;END DISP_ARC;3,数码管显示电路模块的VHDL语言LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALLENTITYPIDCH41AISPORT(D1,D2,D3,D4:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR (3DOWNTO 0))END CH41A ARCHITECTURE CHCKB;ARCHITECTURELOCK_ARCOFLOCKBGIN PROCESS(CLK)BEGIN FEN Q1<=‘0’;Q2<=‘0’;Q3<=‘0Q4<=‘0ALM<=‘0’;LOCKB ELSIFCLK’EVENTANDCLK=‘1’THEN Q1<=D1;Q4,电机时序控制电路的VHDL语言LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALENTITYCH1AISPORT (SEL:IN STD_LOGIC_VECTOR(2DOWNTO0);ENDIF;ENDPROCESS;ENDFENG_ARC;USEIEEE.STD_LOGIC_1164.ALLENTITYSELISPORT(CLK:INSENDSELOR( 3 DOWNTO 0)Q:OUT USEIEEE.STD_LOGIC_1164.ALLENTITYSELISPORTARCHITECTURBEGIN PROCESS(CL STD_LOGIC_VECTOR(3 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR( 3 DOWNTO 0)ENDCH31A;RCHITECTURECH31_ARC4 结束语本系统采用FPGA作洗衣机控制单元控制情度较高,成本低且控制效率高,能够满足各种类型洗衣机的控制要求。
基于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],报警信号。
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信号用七段数码管显示,最终实现了洗衣机的各项功能。
基于FPGA的洗衣机控制电路实现姓名:学号:专业:2010--11--15洗衣机洗涤控制电路设计一、洗衣机洗涤控制电路的性能要求1.强洗、标准、轻柔三种洗涤模式强洗周期水流控制:正向电机接通5秒后,停2秒;再反向电机接通5秒,停2秒;然后又正向电机接通5秒。
如此循环控制电机,直到洗涤定时结束。
标准洗周期水流控制:其过程与强洗周期水流控制相同,不同的是正向接通时间为3.5秒,停止时间为1.5秒,反向接通时间为3.5秒。
轻柔洗周期水流控制:正向接通时间为2.5秒,停止时间为1.5秒,反向接通时间为2.5秒。
2.三种洗涤定时洗衣机洗涤定时可有三种选择:5分钟、10分钟、15分钟。
3.上电复位后的初始设定初始设定为标准模式,定时时间为15分钟。
如需修改可按模式选择按键和定时选择按键。
每按一次按键转换一次,可多次进行循环选择。
当某一次洗涤过程结束后,自动返回初始状态,等待下一次洗涤过程开始。
4.启/停控制洗涤过程由启/停键控制。
每按一次启/停键,状态转换一次。
5.洗涤定时精度洗涤定时误差要求不大于0.1秒。
为简化设计洗衣机洗涤控制电路,只要求输出正向和反向的电机控制信号。
二、洗衣机洗涤控制电路的结构根据上述对洗衣机洗涤控制电路的性能要求,可以画出如下图所示的结构框图。
该控制器由四大部分组成:主分频器、主控制器、洗涤定时器和水流控制器。
洗衣机洗涤控制电路的结构框图主分频器主分频器用来产生0.1秒的时钟供主控制器使用。
本方案DE2板自带时钟,其振荡频率为50MHz。
这样,主分频器的分频系数为5M。
现采用3个分频器构成主分频器的分频电路。
3个分频器是1k分频器、1k分频器和5分频器。
主分频器的结构如下图所示。
主分频器的结构三、洗衣机洗涤控制电路的算法状态机图描述1.主控制器算法状态机图描述根据主控制器的工作要求,洗衣机洗涤时的工作状态共有以下9种:标准——15分钟标准——10分钟标准——5分钟轻柔——15分钟轻柔——10分钟轻柔——5分钟强洗——15分钟强洗——10分钟强洗——5分钟1)模式选择控制状态机图2) 定时选择控制状态机图3) 启/停控制算法状态机图描述2.洗涤定时器算法状态机图描述洗涤定时器有3种状态:停止状态(IDLE)、计时状态(INCCOUNT)和暂停状态(TMP_STOP)。
定义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仿真图。
实验报告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状态,即停止工作。
基于FPGA的全自动洗衣机控制器设计与实现摘要:在介绍FPGA的基本原理和开发流程基础上,使用V erilog HDL 硬件描述语言实现了一个全自动洗衣机控制器。
该控制器可以预置洗衣时间,循环输出正转、反转、暂停三个电机控制信号。
程序在编译仿真成功后下载到DE0开发板,准确实现了各项基本控制功能,操作简单,性能稳定可靠。
关键词:FPGA;DEO;Quartus II;Verilog HDL;洗衣机0引言自现场可编程门阵列(FieldProgrammable Gate Array,FPGA)器件诞生以来,FPGA产业迅速发展,一方面技术性能不断加强,加工工艺从2μm发展到65nm,晶体管数量从8.5万个增长到10亿个以上,不断加入各种实现常用功能的软硬核;另一方面应用领域不断扩张,从传统的通信业不断向消费电子、汽车、工业控制等非传统领域渗透。
FPGA性能的提高和成本的降低使其不断抢占DSP、ASIC、ASSP和嵌入式处理器市场,FPGA的开发和应用已经形成一个庞大的产业。
FPGA所具备的众多优点使其在未来的信息家电和智能家电中拥有极其广阔的应用前景,因此积极研究FPGA在家电控制方面的应用具有巨大的商业价值和重要的社会意义。
1FPGA的基本结构简化的FPGA基本结构由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。
1.1可编程输入/输出单元输入/输出单元简称I/O单元,它们是芯片与外界电路的接口部分。
为了使FPGA有更灵活的应用,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以试配不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小。
1.2基本可编程逻辑单元基本可编程逻辑单元是可编程逻辑的主体,可以根据设计灵活改变其内部连接与配置,完成不同的逻辑功能。
基本可编程逻辑单元几乎都是由查找表(Lookup Table,LUT)和寄存器(Register)组成的。
智能洗衣机控制器设计V e r i l o g编程-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN智能洗衣机控制器设计报告鑫鑫出品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>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
其中洗衣为10分钟;4>漂洗模式:工作程序为,注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。
5>甩干模式:工作程序为,甩干。
以上五种模式中,进水时间为1-3分钟,漂洗为5分钟,排水2分钟,甩干3分钟。
b.显示洗衣完成所需时间。
c.用不同LED灯显示洗衣机当前的工作状态(注水、洗衣、排水、甩干)。
d.完成洗衣任务时蜂鸣3声提示。
扩展功能:a.进水量可调。
根据衣物的多少,进水时间有1分钟、2分钟、3分钟三个档位,并用一个数码管显示所设时间。
b.进水时无水报警。
蜂鸣器发出2秒的报警声,并中止洗衣工作。
供水正常后恢复工作。
c.甩干时洗衣机盖被打开则报警。
2秒报警声,同时中止甩干操作。
重新盖上盖子后恢复工作。
d.有按键音。
e.设有暂停/继续键。
可随时按下暂停洗衣机的工作。
再次按下则继续工作。
f.用两个LED灯标志给电机的控制信号。
在洗衣或漂洗时交替闪亮,象征电机顺时针/逆时针转动的转换。
g.用数码管显示当前工作状态(注水、洗衣、排水、甩干)所剩时间。
三.模块设计及端口设置。
为完成预定功能,设置1个主模块,7个子模块;使用2个时钟信号端口,6个按键,6个数码管和7个LED。
主模块main:调用其他模块,共同完成预定功能。
输入端口:CP_1k,CP:分别为1kHz和1Hz方波,分别用于产生蜂鸣信号和系统状态转换及计时的时钟信号;Start,Pause:开始键和暂停/继续键;Set,Speed:功能设定,分别用来设定工作模式和进水量;Open,No_water:警报信号,用来模拟打开洗衣机盖和供水中断事件的发生。
输出端口:m[3:0],v[3:0]:数码管显示信号,分别指示工作模式和进水量;Timer[7:0],Timer_a[7:0]:数码管显示信号,分别表示当前过程剩余时间和完成所有工作剩余时间。
LED_s,LED_wi,LED_wo,LED_w,LED_d和 LED_l,LED_r:LED驱动信号,分别指示正在工作、进水、出水、洗衣、甩干和电机的顺时针、逆时针旋转状态。
a:蜂鸣信号。
用于报警、提示有键按下和洗衣完成。
工作模式设定模块mode:设定工作模式。
输入端口:Set:设定工作模式模式的按键;输出端口:m[3:0]:所设定的模式,BCD码,可取1到5的整数;进水量设定模块Water_t:设定进水量。
输入端口:Speed:设定进水量,按键;输出端口:V[3:0]:所设定的进水时间,BCD码,可取取1到3的整数;无供水信号产生模块waterless:产生无水报警信号。
输入端口:No_water:供水中断/恢复信号,按键;输出端口:water_out:供水情况指示量,值为1表示无供水,0表示供水正常;危险信号产生模块Unsafe:产生危险报警信号。
输入端口:Open:洗衣机盖开/合信号,按键;输出端口:danger:洗衣机盖状态指示量,值为1表示打开,0表示关闭;洗衣过程控制模块wash:控制洗衣过程的转换。
输入端口:CP:1Hz时钟信号,来自时钟信号发生器;Start:开始工作命令信号,按键;m:工作模式,来自模块mode;v:进水时间,来自模块Water_t;water_out:供水情况,来自模块waterless;danger:危险状态,来自模块Unsafe;tp:暂停/继续的命令信号;输出端口:p:运行/暂停工作状态量,1表示正在运行,0表示暂停;finish:工作结束状态量,由0变为1表示工作结束;timer[7:0]:当前工作过程剩余时间,向上传给main中的Timer;timer_a[7:0]:完成全部工作剩余时间,传给main中的Timer_a;s[2:0]:工作状态指示量,从0到5分别指示进水、洗衣、出水、甩干和完成信号有效;c[2:0]:取1到4,表示当前工作是第几轮;报警模块alart:产生报警蜂鸣信号。
输入端口:CP_1k:1kHz方波信号,用于产生蜂鸣信号,来自信号发生器;CP:1Hz方波信号,用于产生间断的蜂鸣信号,来自信号发生器;Start,Set,Pause,Speed:按键音有效信号。
另外Pause还用于突发情况时人为控制暂停/继续的控制键;No_water,water_out,Open,danger:控制报警音开始/结束的信号,来自模块waterless和Unsafe;finish:完成工作后提示音有效信号,来自模块wash;输入端口:a:报警音驱动信号tp:暂停/继续信号。
tp=1时暂停,tp=0时继续。
LED灯状态模块LEDs:控制LED的亮灭。
输入端口:s,c:洗衣机的工作状态指示量,用作那个灯亮的判断条件,来自模块wash;p:运行/暂停状态标志量,用于暂停时的闪亮效果,来自模块alart;CP:1Hz方波信号, 造成闪亮效果,来自信号发生器。
输出端口:LED指示灯驱动信号。
LED_wi:进水; LED_wo:出水; LED_w:洗衣; LED_d:甩干; LED_s:正在运行; LED_l:电机顺时针转; LED_r:逆时针转。
用Leonardo综合出的模块级连线图如下:以上子模块端口具体用途在电工作原理中涉及。
四.电路工作原理。
下面按电路的使用过程对电路工作原理进行描述。
1.按下Set键,在Set上升沿作用下,mode模块被调用,执行的操作是工作模式m增加1。
其状态变化如下:m= 1m=2m=3m=4m=5设定好工作模式后,按Speed键设定进水时间,water_t模块被调用,执行的操作是进水时间v增加1。
其变化原理与m类似,只是变化范围是1-3分钟。
2.设定完毕,按Start键,洗衣过程开始,这时是wash模块被调用,wash模块中,由状态变量c记录洗衣的轮数(以进水到甩干为一轮),状态变量s代表当前的工作方式,即s=0为进水,s=1为洗衣,s=2为排水,s=3为甩干,s=4时进行完成提示音信号的延时,其状态转变流程如下:其中,ok=1是上一任务完成的标志,模式1,2,3中,c初值为4。
轮回3次后c=1,s由3变为4,finish置1有效,完成提示音响(由module alart实现),同时延时计时器启动,计时完毕后,finish=0,提示音停。
s=4状态的工作完成后,ok=0,s保持,直到下次启动(Start)再初始化。
以s的值为主要状态标志的基本工作流程图:3.报警功能,主要由alart模块实现。
按No_water键,供水中断信号water_out=1有效。
如果这时正在进水,则置c_e=1使报警音延时计时器开始计时,同时c_t=1使报警信号有效,开始发出报警音。
延时器计时完毕,c_e、c_t复位,报警音关闭,报警结束。
但进水工作仍处于中断状态。
只有再此按下No_water键,表示供水恢复,则继续进水。
甩干过程中由Open键触发的洗衣机盖被打开的报警原理同上。
工作结束后的提示音由输入的finish信号控制。
finish会有3个CP 有效,和CP相与后,产生三声提示音。
暂停功能也有alart模块参与,按Pause键后,tp变化,会导致暂停有效信号取反,实现暂停/继续的功能。
等指示状态共用到7个LED来代表系统的工作状态。
其驱动信号有效与否由系统目前的工作状态来判断。
其具体代表的状态和实现方法已在端口介绍和源程序注释中说明,不另赘述。
五.Verilog源程序及注释。
1.主模块main:module main(CP_1k,CP,Start,Pause,Set,Speed,Open,No_water,Timer,Timer_a,m,v, LED_wi,LED_wo,LED_w,LED_d,LED_s,LED_l,LED_r,a);input CP_1k,CP,Start,Pause,Set,Speed,Open,No_water; 式选择模块mode:module mode(Set,m);input Set; 水时间设定模块water_t:module Water_t(Speed,v);input Speed; 衣过程控制模块wash:module wash(CP,Start,m,v,water_out,danger,tp,p,finish,timer,timer_a,s,c);input CP,Start,tp,water_out,danger; 水情况感应模块Waterless:module waterless(No_water,water_out);input No_water; 衣机盖开合状态感应模块Unsafe:module Unsafe(Open,danger);input Open; 警模块alart:module alart(CP_1k,CP,Start,Set,Pause,Speed,No_water,water_out,Open,danger, finish,s,a,tp);input CP_1k,CP,Start,Set,Pause,Speed,No_water,water_out,Open,danger,finish; //输入时钟信号及报警音控制信号input [2:0]s; //输入当前工作状态output a,tp; //输出报警信号和暂停允许信号reg c_e,c_t,tp;reg[2:0] count;always@(posedge Pause)begin //暂停/继续键Pause上升沿触发下,if(tp==1)tp=0; 暂停允许信号改变;else tp=tp+1;endalways@(posedge CP or posedge No_water or posedge Open or posedge Start)beginif(Start)c_e=0; //启动时,延时计时器使能位c_e复位为0else if(No_water|Open)beginif((water_out==1&&s[2:0]==3'b000)||(danger==1&&s[2:0]==3'b011))c_e=1; //发生危险事件,使能端c_e置1else c_e=0;endelse if(CP)begin //c_e=1,以CP为时钟信号开始计时if(count[2:0]==3'b010)begin c_t=0;c_e=0;count[2:0]=0;endelse if(c_e==1)begin count[2:0]=count[2:0]+3'b001;c_t=1;end//计时中,计时进行标志位c_t=1else if(c_e==0)count=0;endendassign a=((c_t|CP&finish)|(Start|Set|Pause|Speed))&CP_1k;//若警报延时计时器正在计时(c_t=1)或工作完成提示信号有效(finish=1)或有键按下(Start、Set、Pause、Speed)则发出相应报警音。