基于单片机的洗衣机课程设计Word文档下载推荐.docx

上传人:b****3 文档编号:17180627 上传时间:2022-11-28 格式:DOCX 页数:37 大小:368.61KB
下载 相关 举报
基于单片机的洗衣机课程设计Word文档下载推荐.docx_第1页
第1页 / 共37页
基于单片机的洗衣机课程设计Word文档下载推荐.docx_第2页
第2页 / 共37页
基于单片机的洗衣机课程设计Word文档下载推荐.docx_第3页
第3页 / 共37页
基于单片机的洗衣机课程设计Word文档下载推荐.docx_第4页
第4页 / 共37页
基于单片机的洗衣机课程设计Word文档下载推荐.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

基于单片机的洗衣机课程设计Word文档下载推荐.docx

《基于单片机的洗衣机课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的洗衣机课程设计Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。

基于单片机的洗衣机课程设计Word文档下载推荐.docx

电机一般工作在这三种状态的不断转换之中,从而实现洗涤。

但在脱水时,只工作在正转高速状态。

进水阀和派排水阀则只有开.关这两种状态。

从控制电路中可以看出:

AT89C51的P1端口中的P0.0~P0.3共四条I/O线通过4块电磁继电器分别直接驱动洗衣机的这些工作部件。

电磁继电器是一种常用继电器,内有电磁铁心及磁力开关,通电就可使开关切换。

之所以选用这个器件,是因为它一方面可使电路进一部简化,另一方面还可使强.弱两类电完全隔离,保证主板的安全。

ULN2003A为7相反相驱动器,用其作为中间反相器,其中的4个反相器可分别驱动4个SP1110继电器,1个驱动蜂鸣器。

ULN2003A还有隔离功能,可保护主板。

74LS139为双2-4线译码器,选用它可解决CPUI/O线数量的不足。

从控制要求可知,洗衣机有4种不同的显示来加以区别。

74LSW139双2-4线译码器仅占用CPU的P3.7和P3.6两口线即可提供4种不同显示的驱动,其逻辑关系是:

P3.7,P3.6为“11”时D9亮,指示高水位;

为“10”时D8亮,指示中2水位;

为“01”时D7亮,指示中1水位;

为“00”时D6亮,指示低水位。

74LS47为共阳极BCD译码器,可把BCD码译为共阳极七段码。

洗衣机的三大功能是现衣物的洗涤,漂洗,脱水,而这三个可形成6种过程(或更多)在本设计中只有到6种,

洗衣机的过容安全保护和脱水安全保护及防震动功能采用中断处理方式。

这两个中断分别对应于CPU的外部中断“0”和外部中断“1”。

中断为下跳沿触发分别对k8和K9进行监测。

开盖(安全保护)或不平衡(防振动)中断信号通过K9加到P3.3。

本系统对开盖和不平衡中断采取相同的处理方法,因此,共用外部中断“1”。

在洗衣机未进入工作状态期间,P1.0为输入线,用于监测启动键的状态,当启动键按下时,洗衣机即进入工作状态。

P1.1,P1.3被设为输入键分别用于模式设定和水位设定,接K2和K4,确定后课按K1确认并进入洗衣状态。

D6为低水位,D7为中1水位,D8为中2水位,D9为高水位。

在洗衣机进水期间,P1.4被用作输入线,用于监测水位开关状态(K5),P1.5用于监测越线水位开关(K6)为CPU提供洗衣机的水位信息;

在洗衣机高速脱水期间,当发生开盖和不平衡中断时,P1.2为输入线(盖开关K3),用于撤消中断请求信号。

CPU的P0.4线通过ULN2003A用于驱动蜂鸣器发出各种告警信号。

P1.6(K7)做输出线用于脱水完成检测。

45脚外接12Hz的晶振。

1脚通过10uF电容接到+5v电源,可实现上电自动复位。

洗衣机的洗衣模式可通过K2贱进行循环选择。

洗衣机水位可通过K4键循环选择。

洗衣机的水位可通过D6~D9进行显示。

脱水期间系统在响应开盖或不平衡终止后,CPU采取软件查询的方式方式通过P1.2线对盖开关进行监测以确定洗衣机是否继续进行脱水操作。

D1为洗涤脱水指示;

D2为进水指示;

D3为排水指示;

D4代表进水阀;

D5代表出水阀。

D16~D20为续流二极管,用于保护电磁阀和蜂鸣器。

3.2各个部分软件设计原理说明

由AT89C51控制的全自动洗衣机的工作主程序框图如附图2-1所示。

从主程序框图可以看出,这个控制程序也较为简单,所以,占用的存储器容量不大。

从程序框图中可以看出程序的基本流程,系统上电复位后,首先进行初始话,按K1启动后默认标准洗衣工作程序和低水位,然后扫描K4,K2和启动键K1,这时洗衣机处于待命状态。

通过K2,K4可分别修改洗衣工作程序和水位。

扫描过程中当发现启动键K1按下时,洗衣机即从待命状态进入工作状态。

洗衣机进入工作程序后,系统首先根据RAM中R4单元的特征字判断洗衣机的洗衣工作程序,若特征字为00H则为标准洗衣程序、01H则为轻柔洗衣、02快洗、03单次洗衣、04漂洗、05脱水程序。

(水位和模式选择如框图1-1)

洗衣机的三大功能是实现衣服的洗涤、漂洗和脱水,进入工作状态后跳到所选工作程序,所有工作程序都是对这三大功能的调用和复写只是时间代码和洗涤力度不同,所以完成一次洗衣过程所需的动作为下列过程或其中几种.

(1)进水动作进行洗涤时,盛水桶内的水量必须达到水位设定要求。

洗衣机的进水和水位判断,是由水位开关K5和进水阀的开合来进行控制的。

当桶内没有水或水量达不到设定水位时,单片机程序将控制进水阀打开,开始注水;

当桶内的水位达到设定水位时,水位开关K5受压闭合,程序就可进入下一步(洗涤)处理。

若水位越线即K6闭合则控制排水阀打开进行排水直到K5打开为止。

进入下一过程。

(2)排水动作进入脱水动作前应先排水。

为了避免空排水造成时间浪费以及排水不完而带水脱水造成对电机的损害,洗衣机能够根据实际水量(缸底水位检测开关K7决定)对排水进行动态控制。

K7打开则排水完成,关闭排水阀。

(3)洗涤动作洗涤动作指的是电机周期性的“正转一停止一反转一停止“。

不同的洗衣过程,控制电机执行“正转一停止一反转一停止“的时间是不同的,标准洗涤过程可取:

正转4秒一停止2秒一反转4秒一停止2秒。

对于轻柔洗涤过程,这个时间要作相应调整为正转3秒一停止2秒一反转3秒一停止2秒。

(4)脱水动作排水结束后进入脱水动作,脱水是通过电机的正转来实现的,同时要求排水阀一直打开,也正是由于排水阀的打开,才使脱水时的电机正转速度不同于洗涤时的电机正转速度(通过机械装置实现)。

脱水分短脱水和长脱水,短脱水时间为2分钟。

脱水时电机将一直高速正转,一般5分钟的长脱时间。

进入脱水前若洗衣机桶盖是打开的,则进行呜叫、显示警。

进行脱水时若遇洗衣机桶盖打开或脱水不平衡,则暂停脱水并进行显告警,直至用户合上桶盖后或调整衣物后,才继续进行脱水。

脱水结束后,进入下一动作。

(5)抗干扰设计在设计中,我们将软件抗干扰的重点放在了CPU抗干扰问题上。

在洗衣机洗涤的过程中,如果干扰强烈,干扰就很可能通过三总线扰乱CPU按正常流程执行这些程序。

我们抗干扰的目的就是发现cPu如何受到干扰,如何拦截失去控制的程序流向,如何使程序的损失减小,如何尽可能无扰动地恢复系统正常状态。

这些可以通过以下两个途径实现指令冗余和软件陷阱。

洗衣过程结束后,蜂鸣器将断续呜叫以提醒用户可以取走衣服并关掉洗衣机的电源。

3.3各部分程序框图

总程序流程图:

;

四、调试与实现

4.1功能实现过程(图释)

单洗过程

短洗过程

短脱水过程

长脱水过程

排水过程

4.2调试出现的问题及解决办法

开始由于P0口没有上拉电阻而产生电机不能运转的问题,后经老师指导和查阅相关书籍讨论得以解决。

1、上电后,按启动键K1进入设定部分,可通过K2设定洗衣模式,K4设定水位。

设定结束后再按K1键进入相应模式并进水到设定位。

2、洗衣机进水指示灯亮,闭合K7,K5后进入下一步(05单脱无此步)

3、洗衣机脱水-洗涤指示灯闪烁,表明进入洗衣状态。

4、进入排水状态后,排水指示灯亮,打开K7则排水结束进入下一步

5、若没有闭合K3在脱水时则不脱水并警报蜂鸣,直到闭合K2,进入脱水(脱水-洗涤指示灯亮,排水指示灯亮)。

6、K8只在确定设定以前起作用,发出中断请求。

按下后会蜂鸣报警提醒用户减少洗衣量

7、K9只在脱水是起作用,当抖动厉害时由于抖动按下筒壁外的K9,发出中断请求,报警知K9放开。

五、总结

本文介绍了采用AT89C51单片机对家用洗衣机进行智能控制,经过实际检测,本设计具有结构简单,使用方便,可靠性高等特点。

经过本次设计使我对所学单片机知识的得到了深化,能够把知识综合的应用起来而不使像以前一样各个知识点是孤立的不能融会贯通。

加强了对实际问题的分析解决能力。

在这里我要感谢段老师以及姚超仁,罗春富,朱江和华雪松在设计中给我的帮助。

六、参考文献

1.段晨东单片机原理及接口技术2008清华大学出版社

2.张义和,陈敌北例说80512006人民邮电出版社

3.张毅刚单片机应用设计2002哈尔滨工业大学出版社

4.李仁电器控制2002机械工业出版

七、附录

7.1电路原理图

进水过程

3-5排水过程

短脱水过程

短洗过程

7.2程序清单

AT89C52RC控制的全自动智能波轮洗衣机程序

A_BITEQU43H;

存放个位数变量

B_BITEQU44H;

存放十位数变量

FLAGEQU45H;

DS18B20是否存在标志

DQEQUP1.3;

DQ引脚由P2.5控制

ORG0000H

LJMPSTART

ORG0003H

LJMPPINT0

ORG0013H

LJMPPINT1

ORG001BH

LJMPP_T1

ORG0030H

START:

MOVSP,#60H

MOVIP,#01H;

INTI为高优先级

SETBEA;

CPU允许中断

SETBIT0;

跳变触发方式

SETBIT1;

跳变触发方式

MOVTH1,#3CH

MOVTL1,#0B0H

MOV40H,#20;

1S定时

MOVTMOD,#10H

SETBEX1;

允许INT1中断

SETBEX0;

允许INT0中断

SETBET1;

允许定时器T1中断

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

MOV31H,#13

MOV2AH,#01H;

电机动作6分钟

MOV2CH,#01H;

进排水40秒

MOV25H,#09;

设正反转次数

MOV26H,#08;

转动8+10s

MOV27H,#02;

停2秒

MOV28H,#20;

进排水40秒,20+20x1

LCALLDJSCZ

LCALLDANXI

JNBP1.6,TOPX

LJMPTHEND

手动漂洗程序

TOPX:

SETBTR1

MOV31H,#18

电机动作

进排水20+20

LCALLPX

JNBP1.7,TOCTS

LJMPTHEND

手动长脱水

TOCTS:

MOV30H,#16;

状态显示查表参数

MOV31H,#12;

脱水1分钟

MOV2CH,#00H

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;

延时消抖

ANLA,#0F0H;

重读键盘

MOVR2,#11110111B;

列扫描初值

LSM1:

MOVA,R2

MOVP2,A

ANLA,#11110000B

MOVR3,A

CJNEA,#0F0H,KEY1;

有键按下则跳转

MOVA,R2

RRA

MOVR2,A

XRLA,#01111111B

JNZLSM1

NO_KEY1:

LJMPKSSM1

KEY1:

ANLA,#0FH

ORLA,R3

MOVR4,A

SHIFANG1:

MOVA,P2

JNZSHIFANG1

LCALLDL20MS

MOVA,R4

CJNEA,#0D7H,NEXT1

LJMPFANGSHI1

NEXT1:

CJNEA,#0DBH,NEXT2

LJMPFANGSHI2

NEXT2:

CJNEA,#0DDH,NEXT3

LJMPFANGSHI3

NEXT3:

KEY_TAB:

DB0EBH,0EDH,0EEH,0DBH,0DDH

DB0DEH,0BBH,0BDH,0BEH

****实际键盘扫描2*****

KSSM2:

JZNO_KEY2;

LSM2:

CJNEA,#0F0H,KEY2;

JNZLSM2

NO_KEY2:

LJMPKSSM2

KEY2:

MOVDPTR,#KEY_TAB

MOVR5,#00

ZHAOJZ2:

MOVA,R5

MOVCA,@A+DPTR

XRLA,R4

JZSHIFANG2

INCR5

LJMPZHAOJZ2

SHIFANG2:

JNZSHIFANG2

CJNEA,#0B7H,NEXT4

LJMPSHUIWEI1

NEXT4:

CJNEA,#0BBH,NEXT5

LJMPSHUIWEI2

NEXT5:

CJNEA,#0BDH,NEXT6

LJMPSHUIWEI3

NEXT6:

CJNEA,#77H,NEXT7

LJMPSHUIWEI4

NEXT7:

****自动情况下方式一即为标准模式***

FANGSHI1:

MOV2AH,#07H;

设置时间1的参数7分钟

MOV30H,#01;

显示方式为1

MOV25H,#06;

正反转次数

MOV26H,#08;

转动8+10s

MOV27H,#02;

停两秒

LCALLKSSM2;

调用键盘扫描程序,选择水位

******自动情况下方式二,即为轻柔模式*******

FANGSHI2:

MOV2AH,#04H;

设置时间1的参数04分钟

MOV30H,#02;

显示方式为2

正反转次数

MOV26H,#03;

转动3+10s

停两秒

*****自动情况下方式三,即为快洗模式*****

FANGSHI3:

MOV2AH,#05H;

设置时间1的参数05分钟

MOV30H,#03;

显示方式为3

MOV25H,#03;

转动8+10s

******水位一******

SHUIWEI1:

MOV2CH,#04H;

时间2,为4分钟

MOV31H,#01;

显示水位为1

MOV28H,#20;

进排水时间,20s+20s

LCALLXYCHX

RET

*****水位二*****

SHUIWEI2:

MOV2CH,#03H;

时间2,为3分钟

MOV31H,#02;

显示水位为2

进排水时间,20s+20s

*****水位三******

SHUIWEI3:

MOV2CH,#02H;

时间2,为2分钟

MOV31H,#03;

显示水位为3

进排水时间,20s+20s

*****水位四*********

SHUIWEI4:

MOV2CH,#01H;

时间2,为1分钟

MOV31H,#04;

显示水位为4

*******洗衣程序******

XYCHX:

SETBTR1;

开定时器

LCALLDANXI;

调单洗程序

LCALLPX;

调漂洗程序

LCALLCTS;

调长脱水程序

RET

******单洗程序*******

DANXI:

LCALLDJSCZ;

倒计时初值

LCALLJSH;

调进水程序

GOON2:

MOV32H,#07

MOV33H,#13

LCALLZFZ;

调正反转程序

DJNZ25H,GOON2;

循环几次

LCALLPSH;

排水

******漂洗程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1