Sei sulla pagina 1di 6

INSTITUTO POLITECNICO NACIONAL

ESIME ZACATENCO

Microprocesadores
Interrupcin externa INT0
Practica No: 7
Cruz Marmolejo Marco Antonio
Hernndez Gonzlez Luis Enrique
6cm6
Profesor: Gerardo Gutirrez Castillo
Fecha de entrega: 31-10-2017

1
NDICE:
Objetivo2
Introduccin terica..2
Diagrama de conexin.....2
Diagrama de flujo...3
Cdigo fuente..3
Conclusiones......6
Bibliografa..6
OBJETIVO:
El alumno aprender a habilitar la interrupcin INT0 como alta interrupcin como alta prioridad.
Hacer un programa que por medio de un semforo nos indique el cupo de un saln.
Utilizar la INT0 para incrementar el contador, indicar en un display el cupo del saln.
INTRODUCCIN TERICA:
Las computadoras y equipos electrnicos modernos son gobernados por microprocesadores y
microcontroladores, estos equipos poseen una gran cantidad de dispositivos perifricos que por
lo general requieren ser atendidos por el microcontrolador alterando el orden natural del
programa. Para atender las peticiones de los dispositivos perifricos, se utilizan las
interrupciones. Poseen bits de habilitacin, prioridad y banderas de estado. El registro INTCON
es el ms importante para la configuracin e implementacin de interrupciones externas. La
implementacin de interrupciones externas es muy simple pero de gran utilidad para nuestros
proyectos. Utilizaremos resistencias de 330 ohms.
DIAGRAMAS DE CONEXIN:

2
DIAGRAMA DE FLUJO:

CDIGO FUENTE DEL PROGRAMA:


ORG 0x1008
HighPr_ISR
incf Var; Incrementmos la variable en 1
bcf INTCON,1; lmpiamos la bandera de INTCON
call Display; mandamos llamar al display
Regresa retfie

ORG 0x1018
LowPr_ISR

retfie
;******************************************************************************
Var EQU 0x010; Declaramos una variable
Main
movlw 0x0F

3
movwf ADCON1
movlw 0x07
movwf CMCON
movlw 0x00; cargamos el registro con 00h
movwf TRISA; configuramos el puerto a como salida
movlw 0xFF
movwf TRISB; configuramos el puerto b como entrada
movlw 0x00
movwf TRISD; configuramos el puerto d como salida
movlw 0x90; cargamos el registro con 90h
movwf INTCON; la bandera para activar el bit 33
bsf INTCON2,6; activamos el bitde alta prioridad
movlw 0xC0; cargamos el registro con C0h
movwf PORTD; mandamos un cero decimal al puerto d
clrf Var; Limpiamos los bits de la variable

Inicio:
movlw 0x05
cpfslt Var; Comparamos que la variable sea menor de 05h
goto Salto1; manda al Salto1
goto Verde;regresamos a la rutina del led verde
; *** main code goes here **

Salto1:
movlw 0x05
cpfsgt Var; COmparamos que la variable sea mayor de 05h
goto Salto2; Llamamos a la subrutina Salto2
movlw 0x09
cpfslt Var; comparamos que la variable sea meno de 9
goto Salto2; regresamos al salto 2
goto Amarillo; regresamos a la subrutina del led amarillo

4
Salto2:
movlw 0x09
cpfseqVar; comparamos que la variable sea igual a 09h
goto Inicio; regresamos a la rutina principal
goto Rojo; mandamos a la rutina del led rojo
nop; Seala que termina nuestro prorama principal

Verde:
movlw 0x08
movwf PORTA; mandamos como salida al bit 3 del puerto A
goto Inicio; regresamos a la subrutina principal

Amarillo:
movlw 0x10
movwf PORTA; mandamos como salida al bit 4 del puerto A
goto Inicio; regresamos a la rutina principal

Rojo:
movlw 0x20
movwf PORTA; mandamos como salida al bit 5 del puerto A
goto Inicio; regresamos a la rutina principal

Display:
movlw 0x00
movwf TBLPTRU; Cargamos la tabla u con 00h
movlw 0x11
movwf TBLPTRH; cargamos la tabla h con 11h
movff Var,TBLPTRL; copiamos lo contenido en la variable en la tabla L
tblrd*; leemos la tabla y lo guerda en TABLAT
movf TABLAT,w; copeamos lo contenido en TABLAT al registro

5
movwf PORTD; mandamos como salida al puerto D lo contenido en el registro
movlw 0x08
cpfsgt Var; comparamos que la variable sea igual con 08h
return; reinicia el programa

ORG 0x1100
Tabla:
db 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x98,
db 0x88, 0x00, 0xC6, 0x40, 0x86, 0xCE
END
CONCLUSIONES:
CRUZ MARMOLEJO MARCO ANTONIO:
Se concluye que en esta prctica aprendimos a utilizar el vector de alta prioridad para realizar
dos funciones al mismo tiempo as como utilizamos los conocimientos adquiridos previamente
para realizar un contador y un pequeo semforo controlado por un sensor infrarrojo o push
botn conectado al pin 33 del pic. As tambin utilizamos varias subrutinas debido a que
utilizamos varias preguntas dentro del programa para poder seleccionar a que bit del puerto A
tenamos que mandar la seal.
Hernndez Gonzlez Luis Enrique:
Esta prctica fue muy importante dado a que aprendimos sobre las interrupciones. Como es
que funcionan los vectores de alta prioridad para as poder hacer dos funciones al mismo tiempo
que en este caso fue el contador y el semforo.
Como se puede apreciar, la implementacin de interrupciones externas es muy simple pero de
gran utilidad para nuestros proyectos.
BIBLIOGRAFA:
https://unasguiasmas.wordpress.com/2015/09/25/07-interrupciones-externas-del-pic18f4550/
https://www.smartdraw.com/flowchart/diagramas-de-flujo.htm

Potrebbero piacerti anche