Вы находитесь на странице: 1из 22

Microprocesadores Y Microcontroladores

ACT: PRACTICA UNIDAD No. 2

TRABAJO

PRESENTADO POR: Jonathan Ardila Sabogal Cod: 1.106.892.786

Practica de Laboratorio de Microprocesadores y Microcontroladores para obtener una nota parcial Tutor: Leider Gaitn

UNAD UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA GIRARDOT CUNDINAMARCA 2012

Microprocesadores Y Microcontroladores

INTRODUCCION Este trabajo cumple con el objetivo de presentar el desarrollo de las prcticas de laboratorio del curso de Microcontroladores y microprocesadores en el cual se evidencia la construccin de un juego de luces led construyendo el cdigo fuente usando el programa MPLAB, de igual manera se estudiara y programara un micro controlador PIC 16f84A el cual nos servir para hacer le montaje fsico de la prctica. Siendo as una presentacin individual de una gua de laboratorio que a continuacin presentamos, en donde se plasma de manera sintetizada la estructura temtica del aula del curso de microprocesadores y microcontroladores en su mdulo, contenido y recursos y dems aspectos formativos para el mismo aprendizaje. Para lograr llevar a cabo esta prctica usaremos la programacin en lenguaje Assembler y en el transcurso del componente prctico aprenderemos a identificar las caractersticas, convenciones en la escritura y todo lo relacionado con la programacin en Lenguaje Assembler. El trabajo ayuda a tomar conciencia sobre la importancia de los microcontroladores y microprocesadores, acentuando su diseo utilidad, caractersticas e implementacin de manera clara y distribuida en los diferentes equipos actualmente usados junto con los componentes de las mimas.

Microprocesadores Y Microcontroladores

OBJETIVOS OBJETIVO GENERAL Disear un algoritmo para generar el cdigo fuente en lenguaje ensamblador y de ah compilarlo, depurarlo, guardarlo, cargarlo y ejecutarlo utilizando para ello el entorno de Desarrollo Integrado MPLAB. OBJETIVOS ESPECFICOS

Analizar con el diseo y solucin de los problemas prcticos propuestos se busca aclarar dudas conceptuales. Integrar las soluciones con el diseo de algoritmos y desarrollar las habilidades y competencias en la programacin de microcontroladores. Discutir los trabajos individuales y entregar un producto final como archivo que contenga los trabajos individuales siguiendo las pautas de la presente gua de trabajo. Integrar al grupo de trabajo colaborativo, con la socializacin de los trabajos individuales, la construccin colectiva del conocimiento entorno al trabajo en equipo, a la definicin de roles en el grupo y lder de grupo.

Microprocesadores Y Microcontroladores DESARROLLO DE LA ACTIVIDAD RESUMEN: En la elaboracin del control con pulsador de la secuencia de 8 LEDS por medio de un microcontrolador PIC16f877A, se utiliz por su versatilidad por contar con una cantidad de caractersticas, siendo uno de los utilizados en el mundo de la electrnica. Se utiliz un lenguaje de programacin en C, en que se simula el funcionamiento de nuestro circuito en Proteus, Siendo importante para verificar su operacin y su posterior montaje. PALABRAS CLAVE: 6LPXODGRU 6,08352& $VVHPEOHU 3URWHXV 3,& /HGV Microcontrolador, Pulsador. MATERIALES Y EQUIPOS: Materiales y equipos necesarios para la elaboracin de nuestra prctica. Lenguaje de programacin en C. 3 URJUDPDGRU GH 3,&6 Fuente de variable en 5v. Computador. Simulador Proteus LABORATORIO 2 Practica 2. TITULO: Programacin bsica de Microcontroladores Microchip PIC y Motorola Freescale. DESARROLLO DE LA PRCTICA: Disear un algoritmo para generar el cdigo fuente en lenguaje ensamblador y de ah compilarlo, depurarlo, guardarlo, cargarlo y ejecutarlo utilizando para ello el entorno de desarrollo Integrado MPLAB o WINIDE DESARROLLO DE LA PRCTICA: Usar un microcontrolador PIC 16f84A usando todo el puerto B en modo de salida y usar el software MPLAB para compilarlo, depurarlo, guardarlo, cargarlo y ejecutarlo en los siguientes ejercicios: EJERCICIO 1 SECUENCIA Y CONTRO DE LED. 1. Con el circuito planteado implementar mnimo ocho (8) secuencias distintas para el conjunto de 8 LEDs conectado a uno de los puertos, las secuencias distintas se deben mostrar una tras otra. Este primer ejercicio constituye la base de los dos posteriores. Su construccin obedece a poner en funcionamiento ocho secuencias distintas obtenidas con igual cantidad de diodos LED sin la interaccin del usuario. El control ser, en todo caso, solo a travs del temporizador. A. Descripcin: Ocho secuencias con ocho LEDs sin interaccin exterior. B. Diagrama de flujo

Microprocesadores Y Microcontroladores

C. Montaje En Proteus

Codigo Mplab

Microprocesadores Y Microcontroladores CONFIG es una directiva que configura el procesador[1]. En orden se indica desactivar la proteccin de cdigo, desactivar el watch dog y seleccionar el oscilador de cristal. Lnea 2. Ttulo del ejercicio. Lneas 3 y 4. Se establece el tipo de procesador. Bajo MPLAB pierden significado porque es el propio proyecto en donde se establece. Se incluye solo por compatibilidad. Lnea 5. Librera en donde se encuentran las declaraciones de registros y constantes del PIC16F84.

Lneas 9 y 12. Declaracin de variables iniciando en la posicin 0x000C y consecutivas. Ello evita escribir las direcciones una por una[2]. Lneas 16 a 17. El programa se inicia en la posicin de memoria 0x0000 y luego bifurca hacia la etiqueta inicio

Lnea 263. La primera lnea del programa es llamar a la rutina de inicializacin (ver la siguiente seccin). Lneas 264 a 289. Se apagan todos los LEDs del puerto B y se llama a cada procedimiento de secuencia uno a la vez con una pausa entre secuencia y secuencia

Microprocesadores Y Microcontroladores

Lnea 22 a 24 establecer a cero los puertos A y B. Lnea 25. Seleccionar el banco 1 en donde estn ubicados los registros utilizados a continuacin. Lneas 26 y 27. Configurar el temporizador a una prescaling de 1:256 asignado al TMR0 en el registro OPTION_REG. Lneas 28 y 29. Configurar el puerto B como salida asignando cero al registro TRISB. Lneas 30 y 31. Seleccionar el banco 0 para iniciar el programa y salir del procedimiento de inicializacin.

Lnea 35. Se reinicializa a cero el conteo del temporizador. /tQHDV D (O WHPSRUL]DGRU FXHQWD YHFHV DQWHV GH VDOLU E *RWR $-1 significa retroceder una lnea. Explicacin adicional. El temporizador configurado con la seal interna tal como se ha establecido, cuenta a velocidad constante de 0 a 255 inclusive y luego repite la cuenta desde cero a una frecuencia establecida por la siguiente frmula: [3]

Es decir, el tiempo que tarda cada cuenta del timer depende de 2 factores: la frecuencia fosc del oscilador y el valor p del prescaling elegido. Al haber seleccionado un prescaling de 1:256 (ver comentario de las lneas 26 y 27) se tiene:

Por lo tanto, como el bucle itera 128 veces se espera un tiempo aproximado de 33 ms para cada pausa.

Microprocesadores Y Microcontroladores

Lneas 42 a 45. El primer tipo de secuencia corresponde al encendido exclusivo de 1 LED de un extremo al otro de ida y vuelta. La variable iterar contiene la cantidad de veces que se repite toda la secuencia y la variable bitn contiene el primer bit con se inicia la secuencia. Lneas 46 a 51. La primera mitad de la secuencia corresponde al movimiento de ida y se realiza rotando el bit inicial de bitn con la instruccin RLF en un bucle apropiado y un tiempo de pausa entre cada iteracin Lneas 52 a 59. Al alcanzar el extremo contrario se ingresa a la segunda mitad de la secuencia que consiste en desplazar el bit hacia el lado contrario utilizando otro bucle con un tiempo de pausa entre cada iteracin Lneas 60 a 64. Al llegar al extremo se enciende el LED extremo y se verifica si la cantidad de iteraciones de la secuencia ha sido cumplida, en caso contrario return marca la salida del proceso y regresa al bucle principal del programa (ver ln eas 264 a 289)

Microprocesadores Y Microcontroladores Lnea 68 a 71 El segundo tipo de secuencia corresponde al encendido intercalado de los 8 LEDs al mismo tiempo. La variable iterar. Iterar contiene la cantidad de veces que se repite la secuencia y bitn contiene el valor de inicio de los bits. Lneas 72 a 79. Se muestran los bits de inicio, se realiza una pausa, se invierte con COMF el estado de todos los bits,se muestran y se repite la secuencias tantas veces como indique la variable iterar. Al salir se regresa al bloque principal del programa (ver lneas 264 a 289).

Lnea 83 y 84. Esta secuencia emula uno de los movimientos de las luces de KITT (Knight Industries Three Thousand) el auto protagonista en la clsica serie televisiva de los 80s QLJKW 5LGHU . R (O DXWR IDQWiVWLFR HQ XQ HQFHQGLGR SURJUHVLYR GHO FHQWUR KDFLD DPERV lados. Lneas 85 a 112. El encendido de LEDs se realiza con llamadas consecutivas a MOVLW al puerto B. Toda la secuencia se repite la cantidad de veces indicada por la variable iterar y luego sale con return (que no altera el valor del registro W) al bucle principal (ver lneas 264 a 289).

Microprocesadores Y Microcontroladores Lnea 171 a 174. Para el sexto tipo de secuencia se eligi mantener encendido el LED de XQ H[WUHPR PLHQWUDV XQD FRSLD GHO PLVPR VH GHVSOD]D KDFLD HO H[WUHPR Fontrario y alcanzarlo se congela inicindose el movimiento del LED inicialmente encendido. Bitn contiene el led inicialmente encendido. Lneas 175 a 183. Esta primera mitad de la secuencia consiste en encender rotar el valor de bitn y mostrarlo, pero antes de la pausa encender manualmente con BSF el bit menos significativo del puerto B. Ntese que aunque en el cdigo la secuencia de instrucciones est al revs (primero BSF) en realidad se ejecutan en orden inverso debido a la ubicacin del call pausa. El proceso se repite hasta alcanzar el extremo. Lneas 184 a 198. La segunda mitad de la secuencia realiza el proceso inverso manteniendo encendido el LED del extremo contrario y desplazando el bit hacia el otro extremo. Al alcanzar el nmero de iteraciones indicado por iterar se regresa al programa principal (ver lneas 264 a 289).

Lneas 202 y 203. El penltimo tipo de secuencia es encender todos los LEDs e ir apagndolos progresivamente desde el centro y hacia ambos lados. Para ello solo se utilizar la variable iterar. Lneas 204 a 227. La secuencia se logra utilizando la interaccin directa con el puerto B envindole el status de cada bit de manera directa con MOVLW. Al finalizar la secuencia completa se comprueba si se ha alcanzado la cantidad de iteraciones que indica la variable iterar. Si no se ha alcanzado se repite todo el proceso desde la etiqueta sec_7; en caso contrario se regresa al programa principal sin modificar el valor de W con return (ver lneas 264 a 289).

Microprocesadores Y Microcontroladores Lneas 231 y 232. En este ltimo tipo de secuencia se eligi utilizar el efecto rebote de una cantidad de LEDs de extremo a extremo que se va incrementando hasta iluminar los 8 espacios. Lneas 233 a 259. Se utiliza nuevamente el mnemnico MOVLW para enviar el status de las salidas al puerto B directamente con pausa luego de cada nuevo status. Al finalizar se verifica la cantidad de iteraciones y luego se regresa al programa principal sin modificar el valor de W con return (ver lneas 264 a 289). PROCESO DE CONFIGURACION PIC 16F84 CON USB PROGRAMMER DE MICROCHIP. Circuito programador:

Programa

Montaje en protoboard

Funcionamiento del circuito

Microprocesadores Y Microcontroladores EJERCICIO 2: SECUENCIA DE LED CON CONTROL. 2. Con el circuito planteado, de ocho (8) LEDs y un (1) botn, desplegar mnimo ocho (8) secuencias controladas en su visualizacin por el BOTON conectado a otro puerto. El siguiente ejercicio permite la accin del usuario a travs del bit menos significativo del puerto A del microcontrolador configurado como entrada a que se conecta un pulsador de estado normalmente abierto. Cada pulsacin permite alternar entre uno de los 8 tipos de secuencia, apagar el circuito o volver al primer tipo de secuencia. El orden de programacin es el mismo que para el programa anterior: Primero se codifican las instrucciones, luego se compila y genera el archivo .hex. Este archivo .hex se carga en PIC Simulator IDE 6.86 en el que se utiliza la pantalla Microcontroller View para ambiar el status del bit0 del puerto A y ver el resultado en la ventana 8xLED Board. Luego de verificar el correcto funcionamiento se carga el programa en Proteus 7.7 SP2 para la simulacin directa en el circuito. La estructura del programa es similar al anterior, excepto que se ha agregado en el procedimiento de pausa una verificacin constante al status del bit 0 del puerto B. Esto permite una gil respuesta, no obstante, es tan gil que se JHQHUDQ UHERWHV R HFRV GH SXOVDFLyQ GHO LQWHUUXSWRU 3RU HVWH PRWLYR VH LQFRUSRUD XQD nueva rutina para evitar el rebote en el pulsador. Aunque las secuencias son las mismas, el programa principal es distinto y varios de los elementos en las secuencias han sido modificados segn se indicar a continuacin. A. Descripcin Ocho secuencias con ocho LEDs con interaccin exterior para seleccin de la siguiente secuencia o apagado del circuito B. Diagrama de flujo

Microprocesadores Y Microcontroladores C. Montaje en Proteus

D. Sntesis del cdigo fuente en MPLAB IDE 8.56 Se omite la descripcin detallada del funcionamiento de cada secuencia de LEDs debido a que es la misma que en el apartado previo. El enfoque se realiza en el cdigo nuevo y en las modificaciones realizadas a los procesos previos.

Lneas 1 a 5. La configuracin del procesador es la misma. Aunque MPLAB dispone de una opcin para activar la configuracin va cdigo o va interfase MPLAB. Lneas 9 a 13. La variable iterar del apartado anterior no existe lo que hace pensar que cada secuencia completa se reproducir una sola vez, aunque luego se ver que es de modo continuo. Se agrega una variable num_sec para determinar qu nmero de secuencia es la activa. Adems se incluye una variable aux muy importante para el procedimiento antirebote. Lneas 17 y 18. La seccin principal del programa se inicia en la etiqueta inicio.

Microprocesadores Y Microcontroladores

Microprocesadores Y Microcontroladores

Lnea 252. El procedimiento de inicializacin se encuentra separado para conservar el orden del programa principal. Lneas 254 y 255. Cuando el contador de secuencias est fuera del rango del 1 al 8 inclusive se reinicializa a cero y se apagan todos los LEDs. Este es el estado de generador apagado. Lnea 256. Este es un artificio que permite al sistema verificar si se ha presionado el pulsador de cambio de secuencia. En el anlisis del procedimiento pausa modificado se ver en detalle. Lneas 258 a 264. La instruccin comparativa BTFSS del registro STATUS, flag Z, requiere prevenir que el indicador Z permanezca activo por alguna operacin anterior. Por ello se establece a cero. En seguida se resta num_sec inicializado en cero de una constante en : (Q HVWH FDVR E 6L HO UHVXOWDGR es cero, entonces son iguales y en tal caso se llamar a la secuencia tipo_1 y se repite el bucle porque no es necesario verificar ms valores. En caso contrario, si el resultado de la resta es diferente de cero se continua verificando por otros valores. Lneas 266 a 320. El comportamiento de cada segmento de verificacin es idntico al DQWHULRU H[FHSWR TXH HO YDORU D YHULILFDU YD FDPELDQGR  6L QR HV QLQJXQR significa que el generador est apagado.

Lneas 22 a 34. El procedimiento de inicializacin del microcontrolador es exactamente el mismo que en el ejercicio anterior con el agregado de la configuracin del puerto A como entrada en las lneas 29 y 30.

Lneas 38 a 41. Antes de proceder a calcular los 33 ms del tiempo de pausa explicados en el ejercicio anterior, se procede a verificar el status del bit menos significativo del puerto A configurado como entrada. Dicho de otro modo, se verifica si se ha presionado el pulsador. De ser as se llama a la rutina que previene el rebote, se incrementa la variable contador de nmero de secuencia y recin se procede a calcular el tiempo de espera.

Microprocesadores Y Microcontroladores Este artificio permite que el circuito responda de inmediato a la pulsacin del interruptor. Y si se encuentra dentro de otro procedimiento la accin queda grabada para cambiar de secuencia en cuanto termine la secuencia actual. Es un tipo de sistema con buffer de entrada.

Lneas 49 a 87. La rutina que previene el rebote en el pulsador es una construccin de 2 bucles de 256 iteraciones que coQVXPHQ HO WLHPSR VXILFLHQWH>@ SDUD HYLWDU TXH HO HFR R rebote del pulsador cause efectos negativos en el sistema. De no incluirlo cada pulsacin podra significar varias pulsaciones. La variable aux sirve para realizar este conteo

Lnea 61 a 248 Se ha seleccionado una de las 8 secuencias cuya iluminacin se describi en el ejercicio anterior. La diferencia en cada secuencia es la eliminacin de la variable iterar y por consiguiente del bucle de iteracin local porque cada secuencia se ejecuta 1 vez y su iteracin constante se encuentra dentro del bucle principal del programa en donde luego de verificar el nmero de secuencia activa, se llama al procedimiento apropiado vez tras vez.

Microprocesadores Y Microcontroladores

EJERCICIO 3: SECUENCIA DE LED DIFERENTES CON CONTROL DE VELOCIDADY TIPOS DE SECUENCIA. 3. Con el circuito planteado, de ocho (8) LEDs y dos (2) botones, desplegar mnimo ocho (8) secuencias controladas en su visualizacin por el BOTON 1 y controladas en su velocidad por el BOTON 2 estos botones se ubican en un puerto diferente. En este ejercicio se incorpora la verificacin permanente de 2 pulsadores conectados a los bits 0 y 1 respectivamente del puerto A configurado como entrada. El bit 0, de manera idntica al ejercicio 2 descrito anteriormente, controla el tipo de secuencia a mostrar en la barra de LEDs. El segundo pulsador controla la velocidad que toma cada retardo y por lo tanto, la velocidad de visualizacin de cada secuencia. Siendo que la estructura del

Microprocesadores Y Microcontroladores programa es similar al anterior, se omiten las explicaciones repetitivas y se concentra el comentario en las novedades que se incorporan en el cdigo fuente. A. Descripcin: Ocho secuencias con ocho LEDs con doble interaccin exterior para seleccin de la siguiente secuencia (o apagado) del circuito y para la seleccin entre 2 modos de velocidad. B. Diagrama de flujo

C. Montaje en Proteus

D. Sntesis del cdigo fuente en MPLAB IDE 8.56

Microprocesadores Y Microcontroladores Gran parte del cdigo fuente es similar al cdigo del ejercicio 2 por lo que considera nicamente las modificaciones incluidas

Lnea 12. Se agrega una variable velocidad que guardar solo 2 valores: 1 0 para determinar qu velocidad es la que se utilizar en la animacin de la secuencias. El programa principal se encuentra en la etiqueta INICIO.

Lneas 266 a 336. El cdigo principal no ha cambiado excepto el procedimiento INICIALIZAR de la lnea 266.

Microprocesadores Y Microcontroladores Lnea 35. La novedad en el procedimiento inicializar es que se est asignando un valor 0 (cero) a la variable velocidad. El resto del cdigo es el mismo que el descrito en el apartado previo sobre el ejercicio 2.

Lneas 40 a 43. Es la verificacin de la pulsacin del pushbutton que contrala qu tipo de secuencia es el que se va a visualizar. Lnea 44 a 49. Se verifica la pulsacin del pushbutton que controla las 2 velocidades posibles para las secuencias de LEDs. Este pulsador acta cambiando el status de la variable velocidad a travs de la instruccin COMF que invierte su estado. Sin embargo, con la instruccin BTFSS solo se considera 1 bit: el bit menos significativo es suficiente para lo que se requiere. Lneas 51 a 59. Si no se ha pulsado el botn de velocidad, entonces la velocidad es la normal y por lo tanto, el temporizador retarda los 33 ms calculados y explicados en el ejercicio 1. En caso contrario, es decir, si se ha presionado 1 vez el pulsador, se activa la variable velocidad y se duplica el tiempo de espera a dos bucles con el temporizador que hacen un total de 66 ms se espera entre cada cambio de encendido de LEDs. Finalmente, en la lnea 58 antes de salir, se limpia en status del flag Z del registro STATUS para evitar que se altere alguna operacin de verificacin en algn procedimiento posterior.

Microprocesadores Y Microcontroladores

CONCLUSIONES La realizacin de la prctica nos permite afianzar los conocimientos adquiridos durante el estudio de la materia de Microprocesadores y Microcontroladores mediante la realizacin de montajes y verificacin de su funcionamiento. Nos permiti aprender y conocer el correcto conexionado de los PIC (PIC16F84) y el resto de elementos en un Protoboard. Aprendimos sobre la configuracin correcta de los PIC en lenguaje de mquina y sus variaciones al mismo. Aprendimos y afianzamos la destreza sobre el correcto uso del quemador de PIC y su programa.

de Madrid Espa BIBLIOGRAFA

Microprocesadores Y Microcontroladores

Hctor Uriel Villamil Gonzlez (2009). Modulo de Microprocesadores y Microcontroladores. Chiquinquira, Colombia: UNAD Programador de microcontroladores PIC. Microchip. MANUAL DE ASSEMBLER. Recuperado del portal Web Pablin, el 05 de Noviembre de 2012, de http://www.pablin.com.ar/computer/cursos/varios/introasm.htm rsidad Politcnica

Вам также может понравиться