Led blink using switch and timer 0 in assembly - 8051 C8051F020

code:

$include (c8051f020.inc)        ; Include register definition file.
extrn code (Init_Device)		; Declare an external code for initialization.
SW1 	EQU P0^4
SW2 	EQU P0^5
LED		EQU	P1^5								 


CSEG AT 0
LJMP MAIN           
ORG  0B3h			

LEDSEG      SEGMENT  CODE
            RSEG     LEDSEG         ; Switch to this code segment.
            USING    0              ; Specify register bank for the
                                    ; following program code.

MAIN:		LCALL	Init_Device		; call external program
			
			MOV	P0, #30H			;set SW1,SW2 as input
			MOV P1, #00				;turn OFF all leds
			SETB TR0 ; START CLOCK  ; timer 0
START:CLR		LED
			JNB		SW1, $			;wait till press SW TO START
			JB		SW1, $			;
TOGGLE_LOOP:
			SETB TR0 ; START CLOCK
			JNB TF0,$ ; WAIT FOR CLOCK
			CPL		LED
			CLR TR0 
			CLR TF0 
			JB 	SW1, TOGGLE_LOOP ;wait till press SW TO STOP
			SJMP START
			RET

END