




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、设计目标1、全自动洗衣机用51系列单片机89C51控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。不同的衣物,洗涤、漂洗、脱水和洗衣电机正反转所用的时间不同,要求设计能够实现过程选择,并在LED显示屏上显示过程代码。在运行的时候能显示完成整个过程的剩余时间。2、洗衣机主要功能:进水、洗涤、脱水、排水 具体功能有浸泡、强力洗、轻柔洗、标准洗、快速洗、单独洗、单独脱水、漂洗脱水二、设计过程洗衣机要实现衣服的洗涤、漂洗和脱水,离不开进水、电机正转、电机反转和排水这四个动作。上述四个动作,是通过单片机的P0端口,做输出端口,去控制双向可控硅通断来实现的,如下图所示。同时加上输入开关的按钮、数码管显示器、蜂鸣按警器和欠压检测保护电路等,就可以形成完整的单片机控制系统。通过软件编程达到对整个洗衣过程进行控制、检测以及与用户交互。单片机89C51进水电磁阀排水电磁阀电机正转电机反转显示屏蜂鸣器 水位开关 安全开关 程序选择/启动/暂停 可控硅X 4个220V 洗衣机单片机控制系统方框图三、设计结果(1)硬件部分1、电路图2、PCB版图(2)、汇编语言 洗衣机的一次洗衣过程控制过程主要为顺序控制,如先进水、洗涤(电机正转反转)、再排水脱水。将把脱水、洗涤、进水单独编为一个子程序,由主程序根据过程选择,不断调用,可以减少源程序的长度,不同的洗衣过程,三大动作的时间不同,这可以通过建立数据表格,通过查表的方式获得每个洗衣过程所需时间。此外,还需编出显示子程序,延时子程序供主程序不断调用。 1、流程图(1)、洗衣机控制系统主程序流程图开始用户选择洗衣过程是否洗涤结束进水洗涤排水2D7秒进水是否漂洗是否脱水置注水漂洗标志置最后脱水标志间歇脱水最后长脱水是否为最后脱水结束鸣响中间长脱水洗涤是否为注水漂洗置注水漂洗标志(2)洗涤动作子程序流程图开始根据过程代码获取电机正转-停止-反转-停止的时间周期电机动作进水处理是否进水快速洗标志?时间到否?是否暂停重启否设定快速洗时间和电机正转停止反转停止周期清标志暂停处理结束 是 否 否 是 否 是 否 是 是 否(3)脱水子程序流程图延时5秒电机动作暂停处理安全开关是否断开脱水时间到否安全开关断开暂停不平衡修正报警重置修正次数是否暂停是否暂停开始安全开关是否断开延时30秒,关闭排水阀是否瞬间断开不平衡修正3次脱水不平衡修正安全开关是否闭合显示鸣叫报警结束束 是否否是是否否是是否否是是2、程序19ORG 0000HLJMP MAINORG 0030H;延迟10ms程序;使用R0, R1DELAY10MS:MOV R0, #100D;DELAY10MS02:MOV R1, #23DDELAY10MS01:DJNZ R1, DELAY10MS01DJNZ R0, DELAY10MS02RET;显示子程序;20H.0闪烁标志位:=0不闪烁,=1在1s内亮灭一次;20H.1程序开始标志:=1开始, =0选择;显示缓冲:50H;经过的时间:53H,52H,51H=分钟,秒,20ms的次数;总时间:TOTALTIME=40HTOTALTIME EQU 40HDISPLAY:PUSH ACCPUSH PSWSETB RS0JNB 20H.1, DISPLAY01MOV A, 50H ;高位是否为零CJNE A, #0AH, DISPLAY05DISPLAY05:JNC DISPLAY06XRL A, #0F0H;高位为零不显示MOV 50H, ADISPLAY06:JNB 20H.0, DISPLAY01;是否需闪烁MOV A, 51HCJNE A, #25D, DISPLAY02;DISPLAY02:JC DISPLAY01MOV 50H, #0FFH;暗显示(不亮)DISPLAY01:MOV A, 50H;显示低位ANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, A+DPTR;MOV P2, A;SETB P0.6CLR P0.7LCALL DELAY10MSMOV A, 50H;显示高位SWAP AANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, A+DPTR;MOV P2, A;CLR P0.6SETB P0.7LCALL DELAY10MSINC 51H;累计时间MOV A, #50D;XRL A, 51H;JNZ DISPLAY03;50次的20ms未到MOV 51H, A;INC 52H;1sMOV A, #60D;XRL A, 52H;JNZ DISPLAY03MOV 52H, A;INC 53H;1minDISPLAY03:JNB 20H.0, DISPLAY04;MOV A, TOTALTIME;计算剩余时间CLR CSUBB A, 53H;MOV B, #10D ;16进制转换到10进制DIV ABSWAP AXRL A, B;MOV 50H, A;DISPLAY04:POP PSWPOP ACCRETDISPLAYTAB: ;共阳数码管反向编码DB 03H, 9FH, 25H, 0DH, 99H;01234DB 49H, 41H, 1FH, 01H, 09H;56789DB 11H, 0C1H, 63H, 85H, 61H;ABCDEDB 0FFH;暗;重算时间;入口数据:总时间(分)CALUTIME:MOV TOTALTIME, ACLR AMOV 52H, A;秒MOV 53H, A;经过的分钟RET;鸣叫一下, 时长120msPLAY:SETB P1.6MOV R0, #12D;PLAY1:LCALL DISPLAYDJNZ R0, PLAY1CLR P1.6RET;鸣叫六下, 时长240ms*12ALARM:SETB P1.6MOV R1, #11D;ALARM2:MOV R0, #12D;ALARM3:LCALL DISPLAYDJNZ R0, ALARM3CPL P1.6DJNZ R1, ALARM2RET;洗涤用子程序;洗涤时暂停按键XDPAUSE:JB P0.0, XDPS01LCALL DISPLAYJB P0.0, XDPS01PUSH 52HPUSH 53HCLR 20H.0;不闪烁MOV A, P1PUSH ACCMOV P1, #00HLCALL PLAYXDPS02:LCALL DISPLAYJNB P0.0, XDPS02;等待按键释放XDPS03:LCALL DISPLAYJB P0.0, XDPS03LCALL DISPLAYJB P0.0, XDPS03LCALL PLAYXDPS04:LCALL DISPLAYJNB P0.0, XDPS04;等待按键释放POP ACCMOV P1, ACCSETB 20H.0POP 53HPOP 52HXDPS01:RET;洗涤时延迟0.32sDELAY320MS:MOV R2, #14D;SJMP XDELAY01;洗涤时延迟0.56sXDELAY560MS:MOV R2, #28DSJMP XDELAY01;洗涤时延迟1sXDELAY1S:MOV R2, #50DSJMP XDELAY01;洗涤时延迟1.6sDELAY1600MS:MOV R2, #80DXDELAY01:LCALL DISPLAYLCALL XDPAUSE;暂停按键LCALL IFINWATER;水位开关DJNZ R2, XDELAY01RET;洗涤前进水子程序INWATER:JNB P0.2, PI1;SETB P1.2MOV A, 53H;ADD A, #20D;MOV 59H, A; PI3:MOV A, 53H;XRL A, 59H;JNZ PI2LCALL ERRORE4SJMP INWATER PI2:JNB P0.2, PI4;LCALL DISPLAYLCALL XDPAUSESJMP PI3 PI4:CLR P1.2 PI1:RET;洗涤时是否再进水IFINWATER:JNB P0.2, IF1;MOV A, P1;PUSH ACCMOV P1, #00H;LCALL INWATER;进水POP ACCMOV P1, A;IF1:RET;不能进水报警ERRORE4:PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACCMOV P1, #00H;MOV 50H, #0E4HLCALL ALARME4PK2:LCALL DISPLAYJNB P0.1, E4PK2;LCALL DISPLAYJNB P0.1, E4PK2E4PK3:LCALL DISPLAYJB P0.1, E4PK3LCALL DISPLAYJB P0.1, E4PK3SETB 20H.0POP ACCMOV P1, ACC;POP 53HPOP 52HRET;排水时延迟1sDELAY1000MS:MOV R2, #50D;DLY51:LCALL DISPLAYLCALL XDPAUSE;暂停按键DJNZ R2, DLY51;RET;排水子程序OUTWATER:CLR ASETB P1.3JB P0.2, OUTW1MOV R7, #60DOUTW2:LCALL DELAY1000MSJB P0.2, OUTW4DJNZ R7, OUTW2LCALL ERRORE1SJMP OUTWATEROUTW4:CLR CMOV A, #60DSUBB A, R7OUTW1:ADD A, #60DMOV R7, AOUTW3:LCALL DELAY1000MSDJNZ R7, OUTW3RET;不能排水报警ERRORE1:PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACCMOV P1, #00H;MOV 50H, #0E1HLCALL ALARME1PK2:LCALL DISPLAYJNB P0.1, E1PK2;LCALL DISPLAYJNB P0.1, E1PK2E1PK3:LCALL DISPLAYJB P0.1, E1PK3LCALL DISPLAYJB P0.1, E1PK3SETB 20H.0POP ACCMOV P1, ACC;POP 53HPOP 52HRET;脱水时暂停按键TPKEY:JB P0.0, TPK1;LCALL DISPLAYJB P0.0, TPK1;PUSH 52HPUSH 53HCLR 20H.0LCALL PLAYMOV A, P1;PUSH ACCJNB ACC.0, TPK6CLR P1.0MOV R0, #250;延迟秒TPK5:LCALL DISPLAYDJNZ R0, TPK5TPK6:MOV P1, #00H;TPK2:LCALL DISPLAYJNB P0.0, TPK2;TPK3:LCALL DISPLAYJB P0.0, TPK3LCALL DISPLAYJB P0.0, TPK3LCALL PLAYSETB 20H.0SETB P1.3MOV R0, #250;延迟秒TPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTPK1:RET;脱水时开盖, 脱水时安全报警IFOPEN:ERRORE2:JNB P0.1, TTPK1;LCALL DISPLAYJNB P0.1, TTPK1;PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACC;LCALL ALARMJNB ACC.0, TTPK6CLR P1.0MOV R0, #250;延迟秒TTPK5:LCALL DISPLAYDJNZ R0, TTPK5TTPK6:MOV P1, #00H;MOV 50H, #0E2HTTPK2:LCALL DISPLAYJB P0.1, TTPK2;TTPK3:LCALL DISPLAYJB P0.1, TTPK2LCALL DISPLAY;JB P0.1, TTPK3SETB 20H.0SETB P1.3MOV R0, #250;延迟秒TTPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTTPK1:RET;脱水时延迟4sDELAY4S:MOV R2, #200D; DLY431:LCALL DISPLAYLCALL TPKEY;暂停按键LCALL IFOPEN;安全开关DJNZ R2, DLY431;RET;脱水时延迟3sDELAY3S:MOV R2, #150D;DLY321:LCALL DISPLAYLCALL TPKEY;暂停按键LCALL IFOPEN;安全开关DJNZ R2, DLY321;RET;主程序开始;选择程序:30H, 程序开始20H.1=1MAIN:MOV SP, #60H;CLR 20H.0CLR 20H.1MOV A, #00H;MOV P1, A;MOV 50H, A;MOV 51H, A;MOV 52H, A;MOV 53H, A;MOV 30H, A;LP1:;有无按键LCALL DISPLAYJB P0.0, LP1;LCALL DISPLAY;按键去抖动JB P0.0, LP1;LP3:INC 30HMOV A, #0AH ;共有九种可选择XRL A, 30H;JNZ LP2MOV 30H, #01H;LP2:LCALL PLAYMOV 50H, 30H;LP4:LCALL DISPLAYJNB P0.0, LP4;等待按键释放CLR AMOV 52H, A;LP5:LCALL DISPLAYMOV A, 52H;XRL A, #03H ;3秒延迟到否JZ START;开始洗衣JB P0.0, LP5;SJMP LP3;重选洗衣程序START:LCALL ALARMSETB 20H.1CLR AMOV 52H, A;MOV A, 30H;DEC AMOV B, #03H;MUL ABMOV DPTR, #PROCTAB;JMP A+DPTRPROCTAB:LJMP PROC1;洗衣程序LJMP PROC2;洗衣程序LJMP PROC3;洗衣程序LJMP PROC4;洗衣程序LJMP PROC5;洗衣程序LJMP PROC6;洗衣程序LJMP PROC7;洗衣程序LJMP PROC8;洗衣程序LJMP PROC9;洗衣程序PROC1:MOV A, #59DLCALL CALUTIMESETB 20H.0LCALL INWATER;进水MOV A, #57DLCALL CALUTIME;洗涤3分钟MOV R7, #42D;XIDI0:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI0MOV R6, #01D;共4次*3分钟=12分钟MOV R7, #30D;停2分钟XIDI01:LCALL XDELAY1SDJNZ R7, XIDI01MOV R7, #14D;洗涤1分钟XIDI03:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI03DJNZ R6, XIDI02MOV R7, #30D;停2分钟XIDI04:LCALL XDELAY1SDJNZ R7, XIDI04LJMP PROC3;以下同过程PROC2:;(待完成)LJMP overPROC3:MOV A, #42DLCALL CALUTIMESETB 20H.0LCALL INWATER;进水MOV A, #40DLCALL CALUTIME;洗涤15分钟MOV R7, #8D; XIDI:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI;快速洗涤15秒MOV R7, #11DQXIDI:SETB P1.0LCALL DELAY320MSCLR P1.0LCALL DELAY320MSSETB P1.1LCALL DELAY320MSCLR P1.1LCALL DELAY320MSDJNZ R7, QXIDIMOV A, #25DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #23DLCALL CALUTIME;第一次脱水MOV R7, #04D;间隙脱水30秒TS1:SETB P1.0LCALL DELAY4SCLR P1.0LCALL DELAY3SDJNZ R7, TS1SETB P1.0;长脱水秒MOV R7, #10D; TS2:LCALL DELAY4SDJNZ R7, TS2CLR P1.0MOV R7, #250;延迟秒TS25:LCALL DISPLAYDJNZ R7, TS25CLR P1.3MOV A, #20DLCALL CALUTIME;第一次漂洗LCALL INWATERMOV A, #18DLCALL CALUTIME;洗涤2分钟MOV R7, #08D;XIDI1:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI1;快速洗涤15秒MOV R7, #11DQXIDI1:SETB P1.0LCALL DELAY320MSCLR P1.0LCALL DELAY320MSSETB P1.1LCALL DELAY320MSCLR P1.1LCALL DELAY320MSDJNZ R7, QXIDI1MOV A, #16DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #14DLCALL CALUTIME;第二次脱水MOV R7, #04DTS21:SETB P1.0LCALL DELAY4SCLR P1.0LCALL DELAY3SDJNZ R7, TS21SETB P1.0MOV R7, #10D; TS22:LCALL DELAY4SDJNZ R7, TS22CLR P1.0MOV R7, #250;延迟秒TS26:LCALL DISPLAYDJNZ R7, TS26CLR P1.3MOV A, #12DLCA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025工程硕士检测卷含答案详解【A卷】
- 2025年通辽市直事业单位选聘40人笔试模拟试题及参考答案详解
- 浦发银行丹东市元宝区2025秋招笔试创新题型专练及答案
- 中信银行广州市黄埔区2025秋招金融科技岗笔试题及答案
- 华夏银行西安市莲湖区2025秋招笔试综合模拟题库及答案
- 兴业银行嘉兴市平湖市2025秋招笔试创新题型专练及答案
- 农发行岳阳市汨罗市2025秋招笔试综合模拟题库及答案
- 招商银行赣州市赣县区2025秋招笔试价值观测评题专练及答案
- 招商银行丹东市振兴区2025秋招笔试创新题型专练及答案
- 浦发银行苏州市张家港市2025秋招笔试价值观测评题专练及答案
- 拖欠工资协议书
- 电缆沟及盖板作业指导书培训课件
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- GB/T 19478-2018畜禽屠宰操作规程鸡
- 三级教育考试卷(焊工)答案
- 无生上课课堂教学评价标准
- 深圳低压电工作业-实际操作培训课件-科目四-作业现场应急处理
- 植物生理学第十三章植物的逆境生理课件
- 中控岗位培训课件
- 宾馆酒店前台责任书
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
评论
0/150
提交评论