List p=16F628A
include <P16F628A.inc>
errorlevel -302
__config 3F18h
cblock 20h
W_Temp,S_Temp,TIME
endc
#define LED PORTB,0
org 0000h
goto Start
;***********
;ISR routine
;***********
org 0004h
; bcf INTCON,GIE <-----Not needed
movwf W_Temp
swapf STATUS,W
movwf S_Temp
btfss PIR1,TMR2IF
goto Away
bcf PIR1,TMR2IF
incf TIME,F
movf TIME,W
andlw 7fh
xorlw .125
btfss STATUS,Z
goto Away
btfss TIME,7
goto $+4
clrf TIME
bcf LED ;turn OFF led
goto Away
clrf TIME
bsf TIME,7
bsf LED ;turn ON led
Away swapf S_Temp,W
movwf STATUS
swapf W_Temp,F
swapf W_Temp,W
; bsf INTCON,GIE <-----Not needed
retfie
;*******************************
;Initialisation -setup the ports
;*******************************
Start bsf STATUS,RP0
clrf TRISB
movlw b'0000011' ;set prescaller to 16
movwf OPTION_REG
bsf INTCON,GIE
bcf STATUS,RP0
clrf PORTB
movlw b'00000110' ;prescaler = 16
movwf T2CON
bsf STATUS,RP0
bsf PIE1,TMR2IE
movlw .249
movwf PR2
bcf STATUS,RP0
bsf INTCON,PEIE
Hang nop
goto Hang
end