版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE3目录摘要 1关键词 1Abstract 1Keywords 21.绪论 22.系统的整体方案设计 32.1设计功能要求 32.2系统设计方案 42.3洗衣工作方式选择 43.系统的硬件设计 53.1关于AT89C51芯片 53.2复位电路设计 73.3显示电路设计 83.4键盘电路设计 83.5时钟电路设计 93.6蜂鸣器报警电路设计 103.7电机控制电路设计 104.软件设计 124.1主程序设计 124.2洗涤程序的设计 124.3漂洗程序的设计 124.4脱水程序的设计 125.仿真 145.1Proteus简介 145.1系统仿真 156.总结 17参考文献 17致谢 18附录 19软件主程序 19基于单片机的全自动洗衣机控制器设计摘要:随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中。单片机以体积小、功能全、价格低廉、开发方便的优势得到了许多电子系统设计者的青睐。本文以AT89C51单片机为核心设计了一种全自动洗衣机的控制系统。实现了对洗衣机整个洗衣过程的全自动控制,包括用户参数输入、洗衣、脱水和结束报警四个阶段。硬件控制系统主要由电源电路、单片机控制系统和外部硬件电路三大模块组成。电源电路为单片机主控系统提供5v的直流电压;单片机主控系统负责控制洗衣流程的自动执行;外部硬件电路由单相异步单机、进水出水阀门、负载水位传感器、蜂鸣器等组成。通过按键来进行洗衣参数设置,使用AT89C51单片机驱动数码管显示洗衣机的工作时间,用LED指示灯显示洗衣机的工作状态,用两个电控水龙头进行加水和放水,通过蜂鸣器提示洗衣结束。最后,通过proteus仿真软件进行仿真,实现了洗涤、漂洗、脱水等预期效果。关键词:全自动洗衣机;单片机;LED显示DesignoftheautomaticwashingmachinecontrollerbasedonMCUAbstract:Withtherapiddevelopmentofdigitaltechnology,digitaltechnologyhasbeenwidelyappliedinthefieldofintelligentcontrol.MCUismoreandmorepopularamongtheelectronicsystemsdesignersbecauseofsmallvolume,completefunctions,lowprice,convenientexploitation.ThisarticleisaboutthedesignthatacontrolsystemwhichisasAT89C51acoreofautomaticwashingmachine.Andrealizethecontrolofthewashingmachineinthewashingprocess,includinguserinput,washing,dehydrationandalarmfourstages.Hardwarecontrolsystemincludesapowersupplycircuit,microprocessorcontrolsystemsandexternalhardwarecircuitconsistingofthreemodules.Powersuppliesprovides5Vforthemaincontrolsystemofsingle-chipDCvoltage;ThemaincontrolsystemoftheMCUisresponsibleforcontrollingthewashingprogress;externalhardwareincludesthesingle-phaseasynchronoussingle,wateroutletvalve,loadlevelsensor,buzzeretc.Throughthekeyparametersettingsforlaundry,AT89C51isusedtodrivedigitaltubedisplayingtheworkinghoursofthewashingmachine,LEDindicatorisusedtodisplaytheworkingstatusofthewashingmachine,forwateranddrainwithtwoelectricallycontrolledwatertaps,buzzerisusedfornoticingpeopletheendofthewashingprogress.Intheend,throughproteustoachievethewashing,rinsing,dehydrationandotherexpectedresults.Keywords:
fullautomatic
washingmachine;
MCU;
LEDdisplay1.绪论洗衣机作为一款家用电器,在日常生活中得到了广泛的使用,洗衣机的产生使人们从繁重的家务劳动中解脱出来,而全自动洗衣机的发明更是洗衣机技术史上的一个重大改革。它不仅能节省人力,而且还能进一步扩大对机洗衣物的范围。使用全自动洗衣机洗衣可以根据衣物的体积、质地,在微电脑控制器上选择水流的大小和强弱以及时间的长短以及的水量的多少等,能够实现完整的自动化洗衣过程。现在的洗衣机也越来越高度自动化,衣服只要放入洗衣机,只需简单的按两个键,系统就会自动注水,通过电脑控制的洗衣机,能够自动感受衣物的重量,会自动添加适合的水量以及洗涤剂,能自动设置洗涤的时间以及洗涤的力度,洗涤完之后还会自动的漂洗甩干,甚至将衣物烘干,从而大大节省了时间{1}。单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以有要求其控制体积更小以便能嵌入其结构之中。而家用品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求{2}。对全自动洗衣机而言,一般要求具备如下功能:(1)强弱洗涤功能。要求强洗时正反转驱动时间各位4s,间歇时间为1s;弱洗时正反转时间各为3s,间歇时间为2s。(2)4种洗衣工作程序。即标准程序、经济程序、单独程序和排水程序。标准程序是进水—洗涤—漂洗—排水—脱水。基于单片机的自动洗衣机控制系统具有精度高、功能强、经济性好的特点。无论在提高产品质量还是产品数量,节约能源还是改善劳动条件等方面都显示出无比的优越性。单片机的体积小,控制功能灵活,因此,设计出基于单片机的洗衣机控制系统就具有很强的实用性。现在已经有厂家开发出了不需要使用洗涤剂的洗衣机,还有的厂家开发出了更迷你的旅行洗衣机,小到可以在出外旅行的时候随身携带,为了更方便的操作有的厂家还开发出了可以远程控制的洗衣机,将来的洗衣机会朝着使用更方便、更加节能、更加个性化的方面发展[5]。2.系统的整体方案设计2.1设计功能要求(1)主要内容:设计一个基于51单片机控制的洗衣机控制器。以单片机为主,扩展必要的外部硬件电路,设计制作一个全自动洗衣机控制器。①掌握单片机的基本概念和原理;②熟悉全自动洗衣机控制器的体系结构、实现方法及其原理;③硬件设计、软件设计及主要模块电路设计;④结合程序对所设计的全自动洗衣机控制器电路在Proteus中进行仿真。(2)主要功能:①具有标准洗、经济洗、单独洗、排水4个程序选择功能②标准洗衣:洗涤6分钟;第一次漂洗4分钟,第二次漂洗2分钟;脱水2分钟。经济洗衣:洗涤6分钟;漂洗4分钟;脱水2分钟。单独洗衣:洗涤6分钟。排水洗衣:排水1分钟。③强弱洗功能:强洗时正、反转驱动时间各为4秒,间歇时间为1秒;弱洗时正、反转驱动时间各为3秒,间歇时间为2秒。④有启动/暂停/解除警报键控制:第一次按此键启动;工作的时候按此键暂停,再按则继续工作;当检测到异常报警时,按此键能解除警报。⑤有脱水功能,并且在脱水时,如果打开盖板则暂停脱水,关上盖板则继续脱水;在除脱水外的其他洗衣程序时,如果打开盖板,洗衣机不会停止工作。⑥洗涤的时候洗涤状态灯闪烁;漂洗的时候漂洗状态灯闪烁;脱水的时候脱水状态灯闪烁。2.2系统设计方案本次设计我采用的是基于51单片机的控制系统设计方案。单片机输出驱动信号和显示信号,是整个系统的核心。经过选择采用AT89C51单片机能够实现本设计的基本要求,这种单片机的软件编程自由度大,可以用编程实现各种逻辑控制和算法控制。它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,它的处理对象不是字或字节而是位。它不仅能对片内某些特殊功能寄存器的单片机主控系统单片机主控系统电机控制电路蜂鸣器报警电路电源电路键盘电路复位电路时钟电路显示电路图2-1设计总方框图位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备[6]。系统整体设计模拟框图如图2-1所示。本系统能实现对洗衣机整个洗衣过程的控制,包括参数输入、洗涤、漂洗、排水和脱水等阶段。控制系统主要由电源电路、单片机控制系统和外部硬件电路组成。电源采用三端集成固定稳压器7805提供+5V电源;单片机控制系统负责控制洗衣机的工作过程,它的核心是AT89C51单片机;外部硬件电路实现进水、排水、电机驱动等功能,主要由电动机、三极管、继电器、进水电磁阀和排水电磁阀等组成。2.3洗衣工作方式选择三种洗衣工作方式分为洗涤、漂洗和脱水。洗涤程序的过程是进水→洗涤→排水→进水→漂洗→排水→脱水;漂洗程序与洗涤程序一样,只是时间比较短。脱水的程序过程是排水→脱水;洗涤程序、漂洗程序和脱水程序是通过按键来进行选择,可单独进行某一项程序。3.系统的硬件设计3.1关于AT89C51芯片本次设计,选择使用的单片机芯片是AT89C51。在众多的51单片机系列中,AT89系列单片机在我国也得到极其广泛的应用,越来越受到人们的亲睐。AT89系列单片机是美国Atmel公司的8位Flash单片机产品。AT89C51它是一种4K的字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机[7]。它的最大特点是在片内含有Flash存储器,Flash存储器是一种可以电擦除和电写入的闪速存储器(简记为EEPROM),在系统的开发过程中可以十分容易地进行程序的修改,使开发调试更为方便。AT89系列单片机以8031为内核,是与8051系列单片机兼容的系列,Atmel89系列单片机有许多型号,可分为标准型号、抵挡型号和高档型号3类。系统将选用的AT89C51是属于标准型单片机。标准型89系列单片机是与MCS-51系列单片机兼容的。标准型系列在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为0-33MHz,有3级程序存储器加密锁定,内部含有128-256字节的RAM、32条可编程的I/O端口、2个16位定时器/计数器、6-8级中断,此外有通用串行接口、低电压空闲模式及掉电模式。AT89系列标准单片机有4种型号,分别为AT89C51、AT89LV51、AT89C52和AT89L52[8]。其中AT89C51和AT89C52直接与8051系列兼容,相当于将8051、8052中的4KB、8KB的ROM换成相应数量的Flash存储器,其结构、供电电压、引脚数量及封装均相同,使用时可直接替换。AT89LV51是AT89C51低电压型号,可以在2.7-6V的电压范围内工作,其他功能和89C51相同。AT89C51的引脚图如图3-1所示。AT89C51的引脚功能如下:(1)电源引脚 电源引脚接入单片机的工作电源。①VCC(40引脚):接电源。②VSS(20引脚):接地。(2)时钟引脚①XTAL1(19引脚):接到外部晶体的一端。该引脚内部是1个反相放大器输入端,这个反相放大器形成了片内振荡器。如果采用外接一个晶体振荡器,此引脚应该接地。②XTAL2(18引脚):接到外部晶体的另外一端。在该引脚的内部接到内部反相放大器输出端。如果采用外部的时钟振荡器的话,此引脚接收时钟振荡器发出的信号,即把这个信号直接连接到内部的时钟发生器输入端[9]。(3)控制引脚图3-1AT89C51引脚图①RESET(9引脚):复位信号输入端,高电平有效。此引脚内部已有一个50-30K的电阻器接地,所以只需接一个电容至+VCC,即可在电源ON时产生开机复位的功能。但是,常会在RESET引脚用一个8.2-10K的电阻接地,以缩短开机复位的时间。如需要,也可在电容两端并联一个常开按钮,以便按此按钮时可强迫系统复位。②ALE(30引脚):地址锁存器输出端。在系统扩展时,用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的隔离。ALE是以晶振1/6的固定频率输出的正脉冲,因此可以作为外部时钟或外部定时脉冲用。③(29引脚):程序存储器允许输出控制端。当CPU想读取外部ROM的内容时,此引脚会自动产生负脉冲。④(31引脚):内外程序存储器选择控制端。当接VCC时,对ROM的读操作从内部程序存储器开始,并可延续到外部ROM。当引脚接地时,内部程序数据失效,CPU被迫只能读取外部的程序存储器。(4)I/O口引脚①P0口(P0.0-P0.7共8个引脚,即39-32引脚):双向8位三态I/O口,此口为地址总线及数据总线分时复用口。没有内部上拉电阻器,输出电平时,需用户在引脚上接上外部上拉电阻器。在访问外部存储器时,可分时用做低8位地址线和8位数据线。P0口做输出口用时,每只引脚均可驱动8个LSTTL负载。若某引脚想做输入脚用,则须先将1写入该引脚。②P1口(P1.0-P1.7共8个引脚,即1-8引脚):8位准双向I/O口,具有内部上拉电阻器,可驱动4个LSTTL负载。若某引脚想做输入脚用,则须先将1写入该引脚。③P2口(P2.0-P2.7共8个引脚,即21-28引脚):8位准双向I/O口,与地址总线复用。具有内部上拉电阻器,可驱动4个LSTTL负载。在访问外部存储器时,它送出高8位地址。④P3口(P3.0-P3.7共8个引脚,即10-17引脚):8位准双向I/O口,双功能复用口。具有内部上拉电阻器,可驱动4个LSTTL负载。若某引脚想做输入脚用,则须先将1写入该引脚。P3口引脚具有特殊功能。3.2复位电路设计单片机的复位就和计算机的重启是一样的概念。任何单片机工作之前都要有个复位的过程[11],复位对于单片机来说,程序还没有开始执行,是在做准备工作,一般的复位只需要5ms的时间。复位电路原理图如图3-2所示。复位操作一般有两种方式:上电自动复位和按键手动复位。上电复位是外部的复位电路在系统通上电源后直接使单片机工作,单片机的起停通过电源控制。手动复位是在复位电路中设计按键开关触发复位电平,控制单片机复位。一般都用上电自动复位电路。图3-2复位电路复位操作一般有两种方式:上电自动复位和按键手动复位。上电复位是外部的复位电路在系统通上电源后直接使单片机工作,单片机的起停通过电源控制。手动复位是在复位电路中设计按键开关触发复位电平,控制单片机复位。一般都用上电自动复位电路。上电自动复位原理:通电时,电容的两端可以看成短路,于是RESET引脚为高电平,接着电源对电容进行充电,RESET端的电压开始降低,降到一定程度就变成了低电平,单片机开始正常工作。3.3显示电路设计本次设计采用的是发光二极管作为显示电路,用有色的发光二极管很容易看清电路的高低电平情况,结构简单,现象明显。标准、经济、单独、排水四个洗衣程序显示灯采用的是红色LED,强洗、弱洗两个洗衣方式显示灯采用的是绿色LED,洗涤、漂洗、脱水三个洗衣状态显示灯采用的是黄色LED。其中洗涤、漂洗、脱水指示灯在系统执行相应的程序时的状态是闪烁,而其他的灯在系统执行与其相对应的程序时的状态则是一直亮着。显示电路原理图如图3-3所示。图3-3显示电路3.4键盘电路设计洗衣机面板上有4个按钮K1、K2、K3、K4和两个开关SW1和SW2。按键控制原理图如图3-4所示。K1用于洗衣程序选择:默认为标准洗,即全自动;按一下选择经济洗,按两下选择单独洗,按三下选择排水。K2用于洗衣方式选择:默认为强洗,按一下选择弱洗。K3运行/暂停/解除报警键:按一下运行,再按一下暂停;报警时按一下则解除警报。SW1水位开关:进出水阀门控制开关。在实物电路中,它相当于检测水位的传感器,水位达到设定要求时开关自动闭合,未达到要求时开关自动打开。SW2盖开关:脱水时打开盖板,电机会停止运行,盖上则继续脱水;在其他洗衣过程时打开盖板不会影响洗衣机工作。图3-4键盘电路3.5时钟电路设计时钟电路由晶振元件与单片机内部电路组成,产生的振荡频率为单片机提供时钟信号,供单片机信号定时和计时。在AT89S51单片机内部有一个高增益反相放大器,其输入端引脚为XTAL1,其输出端为XTAL2。只要在两引脚之间跨接晶体振荡器和微调电容C1、C2,就可以构成一个稳定的自激振荡器。本设计采用图3-5所示电路。图3-5时钟电路图3-6蜂鸣器报警电路一般地,电容C1和C2取33pf左右;晶体振荡器,简称晶振,频率范围是1.2~12MHz。晶振频率越高,系统的时钟频率也就越高,单片机的运行速度也就越快。在通常情况下,使用振荡频率为6MHz或12MHz的晶振。如果系统中使用了单片机的串行口通信,则一般使用频率为11.0592MHz的晶振。而在本次设计中采用的是频率为11.0592MHz的晶振。3.6蜂鸣器报警电路设计本设计采用蜂鸣器,单片机必须输出固定频率的方波信号,其工作电压范围宽,4-12V,需要外围元件少,电压增益可调范围为20-200。洗衣机异常时,通过CPU的P2.1输出低电平来控制蜂鸣器报警。如图3-6所示。3.7电机控制电路设计(1)L298简介:L298是SGS公司的产品,内部包4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号。每桥的低级晶体管的发射极都连在一起,相对应的接线口与采样电阻相连,另外一个额外的输入用于使其工作在合理的低电压环境,可驱动46V、2A以下的电机。它的设计可用于标准的三极管逻辑电路,以及驱动如继电器、螺线管、直流步进电机等负载,两种输入信号可作为可独立驱动和不独立驱动的输入信号。L298有四路输入,四路输出;有两个使能端,通常,我们可以直接把EA,EB两个使能端接高,直接通过控制输入口(接单片机的I/O口,编程输出PWM信号)来控制电机,一般用的时候会在前面用上光耦,用于单片机与驱动芯片之间的隔离,且在L298与电机之间加上续流二极管。L298上也有两个控制端口,用于调节。L298引脚图如图3-7所示,其引脚功能如下:图3-7L298引脚图1、15:电流监测端,采样电阻接地;2、3:输出端1、输出端2;4:VS,功率电源电压,此引脚与地必须连接100nF电容。5、7:输入1、输入2,TTL电平兼容;6、11:使能端A、使能端B,TTL电平兼容,低电平禁止输出;8:GND,接地端;9:VSS,逻辑电源电压,与地之间必须连接一个100nF电容;10、12:输入3、输入4,TTL电平兼容;13、14:输出端3、输出端4;(2)电机控制电路电机的状态有3种,即正转、反转和停止状态,电机一般工作在这3种状态的不断转换之中。电机的驱动采用L298芯片,采用这种控制方式,通过对两个端口高低电平的相互变化可以方便地实现电机的正转、反转的变化。电机控制电路原理图如图3-8所示,其工组原理为:当P2.4为低电平、P2.5为高电平时,三极管Q4截止,Q5导通,电磁阀RL3接电源,RL4接地,IN1和OUT1为高电平,IN2和OUT2为低电平,电机正转;反之,当P2.5端口为低电平、P2.4端口为高电平时,三极管Q4导通,Q5截止,电磁阀RL3接地,RL4接电源,IN1和OUT1为低电平,IN2和OUT2为高电平,电机反转。在程序中设置好正转、反转、停的时间,电机在系统的控制下进行正转、停、反转的循环。图3-8电机控制电路4.软件设计4.1主程序设计根据硬件的设计要求来设计主程序,其流程图如图4-1所示。首先洗衣机通电后单片机上进行程序初始化和各参数初始值的设定。默认为标准程序和强洗的方式,然后扫描各个按键的状态确定洗衣过程,此时洗衣机处在待命状态。通过K1和K2可分别改变洗衣工作程序和强/弱洗衣的方式。扫描过程之中如果发现启动键K4按下,洗衣机则从待命状态进入工作状态。完成进水、洗涤、漂洗、脱水、排水的循环过程。开始开始初始化默认为标准程序、强洗方式键盘扫描启动?洗涤程序漂洗程序脱水程序结束YN图4-1主程序流程图4.2洗涤程序的设计洗涤是洗衣过程中的主要步骤。洗衣机开始按键按下之前,洗涤的工作程序选择默认为标准洗涤。当进水结束后进入洗衣状态,洗涤时间为6分钟,在洗涤时,正向旋转1分钟,停止30秒,反向旋转1分钟,停止30秒,再正向旋转,重复前面的过程,直到定时时间到停止。程序流程图如图4-2所示。voidXiDi(void)//洗涤程序{ flag_XiDi=1; TR1=1; Timer0_Init(); T_S=T_XiDi;Motor_Init(); while(flag_XiDi); TR1=0; 开始开始洗涤灯闪烁电机正转电机停止电机反转电机停止剩余时间=0?洗涤灯灭进入漂洗NY图4-2洗涤程序流程图4.3漂洗程序的设计漂洗的目的在于清除衣物上的洗涤液,因此,漂洗过程与洗涤过程的电器动作是相似的,只是时间短一些。漂洗次数为二次。漂洗程序流程图如图4-3所示。4.4脱水程序的设计脱水前先打开排水阀排水1min。然后启动电动机脱水1min,并保持排水阀开启,然后停止脱水。接着判断漂洗次数的值,若为0则洗衣结束,开蜂鸣器提醒洗衣结束,系统返回初始待命状态;若不为0,则再次执行进水操作,进入下一循环,表示衣物已洗干净程序流程图如图4-4所示。进入脱水洗衣结束开排水阀启动电机脱水脱水结束?关电机、排水阀进入脱水洗衣结束开排水阀启动电机脱水脱水结束?关电机、排水阀开蜂鸣器YN开始第二次漂洗第一次漂洗漂洗灯闪烁漂洗完成?进入脱水漂洗结束NY图4-3漂洗程序流程图图4-4脱水程序流程图5.仿真5.1Proteus简介Proteus是世界上非常著名的仿真软件,它已经有20多年的历史,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。它是世界上目前唯一将虚拟模型仿真软件、PCB设计软件和电路仿真软件三合一的设计平台,它的处理器模型支持PIC10/12/16/18/24/30/DsPIC33、MSP430、HC11、ARM、AVR、8051和8086等,2010年又增加了DSP和Cortex系列处理器,并持续增加其他系列的处理器模型[13]。Proteus软件涵盖了PIC、AVR、MCS8051、68HC11、ARM等微处理器模型,以及多种常用电子元器件,包括74系列、CMOS4000系列集成电路、A/D和D/A转换器、键盘、LCD显示器,还提供示波器、逻辑分析仪、通信终端、电压/电流表、I2C/SPI终端等各种虚拟仪表,这些都可以直接用于仿真设计,极大地提高了设计效率和设计水平[14]。在编译方面,它也支持MPLAB、KEIL和IAR等多种编译器。5.1系统仿真将写好的程序整理好用KEIL进行编译。因为编译只能检查是否存在语法错误,所以还要看是否存在逻辑错误。程序修改好以后,当显示编译0错误,0警告的时候,这说明已经没有语法错误了。然后在PROTEUS中进行仿真看洗衣机是否运转正常,检查仿真日志有无错误来判断程序是否有逻辑错误。现象说明:开始仿真,系统默认为标准程序和强洗方式,按下K1和K2可以分别改变洗衣程序和强弱方式。在标准洗和强洗时,标准指示灯D2和强洗指示灯D6亮,按下K3键开始运行。开始运行后,控制系统打开水位开关开始注水,进水指示灯D11亮;水位达到系统设定值时,单片机发送一个信号通知控制系统关闭水位开关,进水指示灯灭,同时启动电机洗衣,洗涤指示灯D8开始闪烁。电机在系统的控制下进行正转、停、反转的循环,通过传动机构带动波轮执行洗涤程序;洗涤时间终了,控制系统切断电机电路并打开排水电磁阀开始排水,此时排水指示灯亮;然后打开水位开关再次注水,洗衣机进入漂洗状态,漂洗指示灯D9闪烁;完成漂洗程序后开始排水,最后进入脱水程序,脱水指示灯D10闪烁,同时排水阀打开排水,排水指示灯D12亮。在运行过程中,如果按下K3键,洗衣机会停止运行,再按则继续工作;若洗衣机异常报警时按下K3键,则可以解除警报。在脱水时打开盖板电机会停止,盖上则继续运行。图5-1是在标准程序和强洗方式下,处于洗涤状态的仿真图。由图可见此时标准指示灯和强洗指示灯亮,而洗涤指示灯闪烁。图5-2是电机正转时的仿真截图,图5-3是电机反转时的仿真截图。它们都是处在标准程序和强洗方式下的洗涤状态。如图5-4所示,这是在标准程序、强洗方式下的脱水仿真图。脱水的同时打开排水阀排水,此时标准程序指示灯和强洗指示灯亮,排水灯亮,脱水指示灯闪烁。图5-1洗涤仿真图图5-2电机正转仿真图图5-3电机反转仿真图图5-4脱水仿真图6.总结随着科学技术的发展,现代社会对专业人才的要求越来越高,不仅要有坚实的理论知识,更应该具备丰富的实践经验和较强的动手能力。
毕业设计不仅是对前面所学知识的一种综合检验,而且也是对自己能力的一种提高。通过本次毕业设计,是把学到的理论知识和现场的实际工作经验又一次有机地融合在一起,也使我熟练掌握了工程设计的方法和步骤,进一步提高了对一些软件的应用。工程设计能力、理论计算能力、实验研究能力、经济分析能力、外文阅读能力、计算机应用能力以及文献查阅和文字表达能力。对于在此次单片机控制系统应用中还存在一些问题,在控制电动机正反转设计中采用单片机进行控制,存在着一些缺点,例如所选用的单片机不太合理以及调试过程比较麻烦。在控制数码管显示时,数码管不能正常显示,通过查找质料根据人眼的暂留效应,结果正常显示。
在设计过程中,我通过网络查阅大量有关资料,与同学交流经验和自学并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获巨大。
总之,在进行毕业设计的过程中,我深刻体会到我的基础功并不是那么的扎实,知识面较为局限,例如我的文字表达能力,以及我的英语水平等,经过毕业设计让我懂得在日常生活中,我们不能随便去浪费我们宝贵的时间而是要充分利用时间来学习更多的知识来充实自己。
此外,我还得出一个结论:知识必须通过应用才能实现其价值!参考文献[1]张明德.基于单片机的全自动洗衣机系统设计[D].安徽大学,2010.[2]张海波.全自动洗衣机控制器的设计[D].南京理工大学,[3]周立功.单片机实验与实践教程.北京航空航天大学出版社,2006[4]闫玉德.俞虹.MCS-51单片机原理与应用(C语言版)[M].北京:机械工业出版社,2003[5]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2003[6]刘贺,余成波,张方方.全自动洗衣机的模糊控制分析[N].重庆工学院学报(自然科学版),2009年05期[7]杨杰.基于短信息平台的家庭安防系统[D].西安科技大学.2009:16[8]王和明,刘嵘.AT89系列单片机及其编程[J].电子技术.1996年09期,18-19[9]张毅刚,彭喜元,董继成.单片机原理及应用[M].第1版.北京:高等教育出版社,2010.12-15[10]周学昭,唐运才.单片机在全自动洗衣机控制器中的应用[J].家用电器科技,1989,03:15-16.[11]柳建光,李德峰.51单片机几种实用的复位电路设计[J].数字技术与应用.2012年03期,129-130[12]张近东.机电一体化示例——洗衣机程序控制器设计[J].轻工机械,1992,03:60-64.[13]Krause,P.H..ThePROTEUSProject[J].TechnologicalForecastingandSocialChange,2002,(5).35-36[14]余桂兰,左敬龙.创新模式下的高校单片机虚拟实验室[N].广东石油化工学院学报,2011年21卷01期[15]张近东.机电一体化示例——洗衣机程序控制器设计[J].轻工机械,1992,03:60-64.[16]周鲜成.智能型洗衣机控制器的设计[J].湖南商学院学报,2001,01:113-115.致谢这大学四年的生活里,在这即将毕业的时刻,我要感谢学校以及老师们对我的教育和培养,在老师的细心教导下,我学到了很多的知识。在此,首先要感谢我的指导老师。他能够在百忙之中给我指导,耐心解答我的疑难问题。
我学到了许多课外的知识,使我的综合能力得到了提升。老师严谨的治学态度,一丝不苟的敬业精神,诲人不倦的高尚师德,为我树立了做人、做事的楷模,对我今后的人生之旅将产生深远的影响。
附录软件主程序/***************************头文件***********************/#include <reg51.h>/************************数据类型宏定义******************/#define uchar unsignedchar#define uint unsignedint/***********************使能、禁止宏定义*****************/#define Enable(); EA=1;#define Disable(); EA=0;/********************程序选择功能标志宏定义**************/#define BIAOZHUN 0#define JINGJI 1#define DANDU 2#define PAISHUI 3/********************强弱选择功能标志宏定义**************/#define QIANGXI 0#define RUOXI 1 /*******************进水、排水时间限制宏定义*************/#define T_JinShui 120 //2min*60s#define T_PaiShui 60 //1min*60s#define T_XiDi 360 //6min*60s#define T_PiaoXi_1 240 //4min*60s#define T_PiaoXi_2 120 //2min*60s#define T_TuoShui 120 //2min*60s/**********************电机控制宏定义********************/#define ZHENGZHUAN 0#define STOP 1#define FANZHUAN 2#define ZhengZhuan(); PIN_Motor_A=0;PIN_Motor_B=1;#define Stop(); PIN_Motor_A=1;PIN_Motor_B=1;#define FanZhuan(); PIN_Motor_A=1;PIN_Motor_B=0;/*******************暂停、继续控制宏定义*****************/#define ZanTing(); ET0=0;ET1=0;Stop();#define JiXu(); ET0=1;ET1=1;#define flag_Ok (flag_JinShui||flag_PaiShui||flag_XiDi||flag_PiaoXi||flag_TuoShui)/*************************管脚定义***********************/sbit LED_BiaoZhun = P1^0; //标准程序显示灯sbit LED_JingJi = P1^1; //经济程序显示灯sbit LED_DanDu = P1^2; //单独程序显示灯sbit LED_PaiShui = P1^3; //排水程序显示灯sbit LED_QiangXi = P1^4; //强洗状态灯sbit LED_RuoXi = P1^5; //弱洗状态灯sbit LED_XiDi = P1^6; //洗涤状态灯sbit LED_PiaoXi = P1^7; //漂洗状态灯sbit LED_TuoShui = P2^0; //脱水状态灯sbit PIN_BaoJing = P2^1; //报警喇叭sbit PIN_JinShui = P2^2; //进水控制sbit PIN_PaiShui = P2^3; //排水控制sbit PIN_Motor_A = P2^4; //电机脚Asbit PIN_Motor_B = P2^5; //电机脚Bsbit K_SEL_ChengXu = P3^0; //选择程序键sbit K_SEL_QiangRuo = P3^1; //选择强弱键sbit p32 = P3^2; //sbit p33 = P3^3; //sbit SW_ShuiWei = P3^6; //水位开关sbit SW_AnQuan = P3^7; //安全开关/************************函数申明***********************/voidProgramme_PaiShui(void);/*************************数据定义***********************/uchar flag_SEL_ChengXu; //默认为标准程序, bit flag_SEl_QiangRuo; //默认为强洗,1为弱洗bit flag_Run; //运行标志,1为运行bit flag_JinShui; //进水标志,1为进水bit flag_PaiShui; //排水标志,1为排水bit flag_XiDi; //置洗涤标志bit flag_PiaoXi; //置漂洗标志bit flag_TuoShui; //脱水标志bit flag_BaoJing; //报警标志uchar _50ms; //每50ms加一次的变量uint s; //秒uint T_S; //定时总时间uchar T_Motor; //电机控制时间/*************************延时程序*********************/voidDelay_10ms(uintT1) { uintt1,t2; for(t1=0;t1<T1;t1++) for(t2=0;t2<1250;t2++);//10ms}/**********************管脚初始化程序******************/voidPin_Init(void) { LED_BiaoZhun = 0; //默认为标准程序,灯亮 LED_JingJi = 1; //经济程序显示灯,灭 LED_DanDu = 1; //单独程序显示灯,灭 LED_PaiShui = 1; //排水程序显示灯,灭 LED_QiangXi = 0; //默认为强洗状态,灯亮 LED_RuoXi = 1; //弱洗状态灯,灭 LED_XiDi = 1; //洗涤状态灯,运行后灯亮 LED_PiaoXi = 1; //漂洗状态灯,运行后灯亮 LED_TuoShui = 1; //脱水状态灯,运行后灯亮 PIN_BaoJing = 1; //报警喇叭,不叫 PIN_JinShui = 1; //进水控制,关 PIN_PaiShui = 1; //排水控制,关 PIN_Motor_A = 1; //电机脚A,不走 PIN_Motor_B = 1; //电机脚B,不走}/********************中断初始化程序********************/voidExInt_Init(void) { IT0 = 1; EX0 = 1; IT1 = 1; EX1 = 1;}/*******************定时器0初始化程序******************/voidTimer0_Init(void) //其中没ET0是为以后控制暂停用的 { TMOD = TMOD|0X01; //定时方式1 TH0 = 0X3C; //50ms TL0 = 0XB0; TR0 = 1; _50ms = 0; s=0;}/*******************定时器1初始化程序******************/voidTimer1_Init(void) //其中没ET1是为以后控制暂停用的{ TMOD = TMOD|0X10; //定时方式1 TH1 = 0X3C; //50ms TL1 = 0XB0;}/********************电机初始化程序********************/voidT_Motor_Ctl(uchart1,uchart2,uchart3){ if(!flag_SEl_QiangRuo)//强洗 T_Motor=t1; if(flag_SEl_QiangRuo)//弱洗 T_Motor=t2; if(flag_TuoShui) //脱水 T_Motor=t3;}/********************电机初始化程序********************/voidMotor_Init(void){ ZhengZhuan(); T_Motor_Ctl(4,3,5);}/**********************解除报警************************/voidNo_BaoJing(void){ flag_BaoJing=0; //置报警标志 PIN_BaoJing =1; //报警喇叭 TR1 =0; //而进水、排水已没时间限制了}/*******外部中断0程序为运行、解除报警或者暂停***********/voidint0(void)interrupt0 { if(!p32) { Delay_10ms(1); //延时10ms左右,去抖动 if(!p32) { if(!flag_Run) flag_Run=1; //置运行标志 elseif(flag_BaoJing) No_BaoJing(); //解除报警 elseif(flag_Ok) { staticbitflag_ZanTing; flag_ZanTing=~flag_ZanTing; if(flag_ZanTing) {ZanTing();}//必须加{} else {JiXu();} //必须加{} }//endelse }//endif(!p32)2 }//endif(!p32)1}/**********************报警程序************************/voidBaoJing(void){ flag_BaoJing=1; //置报警标志 TR0 =0; TR1 =1;}/*******************时间到处理程序*********************/voidOk_Timer(void){ s=0; if(flag_JinShui||flag_PaiShui) //进水中~、排水中~ { BaoJing(); //报警程序 }//endif(flag_JinShui||flag_PaiShui) else { flag_XiDi =0; //清洗涤标志 flag_PiaoXi =0; //清漂洗标志 flag_TuoShui=0; //清脱水标志 Stop(); }//endelse}/********************电机控制程序**********************/voidMotor(void){ staticuchars_Motor; s_Motor++; if(s_Motor==T_Motor) { staticucharMotors; s_Motor=0; Motors++; if(Motors==3) Motors=0; switch(Motors) { caseZHENGZHUAN: ZhengZhuan(); T_Motor_Ctl(4,3,5); break; caseSTOP : Stop(); T_Motor_Ctl(1,2,2); break; caseFANZHUAN : FanZhuan(); T_Motor_Ctl(4,3,5); break; default : break; }//end switch }//endif}/*******************定时器0中断程序********************/voidTimer0(void)interrupt1 { TR0=0; //停止计数 TH0=0X3C; //重装定时器值 TL0=0XB0; TR0=1; _50ms++; if(_50ms==20) //1s到 { _50ms=0; s++; if(s==T_S) //定时到 Ok_Timer(); if(flag_XiDi||flag_PiaoXi||flag_TuoShui) Motor(); //电机控制程序 }//endif(_50ms==20) }//endTimer0()/**********外部中断1程序为水位到或者盖开处理***********/voidint1(void)interrupt2 { if(!p33) { Delay_10ms(1); //延时10ms左右,去抖动 if(!p33) { }//endif(!p33)2 }//endif(!p33)1}/************定时器1中断程序作为闪烁及报警**************/voidTimer1(void)interrupt3 { staticuchar_50ms; //每50ms加一次的变量 TR1=0; //停止计数 TH1=0X3C; //重装定时器值 TL1=0XB0; TR1=1; _50ms++; if(_50ms==14) //0.7s到 { _50ms=0; if(flag_XiDi) //洗涤中~ LED_XiDi =~LED_XiDi; //洗涤状态灯闪烁 if(flag_PiaoXi) //漂洗中~ LED_PiaoXi =~LED_PiaoXi; //漂洗状态灯闪烁 if(flag_TuoShui) //脱水中~ LED_TuoShui=~LED_TuoShui; //脱水状态灯闪烁 if(flag_BaoJing) PIN_BaoJing=~PIN_BaoJing; //报警 }//endif(_50ms==14) }/**********************程序选择程序********************/voidSEL_ChengXU(void) { if(!K_SEL_ChengXu) //程序选择键 { Delay_10ms(1); //延时10ms左右,去抖动 if(!K_SEL_ChengXu) { while(!K_SEL_ChengXu); flag_SEL_ChengXu++; if(flag_SEL_ChengXu==4) flag_SEL_ChengXu=0; switch(flag_SEL_ChengXu) { caseBIAOZHUN : LED_BiaoZhun=0; //亮 LED_JingJi =1; //灭 LED_DanDu =1; //灭 LED_PaiShui =1; //灭 break; caseJINGJI : LED_BiaoZhun=1; LED_JingJi =0; LED_DanDu =1; LED_PaiShui =1; break; caseDANDU : LED_BiaoZhun=1; LED_JingJi =1; LED_DanDu =0; LED_PaiShui =1; break; casePAISHUI : LED_BiaoZhun=1; LED_JingJi =1; LED_DanDu =1; LED_PaiShui =0; break; default : break; }//endswitch }//endif(!K_Sel_ChengXu)2 }//endif(!K_Sel_ChengXu)1 }//END/********************强弱选择程序**********************/voidSEL_QiangRuo(void) { if(!K_SEL_QiangRuo) //强弱选择键 { Delay_10ms(1); //延时10ms左右,去抖动 if(!K_SEL_QiangRuo) { while(!K_SEL_QiangRuo); flag_SEl_QiangRuo=~flag_SEl_QiangRuo; if(!flag_SEl_QiangRuo) { LED_QiangXi =0; //强洗状态,灯亮 LED_RuoXi =1; //弱洗状态灯,灭 }//endif(!flag_SEl_QiangRuo) else { LED_QiangXi =1; //强洗状态,灯亮 LED_RuoXi =0; //弱洗状态灯,灭 }//endelse }//endif(!K_SEL_QiangRuo)2 }//endif(!K_SEL_QiangRuo)1}/**********************进水程序***********************/voidJinShui(void){ PIN_JinShui=0; flag_JinShui=1; TR1=0; Timer0_Init(); T_S=T_JinShui; while(SW_ShuiWei); PIN_JinShui=1; flag_JinShui=0; TR0=0; TF0=0; }/**********************排水程序***********************/voidPaiShui(void){ PIN_PaiShui=0; flag_PaiShui=1; TR1=0; Timer0_Init(); T_S=T_PaiShui; while(!SW_ShuiWei); TR0=0; TF0=0; Delay_10ms(500);//延时50s PIN_PaiShui=1; flag_PaiShui=0; }/**********************洗涤程序***********************/voidXiDi(void){ flag_XiDi=1; TR1=1; Timer0_Init
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电商平台入驻资格协议合同三篇
- 动脉血气分析对护理工作的指导意义
- 金工实训个人小结(14篇)
- 卧位对神经系统的影响
- 糖尿病App中的儿童糖尿病管理指南
- 2026年压缩机安全事故案例分享
- 2026年压铸机安全隐患分析
- 交城县2024山西吕梁交城县招聘大学生到村工作笔试历年参考题库典型考点附带答案详解
- 2026年产品问题及解决方案设计
- 云南省2025云南保山市生态环境工程评估中心招聘(6人)笔试历年参考题库典型考点附带答案详解
- 2026年江苏省保安员考试试题带解析含完整答案
- 2025-2026学年小学英语的教学活动设计
- 闪蒸罐设计计算书
- 护理差错事故的根因分析(RCA)
- 2025年贵州锦麟化工有限责任公司公开招聘13人笔试历年参考题库附带答案详解
- 成都湔江投资集团有限公司2026年春季第一批次招聘考试参考题库及答案解析
- 2026公需课人工智能赋能制造业高质量发展试题及答案.backup
- 沟通与表达讲课件
- 学徒烧烤合同协议书范本
- 中华人民共和国执业医师法培训课件
- 屋面防水维修施工方案
评论
0/150
提交评论