基于单片机的全自动洗衣机控制系统的设计.doc
全自动洗衣机控制系统的设计摘 要:随着电子技术的飞速发展,人们生活水平的提高及生活节奏的加快,洗衣机产品越来越受到人们的喜爱与重视。本文研究的是基于AT89C52单片机的全自动洗衣机控制系统,围绕洗衣机系统的硬件和软件进行课程设计,设计了一个简单可行的洗衣机自动控制系统,功能包括进水、洗衣、排水、脱水、报警等功能。该电路简单,工作原理清晰,易于理解。关 键 词:洗衣机,单片机,自动控制0 前言从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打这些不断重复的简单的体力劳动,留给人的感受常常是:辛苦劳累。随着单片机技术日新月异的发展,单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等特点在过程控制、机电一体化、智能化仪表、家用电器等方面得到了广泛应用【1】。以单片机为核心设计的洗衣机控制电路组成相对简单,而且实用性很强【2】。1 全自动洗衣机的介绍1.1 全自动洗衣机的发展历程1858年,一个叫汉密尔顿史密斯的美国人在匹茨堡制成了世界上第一台洗衣机。该洗衣机的主件是一只圆桶,桶内装有一根带有桨状叶子的直轴。轴是通过摇动和它相连的曲柄转动的。1874年,“手洗时代”受到了前所未有的挑战,美国人比尔布莱克斯发明了木制手摇洗衣机。布莱克斯的洗衣机构造极为简单,是在木筒里装上6块叶片,用手柄和齿轮传动,使衣服在筒内翻转,从而达到“净衣”的目的。1880年,美国又出现了蒸气洗衣机,蒸气动力开始取代人力。现代蒸汽洗衣机的功能包括蒸汽洗涤和蒸汽烘干,采用了智能水循环系统,可将高浓度洗涤液与高温蒸气同时对衣物进行双重喷淋,贯穿全部洗涤过程,实现了全球独创性的“蒸汽洗”全新洗涤方式。1910年,美国的费希尔在芝加哥试制成功世界上第一台电动洗衣机。电动洗衣机的问世,标志着人类家务劳动自动化的开端。 1922年,美国玛塔依格公司改造了洗衣机的洗涤结构,把拖动式改为搅拌式,使洗衣机的结构固定下来,这也就是第一台搅拌式洗衣机的诞生。这种洗衣机是在筒中心装上一个立轴,在立轴下端装有搅拌翼,电动机带动立轴,进行周期性的正反摆动,使衣物和水流不断翻滚,相互摩擦,以此涤荡污垢。搅拌式洗衣机结构科学合理,受到人们的普遍欢迎。1932年,美国本德克斯航空公司宣布,他们研制成功第一台前装式滚筒洗衣机,洗涤、漂洗、脱水在同一个滚筒内完成。这意味着电动洗衣机的型式跃上一个新台阶,朝自动化又前进了一大步!第一台自动洗衣机于1937年问世。这是一种"前置"式自动洗衣机。靠一根水平的轴带动的缸可容纳4000克衣服。衣服在注满水的缸内不停地上下翻滚,使之去污除垢。到了40年代便出现了现代的"上置"式自动洗衣机。随着工业化的加速,世界各国也加快了洗衣机研制的步伐。首先由英国研制并推出了一种喷流式洗衣机,它是靠筒体一侧的运转波轮产生的强烈涡流,使衣物和洗涤液一起在筒内不断翻滚,洗净衣物。1955年,在引进英国喷流式洗衣机的基础之上,日本研制出独具风格、并流行至今的波轮式洗衣机。至此,波轮式、滚筒式、搅拌式在洗衣机生产领域三分天下的局面初步形成。60年代的日本出现了带干桶的双桶洗衣机,人们称之为“半自动型洗衣机”。70年代,生产出波轮式套桶全自动洗衣机。70年代后期,以电脑(实际上微处理器)控制的全自动洗衣机在日本问世,开创了洗衣机发展史的新阶段。80年代,“模糊控制”的应用使得洗衣机操作更简便,功能更完备,洗衣程序更随人意,外观造型更为时尚。诞生了许多新水流洗衣机。此后,随着电机驱动技术的发展与提高,日本生产出了电机直接驱动式洗衣机,省去了齿轮传动和变速机构,引发了洗衣机驱动方式的巨大革命。 之后,随着科技的进一步发展,滚筒90年代,由于电机调速技术的提高,洗衣机实现了宽范围的转速变换与调节,洗衣机已经成了大家耳濡目染的产品。1.2 全自动洗衣机的发展前景全自动洗衣机的发展首先表现在洗涤方式发生巨大变化。原先大多侧重于水流的改变、动力的加大。现在,超音波、电解水、臭氧和蒸汽洗涤的运用,使洗衣机的去污能力从单纯依靠洗衣粉、洗涤剂的化学作用和强弱变化的水流机械作用,向更高层次的健康、环保洗涤方式转变,特别是电解水、超音波技术在洗衣机行业的运用几乎改变了洗衣机的历史洗衣不用或少用洗衣粉、洗涤剂,减少化学品对皮肤的损害和对环境的污染。电解水、臭氧、蒸汽的杀菌除味及消毒功能倍受青睐,引发了洗衣机消费健康潮。另一变化就是高度自动化、智能化、人性化。从半自动、全自动到现在流行的人工智能、模糊控制,只需按一下按钮一切搞定!同时,用户可以按照自己的洗衣习惯,自主选择时间和方式,自编和记忆程序让用户真正做到随心所欲。人性化还表现在使用的方便和舒适,如子母分洗洗衣机可以做到不同衣物分开洗;斜桶和顶开滚筒可以做到取放衣物方便不需深弯腰;蒸汽烘干功能使得晾晒更加方便,DD直驱电机在节能降噪方面效果更加突出,等等。 另外,大容量成为不变的消费趋势。前几年,洗衣机容量多为4-5公斤,6公斤的大容量尚很少见。现在,7公斤的容量已经很普遍,8公斤也正常。现代人居空间不断扩大,对宽敞、舒适、方便要求更多,大能容小,大容量洗衣机一台可顶一套。业内人士表示,尖端洗涤技术的革新,所表现出的洗衣方式更加注重健康和个性化,已在市场发展中倍受欢迎。2 设计目的及设计任务2.1 设计的目的及意义 单片机课程设计是一个重要的实践教学环节,是一次较全面的设计训练。其目的如下:培养理论联系实际的设计思想,训练综合运用所学的基础理论知识分析和解决实际应用问题的能力,使基础理论知识得到巩固、加深、和系统化;掌握单片机应用系统设计的一般过程和方法,熟悉和掌握运用设计资料的技能;熟悉Proteus和Keil软件的调试和仿真;通过实验提高软件调试能力。2.2 设计任务 全自动洗衣机控制系统的要求是能实现“正常运行”和“强制停止”两种控制方式。 1正常运行 “正常运行”方式具体控制要求如下: (1)将水位通过水位选择开关设在合适的位置(高、中、低),按下“启动”按扭,开始进水,达到设定的水位(高、中、低)后,停止进水; (2)进水停止 2s 后开始洗衣;(3)洗衣时,正转 20s,停 2s,然后反转 20s,停 2s; (4)如此循环共 5 次,总共 220s 后开始排水,排空后脱水 30s; (5)然后再进水,重复(1)(4)步,如此循环共 3 次; (6)洗衣过程完成,报警 3s 并自动停机。 2强制停止 “强制停止”方式具体控制要求如下: (1)若按下“停止”按扭,洗衣过程停止,即洗涤电机和脱水桶转、进水电磁阀和排水电磁阀全部闭合; (2)可用手动排水开关和手动脱水开关进行手动排水和脱水。3 洗衣机的总体设计方案 基于单片机设计的全自动洗衣机,它有启动键、强制停止键、水位选择键、进水阀、排水阀、洗衣电机、脱水电机及各种显示电路。结构图如下:AT 89C51启动键停止键水位选择开关运行状态显示手动排水阀手动脱水阀进水阀、排水阀蜂鸣报警 图3-1 系统整体框图其中,P1.0口是启动键,P1.1口是停止键,P0.0口是低水位选择开关,P0.1是中水位选择开关,P0.2是高水位选择开关,P2.7是进水阀,P3.1是排水阀。P3.2是手动排水键,P3.3是手动脱水阀,它们全由外部中断组成。P0.3、P0.4、P0.5分别是正转显示、反转显示、脱水电机显示,用二极管的亮灭进行显示,P0.6是报警提醒,用蜂鸣器进行显示。4 硬件电路设计 4.1 芯片选择 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Flash Programmable and Eranable Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如下: 图 4-1 AT80C51单片机引脚图主要性能:·与MCS-51兼容·4K字节可编程闪烁存储器·全静态工作:0HZ-24MHZ·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明: VCC:供电电压 GND:接地 P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8个TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为源码输入口;当FLASH进行校验时,P0口输出源码,此时P0口外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可作为输入,P1口被外部下拉为低电平时,将输出电流。这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收输出4个TTL门电流,当P2口被写入1时,其管脚被内部上拉电阻拉高,且作为输入,被外部拉低将输出电流。P2口当用于外部程序存储器或16位地址外部八位数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,用作输入。由于外部下拉为低电平,P3口将输出电流。P3口的第二功能:P3.0-RXD(串行输入口)P3.1-TXD(串行输出口)P3.2-/INT0(外部中断0)P3.3-/INT1(外部中断1)P3.4-T0(计时器0外部输入)P3.5-T1(计时器1外部输入)P3.6-/WR(外部数据存储器写选通)P3.7-/RD(外部数据存储器读选通)RST:复位输入,当振荡器工作时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低8位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX、MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP: 当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1(5)反相振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(4)来自反相振荡器的输出。4.2单片机辅助电路设计4.2.1 复位电路的设计单片机的复位就和计算机的重启是一样的概念。任何单片机工作之前都要有个复位的过程,复位对于单片机来说,程序还没有开始执行,是在做准备工作。复位操作通常有:上电自动复位和按键手动复位。上电复位是外部的复位电路在系统通上电源后直接使单片机工作,单片机的起停通过电源控制。手动复位是在复位电路中设计按键开关触发复位电平,控制单片机复位。工作原理是:单片机通电时,电容两端相当于是短路,则RST引脚上为高电平,然后电源通过电子对电容充电,RST两端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。上电复位的时间要在10ms以上,才能保证上电,一般可以取电容的大小为10F,电阻为10K。电路图如下: 图 4-2 复位电路图4.2.2振荡电路 振荡电路对于单片机来说非常重要,没有晶振就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。单片机工作时是一条一条地从ROM中取指令,然后一步一步地执行。单片机内部有一个用于构成片内振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体(或陶瓷振荡器)一起构成自激振荡器,振荡电路图3-4所示。图中外接石英晶体(或陶瓷振荡器)以及电容C1或C2构成并联振荡电路,接在放大器的反馈回路中。电容的大小没有严格的要求,但也会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和稳定性。外接石英晶体时,C1和C2一般去30pf10pf,外接陶瓷振荡器时,C1和C2一般取40pf10pf。本系统采用12MHz的晶振,电容取30pf。振荡电路如下:图 4-3 振荡电路图4.3 全自动洗衣机功能电路设计该洗衣机有启动键、强制停止键、手动排水和手动脱水键、水位选择开关、4.3.1 启动按键和停止按键电路设计在洗衣机未进入工作状态时,P1.0为输入线,用于检测启动键的状态,当启动键按下时,洗衣机即进入工作状态开始洗衣程序。在洗衣机正常工作状态时,P1.1为输入线,用于检测停止键的状态,当停止键按下时,洗衣机即进入停止状态,洗衣机停止工作。其中,K1为启动键,K2为强制停止键,R、C组成防抖动电路,消除按键抖动对电路的影响。 图 4-4 启动和停止电路4.3.2 水位选择电路设计水位选择电路由S1、S2、S3三个开关组成,分别接P0.0、P0.1、P0.2端口,由10K和5V电源提供高电平,开关合上该端口即为接地,为低电平,程序设置低电平时则执行对应相应的水位。当S2合上时,选定低水位;当S2合上时,选定中水位;当S3合上时,选定高水位。洗衣机运行前需先设置需要的水位。 图 4-5 水位选择电路4.3.3 显示电路设计显示电路用来模拟洗衣机的进水,浸泡,电机的正转、反转,排水、脱水功能,本文用发光二极管来模拟,分别接到P2.0、P2.1、P2.2、P2.3、P2.4、P2.5端口上。之后再通过300的电阻接到5V的电源上。这样洗衣机的运行状态就可以通过二极管的亮灭来显示出来,简单直观。 图 4-6 显示电路4.3.4 手动排水和手动脱水电路设计 手动排水和手动脱水由两个外部中断源(/INT0、/INT1)构成,分别接P3.3、P3.3端口,同样也需由10K和5V电源提供高电平。电阻R、电容C组成防抖动电路,防止按键抖动对程序的影响。其中K3表示手动排水按键,K4表示手动脱水按键。当K3按下后,则洗衣机会开始排水功能,对应的排水二极管亮,执行完排水功能后接着执行中断前的程序。同样,当K4按下后,则洗衣机开始脱水与排水功能,对应功能的二极管亮,执行完脱水功能后接着执行中断前的程序。 图4-7 手动排水和手动脱水电路4.3.5 报警电路设计蜂鸣器接P2.6端口,另一端通过300电阻与5V电源相连,为蜂鸣器提供电流。当洗衣机按照设定好的程序执行完洗衣过程后,蜂鸣器发出响声并停止洗衣。 图 4-8 报警电路5 软件设计5.1 主程序流程图 图 5-1 主程序流程图5.2 中断程序流程图 图 5-2 手动排水流程图 图 5-3 手动脱水流程图6 课程设计总结经过一个多星期的课程设计,我们设计的全自动洗衣机功能得到全部实现。通过这次课程设计,我们不仅巩固了以前学到的专业知识,更重要的是我们学到了许多新知识,学会了设计一个系统的步骤、方法和设计思想,还学到了作为一个设计人员应该具备的素质。我们拿到课程设计的题目后,明确了这次设计的目的、要求,在搜集资料的过程中了解了洗衣机控制控制系统的发展状况以及现状,并确定了合理的解决方案。我们的方案是利用单片机的汇编语言编程,通过Protus软件仿真来实现的。为此,我们翻阅了大量的单片机书籍。通过分析51系列的单片机就可以完成功能,而且我们以前学的也是51单片机,故我们选择了AT89C51单片机。为保证精确,我们又在图书馆和和网站上查到了好多的单片机方面的知识。在设计过程中我们遇到了很多困难,通过请教其他同学和老师或是在网上搜资料使问题得到解决,最后基本实现了毕业设计任务书中的要求。在此,衷心感谢为我们提供帮助的老师与同学尽管我们费尽心思,本次设计还有不完美的地方,这也暴露出平时知识学习的不扎实,能力有待提高,我会在以后的工作学习中继续努力并注重基础知识的巩固。 参考文献1 王琰.基于MCS-51单片机的洗衣机控制系统设计J.自动化与仪器仪表,2010,25.2 克强.用AT89C2051单片机制作洗衣机控制电路J.电子世界,2001,3.3 曾璐,李明.基于AT89C52单片机的洗衣机智能控制系统J.家电科技,2007,9.4 周学昭,唐运才.单片机在全自动洗衣机控制器中的应用J.家用电器科技,1989,3.5 潘海燕.波轮式全自动洗衣机的单片机控制J.电子世界,2003,3.6 史春雷.洗衣机自动控制系统的设计J.科技创新导报,2010,25.附录附录A:程序清单STARTK BIT P1.0 ;启动键STOPK BIT P1.1 ;停止键ORG 0000HLJMP MAIN ORG 0003HLJMP SPAIKORG 0013HLJMP STUOKORG 0030HMAIN:SETB P0.0 ;低水位选择端SETB P0.1 ;中水位选择端SETB P0.2 ;高水位选择端SETB P2.0 ;进水阀SETB P2.1 ;浸泡显示SETB P2.2 ;正转显示SETB P2.3 ;反转显示SETB P2.4 ;排水阀SETB P2.5 ;脱水电机显示SETB P2.6 ;蜂鸣报警端MOV R4,#3H ;洗衣脱水3次CLR IT0 ;电平触发方式CLR IT1;开中断SETB EA ;开总中断SETB EX0 ;开外部中断0SETB EX1 ;开外部中断1NK1:JNB STARTK,A0 ;查询启动键是否按下 AJMP NK1NK2:JNB STOPK,T2 ;停止键JB STOPK,$;所有端口全部清零,即停止洗衣子程序T2:MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH RETA0:MOV R3,#5H ;洗衣5次 MOV A,P0 ANL A,#07H CLR P2.0 ;开进水阀 CJNE A,#6,D1 ;选择水位 MOV R7,#10 ;选择低水位,延时5秒DEL5S:JNB STOPK,T2 ;判断是否按下停止按钮 LCALL DELAY DJNZ R7,DEL5S LJMP ZZD1:CJNE A,#5,D2 MOV R7,#20DEL10S:JNB STOPK,T2 ;判断是否按下停止按钮 LCALL DELAY ;选择中水位,延时10秒 DJNZ R7,DEL10S LJMP ZZD2:MOV R7,#30 ;选择高水位,延时15秒DEL15S:JNB STOPK,T2 ;判断是否按下停止按钮 LCALL DELAY DJNZ R7,DEL15SZZ:SETB P2.0 ;关进水阀 CLR P2.1 ;浸泡显示端 LCALL DEL2S ;延时2秒 SETB P2.1A1:MOV R7,#20 ;正转20秒DEL20S:JNB STOPK,T2 ;判断是否按下停止按钮 CLR P2.2 ;正转显示端 LCALL DELAY SETB P2.2 LCALL DELAY DJNZ R7,DEL20S LCALL DEL2S ;停止2秒 MOV R7,#20DEL201S:JNB STOPK,T2 ;判断是否按下停止按钮 CLR P2.3 ;反转20秒 LCALL DELAY SETB P2.3LCALL DELAYDJNZ R7,DEL201S LCALL DEL2S ;停止2秒 DJNZ R3,A1 ;判断是否洗衣5次,若是则往下执行,否则跳转到A1 CLR P2.4 ;开排水阀 MOV R7,#30 ;排水15秒DE1L15S:JNB STOPK,T2 ;判断是否按下停止按钮 LCALL DELAY DJNZ R7,DE1L15S MOV R7,#60 ;脱水30秒,闪烁DEL30S:JNB STOPK,TIAO2 ;判断是否按下停止按钮 CLR P2.5 ;开脱水电机 LCALL DELAY SETB P2.5 LCALL DELAY DJNZ R7,DEL30S SETB P2.4 ;关排水阀 DJNZ R4,TIAO1 ;判断是否洗衣总过程3次,若是则往下执行,否则跳转到TIAO1 LCALL T2 ;调停止洗衣子程序 CLR P2.6 ;开报警蜂鸣端 MOV R7,#6 ;延时3秒DEL3S:LCALL DELAY DJNZ R7,DEL3S SETB P2.6 ;关报警蜂鸣端 RET TIAO1:LCALL A0 ;调洗衣总过程程序 RETTIAO2:LCALL T2 ;调停止洗衣总程序 RETSPAIK:CLR P2.4 ;手动排水定时中断 MOV R5,#30Z1:JNB STOPK,TIAO2 ;判断是否按下停止按钮 LCALL DELAY DJNZ R5,Z1 SETB P2.4 RETISTUOK:CLR P2.4 ;手动脱水定时中断 CLR P2.5 MOV R5,#60Z2:JNB STOPK,TIAO2 ;判断是否按下停止按钮 LCALL DELAY DJNZ R5,Z2 SETB P2.4 SETB P2.5 RETI ;/0.5的延时子程序DELAY:MOV R0,#50DEL: MOV R1,# 40DEL1: MOV R2,#123 NOP DEL2: DJNZ R2,DEL2 DJNZ R1,DEL1 DJNZ R0,DEL RET;/2秒的延时子程序DEL2S: MOV R6,#4 DE:JNB STOPK,TIAO2 ;判断是否按下停止按钮 ACALL DELAY DJNZ R6,DE RET END 附录B:硬件电路图