Está en la página 1de 8

INSTITUTO TECNOLOGICO DE CULIACAN

Practica #3: Interrupciones


Equipo:
Castillo Aguirre Bryan
Figueroa Valle José Alberto
Hermosillo Zepeda Luis Fernando
Ortiz Osuna Josué Emmanuel
Urías Mejía Efraín

Hora: 10:00 – 11:00 Fecha: 26/09/2016


Maestro de asignatura
MC. Heraclio Heredia Ureta
Microcontroladores
Introducción:
Para la realización de este programa se reutilizará la programación elaborada
en la Práctica #1 Luces Kitt, añadiendo una interrupción externa por el bit
P3.2 (INT0) el cual provocará que el programa salte de la subrutina de Luces
Kitt a realizar otra subrutina de encendido y apagado de los LEDs.
Objetivo:
Observar el comportamiento de los LEDs ahora con un retraso de 0.5
segundos, a su vez, perfeccionar las posibles combinaciones que se pueden
realizar con el microcontrolador únicamente cambiando pequeños parámetros
en las interrupciones.
Materiales:
 Microcontrolador AT89C52.
 2 Capacitores de 33 pF.
 Cristal de cuarzo de 12 MHz.
 9 resistencias de 220 Ω
 1 Display de leds.
 1 Botón Pulsador.
 Simulador Proteus.

Código:
INT0 EQU 400H
RETA EQU 300H
LUCESKIT EQU 200H
MAIN EQU 30H

$include(REG51.inc)
ORG 0H
JMP MAIN
ORG 03H
JMP INT0
;INICIO DEL MAIN
ORG 30H
MOV TCON, #01H
MOV IE, #081H
SALTO1: MOV A, #00H
CALL LUCESKIT
NOP
JMP SALTO1
;FIN DE LA RUTINA DEL MAIN

;INICIO DE LA SUBRUTINA DE RETARDO DE LUCESKITT


ORG 200H
CLR C
MOV A,#01H
MOV P1, A
E1L:
call RETA
RL A
MOV P1,A
JNB P1.7,E1L
E2R:
call RETA
RR A
MOV P1,A
JNB P1.0,E2R
JMP E1L
RET

ORG 300H
MOV R2,#124
E2:
MOV R1,#143
E1:
DEC R1
NOP
NOP
NOP
NOP
NOP
CJNE R1, #00H, E1

DEC R2
NOP
NOP
NOP
NOP
CJNE R2, #00H, E2
ret
;FIN DE LA SUBRUTINA DE RETARDO DE LUCESKITT

;INICIO DE LA SUBRUTINA DE RETARDO DE INTERRUPCION


RETA1:
MOV R3, #250
E3:MOV R4, #249
NOP
NOP
NOP
NOP
NOP
E4:
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R4,E4
DJNZ R3,E3
RET
;FIN DE LA SUBRUTINA DE RETARDO DE INTERRUPCION
;INICIO DE LA SUBRUTINA DE INTERRUPCION INT0
ORG 400H
INTO: PUSH ACC
MOV A, PSW
PUSH ACC
MOV A, R0
PUSH ACC
MOV R0, #0AH
SALTO5: MOV P1, #11111111B
CALL RETA1
MOV P1, #00H
CALL RETA1
DJNZ R0, SALTO5

POP ACC
MOV R0, A
POP ACC
MOV PSW, A
POP ACC
RETI
;FIN DE LA SUBRUTINA DE INTERRUPCIO INT0...
END
Diagrama de flujo

Calculo del valor del registro:


Mov R1,#124
Mov R0, #124 1*124*143
Dec r0 1*143
Nop 1*143

Capturas de Proteus:
En la imagen se muestra la simulación del programa con Isis Proteus de las
luces KITT con el botón de interrupción en el pin 12 (P3.3/INT1) del
microcontrolador, el cual al ser cambiado de un estado alto a bajo produce un
parpadeo en los 8 pines del puerto 1 interrumpiendo la secuencia de las luces
KITT, la imagen se muestra en el momento de la interrupción.
Fotos de evidencia con explicación

Una vez activada la interrupción se puede apreciar que todo el display de leds
enciende y se apaga con un retardo de medio segundo para el encendido y
apagado respectivamente, y el osciloscopio está arrojando los “0” y “1” que
son pulsos digitales provocados por el accionamiento de la interrupción 0, un
total de 10 veces.
Observaciones y conclusiones:
Como equipo podemos concluir con que una interrupción es un evento que
hace que el microcontrolador deje de ejecutar la tarea que está realizando para
atender dicho acontecimiento y luego regrese y continúe la tarea que estaba
realizando antes de que se presentara la interrupción, esto gracias a las
modificaciones que fuimos haciéndole a la programación.
Con el botón de interrupción en el pin 12 (P3.3/INT1) del microcontrolador
damos inicio a la secuencia de parpadeo en los 8 pines para poder lograr el
efecto del auto increíble, todo esto gracias a las interrupciones anteriormente
programadas en el ensamblador.

También podría gustarte