9
INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 1 CONFIGURACIÓN DE PUERTOS, BUCLES Y SALTOS I. OBJETIVOS. -Configurar los puertos de I/O del microcontrolador como I/O digitales. -Realizar programas que manejen I/O digitales del microcontrolador. -Emplear bucles y saltos en la construcción de programas para el microcontrolador. II. ESQUEMA A IMPLEMENTAR. uC 16F877 RA0 RA1 LED

Microcontroladores - Configuración de puertos, bucles y saltos

Embed Size (px)

DESCRIPTION

Configuración de puertos, bucles y saltos

Citation preview

Page 1: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

1

CONFIGURACIÓN DE PUERTOS, BUCLES Y SALTOS I. OBJETIVOS. -Configurar los puertos de I/O del microcontrolador como I/O digitales. -Realizar programas que manejen I/O digitales del microcontrolador. -Emplear bucles y saltos en la construcción de programas para el microcontrolador.

II. ESQUEMA A IMPLEMENTAR.

uC

16F877

RA0

RA1 LED

Page 2: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

2

III. ESPECIFICACIONES

Implementar un sistema, según la figura anterior, para simular una luz intermitente que será visualizada a través del diodo LED conectado a una línea de salida del microcontrolador. Dicha salida se controlara de acuerdo al estado de RA0 y RA1 según la siguiente tabla de verdad.

RA0 RA1 RA5

0 0 El LED está encendido todo el tiempo.

0 1 El LED está encendido 1.25 segundos y apagado 0.5

segundos repitiéndose el ciclo.

1 0 El LED está encendido 0.5 segundos y apagado 1.25

segundos repitiéndose el ciclo

1 1 El LED está apagado todo el tiempo.

Elaborar el algoritmo y el diagrama de flujo del programa que soluciona el problema planteado. Presentar una tabla donde se especifique los recursos empleados así como las variables, etiquetas, etc. Utilizadas en el programa. Los tiempos de encendido y apagado del LED deberán ser generados por retardos. Realizar y presentar los cálculos necesarios para conseguir los tiempos requeridos por el problema.

ALGORITMO:

1. Declaramos nuestras variables

2. Accedemos al banco uno

3. Configuramos las entradas y salidas como digitales

4. Accedemos al banco cero

5. Preguntamos si la entrada RA0 es cero, si lo es o no se saltara a la subrutina

correspondiente

Page 3: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

3

6. De la misma forma realizamos estos pasos para la entrada RA1

7. Según sean los valores de RA0 y RA1, llamamos a las subrutinas correspondientes para

producir los retardos correspondientes y así cumplir lo que nos indica la tabla anterior.

Si en las entradas RA0 =0, RA1 =0 ; entonces RA5 debe estar encendido siempre Pero si RA0 =0, RA1 =1 ; entonces RA5 es “1” por 1,25s y “0” por 0,5s Pero si RA0 =1, RA1 =0 ; entonces RA5 es “1” por 0,5s y “0” por 1,25s Pero si RA0 =1, RA1 =1 ; entonces RA5 está apagado siempre

8. Finalmente, sea cual sea el caso el ciclo se repite infinitamente.

DIAGRAMA DE FLUJO:

NO NO

INICIO

RA0, RA1 = Entradas

RA5 = Salida

RA0=0

RA5 = OFF

RA5=ON, 0.5s RA5=0FF, 1.25s

INICIO

RA1=0

RA1=0

RA5 = ON

RA5=ON, 1.25s RA5=0FF, 0.5s

SI SI

SI

NO

Page 4: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

4

TABLA DE ETIQUETAS:

contador1 contador2 contador3

Creamos registros que nos ayudaran a realizar los retardos necesarios según sea el caso.

Inicio Dentro de esta etiqueta configuramos las entradas y salidas que

usaremos en el programa.

Principal Inicio del programa principal, donde se realiza la primera pregunta si

RA0=0, y también se configura el LED para que este encendido todo el tiempo

RA1Es_1 En esta etiqueta hacemos que el LED este encendido 1.25seg y apagado

0.5seg

ES_RA0_1 En esta etiqueta hacemos que el LED este apagado todo el tiempo.

RA1Es_0 En esta etiqueta hacemos que el LED este encendido 0.5seg y apagado

1.25seg

retardo_0.5s Aquí creamos el retardo de 0.5 segundos

retardo_1.25s Aquí creamos el retardo de 1.25 segundos

SALIDA Lo dirigimos hacia la etiqueta "Principal" para así repetir el ciclo

Codificar el programa que soluciona el problema y comentar todas las líneas (obligatorias). Separar las partes del programa con comentarios pertinentes (obligatorio).

list p=16f877 ; tipo de procesador

#INCLUDE<P16F877.INC> ; archivo INC para reconocer palabras reservadas

contador1 equ 0x20 ; declaramos nuestras variables de apoyo

contador2 equ 0x21 ;

contador3 equ 0x22 ;

org 0;

Inicio

banksel TRISA ; Acceso al banco 1

movlw b'00000011' ; configuramos las entradas y salidas

movwf TRISA ; como digitales

movlw 0x06 ;

Page 5: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

5

movwf ADCON1 ;

banksel PORTA ; Acceso al banco 0

Principal

btfsc PORTA,0 ; ¿RA0 es 0 ??

goto ES_RA0_1 ; No, entonces testear si RA0 es 1

btfsc PORTA,1 ; Si, ¿RA1 es 0?

goto RA1Es_1 ; No, entonces es 1

bsf PORTA,5 ; Si, entonces encender el LED

goto SALIDA ; todo el tiempo

RA1Es_1

bsf PORTA,5 ; Encender el LED durante

call retardo_1.25s ; 1.25s y luego

bcf PORTA,5 ; apagar el LED

call retardo_0.5s ; durante 0.5s

goto SALIDA ; ir a SALIDA

ES_RA0_1

btfss PORTA,1 ; ¿RA1 es 1?

goto RA1Es_0 ; No, entonces es 0

bcf PORTA,5 ; Si, entonces apagar el LED

goto SALIDA ; todo el tiempo

RA1Es_0

bsf PORTA,5 ; Encender el LED

call retardo_0.5s ; durante 0.5s y luego

bcf PORTA,5 ; apagar el LED

call retardo_1.25s ; durante 1.25s

goto SALIDA ;

SALIDA

goto Principal ; ir a principal

; Subrutinas para los retardos de 1.25s y 0.5s

retardo_0.5s MOVLW d'6' ; 6 a W

Page 6: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

6

MOVWF contador1 ; 6 a contador1

ciclo13 MOVLW d'186' ; 186 a W

MOVWF contador2 ; 186 a contador2

ciclo12 MOVLW d'148' ; 148 a W

MOVWF contador3 ; 148 a contador3

ciclo11 DECFSZ contador3 ; bucle interior

GOTO ciclo11 ; ir a ciclo11

DECFSZ contador2 ; bucle medio

GOTO ciclo12 ; ir a ciclo12

DECFSZ contador1 ; bucle exterior

GOTO ciclo13 ; ir a ciclo13

NOP ; generamos un ciclo de maquina

NOP ;

NOP ;

RETURN ; retorno

retardo_1.25s MOVLW d'15' ; 15 a W

MOVWF contador1 ; 15 a contador1

ciclo23 MOVLW d'186' ; 186 a W

MOVWF contador2 ; 186 a contador2

ciclo22 MOVLW d'148' ; 48 a W

MOVWF contador3 ; 48 a contador3

ciclo21 DECFSZ contador3 ; bucle interior

GOTO ciclo21 ; ir a ciclo21

DECFSZ contador2 ; bucle medio

GOTO ciclo22 ; ir a ciclo22

DECFSZ contador1 ; bucle exterior

GOTO ciclo23 ; ir a ciclo23

return

END

Simular el programa en MPLAB. Agregue las variables necesarias para poder observar los cambios de valor de las variables y verificar los resultados.

Implementar el circuito solución en PROTEUS y “quemar” el programa desarrollado en el microcontrolador, luego simular y verificar los resultados.

Page 7: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

7

CASO 1: (RA0=0 Y RA1=0, LED ENCENDIDO TODO EL TIEMPO)

CASO 4: (RA0=1 Y RA1=1, LED APAGADO TODO EL TIEMPO)

Page 8: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

8

IV. INDICACIONES.

Elaborar un informe detallado del trabajo desarrollado y las conclusiones obtenidas y presentar según la fecha y hora indicadas en formato impreso y digital (CD conteniendo el informe (formato word), el programa (proyecto) MPLAB, el circuito hecho en PROTEUS). Colocar este formato como caratula del informe consignando el número de grupo y los integrantes del mismo.

V. CONCLUSIONES (Realice al menos 5 conclusiones respecto a la práctica)

1. Aprendimos a configurar las puertas de entradas del PIC tanto como entradas y/o salidas digitales.

2. Logramos realizar un programa para manejar I/O digitales de nuestro microcontrolador.

3. Al programar el Microcontrolador usado pudimos observar que las puertas que a la vez se usan como entradas analógicas debemos de deshabilitar el modo analógico (ADCON1 0x06), para que sean entradas digitales.

4. Se pudo hacer uso de unos retardos para controlar el encendido y apagado del LED, lo cual nos enseñó a hacer los cálculos necesarios para conseguir un tiempo requerido de retardo y así poder controlar el LED.

5. Constantemente usamos bucles en nuestro programa.

6. Recordar que cuando se hace un llamado a una subrutina, en la codificación de la subrutina, tal cual se hizo para los retardos, no olvidar regresar con RETURN.

Page 9: Microcontroladores - Configuración de puertos, bucles y saltos

INGENIERIA ELECTRONICA

LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN

9

VI. BIBLIOGRAFÍA (Consigne la bibliografía utilizada por usted para el desarrollo de la práctica).

- MICROCONTROLADORES PIC16F877 – DESARROLLO DE PROYECTOS 2da Edicion, ENRIQUE PALACIOS M. - DATASHEET PIC 16F877A - CURSO: MICROCONTROLADORES Y MICROPROGRAMACION –CLACES PRACTICAS. ING. WILDOR FERREL SERRUTO, 2011