• 3.93 MB
  • 2022-04-22 13:46:00 发布

学士基于单片机全自动洗衣机毕业设计_secret.doc

  • 73页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'学士基于单片机全自动洗衣机毕业设计 摘要摘要基于模糊控制的全自动洗衣机自动控制系统,所有的电路都是在单片机的控制下工作的,目前通常采用的是Motorola公司的MC6805系列的单片机,而本设计中采用了Intel公司的89C51作为控制核心,以单片机89C51为核心结合接口芯片及外围电路以实现洗衣机的智能控制。其中模糊控制器的设计是关键环节,采用传感器检测洗衣过程必需的物理量,进入模糊控制器,通过模糊推理,实现对洗衣机自动识别衣质、衣量,自动识别肮脏程度,自动决定水量,自动投入恰当的洗涤剂等功能的控制。本设计在洗涤过程中采用了实时模糊控制,提高洗衣质量,节约能源。硬件结构框图及软件流程图是该系统的重要组成部分,在整个控制过程中,模糊控制软件起了决定性的作用。关键词:模糊控制;单片机;全自动洗衣机I AbstractAbstractBasedonfuzzycontrolcompletelyautomaticwasherautomaticcontrolsystem,Allelectriccircuitsareworkedunderthemonolithicintegratedcircuitcontrol,atpresent,usuallyusesmonolithicintegratedcircuitisMotorolaCorporation"sMC6805series,butinthisdesign,itusedIntelCorporation’s8031totakethecontrolcore,8031realizesthewasherintelligentcontrol,takethemonolithicintegratedcircuitasthecoreunioningconnectionchipandtheperipheryelectriccircuit.Fuzzycontroller’sdesignistheessentiallink.Itusesthesensortoexaminetheessentialphysicalquantityofthewashclothesprocess,theyenterthefuzzycontroller,throughthefuzzyreasoning,realizesofthewasherautomaticdiagnosingclothesnature,theclothesquantity,theautomaticdiagnosingdirtydegree,automaticallydecidingthewatervolume,function,automaticinvestingappropriatedetergent,andsoon.Inthisdesign,theprocessofwashingusesthereal-timefuzzycontrol,enhancedthequalityofwashingclothes,Savestheenergy.Thehardwarearchitecturediagramandthesoftwareflowchartaretheimportantconstituentofthissystem,Inentirecontrolledprocess,Fuzzilycontrolledsoftwareplaysthedecisiverole.Keywords:fuzzycontrol;single-chip;fullautomaticwasherI 1绪论1.1全自动洗衣机的介绍洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,而全自动式洗衣机因使用方便更加得到大家的青睐,全自动即进水、洗涤、漂洗、甩干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可选择不同的洗涤方式。1.1.1全自动洗衣机的发展背景从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打……这些不断重复的简单的体力劳动,留给人的感受常常是:辛苦劳累。1858年,汉密尔顿·史密斯制成了世界上第一台洗衣机。1874年,“手洗时代”受到了前所未有的挑战,美国人比尔·布莱克斯发明了世界上第一台人工搅动洗衣机。1911年美国人又研制了世界上第一台电动洗衣机。1920年美国的玛依塔格公司又把洗衣机的木制桶改为铝制桶体,第二年又把铝制桶体改为外层铸铝、内层为铜板的双层结构。1936年,他们又将搪瓷用于洗衣机桶体。与此同时,世界各地也相继出现了洗衣机。欧洲国家研究成功了喷流式洗衣机和滚筒式洗衣机。1932年后,美国一家公司研制成功了第一台前装式滚筒全自动洗衣机,洗涤、漂洗和脱水都在同一个滚筒内自动完成,使洗衣机的发展跃上了一个新台阶。这种滚筒洗衣机,目前在欧洲、美洲等地得到了广泛的应用。第二次世界大战结束后,洗衣机得到了迅速的发展,研制出具有独特风格的波轮式洗衣机。这种洗衣机由于其波轮安装在洗衣桶底,又称涡卷式洗衣机。近几十年,在工业发达国家,全自动洗衣机制造技术又得到迅速发展,其年总产量及社会普及率均以达到相当高得水平。1.1.2全自动洗衣机的发展前景69 全自动洗衣机的发展首先表现在洗涤方式发生巨大变化。原先大多侧重于水流的改变、动力的加大。现在,超音波、电解水、臭氧和蒸汽洗涤的运用,使洗衣机的去污能力从单纯依靠洗衣粉、洗涤剂的化学作用和强弱变化的水流机械作用,向更高层次的健康、环保洗涤方式转变,特别是电解水、超音波技术在洗衣机行业的运用几乎改变了洗衣机的历史——洗衣不用或少用洗衣粉、洗涤剂,减少化学品对皮肤的损害和对环境的污染。电解水、臭氧、蒸汽的杀菌除味及消毒功能倍受青睐,引发了洗衣机消费健康潮。另一变化就是高度自动化、智能化、人性化。从半自动、全自动到现在流行的人工智能、模糊控制,只需按一下按钮一切搞定!同时,用户可以按照自己的洗衣习惯,自主选择时间和方式,自编和记忆程序让用户真正做到随心所欲。人性化还表现在使用的方便和舒适,如子母分洗洗衣机可以做到不同衣物分开洗;斜桶和顶开滚筒可以做到取放衣物方便不需深弯腰;蒸汽烘干功能使得晾晒更加方便,DD直驱电机在节能降噪方面效果更加突出,等等。另外,大容量成为不变的消费趋势。前几年,洗衣机容量多为4-5公斤,6公斤的大容量尚很少见。现在,7公斤的容量已经很普遍,8公斤也正常。现代人居空间不断扩大,对宽敞、舒适、方便要求更多,大能容小,大容量洗衣机一台可顶一套。业内人士表示,尖端洗涤技术的革新,所表现出的洗衣方式更加注重健康和个性化,已在市场发展中倍受欢迎。1.1.3全自动洗衣机的设计目的目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等七大功能,在许多方面还不能达到人们的需求。这就要求设计者们有更高的专业和技术水平,能够提出更多好的建议和新的课题,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。目前的洗衣机都没有实现全方面的兼容,大多洗衣的厂家都注重各自品牌的洗衣机的特长,突出一两个与别的洗衣机不同的个性化的功能,洗衣机的各项功能是由单片机控制实现的,单片机的体积小,控制功能灵活,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。1.1.4模糊控制理论简介模糊控制是近代控制理论中建立在模糊集合轮上基础上的一种基于语言规则与模糊推理的控制理论,它是智能控制的一个重要分支。69 与传统控制理论相比,模糊控制有两大不可比拟的优点:第一,模糊控制在许多应用中可以有效且便捷的实现人的控制策略和经验,这一优点自从模糊控制诞生以来就一直受到人们密切的关注;第二,模糊控制不需要被控对象的数学模型即可实现较好的控制,这是因为被控对象的动态特性已隐含在模糊控制器输入、输出模糊集及模糊规则中。所以模糊控制被越来越多的应用于各个领域,尤其是被广泛应用于家电系列中,基于模糊控制的洗衣机就是其中的一个典型实例。1.2全自动洗衣机的设计方案本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、漂洗、排水和脱水等阶段。控制系统主要由电源电路、数字控制电路和机械控制电路三大模块构成。电源采用三端集成固定稳压器7805提供+5V电源,数字控制电路负责控制洗衣机的工作过程,主要由AT89S51单片机、三位共阴数码管、按键、蜂鸣器、LED指示灯组成;机械控制电路实现传感器检测、电机驱动、进水、排水等功能,主要由水位检测器、电动机、传动系统部件、进水排水电磁阀组成。1.2.1按键洗衣机面板上有6个按钮K1、K2、K3、K4、K5和K6K1为启动/暂停键:按奇数次视为启动,偶数次视为暂停。K2用于洗衣程序选择:按一下选择洗涤,按两下选择漂洗,按三下选择脱水。K3用于洗衣方式选择:按一下选择标准洗方式,按两下选择快速洗方式,按三下选择轻柔洗方式。K4用于水位选择:按一下进水至低水位,按两下进水至中水位,按三下进水至高水位。K5用于时间选择:按一下洗衣时间短,按两下洗衣时间适中,按三下洗衣时间长。1.2.2洗衣机自检洗衣机上电后,先进行自检,包括检查安全开关,排水阀状态,进水阀工作过程,电机的运转等,若发现异常现象则蜂鸣器响,报警灯亮。1.2.3洗衣程序⑴洗涤过程通电后,若不选择洗衣周期,则洗衣机从洗涤过程开始。进入洗涤过程,首先进水阀接通,开始向洗衣机供水,当到达要求水位时,进水阀断电关闭,停止进水;电机M接通,带动波轮旋转,形成洗衣水流。电机M是一个正反转电机,可以形成往返水流,有利于洗涤衣物。⑵漂洗过程与洗涤过程操作相同,只是时间短一些。69 ⑶脱水过程洗涤或漂洗过程结束后,电机M停止转动,排水阀M接通,开始排水。排水阀动作的同时,电机M也接通,使电机可以带动内桶转动。当水位低到一定值,再经过一段时间后,电机开始正转,带动内桶高速旋转,甩干衣物。1.2.4显示洗涤、漂洗及脱水时间都通过倒计时的方式显示在3个LED上,依次为分位,秒十位和秒个位,此外,还有发现异常现象时错误信息的显示。1.2.5参数处理要对洗衣机进行控制,首先要用各种传感器不断地检测相关的状态,以作为控制的依据。其中,污浊度传感器,温度传感器和负载传感器是模拟信号,需要经过A/D转换变成数字信号,而水位传感器本身就是数字信号,单片机接受到这些传感器的信号以后,经过一系列处理作出反应,从而控制洗衣机的工作。69 2硬件电路介绍针对上文的功能,硬件电路应包括七个部分:微处理器控制电路、显示电路、采样电路、电机控制电路、进水阀控制电路、排水阀控制电路和按键报警电路。通过这几个部分电路的协调工作,洗衣机能模拟人脑进行操作。2.1CPU选型⑴PIC系列PIC单片机系列是美国微芯公司(Microchip)的产品,它的CPU采用RISC结构,分别有33、35、58条指令,属精简指令集。采用Harvard双总线结构,运行速度快,它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期,这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机共分三个级别,即基本级、中级、高级。PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器,当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。该系列单片机的专用寄存器(SFR)并不像51系列那样都集中在一个固定的地址区间内(80~FFH),而是分散在四个地址区间内。只有5个专用寄存器,得反复地选择对应的存储体,这多少给编程带来了一些麻烦。⑵AVR系列AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短指令执行时间为250~125ns。该系列的型号较多,但可用下面三种为代表:AT90S2313(简装型)、AT90S8515、AT90S8535(带A/D转换)。 通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。69 AVR系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且还能作后增量或先减量等的运行。⑶51系列51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不仅能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为00H~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。有的单片机并不能直接对RAM单元中的位进行操作,如AVR系列单片机中,若想对RAM中的某位置位时,必须通过状态寄存器SREG的T位进行中转。51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令就行了,即MULAB(两个乘数分别在累加器A和寄存器B中。积的低位字节在累加器A中,高位字节在寄存器B中)。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十μA甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。其原因是高电平时該脚也同时作输入脚使用,而输入脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。作输出脚使用,欲进行高电平驱动时,得利用外电路来实现,I/O脚不通,电流经R驱动LED发光;低电平时,I/O脚导通,电流由该脚入地,LED灭(I/O脚导通时对地的电压降小于1V,LED的域值1.5~1.8V)。综上所述,我们本次设计采用51系列,而51系列的典型产品是8051。8051是一种40引脚双列直播式芯片。它含有4KB可反复烧录及擦除内存和128字节的RAM,有32条可编程控制的I/O线,5个中断发源,指令与MCS-51系列完全兼容。选用它作为69 核心控制新片,可使电路极大地简化,而且程序的编写及固化也相当方便、灵活。选用它设计制作全自动洗衣机控制电路,该电路的组成相对简单,工作原理清晰,易于理解。89C51引脚图如图2-1所示。图2-189C51引脚图2.289C51的存储器与寄存器89C51单片机存储器才用的是哈佛(Harvard)即程序存储器空间和数据存储器空间是各自独立的,两种存储器各自有自己的寻址方式和寻址空间。这种结构对于单片机“面向控制”的实际应用极为方便、有利。89C51单片机程序存储器和数据存储器的扩展能力分别可达64KB,寻址和操作简单方便。89C51的存储器空间可划分为5类:程序存储器、内部数据存储器、特殊功能寄存器、为地址空间和外部数据寄存器。2.3A/D转换器A/D转换器种类很多,按及人口方案来分,可分为并行接口和串行接口两类。串行接口又分为三线式接口和两线式接口两种。由于89C51串行口有限,而本此设计也用到了很多串口,而且我们需要一个多通道的转换器,而MAX192正是满足这种要求,其转69 换精度也高,所以本次设计我们采用MAX192。MAX192是一种低功耗、单电源、8通道、串行的10位A/D转换器。由于该芯片在片外已有采样跟踪保持电路,内部时钟电路和内部参考电压源,所以在应用时,所需外围原件极少,与单片机连接也只占用4-5条口线,因此,用MAX192构成的数据采集系统具有硬件结构简单、体积小和功耗低的优点。MAX192是美国美信公司设计的一个10位A/D转换器,它的信号输入有两种方式:8通道单端输入或4通道差分输入,具有极高转换速度。其4线串行接口与SPI、QSPI、MicroWire等串行总线兼容,具有内部时钟方式和外部时钟方式,内带4.096V的基准电压,也可用外部基准电压。⑴MAX192的引脚图如图2-1所示。图2-1MAX192的引脚图⑵MAX192的控制字①MAX192控制字占一个字节,其格式见表2-1。表2-1控制字节的定义Bit7(MSB)Bit6Bit5Bit4Bit3Bit2Bit1Bit0STARTSEL2SEL1SEL0UIN/BIPSGL/DIFPD1PD0注1.START:转换开始位。逻辑“1”有效。2.SEL0-2:通道选择位。选择所需转换信号所连接的通道(见表3和表4)。3.UNI/BIP:单/双极性信号转换模式选择位。1=单极性信号;0=双极性信号。对于单极性信号,模拟输入中0V~VREF的电压被转换;对于双极性信号,-VREF/2~+VREF/2的新号被转换。4.SGL/DIF:输入信号形式选择位。“1”为单端信号输入,“0”为差分信号输入。5.PD0~PD1:时钟模式及省电模式选择位。②MAX192单端方式(SGL/DIF=1)通道选择如表2-3所示。③MAX192查分方式(SGL/DIF=0)通道选择如表2-4所示。④MAX192的时钟和掉电选择如表2-5所示。⑶MAX192的工作原理69 MAX192器件采用逐次逼近转换技术及输入采样/保持电路把模拟信号转换成10位的数字信号输出,模拟信号有单端输入和差分输入两种输入方式,输入电压范围分单极性(0-40.96V)和双极性(-4.096/2-4.096/2V)两种,每做完一次A/D转换,需从串行数据输入端输入以“1”开始的8位控制字对器件初始化,内部控制逻辑控制A/D转换。当MAX192的CS端有效时,在时钟SCLK的每一个上升沿把一个最高位为“1”的控制字节的各位送入输入移位寄存器,控制器收到控制字节后,选择控制字节中给定的模拟通道,并在SCLK的下降沿启动转换。在启动转换后,MAX192可以使用外部串行时钟或内部时钟来完成逐次逼近转换。在两种时钟方式中,数据的移入/输出都由外部时钟来完成。转换结束后的数据是由DOUT端读出的。应该注意,数据的输出是高位在先,低位在后,有效位为10位。在单极性输入方式下,输出的是标准二进制码,对于差分方式下的双极性输入,其输出是莫二补码。需要注意的是,在单极性输入方式下,转换完成后的10位数据在移位寄存器中存放时,在数据的首部添了一个“0”,在尾部添加了5个“0”,这样,要得到最终的正确结果,需要把这16位数(包括10位有效数据)右移5位。在编写采样程序时,送完一字节控制字,何时读转换结果,有两种判断方法:一是看SSTRB信号是否变高,二是延时多少us(最大位10us)。表2-3单端方式(SGL/DIF=1)通道选择SEL2SEL1SEL0CH0CH1CH2CH3CH4CH5CH6CH7AGND000+-100+-001+-101+-010+-110+-011+-111+-表2-4查分方式(SGL/DIF=0)通道选择SEL2SEL1SEL0CH0CH1CH2CH3CH4CH5CH6CH7000+-001+-010+-011+-100-+101-+110-+69 111-+表2-5时钟和掉电选择PD0PD1器件模式11外部时钟方式10内部时钟方式01速掉电模式(FastPower-DownMode)00全掉点模式(FullPower-DownMode)2.4传感器本次设计中用到4个传感器,分别为:TS污浊度传感器、温度传感器、负载传感器和水位传感器。其中污浊度、温度和负载传感器输出的都是模拟信号,需要通过A/D转换才能作为单片机的控制信号,而水位传感器本身输出的就是数字信号,所以不需要通过A/D转换,直接可用做单片机的控制信号。⑴TS污浊度传感器内部原理图如图2-2所示。浑浊度检测传感器的主要原理是光电耦合器,而普通的光电耦合器不能有效的检测洗衣机水的浑浊度。光电耦合器的光源必须是红外光才能准确的检测浑浊度。TS浊度传感器是GE公司开发的一种专门用于家电产品的低成本传感器,主要用于洗衣机、洗碗机等产品的水污浊程度的测量。图2-2浊度传感器内部原理图⑵温度传感器温度传感器有四种主要类型:热电偶、热敏电阻、电阻温度检测器(RTD)和IC温度传感器下)。IC温度传感器又包括模拟输出和数字输出两种类型。热电偶应用很广泛,因为它们非常坚固而且不太贵。热电偶有多种类型,它们覆盖非常宽的温度范围,从-200℃到2000℃。它们的特点是:低灵敏度、低稳定性、中等精度、响应速度慢、高温下容易老化和有漂移,以及非线性。另外,热电偶需要外部参考端。69 我们常用温度传感器有DS18B20、AD590等,它们都是集成温度传感器。DS18B20输出是数字信号可以直接和单片机相连,而且硬件连接电路少,但需要对其进行复杂的软件编程。AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:•流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数。•AD590的测温范围为-55℃~+150℃。•AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。•输出电阻为710MW。•精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。本设计我们选用AD590作为温度传感器。AD590比DS18B20精度更高、线性度误差小,且不需要温度报警和复杂的程序编程,非常适合用于洗衣机的温度检测传感器⑶负载传感器根据模糊控制要求,负载检测时通过检测电动机的反电动势来实现的,而电动机的反电动势比单片机所用电压大的多,不能直接采样,必须经过隔离。采用线性光电耦合器既能隔离高电压和干扰,又能得到满意的检测信号。⑷水位传感器原理图如图2-5所示。谐振式水位传感器,采用了新型的传感原理,把水位的高低,通过水位传感器直接变成水位与频率的对应关系。衣物的洗净度、水流强度、洗涤时间等参数的检测,对模糊控制洗衣机在节水、节能、减少洗涤时间方面起决定性的作用。图2-5水位传感器原理图2.5显示器显示器有LED和LCD两种。LCD(Liquidcrystal69 Display)是液晶显示器英文名称的缩写,液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特征,达到白底黑字或黑底白字显示的目的。LED(LightEmitingDiode)是发光二极管英文名称的缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。本次设计只是显示时间,所以采用LED就可以达到目的了。⑴LED显示器的结构LED常用的LED为8段或7段。每一个段对应一个发光二极管。这种显示器有共阳极和共阴极2种。共阴极LED显示器的发光二极管的阴极连在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管接低电平时,发光二极管被点亮,相应的段被显示。为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称之为段码(或称为字型码)。⑵LED显示器工作原理LED显示器有静态显示和动态显示2种方式。LED显示器工作于静态显示方式时,各位的共阴极(共阳极)连接在一起并接地(或+5V);每位的段码线(a-dp)分别与一个8位的锁存器输出相连。之所以称之为静态显示,是因为各个LED的显示字符一经确定,相应锁存器锁存的段码输出将维持不变,直到送入另一个的段码为止。正因为如此,静态显示器的亮度都较高,但静态现实的缺点是占用口线太多,如果显示器的位数太多,则需要加锁存器,因此一般情况下采用动态显示。在多位LED显示时,为简化硬件电路,通常将所有位的段码线相应段并联在一起,由1个8位I/O口控制,形成段码线的多路复用,而各位的共阴极或共阳极分别由相应的I/O线控制,形成各位的分时选通。69 本次设计中我们采用的是3位共阴极数码管,其中段码线占用1个8位I/O口,而位选占用3位I/O口。由于各位的段码线并联,8位I/O口输出的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选都处于选通状态的话,3位LED将显示相同的字符。若要各位LED能够显示出与本位相应的显示字符,就必须采用动态显示,即在某一时刻,只让一位的位选线处于选通状态,而其他各位的位选处于关闭状态,同时,段码线上输出相应位要显示的字符段码。这样,在同一时刻,3位LED中只有选通的那位显示字符,而其他2位则是熄灭的。同样,在下一时刻,只让下一位的位选处于选通状态,而其他各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位都是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。LED不同位显示的时间间隔应根据实际情况而定。发光二极管从导通到发光有一定的延时,导通时间太短,则发光太弱,人眼无法看清,但也不能太长,因为要受限于临界闪烁频率,而且时间越长,占用CPU时间也越多,本次设计我们采用1ms延时。69 3软件设计本次设计是基于模糊控制理论上的全自动洗衣机,用户只需要将衣物放进洗衣机,按下启动键,洗衣机就能自动完成洗涤--漂洗--脱水等一系列操作,当然本次设计中还考虑到半自动时的情况,用户可以根据自己的需求自由选择洗衣机将要进行什么工作,这一点是通过按键来实现的。3.1全自动洗衣机中的模糊控制3.1.1模糊控制器洗衣机控制器是洗衣机的大脑,洗衣机的洗涤、漂洗、脱水等动作均由控制器加以控制,目前的全自动洗衣机采用控制器有模糊控制器和普通控制器两种,二者之间既有共同之处,又存在着差别。洗衣机模糊控制器与普通控制器的相同点就在于二者均采用微电脑技术,各自根据洗衣机的控制原理编制出程序,对洗衣机实施控制。洗衣机模糊控制器与普通控制器的主要区别在于二者控制思想不同。普通程序控制器虽然使洗衣机在功能较普通洗衣机增强许多,但就其控制思想而言,仍谈不上“先进”它只是根据时间原则去设定洗衣机的洗涤、漂洗和脱水的运行时间,然后连续运行,完全不考虑其他因素。例如:洗衣服的多少、面料的软硬、衣服的肮脏程度等,均未加以考虑。而模糊控制器则是根据衣量的多少确定洗涤水量;根据面料软硬和肮脏程度确定洗涤时间等,这些都是控制规则,这些规则是人工经验的积累。一般的说,模糊控制器是利用人工智能方式,建立一组控制规则,编织成程序由微电脑执行。这样,就形成了人工智能控制模式。因此,在控制思想上大大优于普通程序控制器的控制思想。3.1.2模糊控制实现方法㈠基本结构和控制过程模糊控制是利用负载、衣质、浊度、水温等检测所得到信息,进行分段评估计算使其模糊化,再根据模糊规则进行推理,最后根据所激活的规则进行解模糊判决,以决定最适当和明确的水位、洗涤时间、洗涤方式以及脱水时间等。模糊控制洗衣机控制结构如图3-1所示。69 图3-1模糊控制洗衣机控制结构㈡模糊规则⑴洗涤量和水量的确定:①如果检测到衣物量很多,则洗涤量多,水位高;①如果检测到衣物量较多,则洗涤量较多,水位适中;②如果检测到衣物量很少,则洗涤量少,水位低。⑵脱水时间的确定:①如果检测到衣物很多,则脱水时间长;②如果检测到衣物较多,则脱水时间适中;③如果检测到衣物很少,则脱水时间短。⑶洗涤时间的确定:①如果检测到衣物很多,布质以棉布偏多且水温低,则洗衣时间长;②如果检测到衣物较多,布质以化纤偏多且水温偏高,则洗衣时间适中;③如果检测到衣物较少,布质以棉布偏多且水温偏高,则洗衣时间适中;④如果检测到衣物很少,布质以化纤偏多且水温高,则洗衣时间短。⑷漂洗时间的确定:①如果检测到洗涤水很脏,则漂洗时间长;②如果检测到洗涤水较脏,则漂洗时间适中;③如果检测到洗涤水不脏,则漂洗时间短。3.2软件流程图及代码3.2.1寄存器本次编程中用到的寄存器如表3-1所示。69 表3-1寄存器寄存器注释R4,R5比较标准值R4高位,R5低位R6,R7A/D转换结果R6高位,R7低位20H衣量多位21H衣量少位22H衣量适中位23H化纤多位24H棉多位27H1s中断标志位2AH1s中断次数30H,31H洗涤时间32H,33H漂洗时间34H,35H脱水时间36H,37H排水时间38H漂洗次数3AH电机正转时间3BH电机反转时间3CH电机转速3D洗涤量投放时间40H显示分缓存器41H显示秒十缓存器42H显示秒个缓存器44H零水位45H低水位46H中水位47H高水位48H水位检测值50H启动/暂停键按键次数51H程序键按键次数52H选择键按键次数53H水量键按键次数54H时间键按键次数3.2.2流程图及其代码本次设计是分模块进行编写的,以下就是各模块的流程图及其代码。1.主程序流程图如图3-2所示。69 河北工程大学毕业设计说明书图3-2主程序流程图程序代码:MAIN:MOVSP,#60LCALLChiShi;调初始化程序SETBEA;CPU允许中断MOVTMOD,#10H;设置定时器1方式MOV28H,#0AH;装入定时中断次数LOOP:LCALLXianShi;调显示子程序LCALLJanPan;调键盘扫描子程序SJMPLOOP2.显示子程序流程图如图3-3所示69 河北工程大学毕业设计说明书程序代码:XianShi:MOVR0,40H;置缓冲器指针初值MOVR2,#01H;置位选初值MOVA,R2LD0:MOVDPTR,#7F03H;位选送8155C口MOV@DPTR,ADECDPTRDECDPTRMOVA,@R0ADDA,#0DH;加偏移量MOVCA,@A+PCDIR1:MOVX@DPTR,A;段码送8155A口ACALLDL1ms;调1ms延时INCR0MOVA,R2JBACC.2,LD1;三位都显示完了吗RLA;没完,显示位右移MOVA,R2AJMPLD0LD0:RETDSEG:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,73H,3EHDB31H,6EH,1CH,23H,40H,03HDB18H,00DL1ms:MOVR7,02HDL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLLD1:RET图3-3显示子程序流程图3.键盘扫描子程序流程图如图3-4所示69 河北工程大学毕业设计说明书图3-4键盘扫描子程序流程图程序代码:69 河北工程大学毕业设计说明书Jianpan:JBP1.0,K2;判断是K1键按下吗,不是则转K2LCALLDL10ms;调10ms延时消抖JBP1.0,K2;再次读P1.0状态,若仍为0,则K1键确实按下LCALLPK1;调PK1处理K2:JBP1.1,K3;判断是K2键按下吗,不是则转K3LCALLDL10ms;调10ms延时消抖JBP1.1,K3;再次读P1.0状态,若仍为0,则K2键确实按下LACLLPK2;调PK2处理K3:JBP1.2,K4;判断是K3键按下吗,不是则转K4LCALLDL10ms;调10ms延时消抖JBP1.2,K4;再次读P1.2状态,若仍为0,则K3键确实按下LCALL,PK3;调PK3处理K4:JBP1.3,K5;判断是K4键按下吗,不是则转K5LCALLDL10ms;调10ms延时消抖JBP1.3,K5;再次读P1.3状态,若仍为0,则K4键确实按下LCALLPK4;调PK4处理K5:JBP1.4,RETURN;判断是K5键按下吗,不是则转K6LCALLDL10ms;调10ms延时消抖JBP1.4,RETURN;在此读P1.4状态,若仍为0,则K4键确实按下LCALLPK5;调PK5处理RETURN:RETPK1:INC50H;按键次数加1MOVA,50H;判断是奇数次按下吗MOVB,#2DIVABMOVA,BJZA,zaiting;若为偶数次按下,则转暂停状态LCALLYunZhuan;若为奇数次按下,则进入运转程序Zanting:INC50H;按键次数加1MOVA,50H;判断是奇数次按下吗MOVB,#2DIVABMOVA,BJZA,ZanTing;若为偶数次按下,则暂停69 河北工程大学毕业设计说明书LCALLYunZhuan;若为奇数次按下,则进入运转程序RETURN:RET4.程序设置子程序流程图如图3-5所示。图3-5程序设置子程序流程图程序代码:PK2:INC51H;按键次数加1MOVA,51HCJNZA,#1,L2;是第一次按下吗,不是转L2LCALLXiDi;是第一次按下,则调用洗涤子程序L2:CJNZA,#2,L3;是第二次按下吗,不是转L3LCALLPiaoXi;是第二次按下,则调用漂洗子程序L3:CJNZA,#3,RETURN;是第三次按下吗,不是则返回LXALLTuoShui;是第三次按下,则调用脱水子程序RETURN:RET5.洗衣方式选择子程序流程图如图3-6所示。69 河北工程大学毕业设计说明书图3-6洗衣方式选择子程序流程图程序代码:PK3:INC52H;按键次数加1MOVA,52H;MOVDPTR,#7F02HCJNEA,#1,L4;是第一次按下吗,,不是转L4MOVA,#0EFH;是第一次按下,则标准洗涤指示灯亮MOVX@DPTR,AMOVA,52HL4:CJNEA,#2,L5;是第二次按下吗,不是转L5MOVA,#0DFH;是第二次按下,则快速洗涤指示灯亮MOVX@DPTR,AMOVA,52HL5:CJNEA,#3,RETURN;是第三次按下吗,不是则返回MOVA,#0BFH;是第三次按下,则轻柔洗涤指示灯亮MOVX@DPTR,ARETURN:RET69 河北工程大学毕业设计说明书6.水量设置子程序流程图如图3-7所示图3-7水量设置子程序流程图程序代码:PK4:INC53H;按键次数加1MOVA,53HCJNEA,#1,L6;是第一次按下吗,不是转L6MOV45H,#08H;是第一次按下,则进水至低水位L6:CJNEA,#2,L7;是第二次按下吗,不是转L7MOVA,46H,#09H;是第二次按下,则进水至中水位L7:CJNEA,#3,RETUREN;是第三次按下吗,不是则返回MOVA,47H,#10H;是第三次按下,则进水至高水位RETURN:RET7.时间设置子程序流程图如图3-8所示69 河北工程大学毕业设计说明书图3-8时间设置子程序流程图程序代码:PK5:INC54H;按键次数加1MOVA,54HCJNEA,#1,L8;是第一次按下吗,不是转L8MOV48H,#01H;是第一次按下,则时间选择5minMOV49H,#2CHL8:CJNEA,#2,L9;是第二次按下吗,不是转L9MOV48H,#02H;是第二次按下,则时间选择10minMOV49H,#58HL9:CJNEA,#3,RETURN;是第三次按下吗,不是则返回MOV48H,#38H;是第三次按下,则时间选择15minMOV49H,#40HRETURN:RET8.A/D转换流程图如图3-9所示。9.自检子程序流程图如图3-10所示。69 河北工程大学毕业设计说明书图3-9A/D转换流程图69 河北工程大学毕业设计说明书图3-10自检子程序流程图程序代码:69 河北工程大学毕业设计说明书ZiJian:MOVDPTR,#7F02H;自检指示灯亮MOVA,#0FBHMOVX@DPTR,AJBP1.6,BaoJing1;读安全开关状态,异常则报警JBP2.3,BaoJing2;读排水阀状态,异常则报警MOV45H,#08H;置低水位值MOV47H,#09H;置高水位值MOV44H,#00H;置零水位值CLRP2.4;开进水阀LCALLShuiJian;调水位检测MOVA,45HL10:CJNEA,48H,L10;到底水位了吗,到了启动电机CLRP2.0LACLLShuiJianMOVA,47HL11:CJNEA,48H,L11;到高水位了吗,到了开排水阀CLRP2.3LCALLShuiJianMOVA,44HL12:CJNEA,48H,L12;是零水位吗,是则检测完毕SETBP2.4SETBP2.0SETBP2.3MOVA,#OFFHMOVX@DPTR,ABaooJing1:MOV40H,#0eH;显示异常代码MOV41H,#0MOV42H,#1CLRP1.7;蜂鸣器响,报警灯亮JBP1.5,BaoJing1;判断是否有人为干扰SETBP1.7BaoJing2:MOV40H,#0eH;显示异常代码MOV41H,#0MOV42H,#2CLRP1.7;蜂鸣器响,报警灯亮69 河北工程大学毕业设计说明书JBP1.5,BaoJing2;判断是否有人为干扰SETBP1.7RET9.运转程序流程图如图3-11所示。图3-11运转程序流程图程序代码:YunZhuan:LCALLPanDuan;调判断子程序JZLD1;为1为全自动LCALLJianPanLD1:LCALLJianCeLCALLXiDiLCALLPaiShuiRETPanDuan:ORLA,51H;各按键次数相与,为1为全自动ORLA,52HORLA,53HORLA,54H69 河北工程大学毕业设计说明书RET程序代码:JianCe:MOV39H,#3;电机运转时间3SLCALLDianJi1LCALLShuiLiangLCALLJinShuiMOV39H,#30;电机运转时间30SLCALLDianJi1LCALLYiLiangLCALLShuiJianLCALLJinShuiMOV39H,#15;电机运转时间15SLCALLDianJi1LCALLZhiYiLCALLWenDuLCALLShiJianRETDianJi1:CLRP2.0;开电机SETBTR1;开定时器LOOP1:JNB27H,LOOP1CLR27HDEC39HCJNE39H,#O,LOOP1CLRTR0SETBP2.0RET10.检测子程序流程图如图3-12所示。69 河北工程大学毕业设计说明书图3-12检测子程序流程图11.洗涤量、水量检测子程序流程图如图3-13所示。图3-13洗涤量、水量检测子程序流程图程序代码:ShuiLiang:LCALLZhuanHuan0MOVR4,#00H;标准最大值MOVR5,#0A0HMOVA,R6;与标准最大值比较CJNEA,#00H,LD2MOVA,R7CLRCSUBBA,R569 河北工程大学毕业设计说明书JNCLD2MOVR4,#00H;标准最小值MOVR5,#05HMOVA,R6;与标准最小值比较CJNEA,#00H,LD3MOVA,R7CLRCSUBBA,R5JCLD3MOV46H,;进水至中水位MOV3CH,#10;洗涤量投放时间适中AJMPRETURNLD2:MOV47H,;进水至高水位MOV3CH,#15;洗涤量投放时间长AJMPRETURNLD3:MOV45H,;进水至低水位MOV3CH,#5;洗涤量投放时间短RETURN:RET12.衣量检测子程序流程图如图3-14所示69 河北工程大学毕业设计说明书图3-14衣量检测子程序流程图程序代码:YiLiang:LCALLZhuanHuan0MOVR4,#00H;标准最大值MOVR5,#0A0HMOVA,R6;与标准最大值比较CJNEA,#00H,LD4MOVA,R7CLRCSUBBA,R5JNCLD469 河北工程大学毕业设计说明书MOVR4,#0H;标准最小值MOVR5,#05HMOVA,R6;与标准最小值比较CJNEA,#00H,LD5MOVA,R7CLRCSUBBA,R5JCLD5SETB22HMOV34H,#01H;脱水时间适中MOV35H,#2CHMOV80H,#4;脱水倒计时暂存MOV81H,#5MOV82H,#9AJMP:RETURNLD4:SETB20HMOV34H,#02H;脱水时间长MOV35H,#58HMOV80H,#9MOV81H,#5MOV82H,#9AJMP:RETURNLD5:SETB21HMOV34H,#00H;脱水时间短MOV35H,#0B4HMOV80H,#2MOV81H,#5MOV82H,#9RETURN:RET13.衣质检测子程序流程图如图3-15所示69 河北工程大学毕业设计说明书图3-15衣质检测子程序流程图程序代码:YiZhi:MOVA,4AH;读第一次水位值CLRCSUBBA,4BH;读第二次水位值MOVR5,#O5HCLRCSUBBA,R5;两次值相减比较JNCLD6SETB23HAJMPRETURNLD6:SETB24HRETURN:RET14.温度检测子程序流程图如图3-16所示69 河北工程大学毕业设计说明书图3-16温度检测子程序流程图程序代码:WeuDu:LCALLZhuanHuan1MOVR4,#00H;标准最大值MOVR5,#F0HMOVA,R6;与标准最大值比较CJNEA,#00H,LD7MOVA,R7CLRCSUBBA,R5JNCLD7MOVR4,#00H;标准最小值MOVR5,#0EH69 河北工程大学毕业设计说明书MOVA,R6;与标准最小值比较CJNEA,#00H,LD8MOVA,R7CLRCSUBBA,R5JCLD8SETB27H;温度适中位置1AJMPRETURNLD7:SETB25H;温度高位置1AJMPRETURNLD8:SETB26H;温度低位置1RETURN:RET15.时间确定子程序流程图如图3-17所示图3-17时间确定子程序流程图程序代码:ShiJian:MOVA,20H;各位相与确定洗涤时间ANLA,23HANLA,26HJZLD9MOVA,21HANLA,24HANLA,25H69 河北工程大学毕业设计说明书JZLD10MOV30H,#02H;洗涤时间适中MOV31H,#58HMOV83H,#9;洗涤倒计时暂存MOV84H,#5MOV85H,#9AJMPRETURNLD9:MOV30H,#38H;洗涤时间长MOV31H,#40HMOV83H,#0EHMOV84H,#5MOV85H,#9AJMPRETURNLD10:MOV30H,#01H;洗涤时间短MOV31H,#2CHMOV83H,#4MOV84H,#5MOV85H,#9RETURN:RET16.进水子程序流程图如图3-18所示69 河北工程大学毕业设计说明书程序代码:JinShui:CLRP2.4;开进水阀LOOP4:LCALLShuiJian;调水位检测MOVA,48HCJNEA,45H,LD11;检测值与标准值比较AJMPL10LD11:CJNEA,46H,LD12AJMPL10LD12:CJNEA,47H,LOOP4L10:SETBP2.4;若水位到了,关闭进水阀RET图3-18进水子程序流程图17.水位检测子程序流程图如图3-19所示图3-19水位检测子程序流程图程序代码:ShuiJian:MOVTMOD,#04H;定时器T0设置为计数方式MOVTH0,#00H;计数初值69 河北工程大学毕业设计说明书MOVTL0,#00HSETBTR0;启动定时器MOV48H,TL0;记录检测值RET18.污浊度检测子程序流程图如图3-20所示图3-20污浊度检测子程序流程图程序代码:ZhuoDu:LCALLZhuanHuan2;调A/D转换MOVR4,#00H;标准值MOVR5,#08HMOVA,R6;结果与标准值比较CJNEA,#00H,LD12MOVA,R7CLRCSUBBA,R5JNZRETURNLD12:LCALLPiaoXi;大于标准值则调漂洗子程序RETURN:RET19.污浊度检测1子程序流程图如图3-21所示。69 河北工程大学毕业设计说明书图3-21污浊度检测1子程序流程图程序代码:ZhuoDu1:LCALLZhuanHuan2;调A/D转换MOVR4,#00H;标准最大值MOVR5,#90HMOVA,R6;与标准最大值比较CJNEA,#00H,LD13MOVA,R7CLRCSUBBA,R5JZLD13;大于标准最大值转MOVR4,#00H;标准最小值MOVR5,#09HMOVA,R6;与标准最小值比较CJNEA,#00H,LD14MOVA,R7CLRC69 河北工程大学毕业设计说明书SUBBA,R5JNZLD14;小于标准最小值转MOV36H,#01H;漂洗时间适中MOV37H,#0E0HMOV86H,#7;漂洗时间倒计时暂存MOV87H,#5MOV88H,#9AJMPRETURNLD13:MOV36H,#02H;漂洗时间长MOV37H,#0D0HMOV86H,#0BHMOV87H,#5MOV88H,#9LD14:MOV36H,#00H;漂洗时间短MOV37H,#0FHMOV86H,#3MOV87H,#5MOV88H,#9RETURN:RET20.电机运转子程序流程图如图3-22所示。69 河北工程大学毕业设计说明书程序代码:DiJi:MOV3CH,#0A0H;置转速初值LOOP7:MOV3AH,#60;置电机正转时间CLRP2.0;启动电机正转SETBTR0;开定时器LOOP5:JNB29H,LOOP5;1s到了吗CLR29H;到了,标志位清0DEC3AH;时间减1CJNZ3AH,#00H,LOOP5;正转时间到了吗CLRTR0;到了,关定时器SETBP2.0;正转停止MOV3BH,#60;置电机反转时间CLRP2.1;启动电机反转SETBTR0LOOP6:JNB29H,LOOP6CLR29HDEC3BHCJNZ3BH,#00H,LOOP6CLRTR0SETBP2.1AJMPRETURN图3-22电机运转子程序流程图21.洗涤子程序流程图如图3-23所示。69 河北工程大学毕业设计说明书图3-23洗涤子程序流程图程序代码:ZhuXi:MOVDPTR,#7F02H;洗涤灯亮MOVA,#0FEHMOVX@DPTR,ALCALLPuanDuan;判断是否全自动JZLD14;是全自动转69 河北工程大学毕业设计说明书LCALLJianPan;不是,转半自动LD14:LCALLXiDi1;调洗涤1LCALLPaiShui;调漂洗LCALLTuoShui;调脱水MOVDPTR,#7F02H;洗涤结束,洗涤灯灭MOVA,#0FEHMOVX@DPTR,ARETPuanDuan:ORLA,51HORLA,52HORLA,53HORLA,54HRET22.洗涤1子程序流程图如图3-24所示。23.洗涤量投放子程序流程图如图3-25所示。图3-24洗涤1子程序流程图图3-25洗涤量投放子程序流程图洗涤1程序代码:XiDi:LCALLDianJi;调电机运转SETBTR1;开定时器69 河北工程大学毕业设计说明书MOV40H,83H;显示洗涤倒计时时间MOV41H,84HMOV42H,85HLOOP6:JNB27H,LOOP6;1s到了吗CLR27H;到了,清标志位DEC30H;洗涤时间减1CJNE30H,#00H,LOOP6DEC31HCJNE31H,#00H,LOOP6;洗涤时间结束了吗CLRTR1;结束,关定时器RET洗涤量投放程序代码:XiDiJi:CLRP2.2;开洗涤量投放阀门SETBTR1;开定时器LOOP7:JNB27H,LOOP7CLR27HDEC3DHCJNE3DH,#00H,LOOP;投放时间到了吗CLRTR1;到了,关定时器SETBP2.2;关阀门RET24.漂洗子程序流程图如图3-26所示。69 河北工程大学毕业设计说明书图3-26漂洗子程序流程图程序代码:PiaoXi:MOVDPTR,#7F02H;漂洗灯亮MOVA,#0FDHMOVX@DPTR,ALCALLPuanDuan;判断是全自动吗JZLD4;是全自动转LCALLJianPanLD4:LCALLYiPiao;调一漂LCALLErPiao;调二漂DJNZ38H,LD4;两次漂洗都完了吗69 河北工程大学毕业设计说明书MOVDPTR,#7F02H;灭漂洗灯MOVA,#0FEHMOVX@DPTR,ARET25.一漂和二漂子程序流程图如图3-27所示图3-27一漂和二漂子程序流程图程序代码:YiPiao:LCALLJinShui;调进水LCALLPiaoXi1;调漂洗1子程序LCALLPaiShui;调排水LCALLTuoShui;调脱水DEC38H;漂洗次数减1RETErPiao:LCALLJinShuiLCALLPiaoXiJiLCALLPaiShuiLCALLTuoShui69 河北工程大学毕业设计说明书DEC38HRET26.漂洗1子程序流程图如图3-28所示图3-28漂洗1子程序流程图程序代码PiaoXi1:LCALLDianJi;调电机运转SETBTR1;开定时器MOV40H,86H;显示漂洗倒计时时间MOV41H,87HMOV42H,88HLOOP8:JNB27H,LOOP8CLR27HDEC32H;漂洗时间减1CJNE32H,#00H,LOOP8DEC33HCJNE33H,#00H,LOOP8;漂洗时间到了吗CLRTR1;到了关定时器RET69 河北工程大学毕业设计说明书27.脱水子程序流程图如图3-29所示。69 河北工程大学毕业设计说明书图3-29脱水子程序流程图程序代码TuoShui:MOVDPTR,#7F02H;脱水灯亮MOVA,#0F7HMOVX@DPTR,ALCALLPuanDuan;判断是全自动吗JZLD15;是全自动转LCALLJianPanLD15:MOV3CH,#0B0H;置脱水转速CLRP2.3;开排水阀CLRP2.0;启动电机SETBTR1;开定时器MOV40H,80H;显示脱水倒计时时间MOV41H,81HMOV42H,82HLOOP9:JNB27H,LOOP9CLR27HDEC34HCJNE34H,#00H,LOOP9DEC35HCJNE35H,#00H,LOOP9;脱水时间到了吗CLRTR1;到了,关定时器SETBP2.3;关排水阀SETBP2.0;停止电机MOVDPTR,#7F02H;灭脱水灯MOVA,#0FFHMOVX@DPTR,ARET28.排水子程序流程图如图3-29所示。69 河北工程大学毕业设计说明书图3-29排水子程序流程图程序代码PaiShui:CLRP2.0;启动电机69 河北工程大学毕业设计说明书CLRP2.3;开排水阀和排水灯MOVDPTR,#7F02H;读8155PB口状态MOVXA,@DPTRANLA,#0FFH;判断是洗涤还是漂洗CJNEA,#0FEH,LD16LCALLZhuoDu1;是洗涤调污浊度1检测LD16:CJNEA,#0FDH,LD17LCALLZhuoDu;是漂洗调污浊度检测LD17:SETBTR1;开定时器LCALLShuiJian;调水位检测CJNE48H,#00H,LD18;是0水位吗LD18:SETBP2.0;是停止电机SETBP2.3;关排水阀,灭排水灯AJMPRETURN;返回LOOP10:JNB27H,LOOP10;不是0水位,判断5分钟到了吗CLR27HDEC36HCJNE36H,#00H,LOOP10DEC37HCJNE37H,#00H,LOOP10LCALLBaoJing3;到了,报警RETURN:RETBaoJing3:MOV40H,#0eHMOV41H,#0MOV42H,#3CLRP1.7JBP1.5,BaoJing3SETBP1.7RET3.3伟福仿真器3.3.1伟福仿真器简介69 河北工程大学毕业设计说明书伟福仿真器是通用仿真器,配置不同的仿真头,可以仿真多种单片机,功能强大,性能可靠,为将来发展留有空间⑴仿真CPU外置直接位于用户板上方,降低噪声,提高稳定性和仿真频率⑵逻辑分析仪40通道、32K/通道、20M采样频率。与时间触发器配合,可以捕捉到电路上出现的非常复杂的情况,能帮助设计人员迅速准确查找到设计中的错误⑶波形发生器8通道、32K/通道、20M采样频率,可以向用户板上注入多大8路的可编程的复杂波形,为设计人员提供各种数字信号源。例如常用的串口、IIC、SPI波形⑷跟踪器32K深度,最高跟踪速度高达50ns。配合事件触发器,可以进行条件跟踪,以捕捉制定条件下程序执行的轨迹,了解程序动态执行的过程。仪机器码、反汇编、源程序显示⑸代码覆盖在运行复杂结构的程序时,可以实时的了解程序的执行情况,可以动态的观察制定条件下,有一段代码是否被执行了⑹程序时效分析统计每个函数、每条指令的运行时间及占整个程序运行时间的百分比,为设计师提高程序效率、检查程序错误提供帮助⑺数据时效分析统计每个变量、每个存储单元的访问次数及占整个程序访问次数的百分比,为提高程序效率、检查程序错误提供帮助⑻影子存储器在用户程序运行时,可以观察外部存储器或外部变量的变化情况,设计师无需停下程序,也能直观、实时的监视外部数据的变化⑼硬件测试仪可以静态的设置数据总线、地址总线以及ALE、PSEN、BHE、RD、WR等总线控制信号,从指令执行的底层控制、分析电路工作状态,可以准确方便的检测到电路中的隐蔽错误,WINDOWS界面更直观,操作更方便⑽事件触发器可以设置地址条件、数据条件、控制信号条件、外部信号条件以及他们的任意组合,事件触发器可以控制仿真器的运行,同时也可以控制逻辑分析仪的起停⑾逻辑笔可以测量到电路上的电平状态、脉冲频率,可以测量5V以下的直流电压值,是一种方便实用的分析工具69 河北工程大学毕业设计说明书3.3.2伟福仿真器的特点伟福E6000系列仿真器软件突出先进特点:⑴Wave/KeiluVision2双平台,中/英文可选;⑵真正的集成调试环境,集成了编缉器、编译器、调试器;⑶众多强大软硬件调试手段,包括逻辑分析仪、跟踪器、逻辑笔、波形发生器、影子存储器、记时器、程序时效分析、数据时效分析、硬件测试仪、事件触发器;⑷所有类型的单片机集成在一个调试环境下,支持汇编、C、PL/M源程序混合调试;⑸支持软件模拟;⑹支持项目管理;⑺支持点屏功能,直接点击屏幕就可以观察变量的值,方便快捷;⑻功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然;⑼在线直接修改、编译、调试源程序,错误指令定位。69 结论结论本课题设计的模糊控制洗衣机系统,充分应用了模糊控制技术,单片机在测控领域的应用技术,既有硬件设计又有软件编程,实现洗衣机的真正全自动控制,一个按钮就能完成洗衣的全过程。本设计系统的特点有:⑴分别由TS浊度传感器、负载传感器和水温传感器检测到衣物的污浊度,重量,质地和水温,通过洗衣之前的模糊推理来决定洗涤剂的投放时间、洗涤时间、水位、脱水时间。⑵在洗涤过程中采取实时模糊控制,洗涤时间和漂洗时间由实时模糊控制器决定。既能保证洗净衣物又使洗涤时间短,减少衣物的磨损。使洗衣机具有智能化,最大限度地提高洗涤效果,节约能源及水量,使洗衣机达到高效节能的要求。⑶本设计还考虑到半自动适当的情况,用户可以根据自己的需求自由选择洗衣机的工作方式,这一点是通过按键来实现的。⑷本系统硬件采用单片机89C51进行控制,A/D转换器采用MAX192,都是考虑到既经济又实用的原因。⑸由于实际条件的限制,本设计只能在理论上实现,不能做出实际的控制系统,是本设计的遗憾之处。由于模糊理论技术具有先进性、实用性和科学性,加上模糊技术控制的家电产品不仅使用方便,而且善解人意,大大方便美化了人们的生活,已成为人们向往的目标,也已逐步被中国广大消费者所认识。因此,在不久的将来具有模糊控制的家电产品有着极广泛的应用前景69 致谢致谢经过两个多月的忙碌和工作,本次毕业论文设计已经接近尾声,作为一个本科生的毕业论文,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。在我做设计的过程中遇到了很多问题,都是*老师耐心的指导和讲解,让我的问题迎刃而解。例如,在我的设计中有很多地方都要用到定时器,而一个89C51只有两个定时器,在怎么分配和使用定时器这个问题上我困惑了很久,最后还是*老师帮我解决了这个问题,她的讲解让我茅塞顿开,*老师告诉我,虽然只有两个定时器,但在有的地方我们可以合用一个,像洗衣时间和洗涤量时间就可以合用一个,因为它们都是1s刷新,而这个定时器只需要在1s中断时发送一个标志位就行。在*老师的指导下,我的软件编程得以顺利完成。在论文写作过程中,也是得到了*老师耐心的指导,她一字一句的帮我们检查论文。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,*老师都始终给予我细心的指导和不懈的支持。除了敬佩*老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。在此谨向*老师致以诚挚的谢意和崇高的敬意。   在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!69 致谢最后我还要感谢我的母校****大学四年来对我的栽培。69 附录附录A⑴A/D转换程序如下:①通道0:ZhuanHuan0:SIEQUP0.3SOEQUP0.2SCKEQUP0.1CSEQUP0.0MOV65H,#16CLRSCKCLRCS;发送一个字节XH0:MOVA,#08EH69 附录;08EH-选择CH0,单端/单极性,内部时钟模式,用内带基准电压LCALLBYTE_OUTSETBCSNOPNOPNOPNOPNOPNOPCLRCS;读回两个字节LCALLBYTE_INMOVR6,ALCALLBYTE_INMOVR7,ASETBCSCLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,A69 附录MOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,AMOVA,R6ANLA,#03HMOVR6,AMOV90H,R6MOV91H,R7MOVA,91HINCAINCADJNZ65H,XHLCALLPingJunBYTE_OUT:MOVR0,#08H;发送单个字节到芯片串口BOUT1:CLRSCKRLCAMOVSI,CSETBSCKDJNZR0,BOUT169 附录CLRSIRETBYTE_IN:MOVR0,#O8H;从芯片串口取出单个字节BIN1:SETBSCKCLRSCKMOVC,SORLCADJNZR0,BIN1CLRSCKRET②通道1:ZhuanHuan1:SIEQUP0.3SOEQUP0.2SCKEQUP0.1CSEQUP0.0MOV65H,#16CLRSCKCLRCS;发送一个字节XH1:MOVA,#0CEH69 附录;0CEH-选择CH1,单端/单极性,内部时钟模式,用内带基准电压LCALLBYTE_OUTSETBCSNOPNOPNOPNOPNOPNOPCLRCS;读回两个字节LCALLBYTE_INMOVR6,ALCALLBYTE_INMOVR7,ASETBCSCLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,A69 附录MOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,AMOVA,R6ANLA,#03HMOVR6,AMOV90H,R6MOV91H,R7MOVA,91HINCAINCADJNZ65H,XHLCALLPingJun69 附录BYTE_OUT:MOVR0,#08H;发送单个字节到芯片串口BOUT1:CLRSCKRLCAMOVSI,CSETBSCKDJNZR0,BOUT1CLRSIRETBYTE_IN:MOVR0,#O8H;从芯片串口取出单个字节BIN1:SETBSCKCLRSCKMOVC,SORLCADJNZR0,BIN1CLRSCKRET③通道2:ZhuanHuan2:SIEQUP0.3SOEQUP0.2SCKEQUP0.1CSEQUP0.0MOV65H,#16CLRSCKCLRCS;发送一个字节XH2:MOVA,#09EH69 附录;09EH-选择CH2,单端/单极性,内部时钟模式,用内带基准电压LCALLBYTE_OUTSETBCSNOPNOPNOPNOPNOPNOPCLRCS;读回两个字节LCALLBYTE_INMOVR6,ALCALLBYTE_INMOVR7,ASETBCSCLRCMOVA,R6RRCAMOVR6,A69 附录MOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ACLRCMOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,AMOVA,R6ANLA,#03HMOVR6,A69 附录MOV90H,R6MOV91H,R7MOVA,91HINCAINCADJNZ65H,XHLCALLPingJunBYTE_OUT:MOVR0,#08H;发送单个字节到芯片串口BOUT1:CLRSCKRLCAMOVSI,CSETBSCKDJNZR0,BOUT1CLRSIRETBYTE_IN:MOVR0,#O8H;从芯片串口取出单个字节BIN1:SETBSCKCLRSCKMOVC,SORLCADJNZR0,BIN1DJNZ65H,XH1CLRSCKRET⑵求16个数的平均数:16个数相加结果应该存在两个字节中,两个字节除法很麻烦,不过因为被除数是16,所以除法就简单了,就是把16个数字的和整体右移四位就可以了。程序如下:PingZhun:MOVDPTR,#90HMOVR7,#069 附录MOVR6,#0MOVR3,#16LOOP2:MOVA,R7ADDA,@DPTRMOVR7,AMOVA,R6ADDCA,#0MOVR6,AINCDPTRDJNZR3,LOOP2LOOP3:MOVR3,#4MOVA,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,ADJNZR2,LOOP3RET⑶定时器1定时中断服务程序:Timer1:MOVTH1,#3CH;重装定时初值MOVTL1,#0B0HDJNE28H,RETURN;1s到了吗MOV28H,#0AH;到了,重装中断次数SETB27H;标志位置1DJNZ42H,RETURN;秒的个位减1DJNZ41H,RETURN;秒的十位减1DJNZ40H,RETURN69 附录;分钟减1RETURN:RETI⑷10ms延时程序代码:DL10ms:MOVR7,#0AHDL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRET69'