

ORG 00H
LJMP MAIN

ORG 00BH
LJMP T1ISR

MAIN:

MOV P1,#0FFH
MOV TMOD,#05H     ;counter in 16 bit mode

SETB EA
SETB ET0

START:

     JB P1.7,START        ; press button and start motor
     CALL DEBOUNCE
     JNB P1.7,START     
 
MOV TH0,#0E5H             ;loading values for counter, to count 6700 pulses 
MOV TL0,#0D3H

CLR P1.5                  ; start motor
CLR P1.4                  ;LED  
SETB TR0

HERE1:

JNB P1.5,HERE1            ;wait for motor stop and jump back
                          ;to start
 
 CLR TR0
 JMP MAIN

T1ISR:                     ;timer interrupt    

CLR TF0

SETB P1.5                  ;stop motor
SETB P1.4

RETI

DEBOUNCE:

        MOV R6, #09H
        
 LOOP4: MOV R7, #09H
        
 LOOP3: MOV R4, #09H
        
 LOOP2: MOV R5, #09H
        
 LOOP1: DJNZ R5, LOOP1
        
        DJNZ R4, LOOP2
        
        DJNZ R7, LOOP3
        
        DJNZ R6, LOOP4
        RET
END
