• 5.22 MB
  • 2022-04-22 13:43:03 发布

基于单片机的全自动洗衣机控制系统设计论文.doc

  • 71页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'华科学院本科毕业设计(论文)基于单片机的全自动洗衣机控制系统设计摘 要随着数字技术的快速发展,洗衣机成为家庭中不可或缺的家用电器。因此,设计了基于单片机的全自动洗衣机控制系统。本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入,洗衣,脱水和结束报警四个阶段.控制系统主要由电源电路,单片机控制系统和外部硬件三大模块组成。通过单片机的控制,外部硬件随着用户参数的输入,洗衣机按照用户的选择要求进行运作。本系统给AT89S52单片机载入软件程序后,能够实现全自动洗衣机的基本功能.使得洗涤、漂洗、排水、脱水等各种功能的操作都不需要手动。并可以通过选择洗涤方式来选择时间,还可以选择洗涤的强弱等多种方式。控制器通常设有强洗、弱洗两种洗涤程序,对不同的衣物可提供用户选择。本设计实现了多种洗衣功能,能够满足现代家庭的基本洗涤要求,具有一定的实用性。关键词:单片机89S52;洗涤;全自动洗衣机;控制器65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)DesignofcontrolsystemofautomaticwashingmachinebasedonthemicrocontrollerAbstractWiththerapiddevelopmentofdigitaltechnology,washingmachinehasbecomeindispensablehouseholdappliances.Therefore,thedesignofthecontrolsystemofautomaticwashingmachinebasedonsinglechipmicrocomputer.Thissystemrealizesthecontrolofthewashingmachineandthewholewashingprocess,includinguserinputparameters,washing,dehydrationandendalarmfourstages.Thecontrolsystemismainlycomposedofapowersupplycircuit,SCMcontrolsystemandtheexternalhardwarethreemodules.ThroughtheMCUcontrol,externalhardwarewithuserinputparameters,washingmachineaccordingtotheuser"schoiceforoperation.ThissystemdownloadingtheprogramtoAT89S52microcontroller,toachievethebasicfunctionsofautomaticwashingmachinewashing,rinsing,drainage.So,dehydrationandothervariousfunctionaloperationdoesnotneedmanual.Andcanchoosethewashingwaytochoosethetime,canalsochoosethewashingstrengthetc..Thecontrollerusuallyprovidedwithastrong,theweakwashwashtwokindsofwashingprocedures,fordifferentclothingcanprovideuserselection.Designandimplementationofthevariouswashingfunction,cansatisfythebasicwashingtherequirementsofthemodernfamily,hasacertainpracticality.KeyWords:Singlechip89S52;washing;fullautomaticwashingmachine;controll65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)第1章绪论1.1课题的目的和意义目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等几大功能,在许多方面还不能达到人们的需求。这就要求设计者们有更高的专业和技术水平,能够提出更多好的建议和新的课题,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。目前的洗衣机都没有实现全方面的兼容,打多洗衣的厂家都注重格子品牌的洗衣机的特长,突出一两个与别的洗衣机不同的个性化的功能,洗衣机的各项功能是由单片机控制实现的,单片机的体积小,控制功能灵活,因此,设计出给予单片机控制系统就具有很强的实用性。而本次设计的洗衣机控制器也是为了满足某些用户的不同需要。同时也将单片机控制技术用到了实际生活中,最重要的是将所学的东西运用化。1.2洗衣机的发展全景及待解决的问题国外先进技术及开发前景当今世界是技术、知识打爆炸的年代,只要人们有需要,就有可能生产出某种产品来满足人们的需要。洗衣机的发展正是这样,人们在生活中发现了它的某些不便,就会在实际中不断地改进和完善它,新型的洗衣机正是在这种情况下诞生的。1、超声波洗衣机超声振动产生空穴现象,在洗涤中通过边生产气泡边消失的运动,产生强水压,再加入小量洗衣剂,振动纤维,超声乳化去污,水中气泡上升,产生了洗涤桶中央向外侧翻动的水流,便衣服之间相互摩擦,并与洗涤剂充分接触产生很有效的洗涤作用。这种洗衣机洗涤桶小,桶内无运动部件,无机械电气故障,修理方便。词典均匀性好,不缠绕,不伤布料,洗涤效果好,省水,省电。2、电磁洗衣机这种洗衣机洗涤桶内有4个洗涤头,上面各有个夹子,把衣物伸展夹住,每个洗涤头上有个电磁线圈,接通电源发生2500次/秒的微击振动,使衣物在洗涤液中洗涤。因不用电机驱动,无噪声,省水50%,省电75%。3、65 华科学院本科毕业设计(论文)高温泡沫洗衣机日本大阪大研制的一种不用高温泡沫来洗涤衣物的洗机。洗涤剂灌于洗衣机低部,放衣物后拨动开关,开始鼓风,将空气送入罐中产生泡沫,由加热到70摄氏度高温泡沫洗净衣物,然后进入洗衣桶旁边的消泡装置,一般洗5~10分钟/5次,21L/1kg干衣。3、真空洗衣机原苏联研制的一种不用洗衣粉或洗涤剂的洗衣机,真空泵将洗衣桶内吸成真空状态,桶中水运动产生气泡爆破并去污。洗净度高,不损衣、无噪声、造价高。实际上是采用冷沸腾洗涤原理,在几秒钟内从洗涤桶的上部那空气抽出。稀薄空气与水如沸腾状,衣物在泡沫漩涡中搅动,1.5~2分钟就能洗净衣物,一般洗衣服7~10分钟即可完成全过程。4、喷射式洗衣机意大利扎努西公司研制一种将洗涤剂不断喷射向衣物的洗衣机,似乎无水,可以省水20%,省洗涤剂30%,省能35%,省时间10%。这种洗衣机完全不同于前装式滚筒洗衣机,安装在喷淋系统内的喷射装置持续不断地将水和洗涤剂喷淋在衣物上进行洗涤,并在不锈钢桶内搅动衣物。衣物在液体中不停地搅动,就像桶内根本没有水一样。然而水却渗透过衣物流入位于滚筒底部的一个储水槽中。在槽中,水被从新加热再次循环喷射到衣物上去,洗涤桶做周期性脱水,以排去水和污物,随后漂洗3次,最后脱水洗完。洗衣机待解决的一些问题由于我国洗衣机厂起步晚,加上技术方面的一些问题,不可避免底再现有的机型中出现一些弊病。主要弊病有:噪声大,麻电和漏水,进水不畅或进水不止或排水不畅,工作周期不平稳、振动大,损伤洗涤物,洗涤效果不佳,脱水插自动性不佳,脱水不良,重量大,容量不合理。具体来说,洗衣机的问题存在于结构、质量、原材料和模具及管理方面。1、结构类型方面我国洗衣机多属波轮式。今后波轮式任然是主要形式。为了适应国外市场的不同需求,要适当地生产些新型式的滚筒式和搅拌洗衣机,进而生产具有波轮式、搅拌式两种洗衣机优点的新机型。为了使波轮式洗衣机洗涤更合理,应努力将全自动洗衣机提高到电脑型的水平。双桶洗衣机再提高漂洗的条件下,以重点生产全自动型喷淋式洗衣机为宜。同时要注意避免新水流洗衣机一味地提高波轮式的转数及其转动时间或增高波轮筋高的倾向,以免损伤衣率和缠绕率回升增高,降低了新水流洗衣机的优越性。65 华科学院本科毕业设计(论文)2、质量方面我国洗衣机的质量问题,具体反映再功能、外观和可靠性三方面,与国外存在较大的差距。把国内外洗衣机放在一起,从功能、电源插头、面板装饰、旋钮结合,塑料件的光整度(光洁、毛刺和变形),外箱和螺丝钉的成形及防锈,皮带的耐磨及噪音进排水阀和水位开关阀质量,电脑控制各种功能的能力,电脑的康电压波动、抗干扰防静电的能力,以及传感器的灵敏度等方面,很容易看出那几台是国产货,再加上装配工艺较落后,致使我国洗衣机的质量稳定性差,出口有一定的困难。目前我国洗衣机无故障运行水平为250~500小时,而国外同类产品达1500~2000小时,即十年不需修理。我国的洗衣机出口,切不可立足于搞好售后服务,否则将来带来很多麻烦。因此提高洗衣机的质量要从提高零部件的质量入手。关键电器件和传动件应组织专业分工,制定标准,组织攻关,进行认证,在改进功能方面、外观质量和可靠性三方面,进行全面整理,提高水平。3、原材料和模具方面洗衣机的原材料主要是塑料盒薄钢板,目前均供不应求,需进口。一旦进口受阻,生产便要停滞下来。质量好的原材料生产的塑料件注塑工艺和塑料模具的质量问题。另外,塑料的各种规格来源也不足,靠进口,成本就降不下来,以每台洗衣机10公斤台粗计,年产1000万台每年需薄钢板6万吨,目前50%还供应不上。我国洗衣机要维持生产,大型模具的设计、制造和使用寿命,应组织攻关解决。4、管理方面各洗衣机厂从国外引进的设备和技术的消化吸收还没有落在实处,有的厂只是计划一下,软件技术既没有消化,也没有吸收,照老办法生产,甚至买来就一直锁在柜子里。现在出口洗衣机和前几年引进类似,盲目自我竞争,各自为政,因此在出口管理方面,应协调一致,出口业务进行,统一对外。1.3课题设计任务与要求一个全自动洗衣机控制器设计任务:设计一个用单片机控制的洗衣机控制器。以单片机为主的控制器系统,扩展必要的外部电路,设计制作一个洗衣机控制器。工作流程包括:洗涤,脱水,漂洗,脱水,漂洗,脱水。全自动洗衣机的主要功能:(1)开机默认状态:标准方式,强洗。(2)在洗涤和漂洗过程中,电机正转1次,反转1次,连续运行。(3)在进水和脱水过程中,相应的指示灯亮,继电器吸合,蜂鸣器间接性响。(4)当在执行某个步骤时,只有“K3”键有效,按下暂停,再按恢复执行。各步骤时间要求:进水时间为4s,洗涤时间为6s,排水时间为2s,漂洗时间为2s。65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)第2章全自动洗衣机的设计方案2.1系统方案选择方案一、本设计采用89S52单片机设计的全自动洗衣机1、控制系统的电路组成该电路主要组成部件是由AT89S52单片机、指示灯、电动机、蜂鸣器、水位开关控制器、LED显示灯、及4只案件组成。其组成如图3.1所示。电动机有两个控制端,一端控制电动机正转且该端与P2.0相连,另一端控制电动机的反转且该端与P2.1相连。电控开关共两个,一个为水位开关且受P1.6的控制,另一个为洗衣机盖开关而受P1.7的控制,当电控开关的控制端为“0”时洗衣机进水,当电控开关的控制端为“1”时洗衣机脱水。显示器共有两只P0控制高位显示器,P2控制地位显示器。蜂鸣器有由P3.5控制,当P3.5输出为“1”时蜂鸣器发声。本系统采用12M的晶体振荡器定时器0和定时器1的设置为每隔100us产生一次中断。电机控制电路蜂鸣器报警电路单片机主控系统复位电路进水、排水电路显示电路电源电路图2.1设计总方框图方案二基于89C51单片机设计的全自动它有启动键、强制停止键、水位选择键、进水阀、排水阀、洗衣电机、脱水电机及各种显示电路。结构图如下:65 华科学院本科毕业设计(论文)启动键停止键运行状态显示蜂鸣器报警微处理器水位选择开关手动排水阀手动脱水阀进水阀、排水阀图2.2设计总方框图其中,P3.2口接启动/停止键,按下为启动,再按一次为停止;P3.5、P3.6、P3.7分别是正转显示、反转显示和脱水。电机显示,用数码管和二极管的亮灭进行显示,P2.3口接报警器,蜂鸣器BUZI发出提示音。该设计虽然加入了手动项,但是由于C51芯片本身的PO口的特殊性使得新手在连接时容易出现问题。利用89C51单片机实现,大部分的功能可以用单片机来实现,这样可以使整个电路比较简单,而且成本也比较低,(使用单片机的外围电路比较简单),而且在时间计数计算上精度大,扩展功能很方便。但如果系统设计的不好,则系统不是很稳定,这样就为系统设计提出了挑战。方案三基于DSP的变频洗衣机控制系统设计本洗衣机系统主要实现的功能包括:浸泡、洗涤、漂洗、脱水、手动设置和延时洗衣等,根据变频洗衣机的原理和负载特性。本课题的洗衣机工作方式可分为自动和手动等两种洗衣方式。自动方式由洗衣机自动检测、预备各项参数进行洗衣,手动方式需要用户设置各部分的工作参数,包括洗涤用水量、浸泡时间、漂洗时间、脱水时间、电机转速、洗衣时刻等。接下来,进水阀打开通过水位传感器判断水量是否达到要求。开始浸泡,最后根据用户手动设置的参数进行浸泡(自动式默认时间为零),然后获取检测或设置的工作参数完成洗衣程序中的洗涤漂洗和脱水等操作。65 华科学院本科毕业设计(论文)该设计方案可行性很高,而且电路简单,可以用软件仿真,但实现困难,要经过变频、计算等方式来实现,实现起来对设计者的要求很高。软件要求高。方案四PLC控制的全自动洗衣机课程设计洗衣机的工作原理:洗衣机的进水、排水分别由进水电磁阀和排水电磁阀执行。洗涤正转、反转由洗涤电动机驱动波盘正、反转来实现。脱水时,由脱水电磁离合器合上、排水电磁阀吸合,洗涤电动机正转进行甩干。洗涤完成由蜂鸣器报警。PLC由于采用现代大规模集成电路技术,采用严格的生产工艺制造,内部电路采取了先进的抗干扰技术,具有很高的可靠性。但PLC设计要设计出梯形图,设计图没有一同固定的方法和步骤,具有很大的试探性和随意行,比较难掌控,分析起来复杂且困难,并且很容易遗漏一些应该考虑的问题。综合上述几种方案,出于对笨设计的安全性和实现简单、方便,且S52单片机中的典型,有高速率、高性能、低功耗的有点,且结构先进、功能强大。因此我选择了第一方案,基于S52单片机的全自动洗衣机控制系统设计。2.2具体设计方案本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、漂洗、排水和脱水等阶段。控制系统主要由电源电路、单片机控制系统和外部硬件电路构成。2.2.1按键洗衣机面板上有4个按钮K1,K2,K3,K4。(1)通过K1键步进改变“标准,经济,单独,排水”四种方式,执行相应程序,对应指示灯亮。(2)通过K2健步进改变“强洗。弱洗,”两种方检测开关式。(3)通过K3键控制洗衣机的运行,暂停和接触报警功能。(4)K4为启动键2.2.2洗衣机自检洗衣机上电后,先进行自检,包括检查安全开关,排水阀状态,进水阀工作过程,电机的运转,若发现异常现象则蜂鸣器响,报警灯亮。65 华科学院本科毕业设计(论文)2.2.3洗衣程序1、洗涤过程放好衣物,启动开关,进水阀通电,向洗衣机供水,当到达要求水位时,进水阀断电关闭,停止进水;洗涤电机M接通电源,带动拨龙旋转洗涤衣物,通过电机M不停的正转,停,反转,反复循环,形成洗涤水对衣物产生强烈的翻滚作用,衣物之间,衣物与四周桶壁之间产生摩擦达到洗涤效果。2、漂洗过程漂洗与洗涤过程相同,只是时间短一些。3、脱水过程洗涤或漂洗结束后,电机M停止转动,排水阀M通电打开,进行排水.排水阀动作的同时,电机M也接通,使电机可以带动内桶转动.当水位低到一定程度时,满足安全条件,脱水电机M接通,带动脱水桶高速旋转,利用离心力把衣物上的水从桶壁的小眼里甩出,全部洗衣工作完成后,由蜂鸣器发出鸣响,表示衣物已洗干净。2.2.4显示洗涤、漂洗及脱水的方式都通过9个LED灯的显示,依次显示为标准、经济、单独、排水、强洗、弱洗、洗涤、漂洗、脱水这九个选择。2.3控制系统的功能基于单片机洗衣机通过控制系统设定洗衣程序在洗涤脱水桶内自动完成注水、洗涤、漂洗、排水和脱水全过程。洗衣时控制系统打开进水电磁阀开始注水;当洗涤脱水桶内的水位达到系统设定值时单片机发送一个低电平通知控制系统关闭进水电磁阀,同时启动电机洗衣。电机在系统的控制下进行正转、停、反转通过传动带动波轮执行洗涤程序;当洗涤时间终了,控制系统切断电机电路打开排水电磁阀开始排水;然后再次注水,洗衣机进入漂洗状态,完成漂洗程序(通常为2次漂洗)后,开始排水,同时排水电磁阀的动作并且松开为脱水程序做好准备;排水结束后系统控制电机单方向高速运转完成脱水程序;当脱水程序终了系统控制排水电磁阀和电机断电,排水阀复位,同时蜂鸣器奏响,通知用户整个洗衣程序结束。65 华科学院本科毕业设计(论文)第3章系统硬件设计3.1系统硬件总体设计1、工作原理全自动洗衣机是通过水位开关与电磁进水阀配合来控制进水、排水以及电机的通断,从而实现自动控制的。电磁进水阀起着通、断电源的作用。硬件工作原理图如下图3-1:输出量(运行或停止)洗衣机控制电路电动机输入量(接通电源)图3.1硬件工作原理图全自动洗衣机控制系统是能实现“正常运行”的控制方式:(1)将水位通过水位选择开关设在合适的位置低水位,开始进水,达到设定的水位后,停止进水;(2)选择洗涤方式后按下启动键后,开始洗衣;(3)按照选择的洗衣方式开始洗涤,电动机转动,正转反转交替循环;(4)洗衣完成后,洗衣机开始排水河脱水,脱水时电动机单方向转动;(4)洗衣过程完成,报警后自动停机。2、组成框图65 华科学院本科毕业设计(论文)按键输入水位频率信号单片机电机LED显示灯进水阀排水阀蜂鸣报警图3.2硬件结构组成框图3、关于AT89S52芯片AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。AT89S52主要功能列举如下:1)、拥有灵巧的8位CPU和在系统可编程Flash2)、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)3)、内部程序存储器(ROM)为8KB4)、内部数据存储器(RAM)为256字节5)、32个可编程I/O口线6)、8个中断向量源7)、三个16位定时器/计数器8)、三级加密程序存储器9)、全双工UART串行通道4、单片机各个引脚的功图能:65 华科学院本科毕业设计(论文)图3.3AT89S52单片机VCC:AT89S52电源正端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA"为英文"External65 华科学院本科毕业设计(论文)Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0~P0.7):端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS65 华科学院本科毕业设计(论文)TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下: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:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。  /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。  /EA/VPP65 华科学院本科毕业设计(论文):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。  XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。5、输入输出管脚定义输入定义:P0.0;水箱水位计;接上拉电阻;P0.1;电源开关;接上拉电阻;P0.2;启动按键;接上拉电阻;P0.3;暂停按键;接上拉电阻;P0.4;水位设定;接上拉电阻;P0.5;功能按键;接上拉电阻;P0.6;喇叭指示;接上拉电阻;输出定义:P1.0;洗涤正转;P1.1;洗涤反转;P1.2;抽水电机;P1.3;排气电阀;P1.4;进自来水;P1.5;改制剂阀;P1.6;进离子阀;P1.7;排水电阀;摸仪量输入:P3.0;输入启动;P3.1;输出数据;P3.2;是否转换结束;P3.3;数码管十位;P3.4;数码管个位;P3.5;操作界面指示灯;P3.6-wr244输出;65 华科学院本科毕业设计(论文)P3.7-rd244输入;P2.0-0809-D0;..P2.7-0809-D73.2各单元电路设计3.2.1电源电路单片机系统电源部分的电气原理图如图所示。市电220V经过变压器T变压为12V交流电,再通过4只二极管全桥整流,经过电容C9、C10滤波得到光滑的直流电压后,经过三端稳压管稳压得到稳定的+5V电压给各器件供电。图3.4电源电路3.2.2控制电路1、单片机的复位电路复位电路的作用是复位。在单片机接上电源以后,或电源出现过低电压时,将单片机存储器复位,使其各项参数处于初始位置,即处于开机时的标准程序状态,以消除由于某种原因的程序紊乱。单片机的复位电路有上电复位和动手复位两种形式,RST端的高电平直接由商店瞬间产生高电平则为上电复位;若通过按钮产生高电平复位信号则称为动手复位。图为兼有上电复位和动手复位的电路。65 华科学院本科毕业设计(论文)上电复位时利用电容充电来实现复位,其工作原理是:上电瞬间RST端的电位与VCC相同,随着电容C6充电电流的减小,+5V的电压立即加到了RST端,该高电平使得单片机复位。手动复位时利用开关K来实现复位,此时电源Vcc经两电阻分压,在RST端产生一个高电平,使得单片机复位。当RST由高变低后复位结束,CPU从初始状态开始工作。单片机的复位都是靠外部电路实现的,在本次设计中采用手动复位,如图图3.5单片机复位电路2、单片机的时钟电路时钟电路由晶振元件与单片机内部电路组成,产生的振荡频率为单片机提供时钟信号,供单片机信号定时和计时。在AT89S52单片机内部有一个高增益反相放大器,其输入端引脚为XTAL1,其输出端为XTAL2。主要在两引脚之间跨接晶体振荡器和微调电容C4、C5,就可以构成一个稳定的自激震荡器。本设计采用图所示电路。一般地,电容C1和C2取33pf左右;晶体振荡器,简称晶振,频率范围是1.2~12MHz。晶振频率越高,系统的时钟频率也就越高,单片机的运行速度也就越快。在通常情况下,使用震荡频率为6MHz或12MHz的晶振。如果系统中使用了单片机的串行口通信,则一般使用频率为11.0592MHz的晶振。而在本次设计中采用的是频率为11.0592MHz的晶振。65 华科学院本科毕业设计(论文)图3.6时钟电路3.2.3检测电路水位监测电路水位检测的精度直接影响洗净度、水流强度、洗涤时间等参数。对于全自动洗衣机,要求水位的检测必须是连续的,故常采用谐振式水位传感器。谐振式水位传感器是利用电磁谐振电路LC作为传感器的敏感元件,将被测物体的变化转为LC参数的变化,最终以频率参数输出。其工作原理是:将水位的高低通过导管转换成一个测试内腔气体变化的压力,驱动内腔上方的一块隔膜移动,带动隔膜中心的磁芯在某线圈内移动,从而线圈电感发生变化。由此引起谐振电路的固有频率随水位变化。3.2.4执行电路1.继电器的作用继电器是在自动控制电路中起控制与隔离作用的执行部件,它实际上是一种可以用低电压、小电流来控制高电压、大电流的自动开关。2电动机控制电路的作用原理电动机M控制部分的电气原理图如图所示。电动机有两个控制端,一端控制电机正转该端与P2.4相连,另一端控制电机反转该端与P2.5相连。系统供电时交流220V电压经过继电器加在电动机的两个控制端。当洗衣机接到“正转”指令时P2.4输出高电平经过R13、Q1使的继电器Kb线圈得电导Kb,从而使得电机正转。当洗衣机接到“反转”65 华科学院本科毕业设计(论文)的指令时P2.5输出高电平经过R23、Q3使得继电器Ka线圈得电导通Ka,从而使得电机反转。图3.7电动机的控制电路3、进水/排水电路如图所示,进水阀受P1.6的控制,出水阀受P1.7的控制。当电控水龙头的控制端P1.6为“0”时,Ka线圈得电使得出水阀打开。图3.8进水、排水电路65 华科学院本科毕业设计(论文)3.2.5显示电路本设计有四个按键(程序选择K1、强弱选择K2、启动/暂停K3、复位K4)两个开关(水位高低K5、洗衣机盖开关K6),十二个发光二极管(四个程序显示、两个功能显示、三个状态显示、一个进水显示、一个排水显示)。(1)显示模块由发光二极管组成。本设计中我们采用发光二极管主要是用来指示洗衣机的工作状态,10个发光二极管分别跟单片机的10个I/O口连接,如图所示。当发光二极管的负极所对应的P1口味低电平时,发光二极管导通。图3.9发光二极管电路(2)通过按键的选择来确定选择的功能与程序,主要三个按键,按键图如下:图3.10按键电路65 华科学院本科毕业设计(论文)3.2.6蜂鸣器报警电路本设计采用无源蜂鸣器,单片机必须输出固定频率的方波信号,其工作电压范围宽,4-12V,需要外围元件少,电压增益可调范围为20-200。通过CPU的P3.5输出高电平来控制蜂鸣器报警。为保证洗衣机的安全工作,当洗衣机出现问题或故障时,洗衣机应立即发出蜂鸣报警,提醒用户及时处理,此关闭电源,同时也是提醒用户洗衣完成。如图所示:图3.11蜂鸣器报警电路65 华科学院本科毕业设计(论文)3.3电路设计及本章小结图3.12总电路设计本章小结:本章介绍了系统硬件电路的设计,由开关检测模块,驱动控制模块,LED显示模块,主控电路模块,外围设备模块,电源模块等部分组成,并详细分析了各个模块的组成及作用,介绍了所用主要芯片的特点及用法,并简述了模块设计时的注意事项。实现了自动洗衣机应具备的基本功能。65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)第四章系统软件设计4.1软件主程序设计根据硬件设计要求控制主程序流程图如图所示。洗衣机通电后单片机上电首先进行程序的初始化包括定时器0、外部中断0、外部中断1的初始化以及各参数初值的设定。默认洗衣强度为“标准洗”漂洗次数2次。然后扫描按键的状态确定洗衣过程,当发现启动键按下洗衣机从待命状态进入工作状态,完成进水、洗涤、脱水、漂洗的循环过程。当洗衣结束时控制蜂鸣器发声。表4-1为洗衣机系统控制表:表4.1洗衣机控制系统表按键选择全程洗衣时间显示灯亮漂洗次数K1标准30sD12次K1经济22sD21次K1单独10sD30次4.2软件子程序设计软件的编程思路:全自动洗衣机控制软件系统根据其功能要求,主要分为以下几个大程序模块:洗涤程序模块、漂洗程序模块、脱水程序模块。65 华科学院本科毕业设计(论文)开始Y时间到了?NN洗涤程序NNYY初始化键盘扫描快洗?洗?脱水?水?、、、、启动?快速洗脱水漂洗程序NYY脱水程序报警?结束图4.1主程序流程图65 华科学院本科毕业设计(论文)漂洗开始洗衣开始开进水阀进水电机运转洗涤结束?NYY电机转动漂洗两次结束?脱水开始电机正转NN脱水结束?Y蜂鸣器报警洗衣结束图4.2标准洗衣程序流程图65 华科学院本科毕业设计(论文)洗衣开始开进水阀进水电机运转洗涤结束?NY漂洗开始NY电机转动漂洗一次结束?脱水开始电机正转N脱水结束?Y蜂鸣器报警洗衣结束图4.3经济洗衣程序流程图65 华科学院本科毕业设计(论文)4.2.1洗衣程序设计(1)洗衣程序分为标准洗涤、经济洗涤和单独洗涤三种。(2)标准洗衣过程是进水、洗涤、排水、进水、漂洗、排水、进水、漂洗、排水、脱水。(3)经济方式:进水,洗涤,排水,进水,漂洗,排水,脱水。单独方式:进水,洗涤。具体流程图如上图4.2、4.34.2.2洗涤程序的设计洗涤是洗衣过程中的主要步骤。当进水结束后进入洗衣状态,洗衣开始,电动机正转—停止—反转一直循环,当洗衣时间等于零时,洗衣结束且进入漂洗。洗涤方式分为强洗和弱洗。强洗即电机转速快,弱洗电机转速慢。程序流程图如图所示洗衣开始电机正转电机停止电机反转电机停止剩余时间=0?N图4.4洗涤程序流程图65 华科学院本科毕业设计(论文)4.2.3漂洗程序的设计漂洗是一个比较固定的洗衣方式,与洗涤过程操作相同,只是时间短一些。漂洗次数为2次或1次。漂洗程序流程图如图所示:开始漂洗指示灯亮第一次漂洗第二次漂洗进入脱水漂洗指示灯灭漂洗结束漂洗完成?NY图4.5漂洗程序流程图4.2.4脱水程序的设计然后停止脱水,并且蜂鸣器报警提醒用户系已完成。程序流程图如图所示:65 华科学院本科毕业设计(论文)NY开始脱水开排水阀开电机脱水盖板开否?盖板合闭?蜂鸣器报警YNN脱水结束?暂停关电机、排水阀开蜂鸣器洗衣结束Y图4.6脱水洗涤程序流程图65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)第五章系统调试在系统样机的组装和软件设计完成以后就进入系统的调试阶段。应用系统的调试步骤和方法是相同的,但具体细节与采用的开发系统(即仿真器)及选用的单片机型号有关。调试的过程就是软硬件的差错过程,分为硬件调试和软件调试。5.1硬件调试单片机应用系统的硬件调试和软件调试是分不开的,但通常是先排除系统中明显的硬件故障后才和软件结合起来调试。在进行硬件调试时先进性静态调试,用万用表等工具在样机加电前根据原理图和装配图仔细检查线路核对元器件的型号、规格和安装是否正确。然后加电检查各点电位是否正常。接下来再借助仿真器进行联机调试,分别测试扩展的RAM、I/O口、I/O设备、程序存储器以及晶振和复位电路并改正其中的错误。第一步:在没通电之前先用万用表检查线路的正确性并核对元器件的型号、规格是否符合要求。特别注意电源的正负极以及电源之间是否有短路并检查地址总线、数据总线、控制总线是否存在相互间短路或其他信号线的短路。由于本系统的开发是基于曾经用过的单片机,所以此步骤不会发生故障。第二步:通电后检查单片机I/O的电位,测量各点电位是否正常。尤其是应注意单片机输出口的各点电位。若有高压将有可能损坏外部仿真电路,同样如果电压过低就没有能力驱动负载。第三步:将单片机信号输出借口与外部仿真电路接口连接起来,为软件调试做好准备。在硬件的调试过程中常见的硬件故障有:元器件失效:元器件失效的原因包括两个方面,一方面是器件本身已损坏另一方面是组装过程中造成元器件失效,当然在调试过程中,我们发现发光二极管接反,继电器损坏。可靠性差:引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;内部和外部的干扰、电源波纹系统经过人、器件负载过人或热稳定性差等造成逻辑电平不稳定;另外。走线和布局的不合理等也会引起系统可靠性差。我们在调试的过程中发现单片机输出稳定的电压,但是硬件电路的发光二极管的亮度不一、时亮时不亮。经查证主要是由于元器件的引脚过长和弯曲造成的电路不够稳定、I/O输出的高低电平没有明确65 华科学院本科毕业设计(论文)电源故障:电源故障包括电压不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差等。电压过高容易烧坏发光二极管,电压过低无法驱动负载。因此我们焊接了直流电源电路,使其输出稳定的电压。5.2软件调试软件调试与所选用的软件结构和程序设计技术有关,如果采用模块化程序开发技术,则逐个模块调好以后,再进行系统程序总调试。调试程序时,一定要求符合现场环境,即入口条件和出口状态。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转换地址错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中逐步调整用户系统的软件和硬件。图5.1ULN2803内部结构图各程序模块调试好后,可以把相关的功能模块联合起来进行整体综合调试。存储这个阶段弱发生错误,可以考虑各子程序存储运行时是否存储破坏现场,缓冲区数据是否发生变化,标志位的建立和清楚是否影响其他标志位的变化,对栈区的深度是否不够,输入设备的状态是否正常等。65 华科学院本科毕业设计(论文)单步和断点调试后,还应进行连续调试,因为单片机的运行是在严格的时序下进行的,单步运行成功并不代表连续运行成功。待全部调试完成后,应反复运行多次。5.3整体调试1、正常接通电源后的现实实物图进水排水灯即D10、D11都不亮。因各选择键未选择,所以出于初始状态的第一个选择。而D12即洗衣机盖的灯在整个运行过程中都亮。图5.2接通电源后的正常显示2、以下图片为正常工作的细节步骤实物图1、当K1处于标准(经济、单独、排水)四项之一时,K2处于强洗或弱洗状态,按下复位键,选择低水位片刻后,换高水位,进水D10灯亮,同时洗涤和漂洗交替亮、脱水灯即D7、D8、D9亮后,按下运行K3,洗衣机开始运转。65 华科学院本科毕业设计(论文)图5.3进水时的实物显示2、下面选择了经济洗涤下的弱洗为例。K1选择键选择为经济洗即D2灯亮,表示选择经济洗涤,然后K2键选择为弱洗即D6灯亮。同时洗涤和漂洗交替亮、脱水灯亮即D7、D8、D9,D12一直亮。在下图中分别介绍了洗涤下和漂洗下的实物图:(1)洗涤状态下洗涤、漂洗、脱水灯即D7、D8、D9灯都亮。图5.4洗涤状态下的实物图65 华科学院本科毕业设计(论文)(2)漂洗状态下洗涤灯D7灯灭,漂洗、脱水灯即D8D9灯亮。图5.5漂洗状态下的实物图3、当洗衣完成了进水、正转、反转和排水后,也就是洗涤、漂洗、脱水、排水功能逐次实现后,电动机停止转动,排水灯D11亮,同时漂洗、和脱水灯亮即D8、D9,D12一直亮。图5.6排水时的实物图65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)总结本毕业设计的基于单片机的全自动洗衣机控制系统控制。由于其具有内存容量大、输入输出口多、I/O的驱动能力强、指令系统丰富等特点,将其应用在家用电器控制中,可大大简化系统的硬件电路,使系统具有更高的可靠性。本设计经过设计达到了预期的各种功能,完全符合全自动洗衣机的各项要求。在本次设计中,因为以前的时候总是觉得设计只要有总体思路就可以了,所以在设计电路时候,特别是对双向晶闸管的使用的时候,只是欧诺个书上了解到了无触点的优点但却没有想到其实双向晶闸管的过压和过流性是十分脆弱的,设计的时候就直接用它去控制了电机和电磁阀,这样的稳定性在实际的使用中不能稳定使用,所以设计没有实际意义。后来及时改正。本章从硬件和软件两方面进行介绍。系统硬件部分主要是对硬件各部分电路的设计,包括开关检测模块,驱动控制模块,LED显示模块,主控电力模块,外围设备模块,电源模块等部分,并详细分析了各个模块的组成及作用,介绍了所用主要芯片的特性及用法,简述了模块设计时的注意事项。软件部分包括主程序,键盘中断子程序,内部设定时中断程序设计和外部中断程序等部分。每个部分包括主程序,键盘中断子程序,内部定时中断程序设计和外部中断程序等部分。每个部分我都画出了程序流程图,使得系统的软件设计思路清晰地呈现在读者面前,简单易懂。但是由于个人水平能力有限,论文设计上存在许多不足之处,有待于进一步的改进。通过本次设计可以总结出:首先单片机的广泛应用使用现在的电子产品设计越来越方便、功能越来越好、集成度也越来越高。通过对单片机的重新编程可以很方便的改变洗衣机的功能能,其次单片机和微电子等技术是密切相关的,它们如何应用将直接对设计结果产生影响,应用不同的元器件和设计方法可以使洗衣机的设计结果截然不同,洗衣机的性能也将有差别,同时在本设计中应用的元器件都是单片机的应用,使该设计只要稍加修改就可以很方便地开发出其他基于单片机的洗衣机控制系统。65 华科学院本科毕业设计(论文)在科技高速发展的今天,基于单片机的全自动洗衣机控制系统具有精度高、功能高、经济性好的特点。无论在提高产品质量还是产品数量,节约能源还是改善劳动条件等方面都显示出无比的优越性。目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,这就要求设计者们有更高的专业和设计水平,能够提出更好的建议和新的课题,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。因此,设计出基于单片机的控制全自动洗衣机的电控板设计具有很强的实用性。总结几个月来的设计体会大体如下:首先任何工作都要与人打交道、沟通,毕业设计也不例外这就需要我们充分地利用好彼此的力量、充分的协作可以对设计过程中出现的问题站在不同的角度分析问题,汇结大家的意见,最终达成一致,发挥了团队精神。其次对待任何的工作责任心是必要的。这次的毕业设计让我体会颇深,然而更重要的是在责任心的驱使下我该采用何种方法更省时省力的完成此次设计。凭着“方法总比困难多”的信念,我首先和同学分析了任务本身该从何处着手,该何时何地查找相关资料等等寻找突破,充分地解决好问题。再次是遇到不懂的问题及时向老师请教,抓紧设计的每分每秒,需要调整和改变的地方及时的做出改动而不墨守成规,同样做人也该如此。对于以上之粗浅体会进一步的总结和提高,需要有更多的社会实践来提供,我也相信在不久的将来踏入社会,类似这样的设计绝不在少数,只要我们努力学习、勇于实践、勤学好问我们就会懂得以前不明白或不懂得道理,就会很快地成长和成熟起来。我也相信凭着我自强不息勇于拼搏的精神一定能够很快的适应类似设计的需要,适应这个多变的社会,充分发挥长处朝我们的方向不断前进再前进!65 华科学院本科毕业设计(论文)参考文献[1]李勋,单片机微型计算机大学读本[M],北京:北京航空航天大学出版社,2002.42~48[2]王治刚,单片机应用技术与实训[J],北京:清华大学出版社,2004.5(9)13~19[3]周航慈等,单片机程序设计基础[M],北京:北京航空航天大学出版社,1997.89~93[4]彭为,单片机典型系统设计基础[M],北京:电子工业出本社,2006.65~70[5]卢艳军,单片机基本原理及应用系统[M],北京:机械工业出版社,2005.29~34[6]周美娟等,单片机技术及系统设计[M],北京:清华大学出版社,2007.33~38[7]永权,单片机与家用电器智能化技术[M],北京:电子工业出版社,1995.25~29[8]陈晓军,基于PLC的投币式洗衣机控制系统设计[M],机械制造与自动化,2009.57~63[9]LvQuan. Modern sensor principle and application[J]. The first edition. Beijing: tsinghua university press. 2006,5(6) 3~5. [10]舒易茂,PLC在自动洗衣机控制系统中的应用[J],科技信息(学术研究),2008.7(3)67~71[11]王琰,基于MCS—51单片机的洗衣机控制系统设计[M],自动化与仪器仪表,2008.35~38[12]李志斌,PLC和变频器在工业洗衣机控制系统中的应用[J],电机与控制应用,2008.6(4)89~93[13]曾璐,基于AT89S52单片机的洗衣机控制系统[J],家电科技,2007.8(12)26~30[14]曾璐,基于AT89S52单片机的洗衣机智能控制系统[J],电子技术,2006.3(5)14~18[15]李全利,单片机原理及应用技术[M],高等教育出版社,2004.64~70[16]ZHANGD.AutomatedBiometrics-TechnologiesandSystems[M].USA:KluwerAcademicPulishers,2000.57~59[17]赵良炳,现代电力电子技术基础[M],清华人血出版社,2005.46~51[18]梅丽凤、王艳秋等,单片机原理及接口技术[M],清华大学出版社,2008.23~32[19]王冠熙,全自动洗衣机原理与维修[J],电子工业出版社,1998.12(3)12~18[20]QU Jin-yu.Measure  of Engine Speed Based on C8052F Chip[J].Tractor&Farm Transporter,2007,12(5):12-15.[21]Kurkovav.1991.Kolmogorov’stheoremisrelevant.NcuralComputation.(3):617-622[22]BuckleyJJ.HYing.1991.Expertfuzzycontroller.FuzzySetsandSystema.44:373-39065 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)致谢经过这么长时间的忙碌,我终于完成了这次全自动洗衣机控制器设计,在此我想特别感谢每个帮助我的老师和同学们。在此谨向王玉杰老师致以诚挚的谢意和崇高的敬意。其次要感谢的是所有在大学四年中教育指导过我的所有老师,你们传授给我的专业知识是我完成本设计的基础,也是日后踏入工作岗位的重要基石,对于老师们一丝不苟,兢兢业业的精神表示衷心的感谢。最后我还要向所有关心和支持我学习的朋友和同学们表示真挚的谢意!感谢你们对我的关心、关注和支持。此次课程设计我是在指导老师的悉心指导下,安全按照设计要求完成的,从这次单片机课程设计中我锻炼了许多,也学到了许多东西。另外,我还要感谢学院给我们这次实践的机会,从这次实践的机会中我发现了自己对所学的知识掌握得不足。在此次课程设计后,我计划多参加一些实践活动,并利用课后时间去购买一些芯片和电子器件,然后亲自设计并组装成一个能实现特定功能的电子产品,来培养自己对专业知识的兴趣和提高自己设计分析能力。65 华科学院本科毕业设计(论文)65 华科学院本科毕业设计(论文)附录主程序#include#define uchar unsigned char#define uint unsigned intuchar num=0;   //程序选择标示位uchar num1=0;  //强弱选择标示位uchar num2=0,num3=0,num4=0,num5=0,num6=0,flag=0,flag1=0,flag2=1,flag3=0,flag4=0,flag5=0;sbit ledbiaozhun=P1^0; //标准sbit ledjingji=P1^1; //经济sbit leddandu=P1^2; //单独指示灯sbit ledpaishui=P1^3; //排水指示灯sbit ledqiangxi=P1^4;  //强洗指示灯sbit ledruoxi=P1^5; //弱洗指示灯sbit ledxidi=P1^6;//洗涤指示灯sbit ledpiaoxi=P1^7;//漂洗指示灯sbit ledtuoshui=P2^0;  //脱水指示灯sbit sshuiwei=P3^6;   //水位模拟开关  “低” 水排尽  “高”  水加满sbit sgai=P3^7;   //洗衣机水盖模拟开关sbit paishui=P2^4;   //排水继电器控制端口sbit jinshui=P2^5;   //进水继电器控制端口sbit beep=P2^1;  //蜂鸣器sbit U2=P2^2;  //电机正反转控制端口sbit U3=P2^3;sbit k1=P3^0;  //程序选择sbit k2=P3^1;  //强弱选择sbit k3=P3^2;  //运行/暂停/***************延时子程序********************/65 华科学院本科毕业设计(论文)void delayms(uint xms){uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}/**********************蜂鸣器报警子程序***************/void BEEP(){beep=0;delayms(200);beep=1;}/************************按键控制子程序********************/void key(){if(k1==0)//程序选择{delayms(10);if(k1==0){BEEP();num++;if(num==4)num=0;while(!k1);}}if(k2==0)//强弱选择{delayms(10);if(k2==0){BEEP();num1++;if(num1==2)num1=0;while(!k2);}}}void qiang()  //强{if(flag4==0){65 华科学院本科毕业设计(论文)U2=0;U3=1;}if(flag4==1){U2=1;U3=0;}}void ruo()//弱{if(flag5==0){U2=0;U3=1;}if(flag5==1){U2=1;U3=0;}}void qbiaozhun()//强标准{/*******洗涤********/ledbiaozhun=0;ledqiangxi=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=0;jinshui=0; //打开进水继电器while(sshuiwei);  //等待水加满jinshui=1; //水加满后关闭进水继电器flag1=1;TR0=1;while(flag==0){ if(flag==0&&num2==1){65 华科学院本科毕业设计(论文) TR0=1;flag1=1;qiang();}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};//漂洗U2=1;U3=1;TR0=0;flag1=0;paishui=0;  //打开排水继电器ledbiaozhun=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=1;while(!sshuiwei);//等待水排尽delayms(3000);paishui=1;//水排尽后等待3s 关闭排水继电器jinshui=0;   //再打开加水继电器while(sshuiwei);   //等待水加满jinshui=1;   //水加满后关闭加水继电器flag1=2;TR0=1;num3=0;num4=0;while(flag==1){if(flag==1&&num2==1){ TR0=1;flag1=2;qiang();}if(flag==1&&num2==2){TR0=0;U2=1;U3=1;}};//第二次漂洗U2=1;U3=1;TR0=0;  flag1=0;paishui=0;65 华科学院本科毕业设计(论文)//打开排水继电器ledbiaozhun=0;ledtuoshui=0;ledpiaoxi=0;while(!sshuiwei); //等待水排尽delayms(3000);paishui=1;   //水排后等待3s  关闭排水继电器jinshui=0;   //打开进水继电器while(sshuiwei);   //等待水加满jinshui=1;   //水加满后关闭加水继电器flag1=2;//进行第二次漂洗TR0=1;num3=0;num4=0; while(flag==2){ if(flag==2&&num2==1){ TR0=1;flag1=2;qiang();}if(flag==2&&num2==2){TR0=0;U2=1;U3=1;} }//脱水U2=1;U3=1;TR0=0;flag1=0;paishui=0;//打开排水继电器ledbiaozhun=0;ledtuoshui=0;ledpiaoxi=1;while(sgai||!sshuiwei);   //等待洗衣机盖是否关闭和水是否排尽delayms(3000);flag1=3;65 华科学院本科毕业设计(论文)//满足条件后等待3s后开始脱水TR0=1;num3=0;num4=0;while(flag==3){if(num2==1&&sgai){TR0=1;U2=0;U3=1;flag1=3;}else{TR0=0;U2=1;U3=1;ledtuoshui=0;}};U2=1;U3=1; ledtuoshui=1; // 脱水结束后 关闭指示灯paishui=1;//关闭排水继电器flag1=0;flag3=1;while(flag2) //报警{beep=0;delayms(100);beep=1;delayms(100);};beep=1;while(1);}void qjingji()65 华科学院本科毕业设计(论文)//强经济{/*******洗涤********/ledjingji=0;ledqiangxi=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=0;jinshui=0;while(sshuiwei);jinshui=1;flag1=1;TR0=1;while(flag==0){ if(flag==0&&num2==1){ TR0=1;flag1=1;qiang();}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};//漂洗65 华科学院本科毕业设计(论文)TR0=0;U2=1;U3=1;flag1=0;paishui=0;ledjingji=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=1;while(!sshuiwei);delayms(3000);paishui=1;jinshui=0;while(sshuiwei);jinshui=1;flag1=2;TR0=1;num3=0;num4=0;while(flag==1){if(flag==1&&num2==1){TR0=1;flag1=2;qiang();}if(flag==1&&num2==2){TR0=0;U2=1;U3=1;}};//脱水TR0=0;U2=1;U3=1;flag1=0;paishui=0;ledjingji=0;ledtuoshui=0;ledpiaoxi=1;while(sgai||!sshuiwei);delayms(3000);flag1=3;TR0=1;num3=0;num4=0;while(flag==2){if(flag==2&&num2==1){TR0=1;U2=0;U3=1;flag1=3;}if(flag==2&&num2==2){TR0=0;U2=1;U3=1;}};ledtuoshui=1;U2=1;U3=1;flag1=0;flag3=1;while(flag2) //报警{65 华科学院本科毕业设计(论文)beep=0;delayms(100);beep=1;delayms(100);};beep=1;while(1);}void qdandu()               //强单独{ledqiangxi=0;ledxidi=0;leddandu=0;jinshui=0;while(sshuiwei);jinshui=1;flag1=1;TR0=1;while(flag==0){if(flag==0&&num2==1){ TR0=1;flag1=1;qiang();}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};flag1=0;U2=1;U3=1;while(1);}void rbiaozhun()65 华科学院本科毕业设计(论文)//弱标准{/*******洗涤********/ledbiaozhun=0;ledruoxi=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=0;jinshui=0;while(sshuiwei);jinshui=1;flag1=1;TR0=1;while(flag==0){ if(flag==0&&num2==1){ TR0=1;flag1=1;ruo();}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};//漂洗U2=1;U3=1;65 华科学院本科毕业设计(论文)TR0=0;flag1=0;paishui=0;ledbiaozhun=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=1;while(!sshuiwei);delayms(3000);paishui=1;jinshui=0;while(sshuiwei);jinshui=1;flag1=2;TR0=1;num3=0;num4=0;while(flag==1){if(flag==1&&num2==1){ TR0=1;flag1=2;ruo();}if(flag==1&&num2==2){TR0=0;U2=1;U3=1;}};//漂洗U2=1;U3=1;TR0=0;flag1=0;paishui=0;ledbiaozhun=0;ledtuoshui=0;ledpiaoxi=0;while(!sshuiwei);delayms(3000);paishui=1;jinshui=0;while(sshuiwei);jinshui=1;flag1=2;TR0=1;num3=0;num4=0; while(flag==2){ if(flag==2&&num2==1){65 华科学院本科毕业设计(论文) TR0=1;flag1=2;ruo();}if(flag==2&&num2==2){TR0=0;U2=1;U3=1;} }//脱水U2=1;U3=1;TR0=0;flag1=0;paishui=0;ledbiaozhun=0;ledtuoshui=0;ledpiaoxi=1;while(sgai||!sshuiwei);delayms(3000);flag1=3;TR0=1;num3=0;num4=0;while(flag==3){if(flag==3&&num2==1){TR0=1;U2=0;U3=1;flag1=3;}if(flag==3&&num2==2){TR0=0;U2=1;U3=1;}};ledtuoshui=1;U2=1;U3=1;flag1=0;flag3=1;while(flag2) //报警{65 华科学院本科毕业设计(论文)beep=0;delayms(100);beep=1;delayms(100);};beep=1;while(1);}void rjingji()//弱经济{/*******洗涤********/ledjingji=0;ledruoxi=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=0;jinshui=0;while(sshuiwei);jinshui=1;flag1=1;TR0=1;while(flag==0){ if(flag==0&&num2==1){ TR0=1;flag1=1;ruo();}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};//漂洗65 华科学院本科毕业设计(论文)TR0=0;U2=1;U3=1;flag1=0;paishui=0;ledjingji=0;ledtuoshui=0;ledpiaoxi=0;ledxidi=1;while(!sshuiwei);delayms(3000);paishui=1;jinshui=0;while(sshuiwei);jinshui=1;flag1=2;TR0=1;num3=0;num4=0;while(flag==1){if(flag==1&&num2==1){65 华科学院本科毕业设计(论文) TR0=1;flag1=2;ruo();}if(flag==1&&num2==2){TR0=0;U2=1;U3=1;}};//脱水TR0=0;U2=1;U3=1;flag1=0;paishui=0;ledjingji=0;ledtuoshui=0;ledpiaoxi=1;while(sgai||!sshuiwei);delayms(3000);flag1=3;TR0=1;num3=0;num4=0;while(flag==2){if(flag==2&&num2==1){TR0=1;U2=0;U3=1;flag1=3;}if(flag==2&&num2==2){TR0=0;U2=1;U3=1;}};ledtuoshui=1;U2=1;U3=1;flag1=0;flag3=1;while(flag2) //报警{beep=0;delayms(100);beep=1;delayms(100);};beep=1;while(1);}void rdandu()               //弱单独{ledruoxi=0;ledxidi=0;leddandu=0;jinshui=0;while(sshuiwei);jinshui=1;flag1=1;TR0=1;while(flag==0){if(flag==0&&num2==1){65 华科学院本科毕业设计(论文) TR0=1;flag1=1;ruo();}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};flag1=0;U2=1;U3=1;while(1);}void dpaishui() //排水/脱水{ledpaishui=0;ledtuoshui=0;paishui=0;while(!sshuiwei||sgai);delayms(3000);flag1=3;TR0=1;num3=0;num4=0;while(flag==0){if(flag==0&&num2==1){ TR0=1;flag1=3;U2=0;U3=1;}if(flag==0&&num2==2){TR0=0;U2=1;U3=1;}};U2=1;U3=1;flag1=0;ledtuoshui=1;paishui=0;while(1);}65 华科学院本科毕业设计(论文)  void main(){uchar a=0,b=0,c=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;EX0=1;IT0=1;U2=1;U3=1;beep=1;while(1){key();if(num1==0&&num==0)//强洗  标准{ledruoxi=1;ledpaishui=1;ledqiangxi=0;ledbiaozhun=0;paishui=1;jinshui=1;if(num2==1){qbiaozhun();}if(num2>1){beep=0;}}if(num1==0&&num==1)65 华科学院本科毕业设计(论文)   //强洗  经济{ledruoxi=1;ledbiaozhun=1;ledqiangxi=0;ledjingji=0;paishui=1;jinshui=1;if(num2==1){qjingji();}}if(num1==0&&num==2)//强洗 单独{ledruoxi=1;ledjingji=1;ledqiangxi=0;leddandu=0;paishui=1;jinshui=1;if(num2==1){qdandu();}}if(num1==0&&num==3)//强洗 排水{ledruoxi=1;leddandu=1;ledqiangxi=0;ledpaishui=0;paishui=1;jinshui=1;if(num2==1){dpaishui();}}if(num1==1&&num==0)   //弱洗 标准{ledqiangxi=1;ledpaishui=1;ledruoxi=0;ledbiaozhun=0;paishui=1;jinshui=1;if(num2==1){rbiaozhun();}}if(num1==1&&num==1)65 华科学院本科毕业设计(论文)   //弱洗 经济{ledqiangxi=1;ledbiaozhun=1;ledruoxi=0;ledjingji=0;paishui=1;jinshui=1;if(num2==1){rjingji();}}if(num1==1&&num==2)//弱洗 单独{ledqiangxi=1;ledjingji=1;ledruoxi=0;leddandu=0;paishui=1;jinshui=1;if(num2==1){rdandu();}}if(num1==1&&num==3)65 华科学院本科毕业设计(论文)//弱洗 排水{ledqiangxi=1;leddandu=1;ledruoxi=0;ledpaishui=0;paishui=1;jinshui=1;if(num2==1){dpaishui();}}}}void T0_time() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num3++;if(num3==20){num3=0;if(flag1==1)ledxidi=~ledxidi;if(flag1==2)ledpiaoxi=~ledpiaoxi;if(flag1==3)ledtuoshui=~ledtuoshui;num4++;num5++;num6++;if(flag1==1){if(num4==8) //洗涤定时{num4=0;flag++;}}else if(flag1==2){if(num4==6) //漂洗定时{num4=0;flag++;}}else if(flag1==3){if(num4==6) //脱水定时{num4=0;flag++;}}if(num5==2) //强洗周期{num5=0;flag4++;if(flag4==2)flag4=0;}if(num6==1)65 华科学院本科毕业设计(论文)//弱洗周期{num6=0;flag5++;if(flag5==2)flag5=0;}}}void timer() interrupt 0   //外部中断0{num2++;  // 开始/暂停if(num2==3)num2=1;if(flag3==1)flag2=0; //如果满足洗涤结束条件关闭报警}65 华科学院本科毕业设计(论文)主电路图65 华科学院本科毕业设计(论文)65'