毕业设计(论文)-基于单片机控制的智能洗衣机研究.doc_第1页
毕业设计(论文)-基于单片机控制的智能洗衣机研究.doc_第2页
毕业设计(论文)-基于单片机控制的智能洗衣机研究.doc_第3页
毕业设计(论文)-基于单片机控制的智能洗衣机研究.doc_第4页
毕业设计(论文)-基于单片机控制的智能洗衣机研究.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

bstractThe article is based on AT89C51 single-chip as microprocessor. Take the motor as the controlled object,designing a full automatic washing machine of 220V AC motor. Take the main program button, the water level switch, start button, pause button as input. Through the hardware design and software programming to control the main action,such as the water, drainage, motor positive, LED digital display. The eventual realization of the full-automatic washing machine motor speed control and water, washing, drainage, automatic fault diagnosis, pause, sound and light display.Keywords:AT89C51, Full-automatic washing machine, Engineering design, Control circuit- 13 -第1章 绪论1.1 基于单片机控制的智能洗衣机研究的意义随着现代社会生活节奏的不断加快和人们生活水平的不断提高,人们对各种方便、快捷的家用电器需求量越来越大,洗衣机作为人们提高生活效率,追求生活质量的基本条件,也愈来愈成为不可或缺的生活用具。在工业发达国家,洗衣机的普及率已达到相当高的程度,但由于现阶段国情,洗衣机在我国的普及程度还较低,农村更甚。随着人民生活水平(特别是乡村生活水平)的不断提高,社会对洗衣机的需求量越来越大,而且随着生活质量的不断提高,人们对洗衣机的功能要求越来越高,使得洗衣机的更新较快,因此,洗衣机作为人们追求现代生活的一个基本要求在我国有着极大的市场。智能洗衣机综合运用了大量力学,电学,光学等知识。通过对于基于单片机控制的智能洗衣机的研究我们可以更清晰,更实际的掌握单片机的一些基本的控制和应用。单片机在日常家电中的应用比较广泛,洗衣机智能控制系统就是一种以单片机为控制核心的系统,它把以往对洗衣机的繁琐的操作变得简单化,不但其机器性能显著提高,还增加了难以实现得功能,同时也提高了控制的精确度,硬件和软件相互配合实现洗衣机工作的智能化和自动化。因此对于智能洗衣机的研究一方面可以让我们对于所学的单片机和电路有关知识有个更好的理解和巩固,一方面也锻炼了自身的动手能力,特别是能够实现软硬连调所具备的能力。智能洗衣机的特点是:通过程序控制器来实现洗涤过程,省时省力。1.2 全自动洗衣机的设计方案本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、漂洗、排水和脱水等阶段。控制系统主要由电源电路、数字控制电路和机械控制电路三大模块构成。电源采用三端集成固定稳压器7805提供+5V电源,数字控制电路负责控制洗衣机的工作过程,主要由AT89S51单片机、三位共阴数码管、按键、蜂鸣器、LED指示灯组成;机械控制电路实现传感器检测、电机驱动、进水、排水等功能,主要由水位检测器、电动机、传动系统部件、进水排水电磁阀组成1。1.3 按键洗衣机面板上有6个按钮K1、K2、K3、K4、K5和K6K1为启动暂停键:按奇数次视为启动,偶数次视为暂停。K2用于洗衣程序选择:按一下选择洗涤,按两下选择漂洗,按三下选择脱水。K3用于洗衣方式选择:按一下选择标准洗方式,按两下选择快速洗方式,按三下选择轻柔洗方式。K4用于水位选择:按一下进水至低水位,按两下进水至中水位,按三下进水至高水位。K5用于时间选择:按一下洗衣时间短,按两下洗衣时间适中,按三下洗衣时间长。1.4 洗衣机自检洗衣机上电后,先进行自检,包括检查安全开关,排水阀状态,进水阀工作过程,电机的运转等,若发现异常现象则蜂鸣器响,报警灯亮。1.5 洗衣程序1.5.1洗涤过程通电后,若不选择洗衣周期,则洗衣机从洗涤过程开始。进入洗涤过程,首先进水阀接通,开始向洗衣机供水,当到达要求水位时,进水阀断电关闭,停止进水;电机M接通,带动波轮旋转,形成洗衣水流。电机M是一个正反转电机,可以形成往返水流,有利于洗涤衣物。1.5.2漂洗过程与洗涤过程操作相同,只是时间短一些。1.5.3脱水过程洗涤或漂洗过程结束后,电机M停止转动,排水阀M接通,开始排水。排水阀动作的同时,电机M也接通,使电机可以带动内桶转动。当水位低到一定值,再经过一段时间后,电机开始正转,带动内桶高速旋转,甩干衣物。1.6 显示洗涤、漂洗及脱水时间都通过倒计时的方式显示在3个LED上,依次为分位,秒十位和秒个位,此外,还有发现异常现象时错误信息的显示。1.7 参数处理要对洗衣机进行控制,首先要用各种传感器不断地检测相关的状态,以作为控制的依据。其中,污浊度传感器,温度传感器和负载传感器是模拟信号,需要经过A/D转换变成数字信号,单片机接受到这些传感器的信号以后,经过一系列处理作出反应,从而控制洗衣机的工作。第二章 硬件电路介绍针对上文的功能,硬件电路应包括七个部分:微处理器控制电路、显示电路、采样电路、电机控制电路、进水阀控制电路、排水阀控制电路和按键报警电路。通过这几个部分电路的协调工作,洗衣机能模拟人脑进行操作。2.1 CPU选型51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不仅能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为00H7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。有的单片机并不能直接对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.51.8V)2 3 4。综上所述,我们本次设计采用51系列,而51系列的典型产品是8051。8051是一种40引脚双列直播式芯片。它含有4KB可反复烧录及擦除内存和128字节的RAM,有32条可编程控制的I/O线,5个中断发源,指令与MCS-51系列完全兼容。选用它作为核心控制新片,可使电路极大地简化,而且程序的编写及固化也相当方便、灵活。选用它设计制作全自动洗衣机控制电路,该电路的组成相对简单,工作原理清晰,易于理解。89C51引脚图如图2.1所示。图2.1 89C51引脚图2.2 89C51的存储器与寄存器89C51单片机存储器才用的是哈佛(Harvard)即程序存储器空间和数据存储器空间是各自独立的,两种存储器各自有自己的寻址方式和寻址空间。这种结构对于单片机“面向控制”的实际应用极为方便、有利。89C51单片机程序存储器和数据存储器的扩展能力分别可达64KB,寻址和操作简单方便5。89C51的存储器空间可划分为5类:程序存储器、内部数据存储器、特殊功能寄存器、为地址空间和外部数据寄存器6。2.3 A/D转换器A/D转换器种类很多,按及人口方案来分,可分为并行接口和串行接口两类。串行接口又分为三线式接口和两线式接口两种。由于89C51串行口有限,而本此设计也用到了很多串口,而且我们需要一个多通道的转换器,而MAX192正是满足这种要求,其转换精度也高,所以本次设计我们采用MAX192。MAX192是一种低功耗、单电源、8通道、串行的10位A/D转换器。由于该芯片在片外已有采样跟踪保持电路,内部时钟电路和内部参考电压源,所以在应用时,所需外围原件极少,与单片机连接也只占用4-5条口线,因此,用MAX192构成的数据采集系统具有硬件结构简单、体积小和功耗低的优点。MAX192是美国美信公司设计的一个10位A/D转换器,它的信号输入有两种方式:8通道单端输入或4通道差分输入,具有极高转换速度。其4线串行接口与SPI、QSPI、MicroWire等串行总线兼容,具有内部时钟方式和外部时钟方式,内带4.096V的基准电压,也可用外部基准电压。MAX192的引脚图如图2.2所示。图2.2MAX192的引脚图2.3.1 MAX192的控制字MAX192控制字占一个字节,其格式见表2.1。表2.1 控制字节的定义Bit7(MSB)Bit6Bit5Bit4Bit3Bit2Bit1Bit0STARTSEL2SEL1SEL0UIN/BIPSGL/DIFPD1PD02.3.2 MAX192的工作原理MAX192器件采用逐次逼近转换技术及输入采样/保持电路把模拟信号转换成10位的数字信号输出,模拟信号有单端输入和差分输入两种输入方式,输入电压范围分单极性(0-4.096V)和双极性(-4.096/2-4.096/2V)两种,每做完一次A/D转换,需从串行数据输入端输入以“1”开始的8位控制字对器件初始化,内部控制逻辑控制A/D转换。当MAX192的CS端有效时,在时钟SCLK的每一个上升沿把一个最高位为“1”的控制字节的各位送入输入移位寄存器,控制器收到控制字节后,选择控制字节中给定的模拟通道,并在SCLK的下降沿启动转换。在启动转换后,MAX192可以使用外部串行时钟或内部时钟来完成逐次逼近转换。在两种时钟方式中,数据的移入/输出都由外部时钟来完成7 8。转换结束后的数据是由DOUT端读出的。应该注意,数据的输出是高位在先,低位在后,有效位为10位。在单极性输入方式下,输出的是标准二进制码,对于差分方式下的双极性输入,其输出是莫二补码。需要注意的是,在单极性输入方式下,转换完成后的10位数据在移位寄存器中存放时,在数据的首部添了一个“0”,在尾部添加了5个“0”,这样,要得到最终的正确结果,需要把这16位数(包括10位有效数据)右移5位。在编写采样程序时,送完一字节控制字,何时读转换结果 ,有两种判断方法:一是看SSTRB信号是否变高,二是延时多少us(最大位10us)。表2.3 单端方式(SGL/DIF=1)通道选择SEL2SEL1SEL0CH0CH1CH2CH3CH4CH5CH6CH7AGND000+-100+-续表2.3001+-101+-010+-110+-011+-111+-表2.4 时钟和掉电选择PD0PD1器件模式11外部时钟方式10内部时钟方式01速掉电模式(Fast Power-Down Mode)00全掉点模式 ( Full Power-Down Mode)2.4传感器本次设计中用到4个传感器,分别为:TS污浊度传感器、温度传感器、负载传感器和水位传感器。其中污浊度、温度和负载传感器输出的都是模拟信号,需要通过A/D转换才能作为单片机的控制信号,而水位传感器本身输出的就是数字信号,所以不需要通过A/D转换,直接可用做单片机的控制信号9。TS污浊度传感器内部原理图如图2.3所示。浑浊度检测传感器的主要原理是光电耦合器,而普通的光电耦合器不能有效的检测洗衣机水的浑浊度。光电耦合器的光源必须是红外光才能准确的检测浑浊度。TS浊度传感器是GE公司开发的一种专门用于家电产品的低成本传感器,主要用于洗衣机、洗碗机等产品的水污浊程度的测量。图2.3浊度传感器内部原理图温度传感器温度传感器有四种主要类型:热电偶、热敏电阻、电阻温度检测器(RTD)和IC温度传感器下)。IC温度传感器又包括模拟输出和数字输出两种类型。热电偶应用很广泛,因为它们非常坚固而且不太贵。热电偶有多种类型,它们覆盖非常宽的温度范围,从-200到2000。它们的特点是:低灵敏度、低稳定性、中等精度、响应速度慢、高温下容易老化和有漂移,以及非线性。另外,热电偶需要外部参考端。我们常用温度传感器有DS18B20、AD590等,它们都是集成温度传感器。DS18B20输出是数字信号可以直接和单片机相连,而且硬件连接电路少,但需要对其进行复杂的软件编程。AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数。AD590的测温范围为-55+150。AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。输出电阻为710MW。精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为0.3。本设计我们选用AD590作为温度传感器。AD590比DS18B20精度更高、线性度误差小,且不需要温度报警和复杂的程序编程,非常适合用于洗衣机的温度检测传感器。负载传感器根据模糊控制要求,负载检测时通过检测电动机的反电动势来实现的,而电动机的反电动势比单片机所用电压大的多,不能直接采样,必须经过隔离。采用线性光电耦合器既能隔离高电压和干扰,又能得到满意的检测信号。水位传感器原理图如图2.4所示。谐振式水位传感器,采用了新型的传感原理 ,把水位的高低 ,通过水位传感器直接变成水位与频率的对应关系。衣物的洗净度、水流强度、洗涤时间等参数的检测 ,对模糊控制洗衣机在节水、节能、减少洗涤时间方面起决定性的作用。图2.4水位传感器原理图2.5显示器显示器有LED和LCD两种。LCD(Liquid crystal Display)是液晶显示器英文名称的缩写,液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特征,达到白底黑字或黑底白字显示的目的。LED(Light Emiting Diode)是发光二极管英文名称的缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。本次设计只是显示时间,所以采用LED就可以达到目的了。LED显示器的结构LED常用的LED为8段或7段。每一个段对应一个发光二极管。这种显示器有共阳极和共阴极2种。共阴极LED显示器的发光二极管的阴极连在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管接低电平时,发光二极管被点亮,相应的段被显示。为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称之为段码(或称为字型码)10。LED显示器工作原理LED显示器有静态显示和动态显示2种方式。LED显示器工作于静态显示方式时,各位的共阴极(共阳极)连接在一起并接地(或+5V);每位的段码线(a-dp)分别与一个8位的锁存器输出相连。之所以称之为静态显示,是因为各个LED的显示字符一经确定,相应锁存器锁存的段码输出将维持不变,直到送入另一个的段码为止。正因为如此,静态显示器的亮度都较高,但静态现实的缺点是占用口线太多,如果显示器的位数太多,则需要加锁存器,因此一般情况下采用动态显示。在多位LED显示时,为简化硬件电路,通常将所有位的段码线相应段并联在一起,由1个8位I/O口控制,形成段码线的多路复用,而各位的共阴极或共阳极分别由相应的I/O线控制,形成各位的分时选通11 12。本次设计中我们采用的是3位共阴极数码管,其中段码线占用1个8位I/O口,而位选占用3位I/O口。由于各位的段码线并联,8位I/O口输出的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选都处于选通状态的话,3位LED将显示相同的字符。若要各位LED能够显示出与本位相应的显示字符,就必须采用动态显示,即在某一时刻,只让一位的位选线处于选通状态,而其他各位的位选处于关闭状态,同时,段码线上输出相应位要显示的字符段码。这样,在同一时刻,3位LED中只有选通的那位显示字符,而其他2位则是熄灭的。同样,在下一时刻,只让下一位的位选处于选通状态,而其他各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位都是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位 同时亮的假象,达到同时显示的效果。LED不同位显示的时间间隔应根据实际情况而定。发光二极管从导通到发光有一定的延时,导通时间太短,则发光太弱,人眼无法看清,但也不能太长,因为要受限于临界闪烁频率,而且时间越长,占用CPU时间也越多,本次设计我们采用1ms延时13。第3章 硬件电路设计3.1 复位操作电路89系列单片机与其他微处理器一样,在启动时需要复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也须按复位键重新启动。在系统控制电路中,复位电路是靠电容充放电完成的,当电路需要复位时,按下复位键后RES被强制为高电平,使电路复位,同时电容也开始放电。在正常工作时,电容充满电后相当于短路,此时RES为低电平无效14。下图3.1所示为复位操作电路图3.1 复位电路3.2 状态显示电路洗衣过程中的各状态显示:脱水、漂洗、洗涤、轻柔洗涤、快速洗涤和标准洗涤指示等工作状态。如图3.2所示。图3.2 LED显示电路3.3 进/排水阀控制电路进水阀控制电路如图3.3所示。 它是通固态继电器来实现隔离,反相器74S05实现缓冲,进水阀门的开关由继电器来控制,当继电器线圈中有电流流过时,继电器开关吸合,反之,就断开。利用这一特性,首先水位传感器会检测桶内水位的高低,如果桶内水位没有达到所设置的预定水位时,水位传感器会发送给单片机一个控制信号,然后经过CPU的处理后会在输出端口输出低电平,再经反相缓冲后变成高电平,双向可控硅断开,线圈中没有电流流过,继电器开关断开,进水阀阀门打开;同理如果桶内水位达到预定水位时此时在输出端口输出是高电平,给反相倒相后变成低电平,点亮发光二极管,双向可控硅开通,继电器线圈绕组中有电流流过,产生磁场,开关吸合,进水阀阀门关闭。排水阀控制电路和进水阀控制电路是相似的,通固态继电器来实现隔离,反相器74S05实现缓冲,排水阀阀门的开关由继电器来控制,当继电器线圈中有电流流过时,继电器开关吸合,反之,继电器开关就断开。利用这一特性,首先由软件设置排水时间,水位传感器会检测桶内水位的高低,如果桶内水位没有达到所设置的预定水位时(即桶内有水且需要排水时),水位传感器会发送给单片机一个控制信号,然后经过CPU的处理后会在输出端口输出低电平,反相缓冲后变成高电平,双向可控硅断开,线圈中没有电流流过,阀门打开,开始排水;同理当桶内水排完后端口输出高电平时,经过反相倒相后变成低电平,双向可控硅开通,继电器线圈绕组中有电流流过,产生磁场,吸合开关,阀门关闭,停止排水15。图3.3进/排水阀控制电路3.4 电机控制电路电机控制电路如图3.4所示,由电路图中可以看出:AT89C51的P2端口的P2.3和P2.4共2条I/O线通过2块SP1110新型固态继电器分别直接驱动洗衣机的电机工作部件。SP1110是一种交流固态继电器,内有发光二极管及光触发双向可控硅,10-50mA输入电流即可使双向可控硅完全导通,输出端通态电流为3A(平均值),浪涌电流15A(不重复)。之说以选用这个器件,是因为它一方面可使电路进一步简化,另一方面还可使强、弱两类电完全隔离,保证主板的安全。74S05为反相器,用其作为中间缓冲器,其中的2个反相器可分别驱动SP1110固态继电器。电机是接在220V交流电压上的,通过固态继电器来开通,其内的双向可控硅受发光二极管控制,如图所示,只要给发光二极管加低电平,二极管就会发光,双向可控硅过零后就会导通,此时电机的一个绕组就会有电流流过,同时再用同样的方法开通另外一个绕组,电机就会转动起了,由单片机来控制端口脉冲,即可启动,另外电机的转向控制,主要是改变绕组的电流方向,即可实现,同样也是通过双向可控硅来调节。图3.4 电机控制电路3.5蜂鸣电路蜂鸣器在洗衣机中起提示和报警作用。如图3-5中所示,继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。图3.5所示为蜂鸣电路图3.5 蜂鸣电路3.6时间显示电路通过8155芯片,采用动态显示,段码端接8155A口,位选端接8155C口如图3.6所示:图3.6 时间显示电路第4章 软件设计4.1寄存器本次编程中用到的寄存器如表4.1所示表4.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低水位续表4.146H中水位47H高水位48H水位检测值50H启动/暂停键按键次数51H程序键按键次数52H选择键按键次数53H水量键按键次数54H时间键按键次数4.2流程图1.主程序流程图如图4.1所示图4.1主程序流程图2.显示子程序流程图如图4.2所示图4.2显示子程序流程图3.程序设置子程序流程图如图4.3所示图4.3程序设置子程序流程图4.洗衣方式选择子程序流程图如图4.5所示图4.4洗衣方式选择子程序流程图5.水量设置子程序流程图如图4.5所示图4.5水量设置子程序流程图6.时间设置子程序流程图如图4.6所示图4.6时间设置子程序流程图7.自检子程序流程图如图4.7所示图4.7自检子程序流程图8.运转程序流程图如图4.8所示图4.8运转程序流程图9.时间确定子程序流程图如图4.9所示图4.9时间确定子程序流程图10.进水子程序流程图如图4.10所示图4.10进水子程序流程图11.水位检测子程序流程图如图4.11所示图4.11水位检测子程序流程图12.污浊度检测子程序流程图如图4.12所示图4.12污浊度检测子程序流程图13.电机运转子程序流程图如图4.13所示图4.13电机运转子程序流程图14.洗涤子程序流程图如图4.14所示图4.14洗涤子程序流程图15.洗涤1子程序流程图如图4.15所示16.洗涤量投放子程序流程图如图4.16所示 图4.15洗涤1子程序流程图 图4.16洗涤量投放子程序流程图17.漂洗子程序流程图如图4.17所示图4.17漂洗子程序流程图18.一漂和二漂子程序流程图如图4.18所示 图4.18一漂和二漂子程序流程图19.漂洗1子程序流程图如图4.19所示图4.19漂洗1子程序流程图20.脱水子程序流程图如图4.20所示图4.20脱水子程序流程图21.排水子程序流程图如图4.21所示图4.21排水子程序流程图结 论经过近三个月的努力,我设计的用单片机控制的全自动洗衣机终于完成了。虽然它解决了以前洗衣机自动化程度不高等缺点,但不可否认,他本身仍然存在许多不足。本设计系统的特点有:分别由TS浊度传感器、负载传感器和水温传感器检测到衣物的污浊度,重量,质地和水温,通过洗衣之前的模糊推理来决定洗涤剂的投放时间、洗涤时间、水位、脱水时间。本设计还考虑到半自动适当的情况,用户可以根据自己的需求自由选择洗衣机的工作方式,这一点是通过按键来实现的。本系统硬件采用单片机89C51进行控制,A/D转换器采用MAX192,都是考虑到既经济又实用的原因。由于实际条件的限制,本设计只能在理论上实现,不能做出实际的控制系统,是本设计的遗憾之处。参考文献1徐玮.C51单片机高效入门.第1版.北京:机械工业出版社,20022何立民.单片机高级教程第1版北京:北京航空航天大学出版社,20013赵晓安.MCS-51单片机原理及应用.天津:天津大学出版社,2001.3 4李广第.单片机基础第1版北京:北京航空航天大学出版社,19995何立民从Cygnal80C51F看8位单片机发展之路单片机与嵌入式系统应用 2002年,第5期6夏继强.单片机实验与实践教程.北京:北京航空航天大学出版社,20017徐惠民、安德宁单片微型计算机原理接口与应用第1版北京:北京邮电大学出版社,1996 8陈志强 胡辉.单片机应用系统设计实践指南.自编教材9张靖武 周灵彬.单片机系统的PROTEUS设计与仿真.第1版.北京:电子工业出版社,200110肖玲妮.PROTEL2004电路设计.第1版.北京:清华大学出版社,2006-0811李朝青单片机原理及接口技术第3版北京航空航天大学出版社,2005 12何立民单片机高级教程北京:北京航空航天大学出版社,199913李维祥单片机原理与运用天津:天津大学出版社,200114钱逸秋单片机原理与应用北京:电子工业出版社,200115李群芳单片微型计算机与接口技术北京:电子工业出版社,2001致 谢本文是我在本科学习阶段的最后一份答卷,也可能是我作为学生的最后一份答卷。回首论文的写作过程,得到了许多人的帮助,特别是我的老师、朋友和室友,他们在我论文的完成过程中给予了许多的教诲、帮助和鼓励。借此机会,向他们表示我由衷的感激之情!首先,我要特别感谢我的导师郭松老师。郭松老师学识渊博、平易近人,对待我们像对待自己的朋友。在设计和论文的完成过程中给了我最直接的帮助,真心感谢郭松老师给我的指导和帮助。最后,我要深深感谢辛勤养育我的父母。在我求学期间,他们始终给予我最大的支持和鼓励,使我勇于战胜各种困难,顺利完成学业。希望我的进步能给他们带来喜悦和安慰。附录附录A 原理图附录B 程序清单1主程序程序代码:MAIN: MOV SP,#60 LCALL ChiShi ;调初始化程序 SETB EA ;CPU允许中断 MOV TMOD,#10H ;设置定时器1方式 MOV 28H,#0AH ;装入定时中断次数LOOP: LCALL XianShi ;调显示子程序 LCALL JanPan ;调键盘扫描子程序 SJMP LOOP 2.显示子程序程序代码:XianShi: MOV R0,40H ;置缓冲器指针初值 MOV R2,#01H ;置位选初值 MOV A,R2LD0: MOV DPTR,#7F03H ;位选送8155C口 MOV DPTR,A DEC DPTR DEC DPTR MOV A,R0 ADD A,#0DH ;加偏移量 MOVC A,A+PCDIR1: MOVX DPTR,A ;段码送8155A口 ACALL DL1ms ;调1ms延时 INC R0 MOV A,R2 JB ACC.2,LD1 ;三位都显示完了吗 RL A ;没完,显示位右移 MOV A,R2 AJMP LD0LD0: RETDSEG: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 31H,6EH,1CH,23H,40H,03H DB 18H,00DL1ms: MOV R7,02HDL: MOV R6,#0FFHDL6: DJNZ R6,DL6 DJNZ R7,DLLD1: RET MOV A,B JZ A,ZanTing ;若为偶数次按下,则暂停 LCALL YunZhuan ;若为奇数次按下,则进入运转程序RETURN: RET3.程序设置子程序程序代码:PK2: INC 51H ;按键次数加1 MOV A,51H CJNZ A,#1,L2 ;是第一次按下吗,不是转L2 LCALL XiDi ;是第一次按下,则调用洗涤子程序L2: CJNZ A,#2,L3 ;是第二次按下吗,不是转L3 LCALL PiaoXi ;是第二次按下,则调用漂洗子程序L3: CJNZ A,#3,RETURN ;是第三次按下吗,不是则返回 LXALL TuoShui ;是第三次按下,则调用脱水子程序RETURN: RET4.洗衣方式选择子程序程序代码:PK3: INC 52H ;按键次数加1 MOV A,52H ; MOV DPTR,#7F02H CJNE A,#1,L4 ;是第一次按下吗,不是转L4 MOV A,#0EFH ;是第一次按下,则标准洗涤指示灯亮 MOVX DPTR,A MOV A,52HL4: CJNE A,#2,L5 ;是第二次按下吗,不是转L5 MOV A,#0DFH ;是第二次按下,则快速洗涤指示灯亮 MOVX DPTR,A MOV A,52HL5: CJNE A,#3,RETURN ;是第三次按下吗,不是则返回 MOV A,#0BFH ;是第三次按下,则轻柔洗涤指示灯亮 MOVX DPTR,ARETURN: RET5.水量设置子程序程序代码:PK4: INC 53H ;按键次数加1 MOV A,53H CJNE A,#1,L6 ;是第一次按下吗,不是转L6 MOV 45H, #08H ;是第一次按下,则进水至低水位L6: CJNE A,#2,L7 ;是第二次按下吗,不是转L7 MOV A,46H,#09H ;是第二次按下,则进水至中水位L7: CJNE A,#3,RETUREN ;是第三次按下吗,不是则返回 MOV A,47H,#10H ;是第三次按下,则进水至高水位RETURN: RET6.时间设置子程序程序代码:PK5: INC 54H ;按键次数加1 MOV A,54H CJNE A,#1,L8 ;是第一次按下吗,不是转L8 MOV 48H,#01H ;是第一次按下,则时间选择5min MOV 49H,#2CHL8: CJNE A,#2,L9 ;是第二次按下吗,不是转L9 MOV 48H,#02H ;是第二次按下,则时间选择10min MOV 49H,#58HL9: CJNE A,#3,RETURN ;是第三次按下吗,不是则返回 MOV 48H,#38H ;是第三次按下,则时间选择15min MOV 49H,#40HRETURN: RET7.自检子程序程序代码:ZiJian: MOV DPTR,#7F02H ;自检指示灯亮 MOV A,#0FBH MOVX DPTR,A JB P1.6,BaoJing1 ;读安全开关状态,异常则报警 JB P2.3,BaoJing2 ;读排水阀状态,异常则报警 MOV 45H,#08H ;置低水位值 MOV 47H,#09H ;置高水位值 MOV 44H, #00H ;置零水位值 CLR P2.4 ;开进水阀 LCALL ShuiJian ;调水位检测 MOV A,45HL10: CJNE A,48H,L10 ;到底水位了吗,到了启动电机 CLR P2.0 LACLL ShuiJian MOV A,47HL11: CJNE A,48H,L11 ;到高水位了吗,到了开排水阀 CLR P2.3 LCALL ShuiJian MOV A,44HL12: CJNE A,48H,L12 ;是零水位吗,是则检测完毕 SETB P2.4 SETB P2.0 SETB P2.3 MOV A,#OFFH MOVX DPTR,ABaooJing1: MOV 40H,#0eH ;显示异常代码 MOV 41H,#0 MOV 42H,#1 CLR P1.7 ;蜂鸣器响,报警灯亮 JB P1.5,BaoJing1 ;判断是否有人为干扰 SETB P1.7BaoJing2: MOV 40H,#0eH ;显示异常代码 MOV 41H,#0 MOV 42H,#2 CLR P1.7 ;蜂鸣器响,报警灯亮 JB P1.5,BaoJing2 ;判断是否有人为干扰 SETB P1.7 RET8.运转程序程序代码:YunZhuan: LCALL PanDuan ;调判断子程序 JZ LD1 ;为1为全自动 LCALL JianPanLD1: LCALL JianCe LCALL XiDi LCALL PaiShui RETPanDuan: ORL A,51H ;各按键次数相与,为1为全自动 ORL A,52H ORL A,53H ORL A,54H RET9.时间确定子程序程序代码:ShiJia

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论