基于单片机的洗衣机智能控制系统.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于单片机的洗衣机智能控制系统.精品文档.基于单片机的洗衣机智能控制系统摘 要基于MCS-51单片机的洗衣控制系统,控制面板由按键、指示灯组成.按键选择洗衣机工作方式,指示灯配合按键工作,LED显示器则显示洗衣机洗涤和脱水时间.洗衣机的整体电路模块包括键盘矩阵、指示灯、电动机控制及电源电路.控制程序设计包括定时中断服务程序、外中断服务程序及主程序.关键词:全自动,智能,89C2051AbstractBased on the MCS-51 microcontroller laundry control system, control panel from the button. Indicator components. button to choose washing machines work, with a key indicator, LED displays show machine washing and dehydration time. washing machines, the overall circuit module including keyboard matrix, lamp, motor control and power supply circuit. control procedures designed timer interrupt service procedures, external interrupt service procedures and the main program. Key Words: automatic, intelligent 89C2051目录摘 要0ABSTRACT1目录1第一章 绪言11.1 课题背景11.2 本课题的任务和要求41.3系统解决的问题和拟采用的研究手段81.4本文的工作9第二章 系统的总体设计102.1核心单元电路102.2工作控制程序设计222.3模拟软件调试24第三章系统的实现和关键技术343.1硬件的选择与说明343.1.1 AT89C2051343.1.2 固态继电器的选用363.1.3 74LS05反相器六非门373.1.4 双2-4译码器 74LS139383.1.5 TC4013BP393.1.6 电机443.2汇编程序与模拟软件453.2.1 主程序453.2.2 KEIL的使用方法61第五章 总结71致谢72参考文献73第一章 绪言1.1 课题背景洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,全自动式洗衣机因使用方便得到大家的青睐,全自动即进水、洗涤、漂洗、摔干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可供用户选择。展, 洗衣机的性能将会不断完善。全自动洗衣机由于具有对衣物的磨损小、洗涤量大、节水等特点,越来越得到广大家庭的青睐。随着社会的进步和生活水平的提高,人们对全自动洗衣机的功能多样化、操作简单化也提出了更高的要求。为适应这种变化,全自动洗衣机的控制器已由机械式、混合式逐步过渡到全电子控制。单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。单片机是一个单芯片形态,面向控制对象的嵌入式应用计算机系统。它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域.从此,计算机技术在两个重要领域通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。单片机的结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一台功能独特的,完整的单片微型计算机。6单片机独特的结构决定了它具有如下特点。(1)高集成度,高可靠性单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU。单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。(2)控制功能强 为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能。(3)低电压,低功耗 为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V3.6V,而工作电流仅为数百微安。(4)优异的性能价格比单片机的性能极高。为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术。单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB.由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。由于单片机功能的飞速发展,它的应用范围日益广泛,已远远超出了计算机科学的领域.小到玩具,信用卡,大到航天器,机器人,从实现数据采集,过程控制,模糊控制等智能系统到人类的日常生活,到处都离不开单片机.其主要的应用领域如下。(1)在测控系统中的应用单片机可以用于构成各种工业控制系统,自适应控制系统,数据采集系统等。例如,工业上的锅炉控制,电机控制,车辆检测系统,水闸自动控制,数控机床及军事上的雷达,导弹系统等。(2)在智能化仪器仪表中的应用单片机应用于仪器仪表设备中促使仪器仪表向数字化,智能化,多功能化和综合化等方向发展。单片机的软件编程技术使长期以来测量仪表中的误差修正,线性化的处理等难题迎刃而解。(3)在机电一体化中的应用单片机与传统的机械产品结合使传统的机械产品结构简化,控制走向智能化,构成新一代的机电一体化产品。这是机械工业发展的方向。(4)在智能接口中的应用计算机系统,特别是较大型的工业测控系统中采用单片机进行接口的控制管理,单片机与主机并行工作,可大大提高系统的运行速度。例如,在大型数据采集系统中,用单片机对模/数转换接口进行控制不仅可提高采集速度,还可以对数据进行预处理。如数字滤波,误差修正,线性化处理等。(5)在人类生活中的应用单片机由于其价格低廉,体积小巧,被广泛应用在人类生活的诸多场合,如洗衣机,电冰箱,空调器,电饭煲,视听音响设备,大屏幕显示系统,电子玩具,信用卡,楼宇防盗系统等.单片机将使人类的生活更加方便舒适,丰富多彩。1.2 本课题的任务和要求单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。 由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。 单片机主要用于计算机外设、实时控制、仪器仪表、通信和家用电器等各个领域,是计算机技术和电子技术的综合性应用,在不同应用场合其技术要求各不相同,因此设计方法和研制的步骤不完全一样。单片机应用系统由硬件和软件组成。硬件是指MCU、存储器、I/O接口和外设等物理器件的有机组合。软件是指系统监控程序的总称。在开发的过程中,它们的设计不能完全分开,二者需要互相配合、不断调整才能组成高性能的应用系统。单片机应用系统的开发包括系统总体设计、硬件设计、软件设计、系统调试等几个阶段,它们有时交叉进行。1.2.1设计任务(1)系统总体设计任务 在进行系统设计之前,首先应根据对系统的功能要求及其应用环境等确定合理的、具体的功能和技术指标,对应用系统的可靠性、通用性、先进性、可维护性、以及成本等进行综合考虑,以尽量合理并符合相应的标准。然后根据市场上各种单片机的货源情况和单片机的性能及开发工具等因素选择合适的机型。接下来要根据系统中可能遇到的传感器、模拟电路、I/O接口、存储器和显示器等器件和设备进行器件选择,使之符合系统在精度、速度和可靠性等方面的要求。最后确定硬件和软件的功能划分。由于在系统设计中某些功能用硬件和软件都能实现,在设计中应综合考虑研制周期和成本等因素具体划分软硬件功能。(2)系统硬件设计任务硬件设计的任务是根据总体要求,在所选的MCU和各个元器件型号的基础上设计出系统的电路原理图,做一些必要的不见实验,以及工艺结构的设计加工,印刷电路板的设计制作和样机的组装等。在硬件设计中,需要考虑系统总线的负载能力、系统扩展时的片选方式、模拟电路的速度和精度等,如需扩展存储器则尽量用一片完成,这样既降低了成本,又减小了线路板的面积,同时提高了系统的可靠性。(3)系统软件设计任务单片机应用系统的软件设计是系统设计中最基本而且工作量较大的任务。与系统机上操作系统支持下的纯软件不同,单片机的软件设计是在裸机的条件下进行的,而且随应用系统的不同而不同。在软件中一般需考虑以下几个方面:1) 根据要求确定软件的具体任务细节,然后确定合理的软件结构。一般系统软件的主程序和若干个子程序及中断服务程序组成,详细划分主程序、子程序和中断服务程序的具体任务,确定各个中断的优先级。主程序是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对事务的处理。在子程序和中断服务程序中,要考虑现场的保护和恢复,以及它们和主程序之间的信息交换方法。2) 程序的结构用模块化结构,即把监控程序分解为若干个功能相对独立的较小的程序模块分别设计,以便于调试。具体设计时可采用自底向上或自顶向下的方法。3) 在进行程序设计时,先根据问题的定义描述出各个输入变量和输出变量之间的数学关系,即建立数学模型,然后绘制流程图,再根据流程图用汇编语言进行具体程序的编写。4) 在程序设计完成后,利用相应的开发工具和软件进行程序的汇编,生成程序的机器码。(4)系统的调试任务 在系统样机的组装和软件设计完成以后,就进入系统的调试阶段。应用系统的调试步骤和方法是相同的,但具体细节与采用的开发系统(即仿真器)及选用的单片机型号有关。调试的过程就是软硬件的查错过程,分为硬件调试和软件调试。1.2.2系统设计要求 AT89C2051单片机是ATMEL公司8位单片机系列产品之一,是一种20引脚双列直插式芯片。它内含2KB可反复烧录的FLASH存储器,RAM字节也有128个,15个I/O口,5个中断,2个定时,已经可以满足程序的需要,指令也和51系列兼容,基于上述特点,选择它来设计一台智能洗衣机,完全可以达到以下的功能: 1、洗衣工作状态功能:强、弱洗涤; 2、洗衣程序功能:含4种独立程序,即标准洗衣程序、经济洗衣、单次洗衣、脱水功能; 3、特殊功能:故障诊断、安全保护、防振、暂停、间歇工作、声光显示功能。洗衣机要完成洗衣工作,除了对一般洗衣过程的人工工作及效能进行模拟之外,还要根据洗衣机的机械电子性质进行有关控制和检测。 对于一台全自动洗衣机而言,首先要求能完成洗衣功能;同时还要根据用户的不同要求设置几种不同的洗衣程序;还要考虑水流的情况决定洗涤的弱强情况;另外,还要对洗衣过程出现的故障进行诊断;保证高速运转是脱水的安全性等。所以对全自动洗衣机,一般要求具有如下基本功能: (1)弱强洗涤功能。要求强洗时正反转驱动时间各为4S,间歇时间为1S;弱洗时正 反转驱动时间各为3S,间歇时间为2S。 (2)4种洗衣工作程序,即标准程序 经济程序 单独程序和排水程序。标准程序是进水洗涤漂洗洗涤;脱水,如此循环3次,每循环一次洗涤或漂洗环节时间比上一循环同一环节时间减少2min,具体是第一循环为洗涤,时间为6min,第二第三次循环为漂洗,时间分别为4min和2min.排水时间采用动态时间法确定,脱水时间为2 min.经济程序与标准程序一样,只是循环次数为二次。单独程序是进水洗涤(6 min)结束(留水不排不脱)。排水程序是排水脱水结束,时间确定与上述程序相应环节相同。(3)进排水系统故障自动诊断功能。洗衣机在进水或排水过程中,若在一定的时间范围内进水或排水未能达到预定的水位,就说明进排水系统有故障,此故障由控制系统测知并通过警告程序发出警告信号,提醒操作者进行人工排除。(4)脱水期间安全保护和防振动功能。洗衣机脱水期间,若打开机盖时,洗衣机就会自动停止脱水操作。脱水期间,如果出现衣物缠绕引起脱水桶重心偏移而不平衡,洗衣机也会自动停止脱水,以免振动过大,待人工处理后恢复工作。 (5)间歇驱动方式。脱水期间采取间歇驱动方式,以便节能。本系统要求驱动5s,间歇2s,间歇期间靠惯性力使脱水桶保持高速旋转。 (6)暂停功能 。不管洗衣机工作在什么状态,当按下暂停键时,洗衣机需暂停工作,待启动键按下后洗衣机又能按原来所选择的工作方式继续工作。 (7)声光显示功能。洗衣机各种工作方式的选择和各种工作状态均有声光提示和显示。1.3系统解决的问题和拟采用的研究手段本课题主要是研究基于单片机的全自动洗衣机控制系统软硬件设计。首先要熟悉设计内容,学习掌握单片机的使用方法;精确分析并设计出该控制系统的全部工作流程图,确定输入、输出的名称功能;设计系统软件并在PC机上仿真模拟调试;设计并制作硬件模拟电路盘,接电模拟调试;软硬件联合调试,实现全部功能,完成设计并撰写毕业论文。针对课题采取以下研究方法及步骤:1、各种元器件以及芯片的选择 2、硬件电路的设计3、用汇编语言完成软件方面的设计4、结合电路对程序进行调试5、找出程序中的错误,改正这些错误1.4本文的工作本文的工作就是介绍如何做一个全自动洗衣机,第2部分给出相关方案的研究为后面程序设计打下基础,第3部分给出了系统的总体设计,对程序的模块分析、设计思想第4部分给出详细的实现过程和重要的技术实现。最后给出了我对这个设计一个看法,这个系统有些什么特色,还有展望之类的。第二章 系统的总体设计2.1核心单元电路洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,全自动式洗衣机因使用方便得到大家的青睐,全自动即进水、洗涤、漂洗、摔干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可供用户选择。那么我们先来说说它的硬件设计。硬件电路框图如图1所示,在该硬件系统中主要由核心单元电路、进水阀控制电路、排水阀控制电路、电机转动控制电路、状态显示电路、特殊功能电路等单元组成。CPU(AT892051)状态显示电路排水阀电路进水阀电路电机控制电路特殊功能电路电源电路 图11 核心单元电路单芯片微处理器是属于Embedded System(嵌入系统),此系统的是把CPU 加上一些少量的记忆体和输出入组件(I/O),都嵌入在一颗芯片内,再使用 特定的组译和编译软体编辑程序,利用烧录器把程序储存到单芯片,如此 加上一些简单的周边电路,即可变成一个控制系统,所以单芯片又称为微 程控器(microcontroller)。8051是由INTEL公司发展出来的8bit MCU(微处理器),目前在工业界 的应用相当的普及化,目前已有相当多家的公司也制造与8051兼容的单晶 片,除的基本的构造相同外,更增加其周边的控制功能 ,例如DALLAS 公司生产的DS87C550,已经内建A/D转换和PWM,如此可减少周边组件 和布线的成本,而国内的华邦电子公司也推出了40MHZ W78C51/52/54/58 ATMEL半导体公司的AT89C51系列的产品,不需紫外线的清除,而是用电 子式抹除,比一般的51系列更为方便,目前在一般的学校实习,大都采用此 系列产品。PHILIPS半导体公司出产的P87C552家族,除了51本身的UART 外,更增加的I2C(Inter-integrated Circuit)的功能,这是利用SDA和SCL两条 传输线,和周边的IC互相沟通、传送资料,而且这些IC都必须有I2C的编 号,这使得选购IC时,受到一些限制,所一在目前的工业应用上,还不是 相当的普及化。由于51家族繁多,所以在设计之前,必须针对51家族功能有相当的认识 如此才能选购符合自己所需,而且价格便宜的MCU。INTEL 8051家族介绍: INTEL公司是第一家出产8051,其它公司也依照INTEL所发展出来的8051 为最基本的架构,再加上自己一些额外的功能以显示出自己的特色,让使用 者能依照电路所需,选择最适合的8051去做控制,而且最重要的是,为了方 变设计者能随时更换不同厂牌的8051,其接脚大都是40Pin,而且每Pin的定 亦都相同,但也有24Pin(87C748、87C751)和68Pin PLCC 包装(DS87C550),不过这些都是特殊规格的MCS-51。 MCS-51单芯片一般分为三个版本: 1.单芯片内部不包含程序记忆体,称为ROMless。 2.单芯片内部已内建ROM。 3.单芯片内部已内建EPROM。 其中(2)和(3)的区别在于(2)的单芯片只可烧录一下,较适合于程序已完成,用 于大量生产,因为其价格较便宜,可节省产品的成本,(3)的单芯片适合用于 程序发展阶段,因为需要重复的更改程序,而内含有EPROM的MCS-51,只 需要使用紫外线清除器,就可把MCS-51的程序记忆体清为空白,达到重复烧录的特性。INTEL公司出产的各版本MCS-51编号如下:组件编号内部程序内存大小定时器中断个数ROM容量RAM容量8031AHNone128*8RAM2*16Bit58051AH4K*8ROM128*8RAM2*16Bit58051AHP4K*8ROM128*8RAM2*16Bit58751H4K*8EPROM128*8RAM2*16Bit58751H-84K*8EPROM128*8RAM2*16Bit58751BH4K*8EPROM128*8RAM2*16Bit58032AHNone256*8RAM3*16Bit68052AH8K*8ROM256*8RAM3*16Bit68752BH8K*8EPROM256*8RAM3*16Bit6其特性如下: 1.是一个8位的MCU。 2.具有布尔代数的运算能力。 3.4个8位Port,共有32条双向且可独立被控制的I/O Port。 4.有128*8 RAM,可以储存资料记忆体(8052为256*8)。 5.有4K*8 ROM的程序记忆体(8052为8K*8)。 6.有2组16 Bit计时器(8052有3个)。 7.具有全双工传输信号UART。 8.5个中断源(8052有6个),具有两层优先权中断架构。 9.内部有时脉(CLOCK)振荡器电路(12MHZ)。 10.程序记忆体(ROM)可扩充至64K Byte。 11.资料记忆体(RAM)可扩充至64K Byte。 ATMEL家族介绍:ATMEL公司所出产的ATC89C51可以说是目前一般在实验阶段最时常 被用到MCS-51,因为ATMEL所出产的MCS-51系列其程序记忆体是做成 Flash memory,可以省略使用EPROM照紫外线的时间,而且重复烧录的次 数多,价格又比价一般的便宜,其烧录的次数可高达1000次,8051之所以 能如此盛行,ATMEL公司其功不可没,因为它使学习者的学习方式变的简单 价格上也EPROM型的8051系列便宜的多,虽然目前DALLAS公司所推行 的高速8051(HSM)已渐渐威胁到ATMEL的地位,不过它目前所推出的51系 列含有更高的速度和增加了更多功能,未来和DALLAS公司所推出的8051 都值得消费者注意。为了方便让读者选购ATMEL公司出产的MCS-51,以下 介绍其IC编号所代表的意义:ATMEL公司生产的各版本MCS-51编号如下:组件编号程序内存(Program Memory)数据存储器容量(Data Memory Bytes)16bit定时器(16bit timer)AT89C10511K Flash64 RAM1AT89C20512K Flash128 RAM2AT89C514K Flash128 RAM2AT89C328K Flash256 RAM3AT89C5520K Flash256 RAM3AT89S82528K Flash256 RAM2K EEPROM3AT89S5312K Flash256 RAM3由于AT89C51/52/55是一般较为通用的MCU,我们就把它与8051/8052做功能上的比较,其所增加功能如下 :1.具有4K/8K Bytes可重复规划的快闪记忆体(Reprogrammable Flash Memory),可写入/抹除1000次以上,程序可保存10年以上。 2.操作频率:0MHz24MHz(AT89C55为高速可达33MHz)。 3.操作电压:5V 。 4.AT89C51 具有两层优先权的5个中断向量结构,AT89C52/55具两层优先权的6个中断向量结构。 5.三个可规划的记忆体上锁位。 6.ALE脚可规划为,只在执行MOVC和MOVX时才动作。(可减少EMI,因为方波的电磁干扰很大) 7.AT89C52/55的计数器2共有四种操作模式: 1)捕获(capture)。 2)自动重载(auto-reload)(往上或往下计数) 。 3)鲍率产生器(baud rate generator) 。 4)时钟输出(clock-out)。 其中第(2)种操作模式增加了可往上或往下计数的功能(一般为上数功能), 第(4)种操作模式为新增加的功能,利用P1.0可以规划出50%责任周期的 时钟输出。 而AT89S53增加了一个相当令人注意的功能:ISP,这个功能使得程序可经 由ISP(In-System Reprogrammable)接口下载,其具有12K可可重复规划的快 闪记忆体,可写入/抹除1000次以上,使得使用者更加方便使用。Dallas家族介绍: Dallas公司所出产的8051家族,一般都是用在对高速有严格要求之下才会考虑使用,一般统称为高速微控器(HSM),目前较为常用得有DS80C310和DS80C320,如果考虑高速动作这两颗是一般常用的微控器,而且价格和其它高速微控器来比是较为便宜的,但唯一的缺点是其内部没有ROM,一般都是外接EPROM,但不能超过64K 位组,由于在高速动作,所以周边的IC存取速度就需要相当的注意,以74HC373来说,就要换成74F373,在EPROM的存取速度也要配合微控器的振荡器频率,一般模拟所用的ICE是无法做高速模拟的所以必须使用Dallas公司自己出产的ICE;以往Dallas公司所标榜的是高速微控器,但目前华邦公司也出厂了高速微控器(40MHZ),其速度不输于Dallas的产品,如果设计上对速度有严格的要求,倒也可以考虑一下华邦的W78E51/52 /54/58,但假设你要整合性强又要高速的话DS87C550或许可以满足你的要求。以下介绍其IC编号所代表的意义:Dallas公司出产的各版本MCS-51编号如下:组件编号程序内存(Program Memory)定时器/计数器串联I/O(Serial I/O)DS80C310NO3 1DS80C323NO3+WDT2DS87C52016KB EPROM3+WDT2DS83C53016KB EPROM3+WDT2DS87C53016KB EPROM3+WDT2DS87C5508KB EPROM3+WDT2WDT:看门狗计时器 Serial I/O:UART 一般常用的为DS80C310和DS80C320,我们就把它与80C32做功能上的比较,其所增加功能如下 : DS80C310:1.有两组DPTR,一般只有一组。 2.振荡器频率范围:033MHZ,一个机械周期需4个振荡周期,一般为12个振荡周期。 3.可变机械周期的MOVX指令,用来配合ROM或周边组件的读取速度。 4.有6个外部中断,一般只有/INT0和/INT1。 5.有两层优先权的10个中断,因为外部中断多了4个。 DS80C320除了具有DS80C310外,还增加了一些功能: 1.有13个中断源,其中包含了6个外部中断。 2.有看门狗计时器(Watchdog timer)的功能。 3.提早警告电源失效中断。 4.电源下降自动重置(Rest)功能。 目前Dallas公司所出产的微控器除了以上介绍的功能外,更添加了其它的功能,而且是百分之百和8051兼容,这使得使用者在设计时更加的方便,现就以DS87C520为例: 1.有OTP(只能烧录一次)和EPROM(可多次烧录)版本,增加使用的弹性。 2.可用软体规划特殊功能暂存器(SFR),控制ALE脚对EMI干扰。 3.可用软体规划特殊功能暂存器(SFR),控制指令周期速度为÷64或是÷1024,一般内定÷4(8051为÷12)。 4.可用MOVX指令读取内部1K Bytes 的SRAM(一般只有256 Bytes的资料记忆体)。 5.内部的16K Bytes 的ROM,可用软体规划特殊功能暂存器(SFR),成为从0到16Kbytes的ROM使用。 由于Dallas的微控器增加了许多的功能,如果使用者有需要使用的话,就必须事先在程序中定义特殊功能暂存器(SFR),否则在组译时会产生错误的讯息,但如果你没有使用到这些特殊功能,就不需去定义,这是在使用Dallas微控器时必须注意的事情。 目前在8位微控器的市场,有Microchip公司出产的PIC16CXX,其特色为省电、低功率,而且对于周边的电路整合性比8051强,因为其内部有些已内建A/D、PWM、I2C、LCD控制功能,这让使用者有更多选择的空间,如果读者有兴趣也可上网()查看该公司的资料,而且也可向该公司索取资料;另外还有Motrola公司所出产68HC05,该公司所出产的微控器在工业界更是占有一席之地,其使用者和8051相比是不相上下;ATMEL公司目前也相当积极在推动AVR微控器,而且它还提供整套发展工具给学校做实验,未来的发展值得注意。 综合考虑系统扩展方便性、系统工作可靠性、性价比等因素,系统主机芯片采用ATMEL公司所出产的ATC89C51。全自动洗衣机的控制逻辑电路如图2所示。它由单片机AT89C2051为核心加上有关集成电路及元器件组成。从图中看出,这个全自动洗衣机控制逻辑电路相当简单。 全自动洗衣机的工作部件有3个,这就是电机.进水阀和排水阀。电机是洗衣机的动力源,它的转动带动洗衣桶和波轮的转动,从而时现对衣物的洗涤。进水阀用于控制洗衣机的进水量。排水阀用于控制排水。电机在脱水时还高速旋转带动衣物脱水。 电机的状态有3种,即正转.反转及停止状态。电机一般工作在这三种状态的不断转换之中,从而实现洗涤。但在脱水时,只工作在正转高速状态。 进水阀和派排水阀则只有开.关这两种状态。 从图2的控制电路中可以看出:AT89C2051的P1端口中的P1.0P1.3共四条I/O线通过4块SP111O新型固态继电器分别直接驱动洗衣机的这些工作部件。SP1110是一种固态继电器,内有发光二极管及光触发双向可控硅,1050mA输入电流即可使双向可控硅完全导通,输出端通态电流为3A(平均值),浪通电流15A(不重复)。之所以选用这个器件,是因为它一方面可使电路进一部简化,另一方面还可使强.弱两类电完全隔离,保证主板的安全。 74LSO5为六反相器,用其作为中间反相器,其中的4个反相器可分别驱动4个SP1110继电器,剩余两反相器用于驱动LED5和LED6。 图274LS139为双2-4线译码器,选用它可解决CPU I/O线数量的不足。从控制要求可知,洗衣机有4种不同的显示来加以区别。74LSW139双2-4线译码器仅占用CPU的P3.0和P3.1两口线即可提供4种不同显示的驱动, 其逻辑关系是:P3.0,P3.1为“11”时LED1亮,指示标准程序;为“10”时LED2亮,指示经济程序;为“01”时LED3亮,指示单独程序;为“00”时LED4亮,指示排水程序。 洗衣机的暂停功能和安全保护及防震动功能采用中断处理方式。这两个中断分别对应于CPU的外部中断“0”和外部中断“1”。中断信号通过TC4013BP双D触发器 的两个Q/分别加到CPU P3.2和P3.3口线由触发器锁存直到CPU响应中断为止。开盖(安全保护)或不平衡(防振动)中断信号通过由BG1,BG2组成的反相器送至TC4013BP的11脚CP端,经触发器的第12脚(Q/)加到P3.3。本系统对开盖和不平衡中断采取相同的处理方法,因此,共享外部中断“1”。 为了充分利用(CPU的I/O口线,P3.4和P3.5采用分时复用技术,每线具有两个功能。在洗衣机未进入工作状态或洗衣机处于暂停状态期间,P3.4为输入线,用于监测启动键的状态,当启动键按下时,洗衣机即进入工作状态或从暂停状态恢复到原来的工作状态;在洗衣机暂停中断响应期间,P3.4为输出线,用于撤消暂停中断请求。在洗衣机进水或排水期间,P3.5被用作输入线,用于监测水位开关状态,为CPU提供洗衣机的水位信息;在洗衣机高速脱水期间,当发生开盖和不平衡中断时,P3.5为输出线,用于撤消中断请求信号。CPU的P3.7线用于驱动蜂鸣器发出各种告警信号。4 ,5脚外接6MHz的晶振。1脚通过10uF电容接到+5v电源,可实现上电自动复位。K7为强制复位键。洗衣机的强.弱洗可通过K1键进行循环选择。K1还具有第二功能,即当洗衣机发生故障转入报警程序后,按下K1键可使洗衣机退出报警状态回到处始待命状态。洗衣机工作程序可通过K2键循环选择。洗衣机的工作状态可通过LED7LED9进行显示。脱水期间系统在响应开盖或不平衡终止后,CPU采取软件查询的方式方式通过P1.6线对盖开关进行监测以确定洗衣机是否继续进行脱水操作。2.2工作控制程序设计由AT89C2051控制的全自动洗衣机的工作程序框图如图3所示。从程序框图可以看出,这个控制程序也较为简单,所以,占用的存储器容量不大。 上电复位初始化P3.0,P3.1:1,1P1.7 :1扫描K1,K2,K4NY判断57H相应工作程序序工作时间限制之内Y结束故障处理程序人工解除从程序框图中可以看出程序的基本流程,系统上电复位后,首先进行初始化,默认标准洗衣工作程序和强洗方式,然后扫描K1,K2和启动键K4,这时洗衣机处于待命状态。通过K1,K2可分别修改强/弱洗方式和洗衣工作程序。扫描过程中当发现启动键K4按下时,洗衣机即从待命状态进入工作状态。 洗衣机进入工作程序后,系统首先根据RAM中57H单元的特征字判断洗衣机的洗衣工作程序,若特征字为:01H为标准程序,02H为经济程序。进水操作P1.0置位驱动进水阀开启。进水期间系统不断检测水位开关K5的状态,当检测到K5闭合时,说明进水以达到预定水位。若在规定的4min极限内为检测到K5闭合,说明进水系统发生故障,此时洗衣机退出工作状态,程序跳转到FW为标号地址的故障处理程序段进行报警,其处理方法是:将P1.0P1.3位全部置“0”,中止洗衣机的各中操作,然后洗衣机以响1s停2s的规律不断地发出报警信号,直到人工干预即按下K1键后为止(按下K1后,程序跳转回主程起始地址,洗衣机又回到待命的初始状态)。 在正常情况下,进水期间检测到K5闭合时,说明进水以达预定水位,这时洗衣机进入下一程序即洗涤工作。因为电机在洗涤或漂洗工作时有正、反转和间歇三种状态,所以用P1.2,P1.3两线才能实现对惦记这三种状态的控制。其逻辑关系是:P1.3,P1.2为“00”时电机间歇,为“01”时正转,为“10”时反转。洗涤时间为6min.洗涤结束后,系统通过一条判断指令,判断是否排水。由控制要求可知,若不排水则为单独程序,这时程序直接跳到结束,否则进入排水进程。 排水时间采用动态时间法确定,其原理是;根据常用的空气压力水位开关的特性(即在进水中当水位达到预定水位时水位开关就接通;在排水中当桶内水位下降11cm 后,水位开关才断开),在排水过程中若从开始到开关断开所需时间为D,则整个排水所用时间为2D+50S(经验值)。若在规定的1min极限时间内,系统检测不到水位开关K5断开,说明排水系统有故障,程序跳转至故障处理程序段发出警告信号,其处理程序段发出告警信号,其处理方法与进水系统故障相同。 排水结束后,洗衣机接着执行脱水操作,P1.1维持置位状态,保持排水阀开启,P1.2按5s置位2s 清0的规律连续驱动电机高速旋转2min,然后脱水结束。脱水结束后系统通过一条判断指令判断整个洗衣工作是否结束。其原理:是洗衣机在每次洗涤或漂洗工作环节结束之后,洗衣工作程序标志57H单元减1一次,在脱水脱水工作结束,洗衣机报警三声后。即返回初始待命状态。若洗衣工作尚未结束,洗衣机再次执行进水操作,进入下一循环。以上是洗衣机工作的大概流程,工作过程中所许的各种计时,均由定时器“0”定时中断服务程序提供。定时器“0”设置为定时方式1,每100 ms产生一次中断,因此,TL0,TH0装入的常数分别为0B0H,3CH。定时器“0”中断服务子程序入口地址放在0BH单元中,洗衣机进入工作状态后定时器即被启动/每中断一次,70H单元累加1一次,累加到0AH时,为1s,因此71H单元累加1一次,该单元累加至3CH时,为1 min,这时72H单元累加1一次。系统根据这几个内存单元中的数据就可以确定洗衣机工作各个进程的时间。在暂停中断以及开盖或不平衡中断响应期间,定时中断被禁止,计时各单元内容不变。 洗衣机的暂停中断在洗衣机进入工作状态后,中断请求即被设置为允许,中断请求有效;而开盖或不平衡中断只有在洗衣机进入高速脱水的工作进程时,中断请求才被设置为允许,请求信号有效。这两个中断服务程序比较简单。2.3模拟软件调试单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源