全自动洗衣机单片机课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全自动洗衣机单片机课
程设计
Document number【980KGB-6898YT-769T8CB-246UT-18GG08】
一、设计目标
1、全自动洗衣机
用51系列单片机89C51控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。不同的衣物,洗涤、漂洗、脱水和洗衣电机正反转所用的时间不同,要求设计能够实现过程选择,并在LED显示屏上显示过程代码。在运行的时候能显示完成整个过程的剩余时间。
2、洗衣机主要功能:进水、洗涤、脱水、排水
具体功能有浸泡、强力洗、轻柔洗、标准洗、快速洗、单独洗、单独脱水、漂洗脱水
二、设计过程
洗衣机要实现衣服的洗涤、漂洗和脱水,离不开进水、电机正转、电机反转和排水这四个动作。上述四个动作,是通过单片机的P0端口,做输出端口,去控制双向可控硅通断来实现的,如下图所示。同时加上输入开关的按钮、数码管显示器、蜂鸣按警器和欠压检测保护电路等,就可以形成完整的单片机控制系统。通过软件编程达到对整个洗衣过程进行控制、检测以及与用户交互。
三、设计结果
(1)硬件部分
1、电路图
2、PCB版图
(2)、汇编语言
洗衣机的一次洗衣过程控制过程主要为顺序控制,如先进水、洗涤(电机正转反转)、再排水脱水。将把脱水、洗涤、进水单独编为一个子程序,由主程序根据过程选择,不断调用,可以减少源程序的长度,不同的洗衣过程,三大动作的时间不同,这可以通过建立数据表格,通过查表的方式获得每个洗衣过程所需时间。此外,还需编出显示子程序,延时子程序供主程序不断调用。
1、流程图
(1)、洗衣机控制系统主程序流程图
(2)洗涤动作子程序流程图
(3)脱水子程序流程图
2、程序
ORG 0000H
LJMP MAIN
ORG 0030H
;延迟10ms程序
;使用R0, R1
DELAY10MS:
MOV R0, #100D;
DELAY10MS02:
MOV R1, #23D
DELAY10MS01:
DJNZ R1, DELAY10MS01
DJNZ R0, DELAY10MS02
RET
;显示子程序
;闪烁标志位:=0不闪烁,=1在1s 内亮灭一次
;程序开始标志:=1开始, =0选择;显示缓冲:50H
;经过的时间:53H,52H,51H=分钟,秒,20ms的次数
;总时间:TOTALTIME=40H
TOTALTIME EQU 40H DISPLAY:
PUSH ACC
PUSH PSW
SETB RS0
JNB , DISPLAY01
MOV A, 50H ;高位是否为零
CJNE A, #0AH, DISPLAY05 DISPLAY05:
JNC DISPLAY06
XRL A, #0F0H ;高位为零不显示
MOV 50H, A
DISPLAY06:
JNB , DISPLAY01 ;是否需闪烁
MOV A, 51H
CJNE A, #25D, DISPLAY02; DISPLAY02:
JC DISPLAY01
MOV 50H, #0FFH ;暗显示(不亮)
DISPLAY01:
MOV A, 50H ;显示低位
ANL A, #0FH;
MOV DPTR, #DISPLAYTAB;
MOVC A, @A+DPTR;
MOV P2, A;
SETB
CLR
LCALL DELAY10MS
MOV A, 50H ;显示高位
SWAP A
ANL A, #0FH;
MOV DPTR, #DISPLAYTAB;
MOVC A, @A+DPTR;
MOV P2, A;
CLR
SETB
LCALL DELAY10MS
INC 51H ;累计时间
MOV A, #50D ;
XRL A, 51H ;
JNZ DISPLAY03
;50次的20ms未到
MOV 51H, A ;
INC 52H
;1s
MOV A, #60D;
XRL A, 52H ;
JNZ DISPLAY03
MOV 52H, A ;
INC 53H
;1min
DISPLAY03:
JNB , DISPLAY04;
MOV A, TOTALTIME ;计算剩余时间
CLR C
SUBB A, 53H ;
MOV B, #10D
;16进制转换到10进制
DIV AB
SWAP A
XRL A, B ;
MOV 50H, A ; DISPLAY04:
POP PSW
POP ACC
RET
DISPLAYTAB: ;共阳数码管反向编码
DB 03H, 9FH, 25H, 0DH, 99H
;01234
DB 49H, 41H, 1FH, 01H, 09H
;56789
DB 11H, 0C1H, 63H, 85H, 61H ;ABCDE
DB 0FFH ;暗
;重算时间
;入口数据:A=总时间(分)CALUTIME:
MOV TOTALTIME, A
CLR A
MOV 52H, A ;秒