1、毕业论文 (设计)基于单片机的洗衣机控制系统院 系 :专 业:年级(班级):姓 名:学 号:指导教师:职 称:完成日期:摘 要本文以STC89C52单片机为核心设计了全自动洗衣机控制系统,本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、预约、脱水和结束报警五个阶段。控制系统主要由单片机主控系统组成。单片机主控系统负责控制洗衣机的工作过程,主要由STC89C52单片机、按键、蜂鸣器、LCD、LED、电机等组成。本系统的电路并不复杂,采用C语言编程,Keil和Proteus联调进行软件仿真,最后完成实物并且总体调试成功,给STC89C52单片机载入软件程序后,能够实现全自动洗衣机的
2、基本功能。虽然不能与电器市场上的洗衣机控制系统媲美,但也具有一定的实用性。关键词:STC89C52RC单片机;电机控制;全自动洗衣机;预约AbstractThis article designs a full-automatic washing machine control system with STC89C52 as core. This system realizes whole working course of full-automatic washing machine, including five parts: user parameter input, wash,subsc
3、ribe, dehydrate and ending music play. Control system is mainly composed of single chip microcomputer control system Digital control circuit takes charge of controlling the working course. It consists of STC89C52,buttons,buzzer,LCD1602, LED,Motor. The system software design using C language programm
4、ing, Keil and Proteus software simulation FBI finalize the overall physical and debugging success. After downloading the program to STC89C52, this circuit can realize basic functions of full-automatic washing machine. It seems hard for this control system to compare with perfect ones in the electric
5、al appliance market, but it has certain practicability.Key words: STC89C52RC SCM; Motor control; automatic washing machine ; subscribe目 录1 引 言11.1 研究意义1.1.2 国内外研究现状11.2.1 洗衣机的分类11.2.2 全自动洗衣机在国内外的现状及水平21.3 研究思路与结构22 总体方案42.1 总体方案概述42.2 主控部分方案42.3 显示模块方案53 硬件电路设计73.1 硬件设计原则73.2 STC89C52单片机硬件结构73.3 电源电
6、路93.4 单片机最小系统的设计93.4.1 时钟电路93.4.2 复位电路103.5 洗衣机控制系统的总电路103.5.1 显示模块123.5.2 电机控制模块143.5.3 进水阀控制模块153.5.4 排水阀控制模块163.5.5 蜂鸣器驱动模块163.5.6 按键模块174 软件设计184.1 软件工具介绍184.2 系统程序设计194.2.1 系统程序流程图194.2.2 标准洗衣程序设计204.2.3 洗涤程序的设计204.2.4 漂洗程序的设计214.2.5 脱水程序的设计225 系统仿真235.1 Proteus软件介绍235.2 Proteus仿真235.2.1 仿真初始化2
7、35.2.2 标准程序仿真结果245.2.3 经济程序仿真结果255.2.4 预约仿真结果286 系统调试306.1 硬件调试306.2 软件调试316.3 实物调试326.4 调试心得357 结论36谢 辞37参 考 文 献38附录A 仿真图39附录B 原理图40附件C 元器件清单41附录D 实物图42附录E 相关程序43V59基于单片机的洗衣机控制系统1 引 言在国内,由于水资源的缺乏以及水费有所提高,因此节水型的洗衣机在国内比较畅销,而用水量较大的洗衣机则可能会被淘汰。对这种现状,我国的洗衣机生产商对于洗衣机的设计做出调整,向市场推出一批节能型全自动洗衣机。目前全自动洗衣机的控制功能都是
8、由单片机实现的,以单片机为核心设计的洗衣机控制电路组成相对简单,而且实用性很强1。工业发展越来越快,人们对洗衣机工作性能的要求也更高,再加上人们环保意识的加强,洗衣机要更加环保和节能,设计者不得不去想办法解决这些问题。1.1 研究意义目前我国的洗衣机的种类有很多,但是农村大部分还是半自动洗衣机居多,农村市场需求也会越来越大,这就要求设计者们对农村市场的需求设计出更人性、更方便、更快捷、更经济的全自动洗衣机。对基于单片机的洗衣机控制系统设计进行深入研究,进一步掌握智能家具的应用和设计方法,同时也为将来从事电子信息行业打下一定基础,所以本课题具有实际意义。.1.2 国内外研究现状1.2.1 洗衣机
9、的分类1半自动型洗衣机由洗涤、脱水两部分组成。先自动完成洗涤、漂洗。再由人工把洗净的衣物放入甩干桶中脱水。2全自动型洗衣机(1)机械全自动型:由电动程控器控制。(2)电脑全自动型:由电脑程控器控制。它能自动实现洗涤、漂洗、脱水等所有功能2。1.2.2 全自动洗衣机在国内外的现状及水平全自动洗衣机根据结构不同可分为波轮式、滚筒式和搅拌式三大类。滚筒式居多占全球洗衣机市场的52%,波轮式和搅拌式分别占33%、15%3。以下仪对波轮式和滚筒式两种洗衣机进行比较,以下仪对波轮式和滚筒式两种洗衣机进行分析。(1)滚筒式洗衣机洗衣的特点:省水,省洗衣粉。高温洗涤有一定的灭菌作用。 洗涤过程噪声小,可以有效
10、屏蔽内桶转动声和水流声,可以自动投放洗衣粉,漂白粉等,使洗涤更科学,设有防皱浸泡功能,自动化程度高。欧美将近100的家庭使用的都是滚筒式洗衣机。 (2)波轮式洗衣机洗衣特点:在模糊控制的洗衣机使用单片机程序控制器,通过传感器的信号反馈自动调整洗衣提高洗衣高效性。与滚筒式相比在节水节能上有所欠缺,但是比滚筒式洗衣机便宜。业内人士表示,尖端洗涤技术的革新,所表现出的洗衣方式更加注重健康和个性化,已在市场发展中倍受欢迎4。1.3 研究思路与结构对全自动洗衣机要求具有如下基本功能:1强、弱洗涤功能。强、弱洗涤功能。根据衣物的种类和脏污程度确定选择强洗或者弱洗。一般床单、毛巾棉织品选择强洗,合成纤维和毛
11、丝织物选择弱洗。24种洗衣工作模式,即标准模式、经济模式、预约模式和单独脱水模式。标准程序洗涤一次,漂洗3次。当电极传感器检测到水位低于低水位时,启动脱水,时间为3min。脱水程序是排水脱水报警结束。(为了便于观察结果,在此次实物设计中时间有所调整)3进、排水系统故障自诊断功能。洗衣机在进水或者排水过程中,若在一定的时间内进水没有达到预定的高水位或排水没有低于预定的低水位,就说明进、排水系统有故障,此故障由电极传感器检测通过控制系统测知并由蜂鸣器发出报警信号,提醒操作者进行人工排除故障。4脱水期间安全保护功能。如果洗衣机在脱水期间,机盖被打开时,洗衣机就会自动停止脱水操作,保护操作者的人身安全
12、5即时暂停功能。6显示功能。显示洗衣机各种工作方式的选择和各种工作状态5。本文的基本结构如下:(1)引言介绍了洗衣机的发展,针对研究现状提出设计思路和结构。(2)系统总体设计,对元件进行论证选择,同时对设计系统进行分析,以确定最终的系统解决方案。 (3)系统硬件电路的说明和各个硬件模块设计的详细描述。(4)系统程序设计流程的描述。(5)系统软件设计仿真的阐述,主要描述系统仿真软件、如何仿真以及仿真结果。(6)介绍硬件电路的制作,程序的烧写以及系统的软件和硬件的调试。(7)总结归纳整个设计并得出结论,提出不足,展望进一步发展的方向。2 总体方案2.1 总体方案概述本设计以STC89C52作为核
13、心器件,使用C51编程实现全自动洗衣机的基本功能。采用LCD1602液晶显示模块作为全自动洗衣机的显示窗口,使用12MHZ的晶振作为系统的时钟信号。在硬件设计时,使电路原理图清晰反映全自动洗衣机控制系统的硬件。在系统调试时,通过RS-232串口将程序烧制到单片机开发板上,硬件调试全自动洗衣机的每一个功能模块。按照原理图将元件在万能板上焊接好,完成实物设计。2.2 主控部分方案方案一:PLC设计PLC主控模块(如图2-1)以PLC编程设计电气控制系统,硬件设计人机界面,选择洗衣机工作模式,实现控制洗衣机电机工作,传感器组成用来采集检测数据的检测系统。 图2-1 PLC控制系统组成方案二:STC8
14、9C52单片机设计利用STC89C52单片机作为核心系统,包括按键输入、机盖开关、水位传感器、LCD显示、报警系统、进水排水系统等几个模块组成。通过单片机编程,实现各个部分的有序运行。STC89C52单片机控制系统如图2-2:图2-2 STC89C5单片机控制系统组成PLC可编程控制器功能强大,作为洗衣机的控制系统非常适合,但是由于价格昂贵,不经济,所以放弃这个方案。 STC89C52单片机功耗低,体积小巧,携带方便,价格低廉,编程简单,支持用串口直接下载程序,不用ISP下载器,适合初学者练习,同时应用广泛,技术成熟。基于以上考虑,我选择了STC89C52这款单片机芯片作为数字控制电路的核心。
15、对于像全自动洗衣机这样的控制系统,电路设计简单明了,实用价值极高。 因此,本次设计采用以STC89C52单片机为核心的控制系统,完成全自动洗衣机的功能设计。2.3 显示模块方案表2-1为显示模块的方案比较。表2-1 显示方案比较方案LCD1602数码管优点辐射小,可以显示字符、图片等,低耗能,控制简单亮度高,成本低,显色性好缺点本身不发光,显色性不好,不适合做图,图像还原不好不能显示字符、图片,耗电由于在本设计中,不但需要显示洗衣机工作状态,而且还要求可以显示预约时间,且LCD1602的低功耗、控制简单、显示画面稳定和成本较低等诸多优点。3 硬件电路设计3.1 硬件设计原则一个单片机应用系统硬
16、件电路设计主要包括两个部分:一个是系统拓展。例如ROM、RAM、I/O、定时器和中断系统等的内容不能满足所需要设计系统功能的要求时,则需要对片外存储器或端口等拓展或者选择适当的芯片并设计能实现所需功能的电路6。二是系统配置,即按照系统的功能要求对外部电路进行设计与扩展。比如显示器、键盘等。系统的拓展和配置主要遵循以下几点原则:(1)尽量的选用已经广泛使用的经典电路,并且要和单片机的常规用法相一致,为硬件系统的标准化、模块化打下良好的基础。(2)单片机系统的拓展以及外围的电路部件,要求充分满足系统相关功能的条件,以便能够进行二次开发。(3)单片机外围电路较多时,一定要考虑其驱动能力。(4)要考虑
17、到单片机系统各个部分的电气性能和驱动能力相匹配。(5)尽可能使用软件功能而避免使用硬件功能。通过程序来实现功能的要求,在不影响单片机系统的性能为前提下,尽可能的使用程序来替代硬件(降低产品成本)。3.2 STC89C52单片机硬件结构STC89C52是一种低功耗、高性能、兼容性好、读写速度快的,由STC公司生产,存储技术好的一种单片机,总线分为数据总线,地址总线还有控制总线。拥有灵巧的8位CPU和在系统可编程Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构,全双工串
18、行口7。此外,STC89C52低功耗的工作方式有空闲和掉电工作方式。这种类型的计算本领比较强,软件编程不呆板,市场上比较常见,价格便宜,技术相对成熟且容易实现,并且每个引脚还有特殊的功能。STC89C52单片机引脚如图3-1所示:图3-1 STC89C52单片机引脚图STC89C52单片机共有40个引脚。主电源引脚是Vss和Vcc;外接晶振引脚为XTAL1与XTAL2;四组八位并行输入输出端口P0-P3口。其中P1口是唯一的单功能接口,当P1口作为输入接口时需要添加上拉电阻以提高该口的输出电压。P2当做一般I/O接口使用,当使用到外部的存储器的时候,这个接口必须置于高电平。P3口不仅可以作为准
19、双向口,还有第二功能8,P3口的第二功能见表3-1所示:表3-1 P3口第二功能引脚第2功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(数据存储器写选通信号输出端,低电平有效)P3.7RD(数据存储器读选通信号输出端,低电平有效)3.3 电源电路单片机系统的电源电路如图3-2所示,220V的电压通过变压器T后变为12V的电压,再通过全桥整流,经过C4后得到平滑的直流电,在通过三端稳压管输出5
20、V的电压输送给各个器件。图3-2 电源电路3.4 单片机最小系统的设计在单芯片上,STC89C52具有灵活的8位CPU和在系统可编程Flash,提供了灵活性高并且有效的解决方案给很多嵌入式控制应用系统9。3.4.1 时钟电路单片机时钟电路是用于与外部晶体实现振荡的电路配合,提供运行的时钟给微控制器,如运行时钟为零的话,单片机将无法正常工作,以及超过微控制器的工作时钟频率将导致微控制器停止工作10。时钟电路就好比人的心脏,假如无时钟电路产生时钟单片机将没法工作。STC89C52单片机采用石英晶体振荡器作为时钟电路脉冲,本次设计当使用内部时钟的时候,在晶振引脚XTAL1和XTAL2之间接入一个11
21、0592MHz的时钟频率晶振,XTAL1和XTAL2分别接一个30PF的电容,然后两电容对地接便可产生所需时钟信号11。电路如图3-3所示:图3-3 时钟电路3.4.2 复位电路在振荡时,复位输入端口必须被允许持续在高电平两个机器周期;复位停止时为低电平。复位期间不产生ALE及PSEN信号。复位后,STC89C52从程序开头地址重新运行。复位键用于单片机运行进入一个无限循环或者当发生错误时候重新启动程序。因为人为以最高速按下按钮保持接通时间也会有数十毫秒,所以绝对可以达到复位的时间需要,当给RST输入高电平时,单片机就进行复位和初始化。上电复位的电路接法是RST引脚一面接一个电容到电源端,另
22、外一面接一个电阻R接地。上电复位其实是借助电容器充电原理完成的。相比较,本设计采用手动按钮复位,其电路操作简单,而且不需要编程。电路图如图3-4所示:图3-4 复位电路3.5 洗衣机控制系统的总电路洗衣机控制系统的总电路如图3-5所示。本设计的控制系统由SCT89C52单片机为核心加上有关集成电路及元器件组成。 图3-5 洗衣机控制系统的总电路洗衣机控制系统的工作部件有3个,这就是电机、进水阀和排水阀。电机是洗衣机的动力源,有3种状态,即正转、反转及停止状态。电机工作在这三种状态的不断转换之中,从而实现洗涤。但在脱水时,只工作在正转高速状态。进水阀用于控制洗衣机的进水量。排水阀用于控制排水。进
23、水阀和排水阀则只有开、关这两种状态。从图3-5的控制电路中可以看出,洗衣机有4种不同洗衣模式,分别用了SCT89C52单片机的八个接口供8种不同显示的驱动,其逻辑关系是:P1.0为LED2亮,指示标准模式;P1.1为LED3亮,指示经济模式;P1.2为LEDD4亮,指示脱水模式;P1.3为LED6亮,指示强洗程序;P1.4为LED7亮,指示弱洗程序;P1.5为LED8亮,指示洗涤程序;P1.6为LEDD9亮,指示漂洗程序;P1.7为LED10亮,指示正在脱水。LCD1602液晶显示屏可以显示当前洗衣模式、漂洗剩余次数、预约时间、待机状态。暂停功能采用中断处理方式。这个中断对应于CPU的外部中断
24、0”。中断信号直接通过K4键加到CPU的P3.2口线,直到CPU响应中断为止。洗衣机处于暂停状态期间,P3.2口作为输入,它的功能是撤消暂停中断请求,按下启动键恢复到原来的工作状态。P3.3、 P3.4被用作输入口,用于检测水位高低状态,为CPU提供洗衣机进排水的水位信息;在洗衣机高速脱水期间,当洗衣机盖子被打开时,P2.6作为输出口,用于撤消中断请求信号。CPU的P2.5口用于驱动蜂鸣器发出各种报警信号。K5为强制复位键,K1为洗衣机的菜单选择键,K2为功能选择键,K3键为开关键和暂停键。洗衣机的工作状态可通过LED2LED10还有LCD1602液晶屏进行显示。K4键是预约程序,针对特殊用
25、户设计的功能。开机后,选择完合适的程序和过程,按照预约功能的启动方法进行按键,再按启动键进入预约倒计时,洗衣机会在预定的时间自动进入正常洗涤步骤。 3.5.1 显示模块显示模块展示了洗衣机的工作状态:当前工作模式显示;工作进程显示;剩余次数显示;预约时间倒计时。(1)工作模式显示用来只是当前洗衣机所处的工作模式。共有四种工作模式:标准洗衣模式、经济洗衣模式、脱水模式、预约模式。(2)被选洗衣强度时有两种模式可选:强洗、弱洗,被选中的亮灯显示,另一个不亮(3)工作过程显示表示洗涤过程当前到了程序的哪一步;亮灯的表示当前的进程。如图3-6 LED显示由发光二极管组成。由于本电路CPU管脚完全可以实
26、现这么多发光二极管的显示,我们直接通过P1.0到P1.7和P2来实现。STC8952单片机管脚齐全,完全有能力实现。P1.0为LED1亮,指示标准程序;P1.1为LED2亮,指示经济程序;P1.2为LED3亮,指示脱水程序。预约程序则通过LCD显示。图3-6 显示电路图LCD1602它是一种对比度可以调节的点阵型液晶模块,可以显示数字、英文大小写字母和一些普通的符号,具有162个字符的显示丰富内容,还可以显示8个自定义字符。LCD1602的诸多优点使其经常用于便携式仪表和低功耗应用系统中。由于LCD1602识别16进制的ASCII码,故其可以直接给程序赋值。它不仅内部含有复位电路,而且还具有各
27、种控制命令。同时有80字节显示数据存储器DDRAM,内置19257点阵的字型的字符发生器CGROM,8个可由用户自定义的57的字符发生器CGRAM12。LCD1602显示电路如图3-7:图3-7 LCD1602电路图3.5.2 电机控制模块L298的引脚中PIN1和PIN15可与电流帧测用电阻连接来控制负载电路;OUT1和OUT2,OUT3和OUT4之间分别接两个步进电机;STC89C52的P2.3和P2.4端口驱动L298,input1input4的输入信号控制电机正反转,enable则控制电机停转。NPN型三极管放大信号,保护芯片。电机控控制电路如图3-8所示,L298内部逻辑图如图3-9
28、所示,外形图如图3-10所示,引脚如图3-11所示。三极管按结构分,可分为NPN型三极管和PNP型三极管。如图7所示,也可以描述成,电流从发射极E流出的三极管。NPN型三极管集电极电位最高,发射极电位最低,UBE0。NPN型三极管的工作原理:三极管除了有对电流放大作用外,还有开关作用(即通、断作用),当基极加上正偏压时,NPN型三极管即导通处于饱和状态及灯会亮,反之,三极管就不导通,灯不亮13。图3-8 电机控制电路图3-9 L298内部逻辑图3-10 L298外形图图3-11 L298引脚图3.5.3 进水阀控制模块进水阀控制电路如图3-12所示。单片机P2.4控制继电器开关,端口加高电平时
29、进水阀门的开关打开,反之,就关闭。图3-12 进水阀控制电路3.5.4 排水阀控制模块排水阀控制电路如图3-13所示。排水阀控制电路如图3-13所示。工作原理与排水阀控制模块一样图3-13 排水阀控制电路3.5.5 蜂鸣器驱动模块在洗衣机电源接通后,单片机就不断地对接收到的按键、门开关、水位传感器等输入信号进行分析,并结合内部时钟信号,作出当前工作状态是否正常的判断,若出现异常情况,则进行蜂鸣报警14。CPU的P2.5线用于驱动蜂鸣器发出各种报警信号。单片机的I/O口电流太小不足以驱动蜂鸣器工作,可以加一个三极管放大电流。本设计采用PNP型三极管S9012,发射极接蜂鸣器负级,基级接0.1K
30、的电阻,集电极接地。电路连接如图3-14所示:图3-14 蜂鸣器驱动电路3.5.6 按键模块通常情况下我们使用的按键为单独的按键和键盘矩阵。独立式按键是每一个按键各接一个Input Pin。通过检测Input Pin高低电平可以很容易的判断出按键的状态,独立式按键的电路安排部署不刻板,且软件构架轻而易举15。由于考虑到本系统按键盘使用较少,所以采用独立式按键,而且为了电路简洁,易于调试,所以采用了软件消抖。洗衣机面板上有6个按钮K2、K3、K4、K6、SW1、SW2,用来设定工作模式,关闭盖子和启动洗衣机运行。按键电路如图3-15其中工作模式键用来接受工作模式选择的指令,每按一次该键,轮流切换
31、一个工作模式。 K1为强制复位键。洗衣机的强、弱洗可通过K3键进行循环选择。洗衣工作程序可通过K2键循环选择。K6是预约功能键。洗衣机的工作状态可通过LED指示灯和LCD1602液晶进行显示。图3-15 按键电路4 软件设计4.1 软件工具介绍本设计使用以硬件电路为基础,软件配合硬件运行。和汇编相比较,C语言具有诸多优势,便于改进和扩充,而且很大程度的缩短了开发所用周期,故采用C语言进行编程。Keil u Vision4拥有灵活的窗口管理系统,而且多台监视器可以同时被工作人员使用,使工作人员得以彻底掌控的每个地方。更多更新ARM芯片被Keil u Vision4所支持,并且具有之前没有的一些作
32、用。最新的Keil u Vision4 IDE,主要目标在于开发人员的生产力提高到最大化,达到速度更快,程序开发的效率更高。当程序编译成功后可以自动生成*.hex文件,打开Proteus里面的远程调试,在Proteus里面进行调试并运行,当硬件电路完成后通过下载器将*.hex文件下载到单片机STC89C52RC内16。软件截图如图4-1所示:图4-1 keil软件截图4.2 系统程序设计4.2.1 系统程序流程图从程序框图中可以看出程序的基本流程,系统上电复位后,首先进行初始化,然后扫描按键。用户选择一个洗衣模式,按下启动键,就可以实现整个洗衣过程。洗衣机共有4种洗衣模式,分别为标准洗、经济洗
33、脱水,预约。全自动洗衣机程序框图如图4-2:图4-2 系统流程图4.2.2 标准洗衣程序设计默认标准洗衣模式为强洗,洗涤一次,漂洗三次。经济洗衣程序和标准洗衣程序只有在漂洗的次数上有区别。其流程图如图4-3所示: 图4-3 标准洗衣程序流程图4.2.3 洗涤程序的设计洗涤是洗衣过程中的关键。当进水结束后进入洗衣状态,电动机开始工作,洗衣结束进入漂洗。程序流程图如图4-4所示:图4-4 洗涤程序流程图4.2.4 漂洗程序的设计漂洗与洗涤过程操作相同。标准洗衣模式漂洗次数为三次,经济洗衣模式漂洗两次。漂洗程序流程图如图4-5所示: 图4-5 漂洗流程图4.2.5 脱水程序的设计排完水,启动电动机
34、脱水,蜂鸣器报警提醒用户脱水结束。程序流程图如图4-6所示:图4-6 脱水流程图5 系统仿真5.1 Proteus软件介绍本系统仿真所采用的软件是EDA工具软件Protues。Proteus软件为单片机课程实践和应用系统的开发,它是英国Labcenter electronics公司研发的EDA工具软件,不仅是模/数字电路的设计仿真平台,更是目前世界上最好的多种型号单片机系统的设计仿真平台17。Proteus不但能画原理图和电路的仿真,同时它在编译方面支持Keil编译器,具有操作界面简单、包含的元器件丰富等特点。Proteus可以全面仿真单片机的各种功能及其外围电路,能直接根据设计好的原理图进行
35、相应的程序编写,导入虚拟单片机内运行并且能够看到显示状态和输入输出的效果,非常适合开发者使用,它的应用使单片机的开发变得简单轻松。在Proteus的基础上设计者可以为做实物做好充分准备,且接受大量的时间和工作量。5.2 Proteus仿真本设计主要在Proteus软件上绘制好原理图后,打开“使用远程调试监控”,然后调入Keil中已编译好的目标代码文件*.hex,进行电路仿真和调试,然后开始实物制作,使设计效率得到了很大提升。5.2.1 仿真初始化点击Proteus软件的全速运行按钮,初始化系统,LCD1602液晶屏的显示界面如图5-1。这时洗衣机的洗衣程序默认为标准程序。电极传感器检测水位由按
36、键模拟。图5-1 LCD1602显示界面5.2.2 标准程序仿真结果(1)用户按下启动键,洗衣机进入标准洗衣程序。洗衣机自动打开进水阀,给洗衣机的内桶加水,水面没过电极传感器时,也就是水位达到高水位,开始洗涤。如图5-2所示: 图5-2 启动程序(2)洗涤结束,开启排水阀排水,当电极传感器检测到洗衣机内桶水位低于低水位,关闭排水阀开启进水阀给洗衣机内桶加水。如图5-3所示: 图 5-3 洗涤程序(3)洗衣机内桶水位达到高水位,自动进入漂洗程序。第一次漂洗结束,自动开启排水阀排水。最左边的数字显示剩余漂洗次数。如图5-4所示: 图5-4 第一次漂洗(4)当电极传感器检测到洗衣机内桶水位在低水位,
37、洗衣机自动关闭排水阀开启进水阀给洗衣机内桶加水。如图5-5所示: 图5-5 第二次漂洗(5)第二次漂洗结束,开始第三次漂洗。如图5-6所示: 图5-6 第三次漂洗(6)第三次漂洗结束开始脱水,脱水结束,蜂鸣器示警操作者洗衣结束。如图5-8所示: 图5-8 脱水结束5.2.3 经济程序仿真结果(1)按功能模式切换键,选择经济洗衣程序。如图5-9所示: 图5-9 经济洗衣程序(2)按启动键,洗衣机进入经济洗衣程序开始工作,开启进水阀给洗衣机内桶加水,水位至高水位,开始洗涤。如图5-10所示: 图5-10 经济洗涤(3)洗涤结束,洗衣机开始排水,水位低于低水位,自动加水。如图5-11所示: 图 5-
38、11 经济漂洗进程(4)加水至高水位,洗衣机关闭进水阀,开始经济洗衣程序的第一次漂洗,漂洗结束开启排水阀排水。左边数字显示剩余漂洗次数。如图5-12所示: 图5-12 经济洗衣第一次漂洗(5)排水过程中,电极传感器检测水位低于低水位,关闭排水阀并开启进水阀,加水至高水位,进入经济洗衣程序的第二第漂洗。如图5-13所示: 图5-13 经济洗衣第二次漂洗(6)漂洗结束,水进入脱水程序。如图5-14所示: 图5-14 经济洗衣脱水(7)脱完水后,蜂鸣器报警示意洗衣结束。LCD1602液晶显示屏显示洗衣的最后一个程序,并待机。如图5-15所示:图5-15 经济洗衣结束5.2.4 预约仿真结果(1)按功
39、能模式切换键选择好洗衣模式,按预约功能键选择预约的时间。如图5-16:图5-16 LCD1602显示界面(2)选择好洗衣模式和预约时间,按下启动键,LCD1602液晶屏显示预约倒计时。如图5-17所示: 图5-17 预约倒计时(3)预约时间结束后,进入预约的洗衣程序,如图5-18所示: 图5-18 预约洗衣程序后面LCD1602液晶显示的内容就是设定的洗衣模式。6 系统调试6.1 硬件调试在进行硬件调试时,首先检查万用板上布局是否整洁美观,基本功能能否实现,检查原理图连接是否正确,焊接电路是否和原理图一致。然后用万用表逐一的检查时钟电路、复位电路、蜂鸣器模块、LCD显模块等每个模块是否有虚焊、
40、短路、极性错误等现象。另外,还必须检测元器件是不是符合设计要求的型号、规格和安装等。元器件可能由于安装错误而烧坏,也可能安装之前就已经坏了,这时,我们就要替换此元件。以保证电路的正确运行。对于单片机可以用烧写器给单片机烧写一段程序,然后检验单片机是否正常工作。在确认单片机及正常工作后,将主从机的程序用烧写器烧入单片机。对于蜂鸣器报警电路,本设计用一个PNP三极管S9012做驱动。同时要注意发射极与集电极是否接反,发射极接蜂鸣器负级,基级接1K的电阻,集电极接地。检查LCD显示时,首先USB口接上电源,观察LCD能否显示正确的内容,在光线较强的地方可以通过调整与LCD相接的电位器阻值即可。本次设
41、计制作的实物正反面焊接如图6-1所示: 图a 硬件焊接正面 图b 硬件焊接反面图6-1 实物焊接 6.2 软件调试在软件调试的时候先独立调试,即将系统分为拥有简单功能的独立模块,分别将程序写入独立模块行调试。调试完毕再进行整体调试。这样就可以提高调试效率,而且相对容易解决调试中的问题。软件调试主要是对程序进行调整优化以达到最佳的效果。当程序在Keil里面可以编译运行没有任何错误时,使用下载器连接STC-ISP,单片机型号选择STC89C52RC,打开要用的程序文件,选择要下载的程序生成的*.hex文件。检查电脑的设备管理器的接口COM的数值,选择串行口为COM12。由于STC单片机要冷启动,所
42、以要断单片机电,点击下载,给单片机供电,这样就可以把程序烧写进单片机18。经过不断改写程序,然后下载程序,最后得到自己在实物上想要的效果。烧写程序如图6-2所示:图6-2 烧写程序6.3 实物调试实物设计用水杯简单洗衣机内桶,5V稳压电源用手机充电器提供。(1)接通电源,按下电源开关,洗衣机开始工作,默认程序为标准洗衣程序,洗衣机显示界面如图6-3:图6-3 开机状态显示(2)按下开/停键,也就是启动键,洗衣机开启进水阀加水。洗衣机显示界面如图6-4:图6-4 模拟洗衣机进水(3)加水程序设定了加水时间,如果时间到了,电极传感器检测高水位没有接收到信号,蜂鸣器开始报警,等待处理故障。洗衣机显示
43、界面显示如图6-5:图6-5 模拟进水故障(4)处理完故障后,开始洗涤进程,洗衣机显示界面如图6-6:图6-6 洗涤过程(5)洗涤结束,开启排水阀排水,电极传感器检测到内桶水位低于低水位,洗衣机关闭排水阀开启进水阀给内桶加水,电极传感器检测到水位到高水位,洗衣机关闭进水阀,开始漂洗进程。洗衣机显示界面如图6-7:图6-7 漂洗过程(6)漂洗进程具体是:洗衣机开启进水阀开始加水,水位到高水位,关闭进水阀,电机开始高速运转,时间一到,电机运转结束,开启排水阀排水。标准洗衣模式漂洗三次,经济洗衣模式漂洗两次。漂洗结束,开启排水阀排水,洗衣机显示界面如图6-8:图6-8 排水(7)排完水后,洗衣机进入
44、脱水程序。洗衣机显示界面显示如图6-9:图6-9 脱水结束在脱水过程中,如果洗衣机的盖子被打开,电机停止运转并且开启蜂鸣器报警。经济洗衣模式调试也成功了,和软件仿真的结果一致。实物功能完成了本设计的要求。6.4 调试心得在本次设计过程中,从软件设计到硬件设计都是针对本系统的功能去完成的,不仅可以降低成本,而且可以提高系统的稳定性。本设计调试分为硬件调试和软件调试,硬件调试首先是最小系统的调试,最小系统调试结束再对其他的外围电路调试。在硬件设计中要有安全电路,避免元器件在工作时损坏。软件调试是通过仿真对编程的修正。实物调试是验证设计成品的功能是否完全实现。常见的故障:(1) 逻辑性错误:硬件的逻
45、辑性错误一般是因为设计方面的错误,或者在加工过程中因为加工工艺方面的原因造成的。比如开路、短路及相位发生错误等。(2) 元件的功能失效:因为组装造成的错误,元器件的损坏使元器件功能失效。比如二极管的极性、电解电容、集成电路安装方向这些方面的因素。(3) 可靠性低:布局走线不符合规范导致焊接的时候易混淆线路。7 结论本文描述了利用了数字集成电路技术,采用STC89C52单片机、显示电路、电机控制电路、进排水电路、报警电路、按键电路作为洗衣机的控制系统,实现了基于单片机的洗衣机控制系统设计。本次设计的基于单片机的洗衣机控制系统,与传统的洗衣机有一定的区别,除了实现了传统洗衣机的强洗弱洗功能,洗衣期
46、间的安全保护功能,有可供选择的标准和经济两种洗衣模式,具有独特的预约和单独脱水功能,使洗衣更加高效和人性化。通过对毕业设计论文的方案设计与提出,实物的制作与调试,程序的设计与编程。我对大学所学的知识有了新的理解。了解到洗衣机控制器的主要设计思路,巩固了自己所学学科知识。对程序设计有了一定的认识。能够熟练的使用Visio绘图软件画流程图,能够使用Office办公软件对文档的编辑,使用Proteus特设计电路原理图,能够使用Keil u Vision4进行简单的c程序编程。在设计的过程中,由于对洗衣机的研究不够深入,设计洗衣机的功能方案实现起来过于困难,在老师的指导下对方案进行优化,在传统的洗衣机功能基础上增加了预约功能。当然,本设计还有一些不足之处,由于考虑不周到,在确定设计方案后,发现单片机的端口被用完了,语音功能因为没有端口舍弃了。在编程时,由于经验不足,一些语法错误导致程序无法运行。在查阅资料和老师的指导下,最终