Hola, espero que no sea muy noche, ando terminando unas practicas, pero se me ha presentado el siguiente problema en mi programa:
LIST P=16F877A
INCLUDE <P16F877A.INC>
__CONFIG _XT_OSC & _PWRTE_ON & _BODEN_OFF & _CP_OFF & _WDT_OFF
PASAJEROS EQU 0x20
#DEFINE BANCO0 BCF STATUS,5
#DEFINE BANCO1 BSF STATUS,5
;-----------------INICIO--------------
ORG 0
GOTO INICIO
ORG 4
GOTO INTERRUPCION
INICIO BANCO1
MOVLW 0xFF
MOVWF TRISB
CLRF TRISD
BANCO0
CLRF PORTD
CLRF PASAJEROS
MOSTRAR MOVF PASAJEROS,W
MOVWF PORTD
BSF INTCON,GIE
BSF INTCON,RBIE
GOTO MOSTRAR
INTERRUPCION
BCF INTCON,GIE
BCF INTCON,RBIE
MOVF PORTB,W
INCF PASAJEROS
BCF INTCON,RBIF
RETFIE
END
Verán mi problema viene cuando aprieto el push button, en la interrupción el registro pasajeros se debería de incrementar en uno, pero no, se incrementa dos veces, es decir ocurre una interrupción cuando presiono el botón y otra cuando lo suelto, ¿Que creén que pueda ser lo que este mal o que me falte agregar para que solo ocurra una interrupción al presionar el botón y no dos?
NOTA: Estoy usando la interrupción por cambio de estado en RB4-RB7.