单片机课程设计---单片机控制全自动洗衣机
- 格式:docx
- 大小:180.42 KB
- 文档页数:25
教育部直属 国家“211工程”重点建设高校
单片机原理课程
设计报告
指导教师:
王宪
学生学号: 0702100229
学生姓名: 王侠
学生班级: 通信1002
一、设计目标
用51系列单片机控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。采用LED和数码显示管显示洗衣机所处在的模式和水位,所处的的洗衣状态,水温,以及完成洗衣的剩余时间。实现不同模式下水位的选择一共三种模式(标准,轻柔,快洗),四种水位,当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机全自动控制洗衣操作,整个过程的进行按时间控制,时间自定,软件编程使用汇编语言。
洗衣机功能要求
二、洗衣机的硬件设计
本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、漂洗、排水和脱水等阶段。控制系统主要由电源电路、单片机控制系统和外部硬件电路构成。电源采用三端集成固定稳压器7805提供+5V电源,单片机控制系统负责控制洗衣机的工作过程,主要由AT89S51单片机、2位共阳数码管、按键、蜂鸣器、LED指示灯组成;外部硬件电路有继电器、三极管、电动机、进水电磁阀、排水电磁阀组成。
2.1 按键
洗衣机面板上有4个按钮:1K1为启动键,K2用于模拟洗衣机的盖板打开,K3用于快速洗衣方式;当脱水时,模拟盖板合闭,K4用于脱水。
2.2 洗衣程序
洗衣机的主要工作程序是:洗涤——脱水——漂洗——脱水——漂洗——脱水。
(1)洗涤过程:放好待洗物,启动开关,进水阀通电,向洗衣机供水,当供水达到预定水位时,水位开关接通,进水阀断电关闭,停止供水。洗涤电动机接通电源,带动波轮(或桶)旋转,产生各种形式的水流搅动衣物进行洗涤。通过电动不停的正转、停、反转、反复循环,形成洗涤水对洗涤物产生强烈的翻滚作用。同时,衣物之间、衣物与四周桶壁之间产生互相摩擦和撞击力,以次达到洗涤衣物的目的。
(2)漂洗过程:漂洗的目的在于清除衣物上的洗涤液,因此,漂洗过程与洗涤过程的电器动作是完全相同的。
(3)脱水过程:洗涤或漂洗过程结束后,电动机停止转动,排水阀通电,打开排水阀门排水。当水位低到一定程度时,满足安全条件,脱水电动机接通,电机带动脱水桶高速旋转,利用离心力把衣服上的水从桶壁的小眼里甩出。
2.3、设计总方框图
水位开关
安全开关
程序选择/启动/暂停
洗衣机单片机控制系统方框图
基于单片机洗衣机通过控制系统设定洗衣程序在洗涤脱水桶内自动完成注水、洗涤、漂洗、排水和脱水全过程。洗衣时控制系统打开进水电磁阀开始注水;当洗涤脱水桶内的水位达到系统设定值时单片机发送一个低电平通知控制系统关闭进水电磁阀,同时启动电机洗衣。电机在系统的控制下进行正转、停、反转通过传动带动波轮执行洗涤程序;当洗涤时间终了,控制系统切断电机电路打开排水电磁阀开始排水;然后再次注水,洗衣机进入漂洗状态,完成漂洗程序(通常为2次漂洗)后,开始排水,同时排水电磁阀的动作并且松开为脱水程序作好准备;排水结束后系统控制电机单方向高速运转完成脱水程序;当脱水程序终了系统控制排水电磁阀和电机断电,排水阀复位。
2.4洗衣机控制系统原理总图
单片机
89C51 进水电磁阀
排水电磁阀
电机正转
电机反转
显示屏
蜂鸣器 2.5控制功能及过程
洗衣机的三大功能是实现衣服的洗涤、漂洗和脱水,加上进水,我们把这四个洗衣机动作编排成4个代码。打开电源开关,洗衣机将进入洗衣过程选择状态,此时数码管显示00,用户按启动、暂停键可以显示不同的过程代码(在01-09之间循环显示以指示选择不同的洗衣过程)。3秒内若无按键动作,蜂鸣器开始鸣叫6下(时间长度共3秒)以提醒用户;开始进入相应过程的洗衣程序,此后启动暂停按钮只起暂停或继续洗衣程序执行作用,数码管显示完成本次洗衣的剩余时间。
三大功能中的漂洗实际上是由洗涤和脱水功能组成的,如一次标准洗涤过程(过程代码)中,漂洗功能包括了时间均为2分钟的脱水、洗涤、脱水、洗涤。因此,在编写控制程序实现三大功能时只需编写洗涤和脱水功能的代码,然后作为子程序调用即可。
完成一次洗衣过程所需的动作有:
(1)进水动作 进行洗涤时,盛水桶内的水量必须到水位设定要求。而水位的高低可以通过调节水位开关来实现。洗衣机的进水和水位判断是由水位开关和进水阀的开合来进行控制的。当桶内没有水或水量达不到设定水位时,单片机程序将控制进水阀闭合,开始注水;当桶内的水位达到设定水位时。水位开关受压闭合;程序就可进入下一步(洗涤)处理。若打开进水阀后20分钟内不能进水,则将出错报警,用户只能关闭洗衣机电源进行相关检查后方能重新开机。
(2)排水动作 进入脱水动作前应先排水。为了避免空排水造成时间浪费以及排水不完而带水脱水造成对电机的损害,洗衣机能够根据实际水量(由水位开关决定)对排水时间进行动态控制。设排水开始至水位压力开关断开时所需的时间为D,则总的排水时间为2D+T(T取60秒,总的排水时间不应大于190秒)。因此,在开始排水时,控制程序将同时启动计时器,在D秒后若收到水位压力开关断开的信号,,则再排水D+T时间后,就可以结束排水进入脱水动作。若D大于65秒,说明排水系统有故障;洗衣机将停止动作并蜂鸣报警,提醒用户排除故障(安全开关打开又闭合认为是一次故障詯处理)后再继续。需要注意的是:排水结束后排水开关还是打开的。
(3)洗涤动作 洗涤动作指的是电机周期性的“正转-停止-反转-停止”。不同的洗衣过程,控制电机执行“正转-停止-反转-停止”的时间是不同的,标准洗涤过程可取:正转1.6秒-0.56秒-反转1.6秒-停止0.56秒。对于轻柔洗涤和强力洗涤过程,这个时间要作相应调整。洗涤过程中若遇水位开关断开或用户要求补水(重新选择水位),则要停止洗涤动作并打开进水阀进水直至水位满足要求再继续。
此外,洗涤动作的最后15秒,电机还要进行快速的停止‘‘正转-停止-反转―停止’’处理,以避衣服拧成一团。程序流程见洗涤子程序
(4)脱水动作 排水结束后进入脱水动作,脱水是通过电机的正转来实现的,同时要求排水阀一直打开,也正是由于排水阀的打开,才使脱水时的电机正转速度不同于洗涤时的电机正转速度。(通过机械装置实现)。脱水分间隙脱水和长脱水,间隙脱水时间为30秒,电机按“正转-停止”的周期循环动作,时间为“正转4秒-停止3秒”。长脱水时电机将一直调整正转,所需时间由用户选择的过程决定,一般有3分钟和5分钟的长脱水时间。进入脱水前若洗衣机桶盖是打开的,则进行鸣叫、显示告警,直至用户合上桶盖后,才继续进行脱水。脱水结束后,再经过30秒延迟后关闭排水阀。脱水时若遇暂停,则重启时需延时5秒后再进行电机动作,目的是用于同步机械动作的滞后。程序流程见脱水子程序流程图。
(5)LED的显示 89C51对可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自的字形;动态显示是指各LED轮流地一遍一遍显示各自字符,人们由于视觉器官的惰性,从而版的是各LED似乎在同时显示不同字形。
(6)其它动作 为了有更好的人机交互,进行洗衣时数码管要显示剩余时间(单位为分钟),并且以1秒的频率不停地闪烁。此时如果按下暂停按钮,则时间显示不闪烁。随着洗衣过程的进行,显示时间将不断减少直至洗衣程序完成后显示“0”。剩余时间的获得可以通过如下方法:根据用户所选的过程代码可以获得包含这一过程的所有动作(9个过程所包含的动作需要的时间见功能选择代码表),由于相应的动作有预设的时间(动作对应的代码和预设时间见表动作代码表),因此,根据本次过程余下的动作可以通过查表的方式获取剩余时间。
三、洗衣机控制系统软件设计
1)主程序设计
根据硬件设计要求,控制主程序流程图如图所示。洗衣机通电之后,单片机上电,首先进行程序的初始化,包括定时器O、外部中断O、外部中断l的初始化,以及各参数初值的设定。默认洗衣强度为“标准洗”,漂洗次数3次。然后扫描K2、K3、K4、K5键的状态,确定洗衣强度R2、洗衣时间R3和漂洗次数R4。洗衣机处于待命状态,控制指示灯显示洗衣强度,液晶显示预设洗衣时间。当发现启动键K2按下,洗衣机从待命状态进入工作状态。完成进水——洗涤——脱水——漂洗的循环过程。当洗衣结束时,控制蜂鸣器发声。
主程序流程图
<1>进水程序设计
当P3.0=1时,打开进水电磁阀开始进水。当水位到达要求时,P1.0=0,即水位开关K1闭合,关闭进水电磁阀,P3.0=0,迸水结束;
<2>洗涤过程程序设计
电机正反转均为10S,根据R2的值确定洗衣强度、洗衣时间R3以及电动机的间歇时间。 开始
结束 报警? 脱水、漂洗程序 洗涤程序 进水程序 启动? 初始化
查询洗衣强度R2的值
查询洗衣时间R3的查询漂洗次数R4的
洗涤过程流程图
<3>脱水、漂洗过程程序设计
脱水前先打开排水阀排水1min。然后启动电动机脱水1min,并保持排水阀开启,然后停止脱水。接着判断漂洗次数即R4的值,若R4为0则洗衣结束,开蜂鸣器提醒洗衣结束,系统返回初始待命状态;若R4不为0,则再次执行进水操作,进入下一循环。程序如下图所示:
脱水、漂洗程序流程图
2)内部定时中断设计
工作过程中所需的各种计时均有定时器0定时中断服务64程序提供。单片机晶振频率12Mllz,定时器0选择工作方式1,设置时间常数,每0.1S中断~次。 关脱水,关脱水阀 漂洗脱水开始
开排水闸
开电动机脱水 继续漂洗
关蜂鸣器
开蜂鸣器报警
R4=0? 洗衣开始
电机正转10s
电机停转
延时1s
进入漂洗脱水程序
电机反转10s 剩余时间R2=0?