Hola a todoa, he buscado como loco si alguien ha tenido este problema pero no he encontrado nada, lo que pasa es q hice un programita sencillo que cada que se produzca una int. externa verifica si el bit 0 de PORTD está encendido o apagado. Si esta encendido lo apaga y si está apagado lo enciende. El programa simulado en MPLAB y Proteus funciona de maravilla pero cuando programo el micro y le intento provocar la interrupción esta nunca ocurre. Que podrá ser??
LIST P=16F877
include<p16f877.inc>
med equ 20h
OPTION__REG equ 1h
org 0
goto start
org 4 ;Interrupción
btfss PORTD,0
goto jump
bcf PORTD,0
bcf INTCON,1
retfie
jump bsf PORTD,0
bcf INTCON,1
retfie
start BCF STATUS,6
bsf STATUS,5 ;Banco 1
clrf PORTB ;PORTB como salida
bsf PORTB,0 ;Bit 0 de PORTB como entrada para int. externa
movlw b'11000101' ;Flanco de subida para int. externa
movwf OPTION__REG
bcf PORTD,0 ;Bit 0 de PORTD como salida
bcf STATUS,5 ;Banco 0
BCF STATUS,6
ini bsf PORTD,0 ;1 en PORTD,0
dormir movlw 90h
movwf INTCON
nop
nop
goto dormir
end