 list      p=16F627             ; list directive to define processor
    #include <P16f627.inc>      ; processor specific variable definitions
    errorlevel -302
   ; __CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BODEN_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC
    __CONFIG _LVP_OFF & _BODEN_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
   
;--------- CONSTANTS DEFINITIONS---------------------------------------
    #define     RAM_Start       0x20 
    #define     TIME0           D'30'
    #define     TIME1           D'30'
    #define     TIME2           D'30'
;--------- VARIABLE DEFINITIONS ---------------------------------------
    CBLOCK  RAM_Start
TMP0 
TMP1 
TMP2 
    ENDC
;----------------------------------------------------------------------
        ORG     0x000           ; Processor reset vector
reset   nop
        goto init               ; Go to beginning of program
        ORG     0x004           ; interrupt vector location
        nop
init    
        BSF STATUS,RP0
        MOVLW B'00000000'
        MOVWF TRISA
        MOVLW B'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
;------------------------------ 
        call delay
FIRST   MOVLW B'00000100'   
        MOVWF PORTB
        call delay
        MOVLW B'00000000'   
        MOVWF PORTB
        call delay
        GOTO FIRST
;------------------------------
delay
        MOVLW TIME2
        MOVWF TMP2
del2    MOVLW TIME1
        MOVWF TMP1
del1    MOVLW TIME0
        MOVWF TMP0
del0    DECFSZ TMP0,F
        GOTO del0
        DECFSZ TMP1,F
        GOTO del1
        DECFSZ TMP2,F
        GOTO del2
        return
;
    END 