can somebody tell me why my code keeps resetting please
Code:
 Define LCD_DREG PORTB
 'Set starting data bit
 Define LCD_DBIT 4 'rb4,rb5,rb6,rb7
 'Set LCD RS Port
 DEFINE LCD_RSREG portb
 'Set LCD RS Bit
 define LCD_RSBIT 3
 'Set LCD Enable Port
 Define LCD_EREG portb
 'Set LCD Enable Bit
 Define LCD_EBIT 2
 'Set number of LCD Lines
 Define LCD_LINES 2
 'Set Command Delay time in uS
 define LCD_COMMANUS 2000
 'Set Data delay time in uS
 define LCD_DATAUS 50

pause 100   'let lcd start

symbol fire = portb.1
symbol ac = portb.0
symbol up = porta.0
symbol down = porta.1
maxdelay var word
maxdelay = 8000
delay var word
delay = 0
trisa = %00000011
trisb = %00000001


lcdout 254,1, "BenjiTEMP"
lcdout 254,192, "Dimmer v1"
pause 1000
lcdout 254,1

on interrupt goto firetriac
intcon = %10010000

 

scan:

if up = 1 then 
delay = delay + 2
if delay > maxdelay then
delay = maxdelay 
endif
endif

if down = 1 then 
delay = delay - 2
if delay < 2 then
delay = 2 
endif
endif
 
goto scan

firetriac:
pauseus maxdelay - delay
fire = 1
pauseus 10
fire = 0 
INTCON.1=0
resume
enable