ORG 0000H
START: AJMP MAIN ; 初始化
ORG 0003H
AJMP INT0 ; 暂停中断中断向量
ORG 000BH
AJMP T0 ; 定时器0中断向量
ORG 0013H
AJMP INT1 ; 开盖,不平衡中断中断向量
ORG 0030H
MAIN: MOV P1, #0F0H ; 主程序开始
MOV P3,#7FH
MOV SP,#35H
MOV 56H,#0F0H ; #0F0H排水标志(指定56H为标志单元)
MOV 57H,#03 ; 洗衣机标准洗衣工作程序标志(指定57H)
MOV 54H,#40 ; 强洗正、反转驱动4秒赋值(指定54H存放)
MOV 55H,#10 ; 强洗间歇1秒赋值(指定55H存放)
MOV 58H,#06 ; 漂洗6分钟赋值(指定58H存放)
CLR ET0
SETB EA ; 开总中断
CLR IT0 ; 设置外部中断0、1为低电平触发
CLR IT1
SETB PX0 ; 设置中断优先级别
SETB PT0
SETB PX1
MOV TL0,#0B0H ; 设置100MS中断时间常数
MOV TH0,#3CH
MOV TMOD,#01H
KA: JNB ,X1 ; 以下为按键扫描程序
AJMP KB
X1: ACALL K1
KB: JNB ,X2
AJMP KC
X2: ACALL K2
KC: JB ,KA ; 按键扫描程序结束
ACALL DEL10
JB ,KA
ACALL FZH
JNB ,$
SETB ET0 ; 开定时器0中断
SETB TR0 ; 启动定时器0
SETB
SETB EX0
CLR
MOV A ,57H
CJNE A,#00H,XY ; 是排水程序?
AJMP BSH1 ; 是则跳转排水程序
XY: MOV 70H,#00
MOV 51H,#00
SETB ; 以下为进水操作,打开进水阀
MOV A,#240
L0: CJNE A,51H,L1 ; 进水系统有故障?
AJMP FW ; 有则跳转故障处理程序
L1: JB ,L0 ; 进水达预定水位?
CLR ; 进水结束,关闭进水阀
MOV 70H,#00
MOV 71H,#00
MOV 72H,#00
L: MOV 50H,#00 ; 以下为洗涤/漂洗工作程序
SETB ; 正转洗涤/漂洗驱动
MOV A,50H
CJNE A,50H,$
CLR ; 洗涤/漂洗间歇
MOV 50H,#00
MOV A,55H
CJNE A,50H,$
MOV 50H,#00
SETB ; 反转洗涤/漂洗驱动
MOV A,54H
CJNE A,50H,$
CLR ; 洗涤/漂洗间歇
MOV 50H,#00
MOV A,55H
CJNE A,50H,$
MOV A,58H
CJNE A,72H,L ; 洗涤/漂洗工作结束?
BSH: MOV A,56H
CJNE A,#0F0h,PBSH ; 洗涤/漂洗工作结束,
全自动洗衣机程序 来自淘豆网m.daumloan.com转载请标明出处.