UNIVERSIDAD MAYOR DE SAN ANDRÉS
FACULTAD DE TECNOLOGÍA
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
INFORME 3
LABORATORIO DE MICROPROCESADORES II
INTERRUPCIONES EXTERNAS EN EL ATMEGA32
DOCENTE: ING MARIN ARTURO
PARALELO: A
ESTUDIANTE: FUERTES ALIZARES MAYKI
LA PAZ – BOLIVIA
2021
FIRMA 1
El programa básicamente activa entre dos entradas de interrupciones activadas por
flanco de3 bajada y subida respectivamente para hacer funcionar un display de 7
segmentos.
CODIGO FUENTE
; LABORATORIO3INTERRUPCIONESFIRMA1.asm
; Created: 28/09/2021 11:12:07
; MAYKI FUERTES
.INCLUDE"M32DEF.INC"
.ORG 0x00 ;VECTOR DE RESET
RJMP INICIO ;SALTO A INICIO
.ORG 0x02 ;VECTOR DE INTERRUPCION EXTERNA 0
RJMP INT_EXT0
.ORG 0x04 ;VECTOR INTERRUPCION EXTERNA 1
RJMP INT_EXT1
INICIO:
LDI R16,HIGH(RAMEND) ;INICIALIZAMOS LA PILA
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
CBI DDRD,2 ;CONFIGURAMOS ENTRADAS
CBI DDRD,3
SER R16 ;CONFIGURAMOS SALIDA
OUT DDRB,R16
LDI R16,0xC0 ;CARGAMOS GICR HABILTIANDO INT
OUT GICR,R16
LDI R16,0x0B ;HABILITAMOS INT0 POR SUBIDA Y INT1 POR BAJADA
OUT MCUCR,R16
SEI ;HABILTIAMOS LAS INT GLOBALES
LDI R16,0x00
LDI R17,0x09
PRINCIPAL:
RJMP PRINCIPAL
INT_EXT0:
LDI ZH,HIGH(TABLA<<1)
LDI ZL,LOW(TABLA<<1)
ADD ZL,R16
CLR R18
ADC ZH,R18
LPM R18,Z
OUT PORTB,R18
INC R16
CPI R16,0x0A
BRNE L0
CLR R16
L0: RETI
INT_EXT1:
LDI ZH,HIGH(TABLA<<1)
LDI ZL,LOW(TABLA<<1)
ADD ZL,R17
CLR R18
ADC ZH,R18
LPM R18,Z
OUT PORTB,R18
DEC R17
CPI R17,0xFF
BRNE L1
LDI R17,0x09
L1: RETI
TABLA:
.DB 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
SIMULACION EN PROTEUS
FIRMA 2
El programa activa dos interrupciones y activa un juego de luces
.
CODIGO FUENTE
; LABORATORIO3INTERRUPCIONESFIRMA1.asm
; Created: 28/09/2021 11:12:07
; MAYKI FUERTES
.INCLUDE"M32DEF.INC"
.ORG 0x00 ;VECTOR DE RESET
RJMP INICIO ;SALTO A INICIO
.ORG 0x02 ;VECTOR DE INTERRUPCION EXTERNA 0
RJMP INT_EXT0
.ORG 0x04 ;VECTOR INTERRUPCION EXTERNA 1
RJMP INT_EXT1
INICIO:
LDI R16,HIGH(RAMEND) ;INICIALIZAMOS LA PILA
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
CBI DDRD,2 ;CONFIGURAMOS ENTRADAS
CBI DDRD,3
SER R16 ;CONFIGURAMOS SALIDA
OUT DDRB,R16
LDI R16,0xC0 ;CARGAMOS GICR HABILTIANDO INT
OUT GICR,R16
LDI R16,0x05 ;HABILITAMOS INT0 POR CUALQUIER NIVEL
OUT MCUCR,R16
SEI ;HABILTIAMOS LAS INT GLOBALES
LDI R16,0x00
LDI R17,0x07
PRINCIPAL:
RJMP PRINCIPAL
INT_EXT0:
LDI ZH,HIGH(TABLA<<1)
LDI ZL,LOW(TABLA<<1)
ADD ZL,R16
CLR R18
ADC ZH,R18
LPM R18,Z
OUT PORTB,R18
INC R16
CPI R16,0x0A
BRNE L0
CLR R16
L0: RETI
INT_EXT1:
LDI ZH,HIGH(TABLA1<<1)
LDI ZL,LOW(TABLA1<<1)
ADD ZL,R17
CLR R18
ADC ZH,R18
LPM R18,Z
OUT PORTB,R18
DEC R17
CPI R17,0xFF
BRNE L1
LDI R17,0x07
L1: RETI
TABLA:
.DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40
TABLA1:
.DB 0x18,0x24,0x42,0x81,0x42,0x24,0x18
SIMULACION EN PROTEUS
CONCLUSIONES
Bueno el laboratorio nos ayudo a verificar prácticamente como usar las interrupciones para asi hacer lo
que queramos en dichas interrupciones.
BIBLIOGRAFIA
https://www.electronicwings.com/avr-atmega/atmega1632-adc