Está en la página 1de 21

Nombre: Rojas Damasco, Victor Enrique

IE07R6
Microprocesadores y Microcontroladores

LAB 6

18/07/2020

TITULO: “Laboratorio dirigido de

microcontroladores”
Parte I
Objetivo:
• Aprendizaje y acercamiento del alumno a la programación básica del PIC16F877A.
• Manejo de interrupciones

1. El problema:
Se desea que al momento de presionar un pulsador conectado al pin RB0/INT0 este genera un
flanco de bajada de la señal detectada por RB0/INT0 y cuando el pulsador se suelte genere un
flaco de subida.
Se conecta un LED al pin RB1, este LED oscila constantemente y el LED del pin RB2 oscila entre
prendido y apagado cada vez que se genera una pulsación en el pin RB0/INT0.
Dado que este evento depende de una pulsación, que es un proceso totalmente impredecible,
se requiere del uso de una interrupción para su detección.
En el programa se utiliza una única interrupción de alta prioridad.
Se configura la sensibilidad del pin RB0 en flanco de bajada y se activa la interrupción.
Posteriormente, el programa se mantiene en un bucle indefinido. Cuando el evento externo
ocurre, se ingresa al vector de interrupción de alta prioridad 0x04 y se ejecuta la rutina de
servicio de interrupción, donde se invierte el estado del pin 2 del puerto B y se borra la bandera
de interrupción para luego retornar al bucle indefinido.

2
Rojas Damasco, Victor Enrique
2. Código Example:

3
Rojas Damasco, Victor Enrique
4
Rojas Damasco, Victor Enrique
3. Diagrama de flujo

5
Rojas Damasco, Victor Enrique
4. Configuracion de los registros

6
Rojas Damasco, Victor Enrique
Registro W pasa a 1

Mover lo de w a TRISB, modificar el bit 0 como entrada y el resto de bits como salidas

7
Rojas Damasco, Victor Enrique
Bit 5 de STATUS EN 1

Bit 5 de STATUS EN 1

8
Rojas Damasco, Victor Enrique
Activando el bit de interrupcion, bit 7 INTCON

EL bit 4 del INTCON a 1 – ENABLE de interrupcion externa / activando la linea de interrupción

9
Rojas Damasco, Victor Enrique
PUERTO RB1 EN 0

PUERTO RB1 EN 0

10
Rojas Damasco, Victor Enrique
Activacion del bit 3 del PORTB, la bandera de interrupcion externa activada

Salir de la subrutina, poniendo a 0 el bit 1 del INTCON / la bandera de interrupcion externa


desactivada por software.

11
Rojas Damasco, Victor Enrique
Simulacion en PROTEUS RB2 en bajo, RB1 con un retardo permanente

Simulacion en PROTEUS RB2 en alto, RB1 con un retardo permanente

12
Rojas Damasco, Victor Enrique
PARTE 2
PROBLEMA:

Habilitar TMR1 para que se comporte como un temporizador. Realizaremos un retardo de 1seg, con
TMR1, y las salidas del puerto C nos mostraran un semáforo. La Frec de trabajo será a 2MHz.

Objetivo:
• Manejo de temporizadores
1. Código example

13
Rojas Damasco, Victor Enrique
14
Rojas Damasco, Victor Enrique
2. Diagrama de flujo

15
Rojas Damasco, Victor Enrique
3. Configuración de los registros
TRISC todos en 1

TRISC puestos todos en 0

16
Rojas Damasco, Victor Enrique
Configurando el T1CON

Habilitando el INTCON

17
Rojas Damasco, Victor Enrique
Cargar en w el bit 7 del puerto C que va a estar en 1

Cargar en el timer distintos valores

18
Rojas Damasco, Victor Enrique
19
Rojas Damasco, Victor Enrique
4. Simulación en PROTEUS

20
Rojas Damasco, Victor Enrique
CONCLUSIONES
PARTE 1: Se configuran los registros y el bit 0 del puerto B se configura como entrada y los demás
puertos como salida para luego acceder al registro STATUS. Mediante el bit 0 del puerto B se genera
un flanco de subida y otro de bajada al presionar un pulsador y así colocar el bit 2 del puerto B en alto
o bajo. El bit uno del puerto B permanece con un retardo permanente designado.
PARTE 2: Se configuran los registros y se coloca como salidas el puerto C, se accede al timer del
microcontrolador para generar un temporizado y así enciendan los LED conectados a RC7, RC6 y RC5
en un tiempo asignado.

21
Rojas Damasco, Victor Enrique

También podría gustarte