|
FLOWCHART FOR
INTERRUPT

SOURCE
CODE:
TRANSMISSION PROGRAM:
ORG
0000H
JMP MAIN
ORG 0003H
JMP INCR
ORG 0013H
JMP DECR
ORG 0023H
JNB
TI,REC
CLR TI
MOV P0,A
ACALL
DAT
ACALL
DELAY
RETI
REC: CLR RI
RETI
ORG 0040H
MAIN : MOV A,#38H
ACALL
COMM
ACALL
DELAY
MOV
A,#0EH
ACALL
COMM
ACALL
DELAY
MOV
A,#01H
ACALL
COMM
ACALL
DELAY
MOV
A,#06H
ACALL
COMM
ACALL
DELAY
MOV
A,#80H
ACALL
COMM
ACALL
DELAY
MOV
IE,#97H
MOV SCON,#50H
MOV TMOD,#2DH
MOV
TH1,#0E8H
MOV
R0,#30H
SETB TR1
SETB
TCON.0 ; EDGE TRIGGERING
SETB
TCON.2
SETB TR0
SPEED: MOV R6,TL0
CALL SEC
CALL SEC
CALL SEC
MOV
A,TL0
SUBB
A,R6
ACALL
CONV
MOV
A,#0C0H
ACALL
COMM
ACALL
DELAY
MOV A,R2
ACALL
DAT
ACALL
DELAY
MOV A,R1
ACALL
DAT
ACALL
DELAY
MOV A,R7
ACALL
DAT
ACALL
DELAY
JMP
SPEED
COMM : MOV P0,A
CLR P2.7
SETB
P2.5
CLR P2.5
RET
DAT : MOV P0,A
SETB
P2.7
SETB
P2.5
CLR P2.5
RET
DELAY: MOV R3,#50
HERE2: MOV R4,#255
HERE: DJNZ R4,HERE
DJNZ
R3,HERE2
RET
;**************************
INCREASE SPEED
INCR:
INC R0
CJNE
R0,#35H ,NEXT ; TO CHECK IF MAX SPEED CROSSED
DEC
R0
RETI
NEXT: MOV A,#80H
ACALL
COMM
ACALL
DELAY
ACALL
SEND
RETI
;************************* DECREASE SPEED
DECR: CJNE R0,#31H,
NEXT2 ; TO CHECK IF MIN SPEED CROSSED
RETI
NEXT2: DEC R0
MOV
A,#80H
ACALL
COMM
ACALL
DELAY
ACALL
SEND
RETI
SEND: MOV A,R0
MOV
SBUF,A
RET
SEC: MOV R3,#25
H3: MOV
R4,#200
H2: MOV
R5,#200
H1: DJNZ R5,H1
DJNZ
R4,H2
DJNZ
R3,H3
RET
CONV: MOV B,#10
DIV AB
MOV R7,B
MOV
B,#10
DIV AB
ORL
A,#30H
MOV R2,A
MOV A,B
ORL
A,#30H
MOV R1,A
MOV A,R7
ORL
A,#30H
MOV R7,A
RET
END |