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

更新时间:2023-11-21 21:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编号 XXXXX

毕业论文

( 2012 届本科)

题 目: 基于单片机的全自动洗衣机 控制系统设计 学 院: 物理与机电工程学院 专 业: 电气工程及其自动化 作者姓名: XXX 指导教师: XXX 职称: XXX

完成日期: 2012 年 5 月 5 日

二○一二 年 五 月

目 录

基于单片机的全自动洗衣机控制系统 ......................................................................................................... 1 第一章 功能设计 ....................................................................................................................................... 2 1.1 程控器功能设计及说明 ................................................................................................................ 2 1.1.1 六个全自动程序功能设计 ........................................................................................................ 2 1.1.2 预约功能设计 ............................................................................................................................ 2 1.1.3 不平衡调整功能设计 ................................................................................................................ 2 1.1.4 自动断电功能设计 .................................................................................................................... 3 1.1.5 运动浸泡功能设计 .................................................................................................................... 3 1.1.6 故障报警功能设计 .................................................................................................................... 3 1.1.7 桶洁净功能设计 ........................................................................................................................ 3 1.1.8 童锁功能设计 ............................................................................................................................ 3 1.1.9 冷、热进水功能设计 ................................................................................................................ 3 1.2 面板简图 ........................................................................................................................................ 4 第二章 设计方案选择和确定 ................................................................................................................... 5 2.1目前主要应用的单片机机型 ......................................................................................................... 5 2.2负载控制电路的选择 ..................................................................................................................... 5 第三章 系统硬件电路的设计 ................................................................................................................... 6 3.1 硬件结构概述及组成框图 ............................................................................................................ 6 3.1.1 概述 ............................................................................................................................................ 6 3.1.2 组成框图 .................................................................................................................................... 6 3.2 微处理器 ........................................................................................................................................ 6 3.2.1 TMP86C846N的封装及引脚功能 ............................................................................................... 6 3.3 双向晶闸管控制驱动电路设计 .................................................................................................... 9 3.3.1 双向晶闸管的结构及工作原理 ................................................................................................ 9 3.3.2双向晶闸管控制驱动电路原理图及工作原理 ....................................................................... 10 3.4蜂鸣器 ........................................................................................................................................... 11 3.5 水位传感器 .................................................................................................................................. 11 3.6 LED和数码管显示及按键电路 ................................................................................................... 12 第四章系统软件设计 .............................................................................................................................. 15 4.1 软件编程思路 .............................................................................................................................. 15

I

4.2 各模块程序流程图 ...................................................................................................................... 15 4.2.1 监控程序模块 .......................................................................................................................... 15 4.2.2主洗程序模块 ........................................................................................................................... 17 4.2.3 漂洗程序模块 .......................................................................................................................... 18 4.2.4 脱水程序模块 .......................................................................................................................... 19 总 结 ....................................................................................................................................................... 20 参考文献 .................................................................................................................................................. 21 致 谢 ....................................................................................................................................................... 22 附 录 ..................................................................................................................................................... 23

II

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

摘 要:全自动洗衣机电脑程控器由东芝单片机控制。由于其具有内存容量大、输入输出口多、I/O的驱动能力强、指令系统丰富等特点,将其应用在家用电器控制中,可大大简化系统的硬件电路,使系统具有更高的可靠性。

采用双向晶闸管实现无触点控制电机和电磁阀,利用谐振式水位传感器检测水位,发光二极管及数码管显示,按键扫描共用I/O端口,单片机电源引脚及直流电源处都有容阻吸收和电容滤波电路实现硬件滤波。软件编程实现多功能、多程序方便用户选择和出厂调试。 关键字:东芝;单片机;双向晶闸管;软件编程;

Abstract:automatic washing machine with a computer programmed by Toshiba SCM control. Because of its large capacity memory, input and output port, I / O-driven capability and Instruction System features rich, In its application to control household appliances, greatly simplify the hardware circuit, the system has higher reliability.

Two-way, non-contact thyristor controlled motors and solenoids, use of resonant water level sensors, LED and LED display, keypad scanning shared I / O ports, Power MCU pins and DC Power Department has resistance capacity to absorb and filter capacitor filter circuit hardware. Software programming multi-function, multi-user-friendly procedures for the selection and testing manufactured. Keywords:Toshiba;SCM control;Two-way; Software programming

1

第一章 功能设计

洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,全自动式洗衣机因使用方便得到大家的青睐,全自动即进水、洗涤、漂洗、甩干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可供用户选择。变频控制依其高性能、节能等优点在洗衣机的控制中得到广泛应用,而单片机在洗衣机中的控制做用是决定性作用的。

1.1 程控器功能设计及说明 参考数据:

(1)最高工作电压为5.5V

(2)最低工作电压与时钟频率有关:16MHZ时为4.5V,8MHZ时为2.7V (3)在该洗衣机控制电路中需要+5V直流电供给单片机及显示部分,+12V直流电源驱动继电器和蜂鸣器,220V交流电源驱动电机和各种交流电磁阀。

(4)洗衣机的电源电压为220伏特,50赫兹。 1.1.1 六个全自动程序功能设计

六个全自动程序,各程序洗衣特点如表1-1所示:

表1-1 六种全自动程序洗衣特点

程序 标准 水流及特点 洗涤12分钟,漂洗2次,脱水6分钟,洗净能力强。 缺省时间 43分钟 10分钟 33分钟 47分钟 27分钟 34分钟 快洗 洗涤2.5分钟,漂洗1次并喷淋,脱水1.5分钟,洗净能力较轻。 纤细 洗涤10分钟,漂洗2次,脱水2分钟,适合洗涤纤细及高档衣物。 大物 洗涤15分钟,漂洗2次,脱水7分钟,洗涤能力特别强。 防皱 洗涤8分,漂洗2次,免脱水(仅排水),洗涤怕脱水时皱折衣物。 羊毛 洗涤15分钟,漂洗2次,免脱水(仅排水),适合洗涤羊毛衫。 1.1.2 预约功能设计

按动预约键,数码管闪烁显示预约洗衣开始时间进入预约设定状态,可在1~48小时之间选择。每按一次预约键,预约时间增加1小时。到48小时后再按一次回到起始状态。按住预约键不放,时间自动连续增加,可一次设置1~48小时。在预约启动后若开盖,则程序报警提示。

1.1.3 不平衡调整功能设计 1.1.3.1 不平衡调整的判断

在安全开关接通的状态下,若间歇脱水或脱水过程中,出现45?5~200?10ms的瞬间断开,则进入不平衡调整状态。断开超过200ms,判断为开盖。断开不足40ms,不

2

予处理。

1.1.3.2 不平衡调整的工作过程

进入不平衡调整状态,在漂洗状态原选中的灯进行闪烁显示,脱水状态则回到漂洗灯闪烁显示。同时,注水到当前设定水位后,摆平水流运行1分钟,结束后排水回到原来脱水行程中。若进行如此2次修正无效后,则蜂鸣器报警,等待人工处理。

1.1.4 自动断电功能设计 启动自动断电功能的工作情况:

第一,开机10分钟后,不启动程序,则自动切断电源。 第二,洗衣程序结束并进行六次蜂鸣后即时自动切断电源。 1.1.5 运动浸泡功能设计

其洗涤方式是首先预备洗涤搅拌,然后浸泡,搅拌,如此循环。具体洗涤方式如表1-2所示。

表1-2 运动浸泡的洗涤方式

浸泡过程(20') 搅拌2' 浸泡3' 搅拌1' 浸泡4' 搅拌2' 浸泡3' 搅拌1' 浸泡4' 1.1.6 故障报警功能设计

在洗衣机工作过程中,若出现表1-3所列的故障,则单片机能检测故障类型,同时发出报警信号,提醒操作者排除故障。

表1-3 故障报警工作状况

故障原因 故障显示 蜂鸣报警 报警解除 进水报警 进水16分钟不到设定水位 排水报警 排水4 分钟不到空水位 开盖报警 预约启动后开盖;进入脱水状态时开盖 数码显示“E1” 蜂鸣器连续鸣响打开机数码显示“E4” 10秒钟,若报警盖,处理数码显示“E2” 未被解除,以后每故障,然隔16分钟重复蜂后关上 数码显示“E3” 鸣10秒钟 机盖,解不平衡报警 第3次不平衡检测 1.1.7 桶洁净功能设计

目的就是洗衣结束后清洁洗衣桶。打开电源,在未启动状态下,按程序&预约键可选则桶洁净功能,然后按启/停键即进入洁桶程序。在此工作状态下只有启/停键及电源键响应,仅有脱水一个灯闪烁。

1.1.8 童锁功能设计

程序启动后,按水位&功能键即可启动童锁功能。在童锁工作状态下,数码管显示“CL” ,而且所有按键均封锁住不可选,再按水位&功能键可以解除童锁功能。

1.1.9 冷、热进水功能设计

3

冷水灯亮进水时,由冷水进水阀打开;热水灯亮进水时,由热水进水阀打开;冷、热水灯同时亮则进水时两进水阀同时打开。

1.2 面板简图

如图1-1所示:8档水位采用4个灯,一个发光二极管可以显示两种状态,达到节省硬件的目的。程序按键对应的三个灯也是如此,一个灯可以表示两个状态。

图1-1 面板简图

4

第二章 设计方案选择和确定

2.1目前主要应用的单片机机型 (1)Intel公司的单片机

Intel是最早推出单片机的公司之一,主要有MCS-48、MCS-51系列8位单片机和MCS-96系列的16位单片机。在20世纪八、九十年代,MCS-51和MCS-96曾经是我国最流行的单片机,得到广泛的应用。这几年Intel公司注重于奔腾系列微处理器,没有推出新的单片机。

(2)东芝(TOSHIBA)公司的单片机

东芝公司主要有TLCS-870、TLCS-870/X、TLCS-870/C等系列的8位单片机,TLCS-900系列的16位单片机,这些单片机是近几年推出的新型单片机,功能强、可靠性高。

在本洗衣机控制系统中,要求洗衣机能自动检测水位、水温、门开关等参数,自动确定标准洗及快速洗等时间、漂洗次数,并能自动控制洗衣机电机、进水阀、排水阀的工作,同时要求有七个按键输入和六路显示电路,因此该系统是一个多输入、多输出系统。若用Intel的51系列单片机,要么需要进行I/O扩展,要么由于这些单片机驱动能力有限,需外加驱动电路,从而使硬件电路过于复杂。

综合上述考虑,决定选用内部有A/D转换器、驱动能力强的TOSHIBA单片机作为该系统的微处理器,TMP86C846N单片机是TLCS-870/C系列单片机中的典型产品,具有高速率、高性能、低功耗的优点,且结构先进、功能强大。因此我们选择TMP86C846N单片机作为主芯片。

2.2负载控制电路的选择

在洗衣机工作过程中,需要电机的正反转、进水电磁阀及排水电磁阀的频繁动作,因此就需要一种能适应工作于频繁切换场合的开关器件来控制这些负载的工作。

普通开关设备,均属于有触点开关。由于这些开关在开断的过程中,存在着机械触点的位移和产生电火花的可能,所以一般都有着动作速度慢和维修工作量大等缺陷。普通开关的寿命和开断的次数相关,因此在频繁切换的场合其应用受到了一定的限制。

晶闸管作为交流无触点开关没有以上普通开关的各种缺陷,在控制中有着动作快、维修量少、通断次数几乎无限制和没有噪音等优点,因此应用广泛。

鉴于晶闸管自身不可替代的优点,在本控制系统中,采用双向晶闸管作为开关器件来控制电机的正反转及各种电磁阀的通断。

5

第三章 系统硬件电路的设计

3.1 硬件结构概述及组成框图 3.1.1 概述

本程控器有七个按键(水位K1、程序K2、功能K3、水温K4、启动/暂停K5、预约K6、电源K7),十四个发光二极管(四个八档水位显示、三个程序显示、四个功能显示、两个进水显示、一个预约显示),一个双位数码管,实现对洗衣机运行状态的选择和显示。通过不同颜色接插件与洗衣机的冷热进水电磁阀、排水牵引器、电机、水位传感器、安全门开关相连接,由双向晶闸管来控制负载,按设定程序实时执行动作。

3.1.2 组成框图

电机正转按键输入电机反转LED显示器单片机水位频率信号冷水进水阀热水进水阀排水牵引线蜂鸣报警 图3-1硬件结构组成框图

3.2 微处理器

3.2.1 TMP86C846N的封装及引脚功能

TMP86C846N为SDIP42密脚双列直插封装,引脚排列如图3-2所示。

6

图3-2 TMP86C846N引脚排列图

表3-1为TMP86C846N引脚功能说明。

表3-1 TMP86C46N的引脚功能

引脚名 P07(INT4) P06(SCK) P05(SI) P04(SO) P03(TXD) P02(RXD) P01(PWM4/TC4) P00(INT0) P15(INT3) P14(PPG) P13(DVO) P12(INT2/TC1) P11(INT1) P10(PWM3/TC3/PDO3) P20(INT5/STOP1) P21(XTIN) P22(XTOUT) 一般I/O功能 特殊I/O功能 外部中断4(INT4)信号输入端 同步串行口SIO时钟输入/输出脚 同步串行口SIO串行数据输入脚 8位双向输入/同步串行口SIO串行数据输出脚 输出口 异步串行口UART串行数据输出脚 异步串行口UART串行数据输入脚 定时器TC4输入输出脚 外部中断0(INT0)信号输入端 6位双向输入/输出口 3位双向输入/输出口 7

P37(AIN7/STOP5) P36(AIN6/STOP4) P35(AIN5/STOP3) P34(AIN4/STOP2) P33(AIN3) P32(AIN2) P31(AIN1) P30(AIN0) P47 P46 P45 P44 P43 P42 P41 P40 TEST RESET 模拟量信号AIN4~AIN7输入脚或使CPU退出STOP方式的信号8位双向输入/输出口 模拟量信号AIN0~AIN3输入脚 STOP2~STOP5输入脚 8位双向输入/输出口 测试控制输入脚,用户系统中接地 外部复位信号输入脚或内部复位信号输出脚 高频时钟输入脚 高频时钟输出脚 接地 +5V 模拟地 模拟电路电源+5V AD参考电源输入端 XIN XOUT VSS VDD AVSS AVDD VAREF 3.2.2. I/O口资源分配

按键、水位、门开关等信号需要输入单片机,给单片机提供判断处理的依据,所以相应的I/O口设置为输入口。

而显示及控制驱动电路需要输出控制及驱动信号,所以相应的I/O口设置为输出口。表3-2为单片机各个I/O口资源分配表。

8

表3-2 I/O口资源分配表

I/O P40 P41 P42 P43 P44 P45 P46 P22 P47 P30 P31 P32 P35 P36 P37 P34 P10 P12 P13 P14 P15 P00 P01 P20 P21 引脚 9 10 11 12 13 14 15 23 16 40 41 42 3 4 5 2 39 37 36 35 34 26 27 25 22 功能 输出,七段LED数码管显示 其中,P4.0~P4.3兼作水位、功能、程序、进水的状态显示 输入,第1行按键K1~K6输入 输入,第2行按键K7输入 输出,第6列按键及低位数码管显示控制 输出,第5列按键及高位数码管显示控制 输出,第4列按键及进水状态显示控制 输出,第1列按键及水位状态显示控制 输出,第2列按键及程序状态显示控制 输出,第3列按键及功能状态显示控制 输出,排水电磁阀驱动电路控制 输出,热水进水电磁阀驱动电路控制 输出,冷水进水电磁阀驱动电路控制 输出,电机正转驱动电路控制 输出,电机反转驱动电路控制 输出,继电器线圈通断电控制 输入,交流过零检测信号输入 输出,蜂鸣器控制 输入,水位传感器频率信号输入 输入,门开关检测信号输入 3.3 双向晶闸管控制驱动电路设计 3.3.1 双向晶闸管的结构及工作原理

双向晶闸管的结构如下图所示。其引出端子分别为MT1,MT2,门极。通常以MT1作为电压测量的基准点。

9

如图3-3可知,在端子MT2与MT1之间相当于一个PNPN与一个NPNP器件的并联。当门极无信号输入时,它与SCR相同,在MT2与MT1之间不导通。如果MT2施加的电压高于MT1,且门极有正极性信号时,这就可使双向晶闸管导通,电流MT2向MT1流动;如果MT1施加的电压高于MT2,且门极有负极性信号时,这就可使双向晶闸管导通,电流MT1向MT2流动。

3.3.2双向晶闸管控制驱动电路原理图及工作原理

双向晶闸管采用直流触发,鉴于单片机输出触发信号不足以触发双向晶闸管,故需将触发功率放大。

如图3-4所示,负载驱动电路主要包括七达林顿驱动电路ULN2004,电阻R33~R35、R41~R42、R39~R38,电容C16~C21、C28,双向晶闸管TR1-TR5等组成。

电路中的双向可控硅分别控制电机正转、反转,进水(热水、冷水)电磁阀、排水牵引器的通断。由单片机根据按键输入指令或接收到的检测信号,输出相应的控制信号,该信号由芯片ULN2004驱动放大后对可控硅门极施加触发电压,触发可控硅导通,使可控硅处于通路状态。220V交流电路经过负载形成回路,使相应的负载得电运行。

3.3.2.1 电机正、反转及排水牵引器驱动控制原理

当P14脚输出高电平过零脉冲时,经驱动芯片ULN2004输出低电平,则这时来自直流电源电路的+5V电压经TR1(双向晶闸管)的T1极和G极,在经过限流电阻R33到ULN2004内部接地而构成通路,使TR1的T1极和G极间(电阻

~220VC2533uC22473C23C26473100uIC3C19C18C17R3933C200.01u473R3833C210.01u473473TR2TR3473TR4473TR5C16C289R4227100R4127110ULN200487654321P34P10P12P13P14TR1R3527012R34101308A8A1A1A1AR33101401516正转反转冷水热水排水ULN2004HUANGDBAIDCHENGDHONGDZID

1111图3-4双向晶闸管控制驱动电路

110

约为100Ω)产生一个电压降,使TR1导通,于是电动机正转。

同样道理,当P13脚输出高电平过零脉冲时,电动机反转。若要使电动机停转,纸鹞使P14、P13脚都输出低电平即可。此时,只要交流电压一过零点,可控硅就因T1和G间电压为零而自动截止,电动机失电停止运转。同时,控制电机的两个双向晶闸管在任何时候不能同时导通,否则会损坏晶闸管,甚至烧坏电机。当P34脚输出高电平过零脉冲时,可控制排水牵引器的启动停止。

3.3.2.2 冷、热进水阀驱动控制原理

当P12脚输出高电平过零脉冲时,经驱动芯片ULN2004输出低电平,则这时来自直流电源电路的+5V电压经TR3(双向晶闸管)的T1极和G极,在经过限流电阻R35接到ULN2004内部接地而构成通路,使TR1的T1极和G极间(电阻约为100Ω)产生一个电压降,使TR3导通,于是电磁阀线圈带电打开冷进水阀阀门。

同样道理,当P10脚输出高电平过零脉冲时,热进水阀阀门打开。要使阀门关闭,只要使P12或P10脚输出低电平即可。这时,只要交流电压一过零点,可控硅就因T1和G间电压为零而自动截止,电磁阀不带电而关闭阀门。

3.3.2.3 抗干扰措施

电容C16~C19、C28起滤波抗干扰作用,当突然出现干扰信号时,因电容电压不能突变,而不会引起ULN2004内部的变化而造成双向晶闸管的误导通或误截止。

由于电机的电感较大,感应反电势也较大,如果这个电压出现非常迅速,则双向晶闸管将重新导通而失去控制,因此需要在两个8A的双向晶闸管的两个主极上并联一个电阻和电容,组成容阻回路。电容将起到限制感应电势的作用,而电阻用来限制来自器件触发时电容器的浪涌电流和阻尼由电容和电感构成的振荡。如图3-21,在双向晶闸管的两端并联RC串联网络,该网络常称为RC阻容吸收电路。

3.4蜂鸣器

为保证洗衣机的安全工作,当洗衣机出现问题或故障时,洗衣机应立即发出蜂鸣报警,提醒用户及时处理,此即全自动洗衣机的故障自诊断功能。在洗衣机电源接通后,单片机就不断地对接收到的按键、门开关、水位传感器等输入信号进行分析,并结合内部时钟信号,作出当前工作状态是否正常的判断,若出现异常情况,则进行蜂鸣报警。

3.5 水位传感器

水位检测的精度直接影响洗净度、水流强度、洗涤时间等参数。对于全自动洗衣机,要求水位的检测必须是连续的,故常采用谐振式水位传感器。谐振式水位传感器是

11

利用电磁谐振电路LC作为传感器的敏感元件,将被测物体的变化转变为LC参数的变化,最终以频率参数输出。其工作原理是:将水位的高低通过导管转换成一个测试内腔气体变化的压力,驱动内腔上方的一块隔膜移动,带动隔膜中心的磁芯在某线圈内移动,从而线圈电感发生变化。由此引起谐振电路的固有频率随水位变化。

3.6 LED和数码管显示及按键电路

如图3-5所示,本程控器设有七个按键(水位K1、程序K2、功能K3、水温K4、启动/暂停K5、预约K6、电源K7),十四个发光二极管(四个八档水位显示、三个程序显示、四个功能显示、两个进水显示、一个预约显示),一个双位数码管,实现对洗衣机运行状态的选择和显示。通过LED的点亮/闪烁指示洗衣机的各种工作状态,利用数码管显示预约及各种洗衣程序的剩余时间和四种错误类型(E1、E2、E3、E4)。

采用动态扫描显示的方法。动态扫描显示法是把所有显示器件的各个相同端互相连接在一起,接到一个输出口上,而显示器的公共端COM分别接在另外

输出口上,通过这两个输出口的两组信号相互作用来产生显示效果。即让各位数码管及LED显示器件按照一定顺序轮流显示,只要扫描频率足够高,由于人眼的“视觉暂留”特性,就观察不到闪烁现象,而是连续稳定的显示。其特点

12

+5VR1P303.3KR2P313.3KR3P323.3KR4P373.3KR5P363.3KR6P353.3KQ12907Q22907Q32907Q42907Q52907Q62907LED3R7P40100R8P41100R9P42100R10P43100R11P44100R12P45100R13P46100D1IN4001R23C310K473R24C410K4737/8LED25/6LED13/4LED41/2LED7LED11LED12eLLED10e标准LED6洗涤LED9LED14ffaa快洗LED5漂洗LED8热水gLED13gfgdeeedbb[LEDgn]aaSMGdcecbfgb纤细脱水冷水dD2IN4001D3IN4001D4IN4001H浸泡预约HLD5IN4001K6D6IN4001K1K2K3K4K5预约水位R14P22P471KR151K程序功能水温启/停K7电源 图3-5LED和数码管显示及按键电路

在于能显著降低显示部分成本,大大减少显示接口的连线结构,易于编程。 开机后,由P30~P32和P35~P37输出不同时段的扫描方波,用来检测按键的输入。动态扫描方波信号(键扫描信号)是50HZ频率(间隔20 ms)的脉冲序列,有严格的时序关系,其中一个I/O口输出低电平时,其余I/O口皆为高电平(例如111101等)。扫描信号经限流电阻R1~R6(3.3K)后加载到三极管Q1~Q6的基极。当P30~P32和P35~P37中某个管脚输出低电平时,相应的三极管饱和导通,从而使高电平驱动相应的显示器件工作。

同时,软件不断检测P22、P47的输入。当有键按下时,软件便会检测到此按键输入口的高电平。根据扫描方波,可判断按下的是哪一个键,然后调出存在程序存贮器中的相应按键子程序。在相应子程序中,由单片机控制从P40~P47输出不同的段值,

13

用来控制相应的LED指示灯(点亮/闪烁)及数码管(点亮/熄灭)的工作状态,并在相应输出口输出控制信号,控制洗衣机电动机、进水电磁阀、排水电磁阀的动作。在按键的输入处均设有容阻吸收电路,以提高系统抗干扰能力。二极管D1~D6作用是防止多个按键同时按下时,发生短路。

14

第四章系统软件设计

4.1 软件编程思路

全自动洗衣机控制软件系统根据其功能要求,主要分为以下几个大程序模块:监控程序模块;主洗程序模块;漂洗程序模块;脱水程序模块。

4.2 各模块程序流程图 4.2.1 监控程序模块

监控程序模块负责在非洗衣状态下,监视按键和刷新显示工作。在监控状态下,程序不断扫描7个按键(电源、启动、程序、预约、水位、功能和水温)的状态。只有在电源键被按下后,按动其它键才能有效响应。

监控程序模块的流程图如图4-1所示。

15

开 始调打开LED显示设置栈堆指针调显示子程序调用洗衣机初始化子程序调按键扫描子程序开基本定时器中断调上电数据恢复模块有键按下?NY调显示子程序调读取键值子程序按键扫描子程序调相应自检程序Y自检?N有键按下?转相应工作程序NY启动键?调读取键值子程序N调洗衣机方式设置程序N电源键按下?Y图一 监控程序模块图图4-1 监控程序模块框图

在洗衣机通上电源后,单片机上电复位。程序首先运行在监控程序模块中。洗衣机初始化内容包括:I/O口初始化、工作过程初始化(主洗洗涤时间、漂洗洗涤时间、漂洗次数、脱水时间、进水时间等参数)。因为洗衣机上电后默认洗涤方式为标准洗,故参数初始化主要是对标准洗状态下的参数的预置。上电数据恢复模块主要用来判断洗衣机上电是否为洗涤时突然掉电。若为洗涤过程中掉电,则上电后进行恢复断点工作,否则程序返回进入到对按键监视和刷新显示的循环过程中。

16

在按下电源键后,洗衣机进入到复位状态,在此状态下可进行参数设置,如选择水温、是否防皱、水位、程序等。若不设定的话,洗衣机启动后处于标准洗涤状态。若同时按下几个键,则进入到自检,如同时按下水位和电源键,这个功能是无水检测,用来检测发光二极管、数码管和蜂鸣器等是否能正常工作;如在洗涤过程中同时按下水位和功能键,启动童锁功能,所有按键均封锁不可选。若按下启动键,则洗衣机开始洗涤。

4.2.2主洗程序模块

当洗衣机上电后默认主洗时间为43分钟。洗衣机的洗涤过程是否进入到主洗程序模块,由用户操作决定。若用户选择主洗,则允许标准洗标志有效。主洗过程是一个包括进水、洗涤、排水洗和脱水全过程。程序框图如图4-2所示。

程序入口允许主洗?YN返回主洗灯闪烁设置脱水时间调进水子程序调脱水子程序调主洗洗涤子程序灭主洗灯调排水子程序清除主洗标志返回图4-2 主洗程序模块

17

4.2.3 漂洗程序模块

在洗衣机上电后默认漂洗次数为4次。用户可选择漂洗次数,也可以只漂洗,不脱水。当用户选择漂洗过程后,此标志有效。在整个漂洗过程中,漂洗灯一直闪烁,程序框图如图4-3所示

程序入口NN第三次漂洗?Y允许漂洗?Y返回调三漂子程序漂洗灯闪烁清三漂标志N第一次漂洗?YN第四次漂洗?Y调一漂子程序第四次漂洗子程序清一漂标志清四漂标志N第二次漂洗?Y清漂洗标志调二漂子程序灭漂洗灯清二漂标志返回。

图4-3 漂洗程序模块框图

18

4.2.4 脱水程序模块

脱水是洗衣过程中可有可无的环节。脱水时间由用户设定,在脱水过程中排水阀一直打开,且脱水指示灯一直闪烁显示。脱水程序模块如图4-4所示。

入 口调开排水泵置脱水时间于倒计时缓冲器15秒倒计时开始调剩余时间显示设置转速为低速调键盘时间显示调电机启动子程序NN脱水时间完?Y15S倒计时=0?Y调电机停止子程序调电机反转子程序关排水泵设置转速为预定转速返 回调电机启动子程序

图4-4 脱水程序模块框图

19

总 结

全自动洗衣机由东芝单片机控制。由于其具有内存容量大、输入输出口多、I/O的驱动能力强、指令系统丰富等特点,将其应用在家用电器控制中,可大大简化系统的硬件电路,使系统具有更高的可靠性。

本设计经过设计达到了预期的各种功能,完全符合全自动洗衣机的各项要求。在本次设计中,因为以前的时候总是觉得设计只要有总体思路就可以了,所以在设计电路的时候,特别是对双向晶闸管的使用的时候,只是从书上了解到了无触点的优点但是却没有想到其实双向晶闸管的过压和过流性是十分的脆弱的,设计的时候就直接用它去控制了电机和电磁阀,这样的稳定性在实际的使用中不能稳定使用,所以设计没有实际意义。

这点让我充分的认识到我的不足,我在设计和平时总是对自己的细节的注意不够,这就使得很多看似成立的东西失去了本来的实际意义,也让会导致很多事情的失败。

本次设计对与我来说是一次对自己性格锻炼,它让我充分的认识自己所学习知识的不够,让我明白小事、小细节对于全局的重要性,使我认识到自己的学习和生活的关系,让我知道自己以后做事的态度和行为,所以本次设计对我自身的是起到很重要的审视作用。

20

参考文献

[1] 余永权,汪明慧,黄英.单片机在控制系统中的应用.北京:电子工业出版社,2003. [2] 扈刚,王延峰.谐振式水位传感器.传感器技术.2002.

[3] 谢宋和,湛清平.东芝单片机在家用电器中应用.北京:北京航空航天大学出版,1996. [4] 周德林,张双庆.全自动洗衣机故障检测技术.北京:金盾出版社,2004. [5] 张毅刚,修林成.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,1992. [6] 陈汝全,林水生.实用微机与单片机控制技术.成都:电子科技大学出版社,1998. [7] 王幸之,王雷等.单片机应用系统抗干扰技术.北京:北京航空航天大学出版社.1999. [8] 牛洪涛.工控软件的抗干扰设计.微型机与应用.1998.

[9] 邵贝贝.单片机嵌入式应用的在先开发方法.北京:清华大学出版社,2004. [10] 王柏林.单片机系统设计的误区与对策.计算机应用.2002.

[11] 王晓明.电动机的单片机控制.北京:北京航空航天大学出版社,2002.

21

致 谢

经过这一学期的努力我的毕业论文终于顺利完成了。

本文是在老师指导下完成的。老师治学严谨、品德高尚、平易近人,在洗衣机控制课题等方面具有丰富的知识和很高的科研水平。从选题、方案论证到具体设计和论文撰写的各个环节,都得到老师的热心指导、帮助、和指正,使得我能在比较正确的轨道上,在预期的时间内完成工作量较大的课题,对此将深深感谢老师的帮助。

感谢所有的授课老师。在四年的学习中,他们不仅给我传授了系统的理论知识,培养了较强的动手实验能力,而且还通过言传身教潜移默化地传授给我做人的道理。在单片机课程学习中授予我们的知识,让我对学习的态度改变许多,同时也让我充分的认识到自己的不足,更重要的是教会我们如何去学。如果没有他们的无私支持和指导,相信我没有办法完成这次的毕业设计。在此对他们的悉心教导表示衷心地感谢。

22

附 录

start:nop

ld sp,0x23f di

call ioini ;初始化单片机 call workini ;初始化RAM start1: nop

call workini1 ;进行标准化设置 RUNING:

ei test clr jr call ld call call test jr call call call call call call call call call test jr test call jr call RUNIA0: jp test

jr test ld jr RUNIA00:

call jp test jr call RUNIA01: jp jr test RUNINA02: call jp test (flag1).0 ;10ms延时 t,RUNING (WDTCR2),0x4e (flag1).0

d100ms ;;关看门狗100ms

buzzing 100ms延时,和(延时

flag4).1组成一个

tsj ;自检和循环检测;蜂鸣程序

(flag4).1 derr f,RUNING

tsjt proini ;童锁洁筒 ;错误检测程序

door ;进行自检和无水检测参数设置 display water ;显示程序 ;门判断程序

klast err16 ;连键处理程序;水位判断程序;出错情况未接触的话,每

分种,蜂鸣器报警10秒

16

d10mdp ;开机十分种,不启动则自动断电 (flag2).1 f,RUNING

;是否出错 (flag1).3 t,RUNIA0

;预约 yydelay yyoper ;预约显示;预约启动情况下,未盖盖子,则出现

报警

RUNING (flag2).0 t,RUNING ;启动 (flag8).1 (error),0x00 ;模糊测布质 ;无错误

t,RUNIA00 del10s RUNING del3s

t,RUNIA01 (flag1).7 ;3s时间标志 RUNING

(flag5).5 ;无水检测 testfm t,RUNINA02

;蜂鸣器初始化程序 RUNING

(flag5).0 ;排脱水

23

jr t,RUNIA1 ;

test (flag4).7 ;7s程序,最好11.5s jr t,RUNIA1 ; call del7s

jp RUNING RUNIA1:

call RUNDISP ;1m修改一个运行时间 test (flag5).3 ;洗衣结束 jr f,RUNIA2

call xiyi ;调洗衣程序 RUNIA3: jp RUNING

RUNIA2: test (flag1).1 ;蜂鸣器正在工作 jr f,RUNIA3

test (flag6).3 ;循环检测程序 jr f,RUNIA4

RUNIA5: call workini1 ;初始化 RUNIA4: set (flag2).3 ;程序初始化

clr (flag5).3 ;洗衣结束,结束蜂鸣 jp RUNING

;*******************************************************

ld (P0DR),0xff ;p0口有8个管脚,p07为输入口 ld (P1DR),0x07 ;p0口有3个管脚,前两个为输入 ld (P2DR),0x07 ;p2口有3个管脚,这里没有用到 ld (P3DR),0xc0 ;p3口有8个管脚,p36,p37为输

入管脚

ld (P1CR),0x7f ; ld (P3CR),0x4f ;

ld (P0OUTCR),0x7F ;设置为哪种输出形式,开路或上拉 ld (WDTCR1),0x00 ;关看门狗 ld (WDTCR2),0xb1 ;

ld (TTREG3),0x7d ;2mS,8M ld (TTREG4),0x0c ;0.192us,8M

ld (TC1CR),0x14 ;TC1 10ms定时

ldw (TC1DRA),0x0271 ;271;10mS; 138:5mS ld (TC3CR),0x18 ;TC3 2ms开始计时

ld (EINTCR),0xc0 ;设置中断产生形式11000000 ld (TC4CR),0x19 ;TC4输出为可编程脉冲 ld (TBTCR),0x00 ;关DVO口

ldw (IL),0x0000 ;清中断标志位

ld (EIRL),0x90 ;开对应中断 1001 0000 ld (EIRH),0x0x0c ; 0000 1100 ld (SYSCR1),0x00 ;系统设置 ld (SYSCR2),0x80

clr (flag8).4 ;电源键第一次按下set该标志,第二此

按下该标志

ld (INTSEL),0x10 ;中断源选择 ld (UARTCR1),0x03 ;关 ld (UARTCR2),0x02

ld (WDTCR2),0x4e ;关 ld (WDTCR1),0x0d ; ret

;******************************************************* workini: ld hl,s1 ;清理变量子程序 ld a,0xff LOVE: ld (hl),0 inc hl dec a

24

jr f,LOVE ret

;******************************************************* workini1:

ld (P0DR),0xff ;p0口有8个管脚,p07为输入口 ld (P1DR),0x07 ;p0口有3个管脚,前两个为输入 ld (P2DR),0x07 ;p2口有3个管脚,这里没有用到 ld (P3DR),0xc0 ;p3口有8个管脚,p36,p37为输

入管脚

ld a,(s1) ;保存自检

ld w,(s2) ;保存无水检测 LOVE1: XIYIRET: call push ld push ld ld ld inc ld dec jr pop ld pop ld ld ld ld ld ld ld ld ldw set set ld ld ld ld ld ld ld ld set ld ld clr ld ld ld set set ld ld ret

ld TESTCQ ret

h,(bitcount) wa

l,(s7) ;保存循环位 ;保存开关值 hl,s1 hl a,0xff

(hl),0 ;清理变量区 hl f,LOVE1 a

hl

(bitcount),h (s7),l ;恢复循环变量 ;恢复开关变量 (s2),w wa

(s1),a ;恢复水位键;恢复程序键量(循环检测) de,0x0000 (del20),0xfa (自检) ;作为水位检测的中间变量 (d10m1),0x5f (d10m2),0xea ; ;250 59999 (bitmove),0xfe (flag2).3 (d1m),0x176f ;位循环 ;5999

(flag4).1 (yyd1m1),0x3f ;程序初始化 ;上电延时

(yyd1m2),0x7e ;359999 1h时预约程序变下 (yyd1m3),0x05

(d05s1),0xff ;1535 (d05s2),0x05

(led1),0xfb (led2),0xf7 ;默认;标准 3档水位 (flag8).1 (led3),0xf8 ;洗 漂 脱

(d10s1),0x2c ;模糊 ; 300 (P3DR).3 (d10s2),0x01

(zsdx),0x0c (zsdp),0x02 (flag10).5 (zsdt),0x06

(flag1).1 ;在开始时候有个补水功能 (temcount),0x00 (buzt1),0x0a ;

;是否蜂鸣 (wcount),0x02 ;开冷水 ;是否错误

;测试布质 25

XIYIXYE:

call clrcur

clr (pro2).6 clr (flag4).5 TESTCQ:

ld w,(wcount) ;测布质子程序 ld a,0x04 mul w,a ld c,a

ld (del30),c ld hl,water1 ld bc,(hl+c) ld wa,(sjsw) cmp wa,bc jr lt,TCQ0 sub wa,bc ld c,(wcount) ld b,0x04 mul b,c

ld hl,CQPARA ld w,(hl+c) cmp w,a

jr lt,TCQ1 ;布质分4挡 TCQ0: ld (slpara),0x00 ret

TCQ1: inc c

ld w,(hl+c) cmp w,a jr lt,TCQ2

ld (slpara),0x01 ret

TCQ2: inc c

ld w,(hl+c) cmp w,a jr lt,TCQ3

ld (slpara),0x02 ret

TCQ3: inc c

ld w,(hl+c) cmp w,a jr ge,TCQRET

ld (slpara),0x03 TCQRET: ret

ld (si),0x00 ld (prod1),0xb7 ld (prod2),0x0b

XIYIPH: test (pro2).5

jr t,XIYIPS ;排水 call inw test (flag2).4 jr t,XIYIRET test (flag6).0 jr f,XIYIPHJ1 test (led2).3 jr t,XIYIPHE

test (flag10).1 jr f,XIYIPHE

26

test (flag10).2 jr f,XIYIPHE

XIYIPHJ1: sub (prod1),1 subb (prod2),0 jr t,XIYIPHE clr (si).4 clr (si).2 clr (flag3).0 set (flag3).1 call cur ret XIYIPHE:

XIYIPHE0: XIYIPS1: XIYIPS: XIYIPSS: XIYIJPTS: XIYIJT: set clr ld ld (led3).1 (flag3).1 clr (zsdx),0x0

(si),0x00 call test (pro2).5 jr clrcur test jr (pro1).7

f,XIYIPHE0 test (pro1).6

jr set (pro1).5

f,XIYIPHE0 ld f,XIYIPHE0 (led3).2 (zsdp),0x0 jr test test (led3).2 jr (led3).3 t,XIYIPS call ret call t,XIYIPS1 proend test timejz

jr test (pro2).4 jr t,XIYIJT call set (flag7).6 f,XIYIJTE call jtuods test jr ofw (flag5).0 ld (flag5).4 ld t,XIYIPSS (prod1),0x2f ret (prod2),0x75 test jp

jr XIYITS set (pro2).3 set set t,XIYIJPTS (si).1 sub (flag3).6 subb jr (flag5).0 (prod1),1 set (prod2),0 clr t,XIYIJTE (flag3).0 test jr (flag3).1 (flag3).5 f,JTRET

27

ld (error),0x02 call seterr ret

JTRET: cmp (prog),0x06 jr eq,JT00 cmp (zsdp),0x01 jr ne,JT0 test (led3).2 jr f,JT0

JT00: set (si).4 JT0:

XIYIJTE: XIYITS: TSNEXT1: JT0RET: XIYITSE: XIYIBP3: XIYIBP4: XIYIBP2: XIYIGX: call ret cur clr

clr (pro2).3 call clr clrcur (pro2).4 clr call (si).4 (si).2 clr test tsds jr (pro2).2 (flag3).0 test jr t,XIYIGX set subb sub (flag7).6 f,TSNEXT1 (si).1

jr set (prod2),0 (prod1),1 set t,XIYITSE (flag3).6 test jr (flag5).0 set ret (flag7).6 f,JT0RET (si).7 clr test

jr test (led3).2 (pro2).2 jr t,XIYIBP3 test jr (flag10).1 f,XIYIBP4

jr test (flag10).2 f,XIYIBP4 ld (led2).2

t,XIYIBP4 ld (prod1),0x6f jp (prod2),0x17 ld XIYIBP2 ld

(prod1),0xb7 clr clr clr (flag3).7 (prod2),0x0b clr (flag6).0 (si).7 jr test (flag4).0 sub subb t,XIYISC (pro2).1 (prod1),1 (prod2),0

28

jr t,XIYIGXE set (si).1 ret

XIYIGXE: clr (pro2).1 ld (prod1),0xf3 ld (prod2),0x01

ld (si),0x00 clr (flag5).0 clr (flag3).6 ret

XIYISC: test (pro2).0 jr sub subb jr XIYISCE: ret

ld clr test jr clr test jr test XIYISCRET: jr set XIYISC1: test ret

jr clr test XIYISC2: jr set ret

test jr clr XRTYU: set ret

set JTDS1: call ret

cmp test jr jr JTDS4: test jr ld JTDS2: ld ret ld JTDS3: ld ret ld

ld inttc3:

ret t,XIYISCE (prod1),1 t,XIYISCE (prod2),0 (flag2).4 (pro2),0xff (pro1).7 t,XIYISC1 (pro1).7 (pro1).6

f,XIYISCRET (pro1).5

f,XIYISCRET (flag11).0 (pro1).6 t,XIYISC2 (pro1).6 (pro1).5

f,XIYISCRET (flag11).0 (pro1).5 t,XRTYU (pro1).5 (flag11).0 proend (led3).3 (prog),0x06 eq,JTDS2 (flag10).1 f,JTDS3 (flag10).2 f,JTDS3

(prod2),0x0b (prod1),0xb7 (prod1),0x6f

(prod2),0x17 (prod1),0x0 (prod2),0x0 29

;prog==08 洁桶洗 ;; 洁桶一秒喷淋漂脱

ei

push wa push bc push hl

call tc40 ;每72ms将de内数据传水位感变量

sjsw一次

call dstatus ;判断门开关程序,6ms判断出关

ld (P4DR),0xff ;全部的灯都灭,为了避免影响按键判

ld hl,bitcoun ;键盘扫描代码 ld c,(bitcount) ld ld and or ld ld ld ld ld ld ld add ld ld test jr cmp ld jr push call KEYNEXT0: ld pop cmp jr clr clr KEYNEXT1: cmp jr ld test ld jr ld cmp push jr call KEYNEXT01: pop ld a,(hl+c)

w,(P3DR) (P3DR),w w,0x18

w,a

;将代码送到扫描口 w,(P2PRD)

(keyin),w hl,s1 ;同时取出按键输入口量;按键变量首地址

c,(bitcount) ;目前所扫描到的对应按键 b,0x00 wa,hl wa,bc hl,wa

(keyin).2 a,(hl) ;判断按键口,看是否有按键按下;对应按键变量值送入a

a,0x0e f,INTT1 a,(hl)

;有按键按下,且松开后,视为一次有效动作

hl

ne,KEYNEXT0 keydeal1 ;有一次按键操作,则进行对应按键处理程序

(hl),0x00 hl

;无按键,或按键处理以后,付按键变量0

(bitcount),0x05 ;此次等于预约键

5的话,则为扫描到

(flag1).4 ne,KEYNEXT1

(flag1).6 ;没有预约,或预约结束(不确定);连键处理程序,按下预约键不松 的情况

(bitcount),0x05 ;扫描到开关键是否有动作5的话,去判断一下,

ne,INTTTT (keyin).7 w,(P4DR) (keyin),w

f,INTT2 ;判断开关键是否有动作 ;只有开关键已松开后才会进行

按键处理操作

a,(s7) a,0x0e

ne,KEYNEXT01 hl

keydeal2 ;调开关键处理程序 hl

(s7),0x00

30

INTTTT: jp INTDISP INTT1: inc a

cmp a,0x0f jr eq,INTXDD cmp a,0xff

jr eq,INTXDD1 ld (hl),a cmp a,0x06

jr ne,KEYNEXT1 cmp (bitcount),0x05 jr ne,INTXDD

INTXDD: set ; INTTK2:

call INTXDD1: ld INTT2: jp ld jp ld inc cmp jr cmp jr ld cmp INTXDD2: jr ld

INTXDD3: ; INTDISP: jp jp ld ; ; test

jr inc cmp jr ITC3DISP: ld ld ld ld ld and or ld ld ld test ld ITC3RET: ld jr pop pop ITC3RET1: pop reti

ld (flag1).6 keydeal1 (hl),0x0e

KEYNEXT1 KEYNEXT1 (hl),0xfe a

a,(s7) a,0x0f

eq,INTXDD2 a,0xff

eq,INTXDD3 (s7),a ne,INTDISP a,0x06 (s7),0x0e INTDISP KEYNEXT2 (s7),0xfe (flag8).4 (bitcount) t,ITC3RET1

(bitcount),0x06 hl,bitcoun ne,ITC3DISP (bitcount),0x00 c,(bitcount) a,(hl+c) w,a

w,0x18 w,(P3DR) (P3DR),w hl,led111 c,(bitcount) a,(hl+c)

t,ITC3RET1

(flag8).4 (P4DR),a hl bc wa (P4DR),0xff 31

;扫描到头的话,重新开始扫描 ;电源标志 ;电源开的情况下,对应灯工作 ;电源关的情况下,全灭

;预约键按下未松开

pop hl pop bc pop wa reti reti

tc40: dec (tcount1) ;每72ms将de内数据传

水位传感变量sjsw一次

jr t,tc41 tc41: ret

set dec ld tc42: ret

jr push ld ld ld

ret pop dstatus: test jr ld inc cmp jr DOPEN1: clr ld DSTA: ret

inc ld cmp jr DCLOSE1: set ld

ret keydeal2: cmp

test jr KOFF: KOFF1: jr clr clr clr set ld ld cpl ld ld test jr di (flag1).0

(tcount1),0x04 (tcount2) t,tc42 wa

(sjsw),de de,0x0000 (tcount2),0x09 wa (P2PRD).1 f,DSTA

(dclose),0x00 (dopen)

(dopen),0x03 ne,DOPEN1

(flag3).3 (dopen),0x00 (dopen),0x00 (dclose)

(dclose),0x03 ne,DCLOSE1

(flag3).3 (dclose),0x00 (flag10).7 (bitcount),0x05

ne,KEYSP3 f,KEYSP3 (P3DR).3 (flag2).2 (flag2).0 (flag1).1 (buzt1),0x0f

(flag8).4 (buzt2),0x0 cf,(flag8).4

(flag8).4 (P1DR).5,cf t,KNEXT3

32

;判断门开关程序,断出开关

6ms判

;门开 ;门关 ;童锁;跳到返回功能

;估计没有什么用 ;清除开机10m计时标志

;清除启动标志;设置键响标志 ;电源标志;

;电源标志 ;开或关继电器

;童锁的话返回

本文来源:https://www.bwwdw.com/article/jzrv.html

Top