Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
Escuela de Ingeniería en Computación
URU 2020B - Cátedra: Microprocesadores I
Profesor: Claudio Bustos
Sección: “A”
Realizado por:
Heberto Urribarri, CI: 27.962.940
Víctor Atencio, CI: 28.252.900
A) Programas Básicos: 3
B) Programas con entradas: 7
C) Otras herramientas: 12
A) Programas Básicos:
A.1. Codifique un programa en Ensamblador para PIC16F84A que permita
encender en forma intermitente todos los bits del puerto B (RB7:RB0).
R:
R:
R:
● Por el pin RB0/INT que regresa al PIC del modo SLEEP (interrupción externa)
Interrupción externa, la cual ocurre cuando en el pin RB0/INT se tena un
flanco de subida o bajada. El flanco de la señal que producirá la
interrupción se elige con el bit INTEDG del registro OPTION. De este modo
cuando se produzca el flanco se producirá una interrupción y se pondrá en
marcha el proceso que atenderá la interrupción.
El registro INTCOIN contiene los bits para habilitar cada una de las fuentes de
interrupción y las banderas que informan el origen de la interrupción.
C.4. Analice un programa en Ensamblador para PIC16F84A que utilice dos tipos
de interrupción como mínimo. Explique ¿cómo es el proceso de habilitación de
estas interrupciones durante su ejecución?
R: Utilizando la interrupción del Timer0. la línea 3 del puerto B se enciende cada
600ms y apaga durante otros 300ms. esto como un ejemplo para esta
interrupción, hay un periodo de 50ms gracias a un preescaler de 256, y esto se
repite las veces necesarias para llegar a 600ms para que se vea el efecto. se
repite 12 veces para 600ms y 6 veces para 300ms. Para nuestra interrupción se le
asigna una dirección que es ORG 4. Cuando hace la cuenta de los 50ms se
genera una interrupción que se llama TMR0_INT. En primer caso se hace el
MOVLW y se recarga el periodo de 50ms a la variable TMRO. luego se
decrementa en 1 a la variable tiempo y lo guarda en la misma variable. Cuando
llega a cero se finaliza la interrupción. y además regresamos e iniciamos en cero
la interrupción global GIE. Esto para que se haga el bucle para mantenerla
encendida el tiempo de debe de estar y luego para que se mantenga apagado el
tiempo en el que deba estar.