10
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FIEC Laboratorio de Micro-controladores Práctica I Encendido de leds Alumno/a Paul Andres Aguilar Ashley Avilés Bastidas Paralelo: 3 Grupo: 1 Fecha de presentación: 28/05/15 2015 – 1° TÉRMINO

PRACTICA DE LABORATORIO DE MICROCONTROLADORES

Embed Size (px)

DESCRIPTION

Practica sobre encendido de LED's usando un switch usando los puertos del microcontrolador 16F887

Citation preview

Page 1: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

ESCUELA SUPERIOR POLITÉCNICA DELLITORAL

FIEC

Laboratorio de Micro-controladores

Práctica I

Encendido de leds

Alumno/aPaul Andres Aguilar

Ashley Avilés Bastidas

Paralelo: 3Grupo: 1

Fecha de presentación: 28/05/15

2015 – 1° TÉRMINO

Page 2: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

1.- Enunciado del proyecto.

Esta práctica está enfocada en la familiarización del entorno y funcionamiento de MPLAB Y PROTEUS, es decir desde crear un proyecto desde cero hasta la ejecución del mismo (MPLAB) y la simulación del mismo (PROTEUS), lo cual se realizará con un programa que permite el encendido de leds en el Puerto B mediante el cambio de un interruptor en el Puerto A.

2.- Diagramas de bloques.

INTERRUPTOR

PIC 16F887

LEDS: ON

Page 3: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

3.- Diagrama de flujo funcional del programa principal y de las subrutinas.

Programa principal.

0

Subrutinas

INICIO

INTERRUPTOR

INICIO

BIT ‘0’ DE PORTA

LEDS ON: FORMA

B'10101010'

LEDS ON: FORMA

B'01010101'

1

0

CONFIGURACIÓN DE PUERTOS

LOOP: LEDS ON FORMA 1

NUEVO_VALOR: LEDS ON FORMA 2

1

Page 4: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

4.- Descripción del algoritmo o estrategia utilizada.

1. El programa empieza con la configuración del Puerto B como salida

2. El desarrollo del programa consta de dos lazos LOOP y NUEVO_VALOR, siendo LOOP el lazo de inicio. El desarrollo del lazo LOOP estará regido por una condición de bit (BTFSS) en el bit ‘0’ del registro PORTA para ejecutar la siguiente línea de código. Si en el bit ‘0’ de PORTA se encuentra un ‘1’, el programa saltará una instrucción y continuará en el lazo presente con la siguiente instrucción, caso contrario el programa se dirigirá hacia NUEVO_VALOR, en donde continuará con su respectiva ejecución.

3.- En cada lazo se da un orden específico para el encendido de los leds. En el lazo LOOP el orden es B’10101010’ (notación binaria), mientras en el lazo NUEVO_VALOR el orden es B’01010101’. Este cambio se da al abrir o cerrar el interruptor, ya q este está conectado al puerto A.

5.- Listado del programa fuente en el lenguaje ensamblador.

;********************************************************************

; LECTURA DE SWITCH EN PORTA Y ENCENDIDO DE LEDS EN PORTB ;********************************************************************

; NOMBRE: p1_led.asm

; FECHA: 26/05/2010

; VERSION: 1.00

; PROGRAMADOR:

;********************************************************************

; DESCRIPCION:

; Se coloca un interruptor en RA0. Cuando RA0=1 en el Puerto B; deberá leerse el valor hexadecimal AA y cuando RA0=0 deberá; cambiar al valor hexadecimal 55.;********************************************************************

LIST p=16F887 ; Tipo de microcontroladorINCLUDE P16F887.INC ; Define los SFRs y bits del

; P16F887

CONFIG _CONFIG1, _CP_OFF&_WDT_OFF&_XT_OSC; Ingresa parámetros de; Configuración

Page 5: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

BTFSS GOTO MOVLW

PORTA,0NUEVO_VALORB'10101010'

; prueba del bit 0 del puerto

; mueve 0xAA al registro WMOVWFGOTO

PORTBLOOP

; pasa el valor al puerto B

MOVLW MOVWF GOTO

B'01010101' PORTBLOOP

; mueve 0x55 al registro W; pasa el valor al puerto B

END; fin del programa

errorlevel -302 ; Deshabilita mensajes de; Advertencia por cambio; Bancos

;*********************************************************************

; INICIO DEL PROGRAMA

ORG 0x00 ; Comienzo del programa (Vector de Reset)

; SETEO DE PUERTOS

BANKSEL TRISB ; selecciona el banco conteniendo TRISBCLRF TRISB ; puerto B configurado como salidaBANKSEL ANSELCLRF ANSEL ; configura puertos con entradas digitalesCLRF ANSELH ; configura puertos con entradas digitalesBANKSEL PORTB ; selecciona el puerto B como salidaCLRF PORTBCLRF PORTA

; DESARROLLO DEL PROGRAMA

LOOP

NUEVO_VALOR

Page 6: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

6.- Copia impresa del circuito armado en PROTEUS para la simulación en el momento de su ejecución.

Interruptor cerrado:

Interruptor abierto:

Page 7: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

7.- Conclusiones.

1. La familiarización con el software MPLAB se complementó con lo aprendido en clase, con respecto al funcionamiento del programa y el uso de instrucciones. Además de aprender a utilizar distintos tipos de ventanas para ver el cambio de los registros usados y así tener una idea más clara del cómo funciona el micro controlador.

2. Con respecto al software PROTEUS, la familiarización fue por partes puesto que uno de nosotros tenía experiencia en su uso; sin embargo los recursos investigativos de internet resultaron útiles para comprender el manejo simultáneo de ambos software. La implementación del código al micro PIC 16F887 solo es posible si el código ha sido compilado y probado, además de que la simulación es en tiempo real y permite comprobar de una manera más real el funcionamiento del circuito simulado.

8.- Recomendaciones.

Siempre es recomendable primero crear el archivo .asm antes de crear el proyecto, así cuando se crea el proyecto se puede incluir de una vez.

Escribir la extensión (.asm) al momento de crear el archivo para que el proyecto pueda reconocerlo como un documento de código ensamblador.

Cerciorarse de elegir el PIC correcto al principio de la creación del proyecto para no tener inconvenientes cuando se trate de asignar valores a los pines, además recordemos que en el encabezado del código se incluye la librería del PIC deseado y si estos no coinciden habrá errores cuando se lo quiera simular.

Page 8: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

ANEXO DE RESPUESTAS A PRACTICA 1

INTEGRANTE 1: Paul Andres Aguilar

INTEGRANTE 2: Ashley Avilés Bastidas

PARALELO: 3

GRUPO: 1

Indique la función que desempeñan cada uno de los siguientes íconos:

Run .- Permite hacer la prueba de correr o simular el código de forma continua hasta detenerlo pero no actualiza la ventana WATCH sino hasta que se detiene la simulación.

Halt.- Detiene la ejecución del programa y actualiza todos los valores de las ventanas de visualización.

Animate.- Permite hacer la prueba de correr o simular el código de manera continua ejecutando todas las líneas una y otra vez hasta detenerlo manualmente, actualizando la ventana WATCH cada ejecución.

Step Into.- Es una herramienta que me permite ejecutar el código línea a línea incluyendo las subrutinas, entra a cada subrutina y la ejecuta paso a paso y cuando termina de ejecutarlas vuelve al programa principal.

Step Over.- Esta opción también permite ejecutar el código línea a línea pero al contrario de Step Into esta no me permite ejecutar las subrutinas línea a línea, sino que las ejecuta completas como si éstas fueran una sola línea. En otras palabras solo ejecuta el código principal.

Step Out.- Una vez que se ha ingresado a una subrutina y se está ejecutando línea a línea ésta herramienta me permite ejecutar

Page 9: PRACTICA DE LABORATORIO DE MICROCONTROLADORES

todas las líneas restantes de la subrutina hasta volver al programa principal.

Reset.- Es el equivalente a un reset físico en el pin MCLR; esto es, poner todo nuevamente en cero.