E8-P1REPORTE

download E8-P1REPORTE

of 27

description

reporte sobre PIC

Transcript of E8-P1REPORTE

Objetivos Identificar las caractersticas de los microcontroladores (uC) PIC de la familia PIC18. Identificar los pines del PIC18F4550. Analizar el funcionamiento de los puertos, oscilador y reset. Conectar el circuito de reset (MClr) del PIC. Identificar el software MPLAB, para realizar un programa en lenguaje ensamblador. Realizar un programa en lenguaje ensamblador para sumar dos datos de 4 bits (Puerto B) y mostrar el resultado en 5 leds conectados en puerto D. Realizar el algoritmo del punto anterior. Realizar la simulacin del cdigo en ensamblador. Simular en el software Proteus el circuito completo. Programar el microcontrolador (Pickit2, ICD2, Master-Pro, etc.). Probar el programa para obtener los resultados.IntroduccinBreve descripcin de lo que se hizo y lo que se presenta en este reporte

Marco tericoCdigo EnsambladorEs un cdigo mnemnico de fcil comprensin para representar las secuencias de 0 y 1. Escribir un programa en mnemnicos es ms sencillo, porque son una versin abreviada de la operacin que realiza una instruccin. Adems de que es una alternativa de escribir instrucciones en cdigo binario tambin conocido como cdigo mquina.

MicrocontroladoresUn microcontrolador es aquel que integra en un chip de microprocesador con memoria, interfaces de entrada/salida y otros dispositivos perifricos como temporizadores. Un microcontrolador comn tiene terminales para la conexin externa de entradas salidas, alimentacin elctrica y seales de reloj y de control.

PIC18F4550Una familia de microcontroladores pertenecientes a la familia Microchip que entre sus caractersticas principales tenemos que el consumo de corriente es muy bajo gracias a su tecnologa nanoWatt. Tambin cuenta con un set de instrucciones extendidas para optimizar la compilacin en lenguaje C o ensamblador. A comparacin de familias anteriores de Microchip este cuenta con ms opciones embebidas tales como; USB, UART I1C, CAN, convertidores A/D, PLL integrado, PWM (modulacin por ancho integrado), mayor nmero de contadores entre otras caractersticas.

Ilustracin 1: Diagrama de bloques PIC18F4550

Manejo de MPLABBarra de Herramientas y Mens:

MPLAB contiene 4 barras de herramientas personalizables segn la tarea que se est realizando. La primera es la barra USER, que por defecto es la nica que utilizo, bueno tu elegirs la que ms te agrade. La segunda es la barra EDIT, todo lo relacionado a la Edicin de texto. La tercera es la barra DEBUG, con todo lo necesario para simular nuestro programa, depurarlo, etc. Finalmente la barra PROJECT, todo lo referido al proyecto que ests realizando. Men File: NEW: Crea un nuevo archivo con extensin .asm OPEN: Abre un archivo que puede ser .asm/.obj/.c/.err/.h/.lkr/.map/.hex/.lst VIEW: Abre un archivo en modo solo lectura. y lo ms comn. SAVE (Guardar), SAVE AS (guardar como), SAVE ALL (guardar todo). CLOSE (cerrar un proyecto), CLOSE ALL (cerrar todos los proyectos abiertos). PRINT (Imprime), y PRINT SETUP te permite configurar el modo de impresin, EXIT cierra MPLAB, y finalmente los 5 ltimos archivos utilizados.

Men Project:Como MPLAB te permite trabajar con varios archivos y todos los elementos y herramientas a la vez es bueno crear un proyecto y tener en l todo lo necesario para realizar tu tarea, como ser; codificar, ensamblar, simular, etc. Este men contiene

NEW PROJECT: Abre un cuadro de dilogo para crear un nuevo proyecto y en l todo lo que necesites para tenerlo ms a tu alcance. OPEN PROJECT: Abrir un proyecto CLOSE PROJECT: Cerrar un proyecto SAVE PROYECT: Guardar Proyecto EDIT PROJECT: Similar a New Project, pero referido a un proyecto ya abierto, al que se le puede agregar nodos, libreras y la forma en que desarrollaras el proyecto en cuestin. MAKE PROJECT: Ensambla; crea archivo .HEX la cual compara con el archivo .asm del que ensamblo. Si este tiene una fecha ms reciente que el archivo .HEX asociado, debido digamos a una actualizacin del cdigo, entonces ensamblar nuevamente el proyecto. En caso de que la fecha sea anterior al archivo .HEX generado (es decir, archivo .ASM ms viejo que el .HEX) este no har nada.(extrado textualmente de no recuerdo donde, pero igual, yo jams lo utilic) BUILD ALL: Le importa nada la fecha y ensambla todo. BUIL NODE: Ensamblar un nodo que hayamos asociado al proyecto. INSTALL LANGUAGE TOOL: Es para configurar el lenguaje a utilizar, que en nuestro caso es el ASM de Microchip.

Men Edit:

UNDO: Deshacer, y en ese orden Cortar, Copiar y Pegar SELECT ALL: Seleccionar todo SELECT WORD: Selecciona la palabra sobre la que est el cursor. DELETE LINE: Borra la lnea sobre la que est el cursor. DELETE EOL: Borra desde donde est el cursor hasta el final de la lnea. GOTO LINE: Abre un cuadro de dilogo para saltar a una determinada lnea (Line to go to), te indica adems la cantidad total de lneas (Last Line) y la lnea en que tienes el cursor (Current Line), es algo as como el "Ir a" de Word. FIND: Es para buscar algn texto dentro de nuestro cdigo. REPLACE: Es para reemplazar un texto o una pequea frase. REPEAT FIND: Es para repetir la bsqueda si es que hay otra palabra o frase igual. REPEAT REPLACE: Es para repetir el reemplazo. TEMPLATE: Pues como todos los templates, para crear unos archivos personalizados o plantillas, y as no estas reescribiendo todo un cdigo nuevamente. TEXT: Tambin tiene sus opciones; Transpose intercambia los caracteres que estn a ambos lados del cursor; Upper case cambiar a maysculas; Lower case cambiar a minsculas; Indent mantiene la tabulacin de la lnea anterior; Un-Indent lo opuesto.

Men Debug: RUN: Inicia la simulacin. Vers la parte inferior de la ventana toda pintada de amarillo (seal de que la simulacin est en proceso). til cuando colocas algunos puntos de ruptura (breakpoints) para detener la ejecucin y as no estar esperando que se ejecute todo aquello que sabes que est correcto. RESET: Resetea el micro y te ubica en la primer lnea donde comenzar la simulacin (en ese caso vers toda la lnea pintada de negro y las letras blancas) "listo para comenzar la simulacin" HALT: Detiene la ejecucin. HALT TRACE: Detiene un traceo que se est haciendo. ANIMATE: Es igual que RUN pero lo hace ms lento, para que vayas siguiendo la ejecucin, mostrndote lnea por lnea todo lo que se est ejecutando. STEP: Paso, es decir, un paso por cada vez que lo presionas (en la barra de herramientas vers dos huellas de zapato, pues es eso, paso a paso). Simplemente ejecuta una a una cada lnea de cdigo por cada vez que lo presionas. STEP OVER: Igual que el anterior pero con un pequeo detalle, cada vez que se encuentre con un call lo ejecuta de modo tan rpido que ni t te enteras de que ya pas, es decir, utilzalo si no quieres perder tiempo con el call. UPDATE ALL REGISTER: Actualiza el valor de todos los registros. CHANGE PROGRAM COUNTER: Cambia el valor del PC y te ubica en la etiqueta del cdigo a la que quieres ir. EXECUTE AN OPCODE: Te permite ejecutar un cdigo cualquiera desde cualquier sitio en el que te encuentras, por ejemplo ingresas un goto inicio y hacia all ir. independiente a la secuencia del programa. CONDITIONAL BREAK: Para ejecutar un breakpoint en forma condicional, Por ejemplo por que cambi el valor de un registro, o porque quieres ver que paso hasta ese punto.

SIMULATOR STIMULUS: Desde aqu se puede simular que le envas seales al micro por uno de sus pines, este submen tiene 4 opciones ASYNCHRONOUS STIMULUS: Te abrir un pequeo dilogo con 12 botones como el que se muestra en la imagen, vendran a ser como interruptores, nota que al primero le asign el pin RA0 (pin 17) y entre parntesis una T (de TOGGLE).

Ilustracin 2: Ventana Asynchronous StilulusSi presionas con el botn derecho del mouse en uno de esos botones veras las opciones de configuracin de estos estmulos desde donde los puedes configurar.

ASSIGN PIN: Muestra los pines del puerto para que selecciones aquel que llevar un estmulo. PULSE: un pulso LOW: Le asigna un nivel bajo permanente HIGH: Lo contrario, nivel alto permanente TOGGLE: Cada vez que lo pulses cambiar de nivel de alto a bajo o de bajo a alto.

PIN STIMULUS: Es para cuando creas un archivo de texto con extensin .sti, desde aqu lo cargas o lo quitas, se trata de utilizar un archivo que creaste con esta extensin y que contiene los estmulos ya asignados para cada uno de los pines. CLOCK STIMULUS: Desde aqu puedes enviarle pulsos de reloj a un determinado pin, indicando el tiempo que se mantendr en nivel alto y el tiempo en nivel bajo, tipo (timer).

Ilustracin 3: Ventana clocked stimulusTiene un par de opciones como ser; Guardarlo como un archivo .sti, Abrir alguno si es que ya lo tienes creado, Aplicar los cambios, agregarle ms impulsos a otros pines, y el help (por supuesto, la ayuda). REGISTER STIMULUS: Es exactamente lo mismo que con los pines, solo que lleva la extensin .reg y sirve para que en una determinada posicin del programa se cargue un registro con el valor que t le quieras dar.

CENTER DEBUG LOCATION: Te ubica en la posicin en la cual el programa se est ejecutando, se suele utilizar cuando detienes la ejecucin, empiezas a husmear por otro lado y luego no sabes dnde andabas, pues bueno ah te lo acercas. BREAK SETTINGS: Te muestra un dilogo para que le des nombre a los breakpoints y luego desde aqu los habilitas, los quitas, los guardas etc. TRIGGER IN/OUT SETTINGS: Son para los emuladores MPLABICE y PICMASTER, aquellos que dijimos no tener.CLEAR ALL POINT: Limpia todos los breakpoints y los tracepoints que pusiste a lo largo del programa. CLEAR PROGRAM MEMORY: Borra la memoria de programaSYSTEM RESET: Eso mismo, Resetea el sistema. POWER ON RESET: Para el caso en que se podra producir un reset en el micro, y as saber que ocurre o que es lo que hace el micro si esto llegara a ocurrir.

Ilustracin 4: Ventana power on resetSlo le das a Power On Reset y habrs ocasionado un reset en el pin4 del micro (MCLR), luego le das a "cancel" y continuas con la ejecucin para saber qu hace el PIC, y as asegurarte de que todo est en orden. Men Options:DEVELOPMENT MODE: Es donde hacemos las configuraciones del proyecto. WINDOW SETUP: Puedes personalizar totalmente la forma en que vas a trabajar, tus preferencias, luego Guardarlas (Save Setup), Cargarlas (Load Setup) si es que ya las tienes guardadas, o utilizar una por defecto (Default Configuration). CURRENT EDITOR MODES: Es para que personalices el modo de edicin.

Ilustracin 5: Ventana Current editor modes.RESET EDITOR MODES: Elimina los cambios que hiciste anteriormente ENVIRONMENT SETUP: Para una personalizacin completa. PROGRAMMER OPTIONS: Son las opciones para configurar el programador que utilizars con MPLAB.Men view:El ms importante de todos, ya que desde aqu nos veremos cara a cara con cada uno de los bits de los registros del micro, el estado que tienen y como se modifican, claro que lo vers cuando lo ejecutes en modo "step" (paso a paso) o "Animate" (de forma animada)... PROGRAM MEMORY: Vers la memoria de programa, y as sabes cunto espacio te queda disponible. STACK: La pila.

Ilustracin 6: Ventana de la pila. FILE REGISTER: Para que veas como se modifican los registros mientras el programa se est ejecutando, solo en modo "Step" o "Animate".

Ilustracin 7: Ventana de registros de programa. SPECIAL FUNCTION REGISTER: Los Registros de funciones especiales con nombre y todo, trisa/b, porta/b, status, w, se puede ver como se modifican los bits de entrada y salida de los puertos. Slo los vers cuando lo ejecutas en modo "Step" o "Animate".

Ilustracin 8: Ventana de funciones especiales de registro SHOW SIMBOL LIST: Todos los smbolos utilizados y su respectiva ubicacin (direccin de registro), aquello que definimos al iniciar nuestro cdigo, como "status equ 0x03".

Ilustracin 9: Ventana de smbolos STOPWATCH: Para que veas el tiempo en milisegundo consumidos por el micro que cuenta con un XT de 4 MHz.

Ilustracin 10: Ventana stopwatch PROJECT: Los datos del proyecto que estas realizando WATCH WINDOW: Para crear tu propia ventana de registros. MODIFY: Para modificar los valores de algn registro determinado.

Uso del simulador en MPLAB IDEEl software MPLAB IDE incluye un programa simulador, que es una herramienta de desarrollo sumamente til, no solamente para localizar errores (bugs) en un programa, sino tambin como auxiliar didctico. El usuario puede seguir paso por paso cada instruccin del programa, insertar breakpoints, generar entradas digitales en cualquier bit de los puertos y observar el contenido de cualquier registro interno del microcontrolador, as como de las localidades de la memoria de datos y de cdigo, la EEPROM y el Stack. El simulador cuenta tambin con la opcin de una funcin Stopwatch para medir tiempos de ejecucin. Para saber ms sobre cmo realizar la simulacin consulte el video tutorial disponible en https://youtu.be/VkH4344lgIEProcedimiento y desarrollo de la prcticaClculos, diseo y codificacin del algoritmoLa tarea primordial de esta prctica es realizar un programa en lenguaje ensamblador para sumar dos datos de 4 bits (Puerto B) y mostrar el resultado en 5 leds conectados en puerto D. Despus de analizar los requerimientos del problema, se elabor el diagrama de flujo de este algoritmo el cual se muestra en la siguiente figura:Algoritmo1. Inicio 2. Determinar el PIC con el que se trabaja3. Configurarlo4. Utilizar un oscilador externo de 4 MHz 5. Establecer los puertos de E/S6. Definir las variables (operandos)7. Leer los datos de entrada (Puerto B)8. Asignar los datos de entrada a las variables 9. Sumar los datos10. Mostrarlos a travs del puerto D11. Volver a leer datos en B y repetir el ciclo completo 12. Fin

Ilustracin 11: Diagrama de flujo y algoritmo asociados al problema

Este algoritmo se codific en el software MPLAB; dicho cdigo se muestra a continuacin. Los cuadros en naranja son la descripcin genera de cada parte del cdigo. A manera de comentarios dentro del mismo cdigo se explican el porqu de cada lnea en el cdigo.

Ensamble y simulacin en MPLAB IDE 8.92Una vez codificado el algoritmo en MPLAB IDE se ensambl para obtener el archivo .HEX que es el que se carga al PIC. Se selecciona Make en el men proyect

Ilustracin 12: Ensamble del cdigo Si el cdigo no tiene errores de sintaxis aparece la siguiente ventana donde nos dice que se ha ensamblado correctamente; esto no necesariamente significa que el programa realizar lo que queremos pero nos indica que a menos est bien escrito.

Ilustracin 13: Ensamble exitoso

Automticamente en la carpeta donde est guardado el proyecto aparecer el archivo .HEX

Ilustracin 14: Creacin automtica del archivo .HEX

Luego se simula el cdigo en el mismo software. Esta simulacin nos sirve para probar el manejo de puertos. En el men VIEW habilitamos la vista de File registers, Special function registers y Program memory que mientras se ejecuta el programa nos permitirn ver cmo se modifican los registros, como se modifican los bits de entrada y salida de los puertos saber cunto espacio te queda disponible en la memoria.

Ilustracin 15: Prerrequisitos para la simulacin 1

En el men Debugger se habilita la vista de Stopwatch que, como vimos en el marco terico, nos permite visualizar el tiempo en milisegundo consumidos por el micro que cuenta con un XT de 4 MHz.

Ilustracin 16: Prerrequisitos para la simulacin 2 En ese mismo men seleccionar ANIMATE QUE empieza a correr el programa

Ilustracin 17: Ventana para iniciar animacinPrctica 1Microcontroladores y DSPsPrctica 1Microcontroladores y DSPs

Las siguientes imgenes muestran parte de la simulacin realizada. El archivo completo para realizar y visualizar la simulacin de manera real se encuentra en la carpeta de archivos de cdigo

Ilustracin 18: Animacin del programa. Imagen 1

Ilustracin 19: Animacin del programa. Imagen 2

Ilustracin 20: Animacin del programa. Imagen 3

Simulacin en Proteus 8.0La simulacin del circuito completo se realiz en el software Proteus 8.0. Para esta primera prctica, el circuito para simular en Proteus y armar fsicamente en la tablilla de experimentos no se dise por el equipo sino que fue proporcionado por el profesor. ImplementacinUna vez simulado el cdigo en ensamblador se prosigui a armar el circuito fsicamente en la placa de experimentos a fin de comprobar la operacin del microcontrolador y experimentar las diferencias contra los resultados obtenidos por el software de simulacin.Los dispositivos debern de conectarse como se muestra en la figura siguiente

Ilustracin 21: Circuito con PIC18F4550

Ilustracin 22: Pines del microcontrolador PIC18F4550A continuacin se muestra el circuito ya armado en la tablilla de experimentos.

Ilustracin 23: Circuito con PIC18F4550 armado en protoboard

Resultados Pasos previos.Una vez que ya se ha verificado el funcionamiento y lgica del circuito por medio de la simulacin se procedi al armado y experimentacin del circuito en la tablilla de experimentos. Como primer paso para llegar a los resultados deseados se procedi a programar el PIC con ayuda de un programador proporcionado por el maestro. La programacin se realiz a travs del programa MPLAB. Una vez programado el PIC, se realiz el armado del circuito ya mencionado, el circuito se arm en una tablilla de experimentos que fue alimentada con una fuente de alimentacin regulada proporcionada por el laboratorio.

Ilustracin 24: Circuito armado en la tablilla de experimentos.Pruebas y errores.Para explicar la fase de pruebas debemos aclarar el orden del circuito:Hacia arriba es 0 y hacia abajo es 1

Bit menos significativo

Algunos problemas que surgieron al probar el circuito fueron solo tcnicos, ya que el dipswitch dio problemas por falso contacto, pero eso se arregl buscando un dipswitch apropiado.Ahora, se hicieron pruebas con diferentes combinaciones entre la suma de 1 y 15:

SumaResultado

1+0

1+1

3+1

3+2

3+3

3+4

4+4

5+4

5+5

6+5

6+6

7+6

7+7

7+8

Como se puede apreciar, los resultados experimentales concuerdan con los de la simulacin perfectamente, en ninguna combinacin hubo discrepancias ni ninguna desviacin importante, adems como extra tambin se prob la combinacin de 8+8 y probamos que solo prende el bit de acarreo como indicaba la simulacin.

Ilustracin 25: Resultado de la suma de 8+8 en la tablilla de experimentos.

Conclusiones Bibliografa y referencias

[1] Simulacin en MPLAB. Disponible en https://www.youtube.com/watch?v=VkH4344lgIE.Consultado el 19 de septiembre de 2015 [2]MANUAL PIC 18F4550. Disponible en http://rapidshare.com/files/268879576/PIC18F4550.pdfUniversidad de ValenciaConsultado el 10 de septiembre de 2015 [3]MPLAB IDE Quick Start Guide - MicrochipDisponible en http://ww1.microchip.com/downloads/en/DeviceDoc/51281d.pdfConsultado el 19 de septiembre de 2015