单片机课程设计单片机控制全自动洗衣机.docx
- 文档编号:4730265
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:28
- 大小:81.91KB
单片机课程设计单片机控制全自动洗衣机.docx
《单片机课程设计单片机控制全自动洗衣机.docx》由会员分享,可在线阅读,更多相关《单片机课程设计单片机控制全自动洗衣机.docx(28页珍藏版)》请在冰豆网上搜索。
单片机课程设计单片机控制全自动洗衣机
单片机原理课程
设计报告
一、设计目标
用51系列单片机控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。
采用LED和数码显示管显示洗衣机所处在的模式和水位,所处的的洗衣状态,水温,以及完成洗衣的剩余时间。
实现不同模式下水位的选择一共三种模式(标准,轻柔,快洗),四种水位,当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机全自动控制洗衣操作,整个过程的进行按时间控制,时间自定,软件编程使用汇编语言。
洗衣机功能要求
二、洗衣机的硬件设计
本系统实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、漂洗、排水和脱水等阶段。
控制系统主要由电源电路、单片机控制系统和外部硬件电路构成。
电源采用三端集成固定稳压器7805提供+5V电源,单片机控制系统负责控制洗衣机的工作过程,主要由AT89S51单片机、2位共阳数码管、按键、蜂鸣器、LED指示灯组成;外部硬件电路有继电器、三极管、电动机、进水电磁阀、排水电磁阀组成。
2.1按键
洗衣机面板上有4个按钮:
1K1为启动键,K2用于模拟洗衣机的盖板打开,K3用于快速洗衣方式;当脱水时,模拟盖板合闭,K4用于脱水。
2.2洗衣程序
洗衣机的主要工作程序是:
洗涤——脱水——漂洗——脱水——漂洗——脱水。
(1)洗涤过程:
放好待洗物,启动开关,进水阀通电,向洗衣机供水,当供水达到预定水位时,水位开关接通,进水阀断电关闭,停止供水。
洗涤电动机接通电源,带动波轮(或桶)旋转,产生各种形式的水流搅动衣物进行洗涤。
通过电动不停的正转、停、反转、反复循环,形成洗涤水对洗涤物产生强烈的翻滚作用。
同时,衣物之间、衣物与四周桶壁之间产生互相摩擦和撞击力,以次达到洗涤衣物的目的。
(2)漂洗过程:
漂洗的目的在于清除衣物上的洗涤液,因此,漂洗过程与洗涤过程的电器动作是完全相同的。
(3)脱水过程:
洗涤或漂洗过程结束后,电动机停止转动,排水阀通电,打开排水阀门排水。
当水位低到一定程度时,满足安全条件,脱水电动机接通,电机带动脱水桶高速旋转,利用离心力把衣服上的水从桶壁的小眼里甩出。
2.3、设计总方框图
单片机
89C51
进水电磁阀
排水电磁阀
电机正转
电机反转
显示屏
蜂鸣器
水位开关
安全开关
程序选择/启动/暂停
洗衣机单片机控制系统方框图
基于单片机洗衣机通过控制系统设定洗衣程序在洗涤脱水桶内自动完成注水、洗涤、漂洗、排水和脱水全过程。
洗衣时控制系统打开进水电磁阀开始注水;当洗涤脱水桶内的水位达到系统设定值时单片机发送一个低电平通知控制系统关闭进水电磁阀,同时启动电机洗衣。
电机在系统的控制下进行正转、停、反转通过传动带动波轮执行洗涤程序;当洗涤时间终了,控制系统切断电机电路打开排水电磁阀开始排水;然后再次注水,洗衣机进入漂洗状态,完成漂洗程序(通常为2次漂洗)后,开始排水,同时排水电磁阀的动作并且松开为脱水程序作好准备;排水结束后系统控制电机单方向高速运转完成脱水程序;当脱水程序终了系统控制排水电磁阀和电机断电,排水阀复位。
2.4洗衣机控制系统原理总图
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按下,洗衣机从待命状态进入工作状态。
完成进水——洗涤——脱水——漂洗的循环过程。
当洗衣结束时,控制蜂鸣器发声。
开始
结束
报警?
脱水、漂洗程序
洗涤程序
进水程序
启动?
初始化
查询洗衣强度R2的值
查询洗衣时间R3的值
查询漂洗次数R4的值
主程序流程图
<1>进水程序设计
当P3.0=1时,打开进水电磁阀开始进水。
当水位到达要求时,P1.0=0,即水位开关K1闭合,关闭进水电磁阀,P3.0=0,迸水结束;
<2>洗涤过程程序设计
电机正反转均为10S,根据R2的值确定洗衣强度、洗衣时间R3以及电动机的间歇时间。
洗衣开始
电机正转10s
电机停转
延时1s
进入漂洗脱水程序
电机反转10s
剩余时间=0
R2=0?
洗涤过程流程图
<3>脱水、漂洗过程程序设计
脱水前先打开排水阀排水1min。
然后启动电动机脱水1min,并保持排水阀开启,然后停止脱水。
接着判断漂洗次数即R4的值,若R4为0则洗衣结束,开蜂鸣器提醒洗衣结束,系统返回初始待命状态;若R4不为0,则再次执行进水操作,进入下一循环。
程序如下图所示:
关脱水,关脱水阀
漂洗脱水开始
开排水闸
开电动机脱水
继续漂洗
关蜂鸣器
开蜂鸣器报警
R4=0?
脱水、漂洗程序流程图
2)内部定时中断设计
工作过程中所需的各种计时均有定时器0定时中断服务64程序提供。
单片机晶振频率12Mllz,定时器0选择工作方式1,设置时间常数,每0.1S中断~次。
中断处理程序流程图如下图所示。
中断入口
显示子程序
计数清零
秒值加1
秒值清0
分值减1
是否到1s
是否到1民、
中断返回
内部定时中断流程图
(3)外部中断设计
为了防止外部电压过高或过低对洗衣机的电器及控制硬件产生破坏,用外部中断0进行保护。
当电压过高或过低时,引起外部中断0,洗衣机停止一切动作,进入保护状态。
用外部中断1来实现洗衣过程停止工作。
在洗衣过程中,当暂停键K0按下时,引起外部中断1,转入中断1处理程序。
中断l处理程序将使洗衣机停止工作,并将停止前的状态存储起来。
当按下启动键K2时,洗衣机又恢复工作。
程序设计流程图
中断入口
相关寄存器进栈
暂停否?
相关寄存器出栈
置外部中断控制字
中断返回
外部中断流程图
四、PCB版图:
五、汇编语言
洗衣机系统的汇编程序
FLAGEQU45H;DS18B20是否存在标志
DQEQUP1.3;DQ引脚由P2.5控制
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0
ORG0013H
LJMPPINT1
ORG001BH
LJMPP_T1
ORG0030H
START:
MOVSP,#60H
CLRP3.4;关进水阀
CLRP3.5;关排水阀
CLRP3.6;电机不转动
CLRP3.7;电机不转动
MOVIP,#01H;INTI为高优先级
SETBEA;CPU允许中断
SETBIT0;跳变触发方式
SETBIT1;跳变触发方式
MOVTH1,#3CH
MOVTL1,#0B0H
MOV40H,#20;1S定时
MOVTMOD,#10H
SETBEX1;允许INT1中断SETBEX0;允许INT0中断SETBET1;允许定时器T1中断MOV4DH,#05;等待5秒,供用户选择手动还是
DENDAI:
LCALLDL1S;自动,若选择手动并设置自动模式下的哪种
DJNZ4DH,DENDAI;工作方式,单洗,单漂,长脱水
MOVP1,#0F6H
LCALLDL1S
MOVP1,#0FFH
MOV4FH,#250
BACK:
JBP1.4,KSSM1;P1.4为1即使自动模式,转到扫描键盘JNBP1.5,TODANXI;P1.5为0即为选择单洗,转到单洗JNBP1.6,TOPX;P1.6为0即为选择漂洗,转到漂洗JNBP1.7,TOCTS;P1.7为0即为选择长脱水,转到长脱水JMPBACK;没有检测到手动选择的是什么,换回重新检测;******手动单洗程序********
TODANXI:
SETBTR1
MOV30H,#07;状态显示参数,显示7
MOV31H,#13;状态显示参数,显示d,d7代表单洗
MOV2AH,#18H;电机动作24分钟
MOV2CH,#05H;进排水4分钟
MOV25H,#36;设正反转次数
MOV26H,#08;转动8+10s
MOV27H,#02;停2秒
MOV28H,#40;进排水2分钟,40+20x4
LCALLDJSCZ
LCALLDANXI
JNBP1.6,TOPX
LJMPTHEND
;****手动漂洗程序******
TOPX:
SETBTR1
MOV30H,#07;状态显示参数,显示7
MOV31H,#18;状态显示参数,显示P,P7代表漂洗
MOV2AH,#0EH;电机动作14分钟
MOV2CH,#05H;进排水4分钟
MOV28H,#40;进排水2分钟,40+20x4
LCALLDJSCZ
LCALLPX
JNBP1.7,TOCTS
LJMPTHEND
;****手动长脱水******
TOCTS:
SETBTR1
MOV30H,#16;状态显示参数,显示H
MOV31H,#12;状态显示参数,显示C,CH代表长脱水
MOV2AH,#04H;脱水4分钟
MOV2CH,#00H
LCALLDJSCZ
LCALLCTS
LJMPTHEND
;****键盘扫描1******
KSSM1:
MOVP2,#0F0H;置P2.0~P2.3为输出,P2.4~P2.6为输入
MOVA,P2
ANLA,#0F0H
XRLA,#0F0H
JZNO_KEY1;A为0则无按键
LCALLDL20MS;延时消抖
MOVA,P2
ANLA,#0F0H;重读键盘
XRLA,#0F0H
JZNO_KEY1;A为0则无按键
MOVR2,#11110111B;列扫描初值
LSM1:
MOVA,R2
MOVP2,A
MOVA,P2
ANLA,#11110000B
MOVR3,A
CJNEA,#0F0H,KEY1;有键按下则跳转
MOVA,R2
RRA
MOVR2,A
XRLA,#01111111B
JNZLSM1
NO_KEY1:
LJMPNEXT3
KEY1:
MOVA,R2
ANLA,#0FH
ORLA,R3
MOVR4,A
SHIFANG1:
MOVA,P2
ANLA,#0F0H
XRLA,#0F0H
JNZSHIFANG1
LCALLDL20MS
MOVA,P2
ANLA,#0F0H
XRLA,#0F0H
JNZSHIFANG1
MOVA,R4
CJNEA,#0D7H,NEXT1
LJMPFANGSHI1
NEXT1:
CJNEA,#0DBH,NEXT2
LJMPFANGSHI2
NEXT2:
CJNEA,#0DDH,NEXT3
LJMPFANGSHI3
NEXT3:
DJNZ4FH,KSSM1
LJMPMORENMOSHI;跳到默认模式
;****实际键盘扫描2*****
KSSM2:
MOVP2,#0F0H;置P2.0~P2.3为输出,P2.4~P2.6为输入
MOVA,P2
ANLA,#0F0H
XRLA,#0F0H
JZNO_KEY2;A为0则无按键
LCALLDL20MS;延时消抖
MOVA,P2
ANLA,#0F0H;重读键盘
XRLA,#0F0H
JZNO_KEY2;A为0则无按键
MOVR2,#11110111B;列扫描初值
LSM2:
MOVA,R2
MOVP2,A
MOVA,P2
ANLA,#11110000B
MOVR3,A
CJNEA,#0F0H,KEY2;有键按下则跳转
MOVA,R2
RRA
MOVR2,A
XRLA,#01111111B
JNZLSM2
NO_KEY2:
LJMPKSSM2
KEY2:
MOVA,R2
ANLA,#0FH
ORLA,R3
MOVR4,A
SHIFANG2:
MOVA,P2
ANLA,#0F0H
XRLA,#0F0H
JNZSHIFANG2
LCALLDL20MS
MOVA,P2
ANLA,#0F0H
XRLA,#0F0H
JNZSHIFANG2
MOVA,R4
CJNEA,#0B7H,NEXT4
LJMPSHUIWEI1
NEXT4:
CJNEA,#0BBH,NEXT5
LJMPSHUIWEI2
NEXT5:
CJNEA,#0BDH,NEXT6
LJMPSHUIWEI3
NEXT6:
CJNEA,#77H,NEXT7
LJMPSHUIWEI4
NEXT7:
LJMPKSSM2
;*****默认模式*****
MORENMOSHI:
MOV2AH,#2AH;设置时间1的参数42分钟MOV30H,#0BH;显示方式为b代表标准MOV25H,#36;正反转次数MOV26H,#08;转动8+10sMOV27H,#02
MOV2CH,#0DH;时间2,为13分钟
MOV31H,#01;显示水位为1
MOV28H,#50;进排水时间,50s+80s
LCALLXYCHX
RET
;****自动情况下方式一即为标准模式***
FANGSHI1:
MOV2AH,#2AH;设置时间1的参数42分钟MOV30H,#0BH;显示方式为b代表标准MOV25H,#36;正反转次数MOV26H,#08;转动8+10sMOV27H,#02;停两秒LCALLKSSM2;调用键盘扫描程序,选择水位
LJMPTHEND
;******自动情况下方式二,即为轻柔模式*******FANGSHI2:
MOV2AH,#24H;设置时间1的参数24分钟MOV30H,#25;显示方式为q代表轻柔MOV25H,#36;正反转次数MOV26H,#03;转动3+10sMOV27H,#02;停两秒
LCALLKSSM2;调用键盘扫描程序,选择水位
LJMPTHEND
;*****自动情况下方式三,即为快洗模式*****FANGSHI3:
MOV2AH,#1EH;设置时间1的参数30分钟MOV30H,#03;显示方式为3代表快洗MOV25H,#18;正反转次数MOV26H,#08;转动8+10s
MOV27H,#02;停两秒
LCALLKSSM2;调用键盘扫描程序,选择水位
LJMPTHEND
;******水位一******
SHUIWEI1:
MOV2CH,#0DH;时间2,为13分钟
MOV31H,#01;显示水位为1
MOV28H,#50;进排水时间,50s+80s
LCALLXYCHX
RET
;*****水位二*****
SHUIWEI2:
MOV2CH,#0CH;时间2,为12分钟
MOV31H,#02;显示水位为2
MOV28H,#40;进排水时间,40s+80s
LCALLXYCHX
RET
;*****水位三******
SHUIWEI3:
MOV2CH,#0BH;时间2,为11分钟
MOV31H,#03;显示水位为3
MOV28H,#30;进排水时间,30s+80s
LCALLXYCHX
RET
;*****水位四*********
SHUIWEI4:
MOV2CH,#0AH;时间2,为10分钟
MOV31H,#04;显示水位为4
MOV28H,#20;进排水时间,20s+80s
LCALLXYCHX
RET
;*******洗衣程序******
XYCHX:
SETBTR1;开定时器
LCALLDANXI;调单洗程序
LCALLPX;调漂洗程序
LCALLCTS;调长脱水程序
RET
;******单洗程序*******
DANXI:
LCALLDJSCZ;倒计时初值
LCALLJSH;调进水程序
GOON2:
MOV32H,#07
MOV33H,#13
LCALLZFZ;调正反转程序
DJNZ25H,GOON2;循环几次
LCALLPSH;排水
RET
;******漂洗程序*******
PX:
MOV29H,#02;循环2次
LCALLDTS;短脱水
GOON3:
LCALLJSH;进水
LCALLDXD;短洗涤
LCALL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 控制 全自动 洗衣机
![提示](https://static.bdocx.com/images/bang_tan.gif)