Está en la página 1de 7

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

ING. EN ELECTRÓNICA E INSTRUMENTACIÓN

MICROCONTROLADORES

TEMA: INTERRUPCIONES

NOMBRES: IGNACIO LOPEZ

Abril 2018 – Agosto 2018


Diseñar un programa que muestre una secuencia, pero cuando aparezca la interrupción externa
se prendan y apaguen por 5 veces los leds.

8 LEDS
interruptor PD.0

CONSULTA
SISTEMA DE INTERRUPCIONES
• Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento
que provoca la interrupción.
• El vector de interrupción se encuentra en la dirección 04H de la memoria de programa.
• Al terminar la rutina de servicio (RETFIE) se retoma el programa en el ‘punto de ruptura’.
• Fuentes de interrupción:
• Pin INT, cambio en los terminales del puerto B (RB7:RB4).
• Overflow en los temporizadores.
• Cambio en el comparador.
• Fin de escritura en la memoria EEPROM de datos.
• Relacionadas con el Puerto Paralelo Esclavo, con la USART, con el fin de conversión
A/D y en general con los módulos periféricos con que puede contar una MCU.
• Gestión de interrupciones mediante registros:
• INTCON: registro general de control y estado.
• En función de los periféricos disponibles por una MCU:
•PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada periférico.
• PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el periférico que interrumpe.

REGISTRO INTCON

Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones


1 = Habilita las interrupciones.
0 = Inhibe todas las interrupciones.
Se pone a cero cuando se reconoce una interrupción (para evitar interrupciones anidadas) y a 1
cuando se vuelve de su rutina de servicio.
Bit 6 PEIE: (Peripheral Interrupt Enable) bit de habilitación de interrupciones de periféricos.
1 = Habilita las interrupciones desde los periféricos.
0 = Inhibe las interrupciones desde los periféricos.
Bit 5 T0IE: (Timer 0 Overflow Interrupt Enable) bit de habilitación del Timer 0.
1 = Habilita la interrupción con el desbordamiento del Timer 0.
0 = Inhibe la interrupción con el desbordamiento del Timer 0.
Bit 4 INTE: (INT External Interrupt Enable) bit de habilitación de interrupción desde el pin de
entrada INT.
1 = Habilita la interrupción.
0 = Inhibe la interrupción.
Bit 3 RBIE: (RB Port Change Interrupt Enable) bit de habilitación de interrupción con el
cambio de RB7:RB4
1 = Habilita la interrupción.
0 = Inhibe las interrupción.
Bit 2 T0IF: (Timer 0 Overflow Interrupt Flag).
1 = Interrupción producida por el desbordamiento del Timer 0 (debe ser puesto a cero por SW).
0 = El Timer 0 no se ha desbordado.
Bit 1 INTF: (INT External Interrupt Flag).
1 = Interrupción producida por INT (debe ser puesto a cero por SW).
0 = INT no ha interrumpido la MCU.
Bit 0 RBIF: (RB Port Change Interrupt Flag).
1 = Interrupción producida por el cambio en alguno de los bits RB7:RB4 (debe ser puesto a cero
por SW).
0 = RB7:RB4 no han interrumpido la MCU.

SECUENCIA
SECUENCIA
VALOR HEX
0 0 0 0 0 0 0 0 00
0 0 0 1 1 0 0 0 18
0 0 1 1 1 1 0 0 3C
0 1 1 1 1 1 1 0 7E
1 1 1 1 1 1 1 1 FF
0 1 1 1 1 1 1 0 7E
0 0 1 1 1 1 0 0 3C
0 0 0 1 1 0 0 0 18
0 0 0 0 0 0 0 0 00

CODIFICACION
LIST P=PIC16F877A INCF RA,1 GOTO DOS
MOVLW 09 DECFSZ O,1
RA EQU 21 XORWF RA,0 GOTO TRES
ESTADO EQU 03 BTFSS ESTADO,2 RETURN
PC EQU 07 GOTO SIGA
PB EQU 06 GOTO INTER
INTCON EQU 0B PRINCIPAL CLRF RA
T1CON EQU 10 SIGA3 CALL
O EQU 23 SECUENCIA SECUENCIA2
N EQU 24 MOVF RA,0 MOVWF PC
M EQU 25 ADDWF PCL,1 CALL RETARDO
RETLW 00 INCF RA,1
ORG 00 RETLW 18 MOVLW 11
GOTO INICIO RETLW 3C XORWF RA,0
RETLW 7E BTFSS ESTADO,2
ORG 04 RETLW 0FF GOTO SIGA3
GOTO INTER RETLW 7E GOTO
RETLW 3C PRINCIPAL
INICIO ; RETLW 18
CONFIGURACION RETLW 00 SECUENCIA2
BSFESTADO,5 MOVF RA,0
MOVLW 90 RETARDO ADDWF PCL,1
MOVWF INTCON MOVLW 0F RETLW 0FF
CLRF PC MOVWF O RETLW 00
BSF PB,0 TRES RETLW 0FF
BCF ESTADO,5 MOVLW 0F RETLW 00
MOVWF M RETLW 0FF
DOS RETLW 00
PRINCIPAL MOVLW 0AF RETLW 0FF
CLRF RA MOVWF N RETLW 00
SIGA CALL UNO RETLW 0FF
SECUENCIA DECFSZ N,1 RETLW 00
MOVWF PC GOTO UNO
CALL RETARDO DECFSZ M,1 END
 DIAGRAMA DE FLUJO
INICIO

Configuración PC, PB, INTCON

SECUENCIA

PC ←W

RETARDOB

RA ← RA+1

RA=10

INTERRUP

SECUENCIA 2

PC ←W

RETARDO B

RA ← RA+1

RA=11

SECUENCIA

PCL PCL + W
W ←00 W ←18 W ←3 C W ←7 E W ← FF

W ←7 E W ←3 C W ←18 W ←00

RETARDOB

NO

SI
RETURN

RETARDO

SI

RETURN
TMR 2 IF ← 00

SECUENCIA

PCL PCL + W

W ← FF W ←00 W ← FF W ←00 W ← FF

W ← FF W ←00 W ← FF W ←00

SIMULACION
+5V

R1
1k
U1
13 33
OSC1/CLKIN RB0/INT
14
OSC2/CLKOUT RB1
RB2
34
35 0
2
3
RA0/AN0
RA1/AN1
RB3/PGM
RB4
36
37 0
4
5
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RB5
RB6/PGC
38
39 1
6
7
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RB7/PGD
40
1
8
RE0/AN5/RD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
15
16 1
9
10
RE1/AN6/WR
RE2/AN7/CS
RC2/CCP1
RC3/SCK/SCL
17
18 1
1
MCLR/Vpp/THV
RC4/SDI/SDA
RC5/SDO
23
24 0
RC6/TX/CK
RC7/RX/DT
25
26 0
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A

+5V

R1
1k
U1
13 33
OSC1/CLKIN RB0/INT
14
OSC2/CLKOUT RB1
RB2
34
35 1
2
3
RA0/AN0
RA1/AN1
RB3/PGM
RB4
36
37 1
4
5
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RB5
RB6/PGC
38
39 1
6
7
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RB7/PGD
40
1
8
RE0/AN5/RD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
15
16 1
9
10
RE1/AN6/WR
RE2/AN7/CS
RC2/CCP1
RC3/SCK/SCL
17
18 1
1
MCLR/Vpp/THV
RC4/SDI/SDA
RC5/SDO
23
24 1
RC6/TX/CK
RC7/RX/DT
25
26 1
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A

Referencias bibliográficas:
http://edii.uclm.es/~miniesta/mc_pic_2.pdf

También podría gustarte