Paso 1: El código
' cuando cambie el estado del pin PortB.0, el LED estará
' apague durante 0,5 segundos y luego vuelve a encenderse
' se puede cambiar la forma en que esta interrupción se comporta por
' trasteo con los bits OPTION_REG y INTCON
' ver el fondo de este código para las definiciones poco
LED var PORTB.7
OPTION_REG = % 01111111' PORTB permiten finalizar
De interrupción Goto myint ' manejador de la interrupción de definir
INTCON = % 10010000' interrupciones permiten INTE
lazo: alto led ' activar el LED
Goto bucle ' hacerlo para siempre
' Handler de interrupción
Desactivar ' sin interrupciones más allá de este punto
Myint:
Low led ' si llegamos aquí, apagar LED
PAUSE 500' espera 5 segundos
INTCON.1 = 0' clara interrupción bandera
Curriculum Vitae ' volver al programa principal
Permiten
'################################################################
' ###--OPTION_REG Bit definiciones--###
'################################################################
' Registro OPTION_REG (81h la dirección)
' bit 7: * RBPU: habilitar de pull-up de PORTB bit
1 = PORTB pull-UPS se desactivan
' 0 = PORTB dominadas están habilitados (por valores de cierre de Puerto individual)
' bit 6: INTEDG: interrumpir borde seleccione bit
1 = interrupción en flanco ascendente de pin PB0/INT
' 0 = interrupción en flanco descendente de pin PB0/INT
' bit 5: T0CS: TMR0 Clock Source Select bit
1 = transición en pin T0CKI/PA4
' 0 = reloj de ciclo de instrucción interno (CLKOUT)
' bit 4: TOSE: TMR0 Source Edge Select bit
1 = incremento en transición de alto a bajo el pin PA4/T0CKI
' 0 = incremento en la transición de bajo a alto el pin PA4/T0CKI
' bit 3 PSA: bit de asignación del Prescaler
1 = prescaler asignado al Watchdog temporizador
' 0 = prescaler asignado a TMR0
' bit 2-0: PS2:PS0: brocas Prescaler tasa seleccione
' Por favor, consulte la hoja de datos del PIC16F84.
'###############################################################
' ### - Definiciones de los pedacitos del registro INTCON--###
'###############################################################
' El registro INTCON se encuentra en 0BH y se define como sigue:
' bit 7: GIE: Global interrupción habilitar bits
1 = habilita todas las interrupciones no enmascaradas
' 0 = deshabilita todas las interrupciones
' bit 6: EEIE: EE escribir completa interrupción habilitar bits
1 = habilita la EE escribir interrupción completa
' 0 = deshabilita la EE escribir interrupción
' bit 5: T0IE: TMR0 Overflow interrumpir activar bit
1 = habilita el TMR0 interrupciones
' 0 = deshabilita el TMR0 interrupciones
' bit 4: INTE: bit PB0/INT interrupción habilitar
1 = habilita la interrupción PB0/INT
' 0 = deshabilita la interrupción PB0/INT
' bit 3: RBIE: PB puerto cambio interrumpir activar bit
1 = interrupción de cambio de puerto permite el PB
' 0 = deshabilita el PB puerto cambio interrupción
' bit 2: T0IF: bit de bandera de interrupción desbordamiento de TMR0
1 = TMR0 se ha desbordado (debe ser liberado por software)
' 0 = no desborde TMR0
' bit 1: INTF: bit de bandera de interrupción PB0/INT
1 = el PB0/INT interrupción ocurrió
' 0 = el PB0/INT interrupción no ocurrió
' bit 0: RBIF: bit de bandera de interrupción de cambio PB puerto
1 = al menos uno de la PB4-PB7 clavijas cambiar estado (debe ser limpiado en software)
' 0 = ninguno de PB4-PB7 pins cambia estado