La Web del Programador: Comunidad de Programadores
 
    Pregunta:  53541 - INTERRUPCIONES CON 16F84
Autor:  Rubén MiereS
Saludos, estoy aprendiendo a usar el microcontrolador 16f84, y estoy aciendo un programita pero el caso es q no m detecta las interrupciones externas, tengo conectado un pulsador a la patilla6 (RBO/INT), os pego aki la función principal a ver del programa q es donde tenia que detectarme esta interrupción para saltar a una subrutina, si se os ocurre algo comentarmelo por favor,

Gracias

LIST p=16f84
RADIX HEX
PUL EQU 0C

#include\"p16f84a.inc\"

ORG 0
goto inicio

ORG 6
inicio bsf INTCON,GIE ;Permite interrupciones,GIE=1.
bsf INTCON,RBIE ;Permite interrupciones de PORTB, RBIE=1.
bsf INTCON,INTE ;Permite interrupciones externas, INTE=1.
bcf STATUS,RP0 ;Cambio a banco 0, pone RP0 a 0
movlw b\'00000000\'
movwf PORTA
bsf STATUS,RP0 ;Cambio a banco 1, pone RP0 a 1
movlw b\'11110001\' ;Pone las 4 líneas de mayor peso y la de menor peso de PORTB como entrada.
movwf TRISB ;Mueve el contenido de W al TRISB.
movlw b\'00000000\' ;Pone las 4 líneas de menor peso de PORTA como salida.
movwf TRISA ;Mueve el contenido de W al TRISA.
bcf STATUS,RP0 ;Cambio a banco 0, pone RP0 a 0
bcf INTCON,INTF ;Borra el flag de interrupción externa.
s1 btfss INTCON,INTF ;Se salta la siguiente instrucción si INTF=1.
goto s1
nop
bcf INTCON,INTF ;Borra el flag de interrupción externa.
s2 btfss INTCON,RBIE ;Se salta la siguiente instrucción si RBIE=1.
goto s2
call pulsadores
goto s1

  Respuesta:  nadie nadie
Suponiendo que esten bien habilitadas todas las opciones para que funcione la interrupcion, al producirse esta, el programa salta a l vector de interrupcion, en la direccion 4, que no se ve este en el programa...
Has de introducir las lineas:

ORG 4
goto mi_interrrupcion

Y desarrollar lo que hace tu interrupcion, como haces con inicio