Can anyone advise me on what I'm missing in getting interrupts to work = using the timer1 overflow on the 16F876. I have to admit to never having used interrupts before, so it may be = obvious to those who have..... My code includes the following: ORG 0x000 ; processor reset vector goto main ; go to beginning of program ORG 0x004 ; interrupt vector location bank_low CLRWDT btfss PIR1,TMR1IF ;return if it wasn't a timer1 interrupt retfie movlw h'dc' movwf TMR1L ;set timer1 to BDC, i.e. 3036 to give .5sec interval = including prescaler movlw h'0b' movwf TMR1H call letters ;rest of handler here bcf PIR1,TMR1IF retfie ;end of interrupt routine ;********************************************************************** main =20 ; ;other code here movlw b'00110000' ;set prescaler to 1:8 movwf T1CON movlw h'dc' movwf TMR1L ;set timer1 to BDC, i.e. 3036 to give .5sec interval = including prescaler movlw h'0b' movwf TMR1H bcf PIR1,TMR1IF ;ensure interrupt flag is clear movlw b'11000000' ;global interrupts, peripheral only movwf INTCON movlw b'00000001' ;Timer1 only movwf PIE1 bsf T1CON,TMR1ON ;enable timer1 call initdisplay I know the timer 1 overflow flag gets set, but never calls the interrupt = vector. Any help greatly appreciated. Malcolm. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.