全自动洗衣机单片机课程计划.doc

上传人:一*** 文档编号:827280 上传时间:2019-07-24 格式:DOC 页数:19 大小:209.50KB
返回 下载 相关 举报
全自动洗衣机单片机课程计划.doc_第1页
第1页 / 共19页
全自动洗衣机单片机课程计划.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《全自动洗衣机单片机课程计划.doc》由会员分享,可在线阅读,更多相关《全自动洗衣机单片机课程计划.doc(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一、设计目标1、全自动洗衣机 用 51 系列单片机 89C51 控制全自动洗衣机的运行,使其能自动地完成进水、洗 涤、漂洗、脱水等功能。不同的衣物,洗涤、漂洗、脱水和洗衣电机正反转所 用的时间不同,要求设计能够实现过程选择,并在 LED 显示屏上显示过程代码。 在运行的时候能显示完成整个过程的剩余时间。 2、洗衣机主要功能:进水、洗涤、脱水、排水具体功能有浸泡、强力洗、轻柔洗、标准洗、快速洗、单独洗、单独脱水、 漂洗脱水二、设计过程洗衣机要实现衣服的洗涤、漂洗和脱水,离不开进水、电机正转、电机反转和 排水这四个动作。上述四个动作,是通过单片机的 P0 端口,做输出端口,去控 制双向可控硅通断来

2、实现的,如下图所示。同时加上输入开关的按钮、数码管 显示器、蜂鸣按警器和欠压检测保护电路等,就可以形成完整的单片机控制系 统。通过软件编程达到对整个洗衣过程进行控制、检测以及与用户交互。水位开关安全开关程序选择/启动/暂停 可控硅 X 4 个220V洗衣机单片机控制系统方框图三、设计结果(1)硬件部分1、电路图单片机 89C51进水电磁阀排水电磁阀电机正转电机反转显示屏蜂鸣器2、PCB 版图(2)、汇编语言洗衣机的一次洗衣过程控制过程主要为顺序控制,如先进水、洗涤(电机 正转反转)、再排水脱水。将把脱水、洗涤、进水单独编为一个子程序,由主程 序根据过程选择,不断调用,可以减少源程序的长度,不同

3、的洗衣过程,三大 动作的时间不同,这可以通过建立数据表格,通过查表的方式获得每个洗衣过 程所需时间。此外,还需编出显示子程序,延时子程序供主程序不断调用。1、流程图 (1) 、洗衣机控制系统主程序流程图开始用户选择洗衣过程是否洗涤结束进水洗涤排水 2D7 秒进水是否漂洗是否脱水置注水漂洗标志置最后脱水标志间歇脱水最后长脱水是否为最后 脱水结束鸣响中间长脱水洗涤是否为注水 漂洗置注水漂洗 标志(2)洗涤动作子程序流程图是否否是否是否是是否开始根据过程代码获取电机正转- 停止-反转-停止的时间周期电机动作进水处理是否进水快速洗标志?时间到否?是否暂停重启否设定快速 洗时间和 电机正转 停止反转 停

4、止周期 清标志暂停处理结束(3)脱水子程序流程图是否 否是是否否是是否否是是延时 5 秒电机动作暂停处 理安全开关 是否断开脱水时间 到否安全开关断开 暂停不平衡修正 报警重置修正次 数是否暂 停是否暂 停开 始安全开 关 是否断 开延时 30 秒,关闭排 水阀是否 瞬间 断开不平衡修 正3 次脱水不平衡 修正安全开 关是否 闭合显示鸣叫 报警结束结束束束2、程序ORG 0000HLJMP MAINORG 0030H;延迟 10ms 程序;使用 R0, R1DELAY10MS:MOV R0, #100D;DELAY10MS02:MOV R1, #23DDELAY10MS01:DJNZ R1,

5、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, #0F

6、0H;高位为零不显示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, #DISPL

7、AYTAB;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

8、 进制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

9、 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,

10、 #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

11、: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 ERR

12、ORE4SJMP INWATERPI2:JNB P0.2, PI4;LCALL DISPLAYLCALL XDPAUSESJMP PI3PI4:CLR P1.2PI1: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 D

13、ISPLAYJNB 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, #60D

14、OUTW2: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,

15、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 DI

16、SPLAYDJNZ 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 DISPL

17、AYJNB 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,

18、 #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;主程序开始;选择程序

19、: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 D

20、ISPLAYJNB 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 PROC

21、4;洗衣程序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,

22、 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, XI

23、DI04LJMP 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

24、.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 DELAY

25、4SDJNZ 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 秒M

26、OV 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;

27、TS22:LCALL DELAY4SDJNZ R7, TS22CLR P1.0MOV R7, #250;延迟秒TS26:LCALL DISPLAYDJNZ R7, TS26CLR P1.3MOV A, #12DLCALL CALUTIME;第二次漂洗LCALL INWATERMOV A, #10DLCALL CALUTIME;洗涤 2 分钟MOV R7, #08D; XIDI2:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7

28、, XIDI2;快速洗涤 15 秒MOV R7, #11DQXIDI2:SETB P1.0LCALL DELAY320MSCLR P1.0LCALL DELAY320MSSETB P1.1LCALL DELAY320MSCLR P1.1LCALL DELAY320MSDJNZ R7, QXIDI2PROC8:SETB 20H.0 ;过程需要闪烁MOV A, #08DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #06DLCALL CALUTIME;最后脱水MOV R7, #04D;间隙脱水 30秒TS31:SETB P1.0LCALL DELAY4SCLR P1.

29、0LCALL DELAY3SDJNZ R7, TS31SETB P1.0;长脱水分钟?MOV R7, #05DTS32:LCALL DELAY4SDJNZ R7, TS32CLR P1.0MOV R6, #06TS28:MOV R7, #250;延迟秒*6=30秒TS29:LCALL DISPLAYDJNZ R7, TS29DJNZ R6, TS28CLR P1.3LJMP OVEROVER:LCALL ALARMSETB P0.6CLR P0.7MOV P2, #03HSJMP $END四、设计体会通过此次对全自动洗衣机的课程设计,对单片机的知识进一步掌握,也巩 固了之前学习到的知识。复习了 protel99se 的使用,过实践练习操作更加熟练。 全自动洗衣机的设计就是对一个系统的设计,软件、硬件各方面都要求考虑到, 各模块协调工作才能达到我们想要的结果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com