You are on page 1of 2

P0_0 BIT 80H

P0_1 BIT 81H


P0_2 BIT 82H
P0_3 BIT 83H
P0_4 BIT 84H
P0_5 BIT 85H
P0_6 BIT 86H
P0_7 BIT 87H
P1_0 BIT 90H
P1_1 BIT 91H
P1_2 BIT 92H
P1_3 BIT 93H
P1_4 BIT 94H
P1_5 BIT 95H

ORG 7000H

SETB P1_4 ;set start switch


L1: JB P1_4,L1
ACALL DELAYD ;debounce delay
SJMP L1
SETB P1_5 ;set stop switch

L2: JB P1_5,L2
ACALL DELAYD
SJMP L2

CYNDER: SETB P0_0 ;set level limit switch1


JB P0_0,D1
ACALL M1V1 ;start motor cylinder1 active

SETB P0_2 ;set limit switch1


JNB P0_2,M1V1
CLR P0_6 ;stop motor

SETB P0_3 ;limit switch2


JB P0_3,CAP
SJMP CYNDER ;start motor

CAP: SETB P0_4 ;limit switch2


JNB P0_4,LOAD

LOAD: JB P0_5,VALVE1 ;load cell

VALVE: SETB P0_7 ;open valve1


ACALL DELAYV

LOAD1O: JB P0_4,LOAD ;over flow


CLR P0_7 ;close valve1
SJMP CYNDER

M1V1: SETB P0_6 ;50% duty cycle


MOV R0,#50
ACALL DELAYM1
CLR P0_6
MOV R0,50
ACALL DELAY
SJMP M1V1
DELAYM1: H1: MOV R1,#100
H2: MOV R2,#255

DELAYD: MOV R2,#100 ;debouns delay


LABLE2: MOV R3,#255
LABLE1: DJNZ R3,LABLE1
DJNZ R2,LABLE2

DELAYV: MOV R4,#2 ;valve delay


LO3: MOV R5,#255
LO2: MOV R6,#255
LO1: DJNZ R6,LO1
DJNZ R5,LO2
DJNZ R4,LO3

D1: CLR P1_1 ;led1 on

SETB P0_1 ;set level limit switch2


L4: JB P0_1,D2

SETB P0_2 ;set limit switch1


JNB P0_2,M1V1
CLR P0_6 ;stop motor

SETB P0_3 ;limit switch2


JB P0_3,CAP
SJMP CYNDER ;start motor

CAP: SETB P0_4 ;limit switch2


JNB P0_4,LOAD

LOAD: JB P0_5,VALVE1 ;load cell

VALVE: SETB P1_0 ;open valve2


ACALL DELAYV

LOAD1O: JB P0_4,LOAD ;over flow


CLR P1_0 ;close valve2
SJMP CYNDER ;jump to first loop(CYNDER)

D2: CLR P1_2 ;led2 on


SETB P1_3 ;alarm on
RET
END

You might also like