You are on page 1of 25

BENEMRITA UNIVERSIDAD AUTNOMA DE PUEBLA

Facultad de Ciencias de la Computacin


Microprocesadores e Interfaces
PRCTICA #1 Encendido de LED con push buttom Equipo: No. 8

Puebla, Pue. A 01 de Julio de 2011

OBJETIVOS
1. 2. 3. 4. 5. Anlisis y manejo de un microcontrolador PIC16F877A Diseo del circuito de reset y oscilador Manejo de un ensamblador y de un simulador Programacin de un microcontrolador Manejo del conjunto de instrucciones

MARCO TEORICO

MARCO TERICO

PIC16F877A
El PIC16f877A pertenece a la familia PIC16F87X Y cuenta con memoria de programa de tipo EEPROM Flash mejorada, lo que permite programarlos fcilmente usando un dispositivo programador de PIC. Esta caracterstica facilita sustancialmente el diseo de proyectos, minimizando el tiempo empleado en programar los microcontroladores. La letra A al final indica que este cuenta con mdulos de comparacin analgicos. La informacin mas detallada sobre este dispositivo se encuentra documentada en la carpeta Tareas/Tarea1 dentro del CD de trabajo.

Uso de la herramienta Mp Lab 8.15 MPLAB es un software que junto con un emulador y un programador de los mltiples que existen en el mercado, forman un conjunto de herramientas de desarrollo muy completo para el trabajo y/o el diseo con los microcontroladores PIC desarrollados y fabricados por la empresa Arizona Microchip Technology (AMT). El MPLAB incorpora todas las utilidades necesarias para la realizacin de cualquier proyecto y, para los que no dispongan de un emulador, el programa permite editar el archivo fuente en lenguaje ensamblador de nuestro proyecto, adems de ensamblarlo y simularlo en pantalla, pudiendo ejecutarlo posteriormente en modo paso a paso y ver como evolucionaran de forma real tanto sus registros internos, la memoria RAM y/o EEPROM de usuario como la memoria de programa, segn se fueran ejecutando las instrucciones. Adems el entorno que se utiliza es el mismo que si se estuviera utilizando un emulador.

La versin que utilizremos en este curso es MpLab versin 8.15. A continuacin se describe como generar un proyecto con esta herramienta de forma rpida y fcil.

Creacin de un proyecto 1) La forma ms sencilla de hacerlo es utilizar el "MPLAB Project Wizard", que se arranca en el men: Project > Project Wizard

La pantalla toma un aspecto como el de la siguiente figura:

2) Seleccionar, entre la lista de dispositivos disponibles, el procesador a utilizar, como se muestra en la siguiente figura:

3) Seleccionar la herramienta a utilizar que debe ser Microchip MPASM Toolsuite. Al hacerlo nos aparece en la ventana las herramientas disponibles (ver siguiente figura).

Seleccionamos la que nos interese que, para iniciarnos en el manejo del programa, debe ser "MPASM Assembler (mpasmwin.exe")". En la ventana siguiente (Location of select tool) debe figurar la trayectoria completa de ese ejecutable. Si esa trayectoria est incompleta o es errnea debemos pulsar "Browse" para localizarlo.

4) El siguiente paso es asignarle un nombre al proyecto (ver la siguiente figura).

5) La pantalla siguiente nos pregunta qu archivos queremos aadir a nuestro proyecto. Debemos seleccionar y aadir (pulsar en "Add") el fichero fuente (nombre.asm).

Una vez seleccionado, el archivo se aade al proyecto, ver siguiente figura:

Aparece entonces una pantalla con un resumen del proyecto que queremos crear como se muestra en la figura a continuacin:

Si esos datos no son correctos, debemos pulsar "Atrs" y corregirlos. Si son correctos, debemos pulsar "Finalizar". Con eso salimos del "Project Wizard" y nos aparece una pantalla con un aspecto como el de la figura siguiente:

Se pueden aadir archivos y salvar proyectos pulsando el botn derecho del ratn cuando nos encontremos en la ventana de proyecto. Los archivos tambin se pueden borrar manualmente seleccionndolos y utilizando el botn derecho del ratn.

Ensamblado del proyecto Una vez que el proyecto est creado, debemos ensamblarlo. Para eso el entorno MPLAB utiliza el programa mpasmwin. El procedimiento a seguir es el siguiente: Project > Build All. Tambin puede utilizarse el icono correspondiente de la barra de herramientas. Al trabajar con mplab es comn encontrarse con mensajes, advertencias y errores, los cuales deben considerarse para obtener los resultados deseados.

Simulacin del proyecto MPLAB-SIM es un simulador para los microcontroladores PIC que viene integrado en el entorno MPLAB IDE. La velocidad de ejecucin, aunque llega siempre a la mxima posible, es varios rdenes de magnitud ms baja que la del procesador real y depende del ordenador y de otros factores. Puede llegar al orden de unos ms por instruccin (un PIC real, con un cristal de 4 MHz, emplea 1 s por instruccin). Para arrancar el simulador debemos entrar en: Debugger > Select Tool > MPLAB SIM (ver la siguiente figura)

Podemos seleccionar ahora la frecuencia que va a tener el oscilador: Debugger > Settings > Clock

En primer lugar es conveniente que el simulador empiece por ejecutar la primera instruccin del programa, para eso realizamos un "reset" del procesador: Debugger > Reset
O tambin podemos actuar sobre el teclado o sobre el icono (ver la siguiente tabla)

A partir de aqu tenemos tres modos de correr el simulador; paso a paso, modo animado y modo total.

Uso de la herramienta Proteus 7.5 Proteus VSM es un co-simulador de microprocesadores dentro de un simulador PSPICE de modo mixto (digital/analgico) desarrollado por Labcenter Electronics (pgina Web en http://www.labcenter.co.uk/ ).

Proteus permite el diseo esquemtico de circuitos conformado por microprocesadores, o microcontroladores conectados con elementos electrnicos (fuentes, resistencias, capacitares, inductores, LEDs), dispositivos de entrada/salida (displays siete segmentos y LCD, teclados, botones), elementos electromecnicos (botones, contactos, motores), circuitos integrados, y otros componentes.

Luego de construir el circuito mediante una interfaz de dibujo esquemtico, el usuario puede programar virtualmente los micros presentes en el circuito, y correr una completa simulacin del mismo. Esto permite validar el diseo, corregir errores e introducir mejoras antes de implementar el circuito real en el Laboratorio.

La simulacin de Proteus es interactiva, puesto que el usuario, mediante clicks del mouse sobre los dispositivos perifricos, puede cambiar el estado de las seales de entrada al micro y observar la respuesta de ste de acuerdo a su programacin.

Inicio de Proteus VSM


El programa se encuentra identificado en el men inicio de Windows, en la seccin: Men Inicio Windows > Todos los programas > Proteus 6 Professional > ISIS 7.5 Professional Al momento del inicio, el programa presenta su pantalla principal. El rea ms grande de la pantalla se llama Ventana de Edicin (Editing Window), y es donde se colocan componentes y lneas de conexin. El rea arriba a la izquierda, es el VIsor (Overview Window), en el cual se presenta una visin global de la actual posicin del plano lgico y adems contiene la vista preliminar de cada objeto a ser colocado en el plano. Debajo del

Visor est el Selector de objetos (Object Selector), en donde se despliega una lista de los componentes, smbolos, y otros objetos de las bibliotecas de Proteus. En las partes superior y lateral se observan el men principal, y las barras de herramientas.

Creando el Primer Circuito Para crear nuestro primer circuito, vamos a implementar un contador binario ascendente con el PIC16F877A. Primero, vamos a crear un nuevo diseo, seleccionando File > New Design.

Lo cual nos presentar una ventana que nos muestra los diferentes tipos de plantillas para nuestro diseo, y nosotros elegiremos la plantilla predeterminada (Default) y hacemos click en OK DEFAULT > OK.

Seleccionar Dispositivo PIC Ahora, seleccionamos el componente PIC16F877 en las bibliotecas de Proteus. Para ello, seleccionamos Library > Pick Device/Symbol

Seguidamente s e nos muestra en pantalla la Ventana de Seleccin de Dispositivos (Pick Devices ). En esta ventana, se pueden seleccionar los dispositivos mediante clicks en Category, Subcategory, Manufacturer. La siguiente figura muestra las listas de dispositivos microprogramables disponibles del fabricante Microchip Category : Microprocessor ICs > Sub-category: PIC 16 Family > Manufacturer: Microchip

Haciendo click con el mouse, seleccionamos el dispositivo PIC16F877A. Inmediatamente aparecern, a la derecha de la ventana de dilogo, las vistas preliminares del smbolo del dispositivo (PC16F877A Preview) y del diagrama de circuito impreso (PCB Preview).

Colocar Dispositivo PIC en el Plano Para colocar el PIC en el plano, basta con hacer click sobre el nombre en el Selector de Objetos y mover el mouse sobre el lugar del plano donde queremos colocar el PIC.

Seleccionar restantes componentes Vamos a conectar al PIC: El botn de reset del micro Oscilador Pulsador de Entrada (UP) Leds de salida Primero vamos a seleccionar todos los dispositivos necesarios, y posteriormente los insertaremos en el plano. Abrimos nuevamente la ventana de seleccin de dispositivo mediante File > Library > Pick Devices/Symbol.

Conectar componentes entre s y a Vcc y tierra. Seguidamente trazamos las lneas que conectan a nuestros componentes entre s y con Vcc y tierra, resultando en el siguiente circuito:

Para trazar una lnea, click en los terminales de inicio y final

Programar el microprocesador del circuito (asignarle el cdigo ejecutable) El siguiente paso es muy importante: indicar en Proteus que el programa recin ensamblado ser programado a un micro presente en nuestro circuito. Para ello hacemos click en el modo edicin > seleccionamos el micro de nuestro circuito > editamos el campo Program File. Para ello hacemos click en el cono de carpeta al lado del campo y localizamos el archivo contador.hex es decir, el archivo ejecutable.

Simulacin Para simular el circuito, presionamos los botones de simulacin situados abajo a la izquierda de la ventana de Proteus. A continuacin se muestran los botones Correr (Run), Paso a Paso (Step), Pausa y Parar (Stop), respectivamente.

Procedemos a hacer click en RUN. En este momento, todos los terminales en voltaje bajo aparecern con un cuadro azul, y aquellos con voltaje alto aparecern con voltaje en rojo. Igualmente la indicacin de ANIMATING y el nmero de segundos de tiempo transcurrido aparecer en la barra inferior de la ventana. En este momento podemos empezar a interactuar con el circuito haciendo click en los pulsadores. Es importante que no est el modo de edicin activado, para ello, puede hacer click en el cono Components, arriba a la izquierda. Se debe observar que la cuenta en binario se despliega en el puerto B y con cada click en el botn UP, la cuenta se incrementa en uno. Si se presiona RESET, la cuenta regresa a cero (se apagan todos los LEDs). De esta forma se puede verificar fcilmente, y dentro de una ventana de simulacin, la forma en que el micro responde a los estmulos externos (Botones UP y RESET), y cmo manipula las salidas (Puerto B). Procure que el modo de edicin no est activado. Puede hacer click en Components. Presionar el botn RUN para iniciar la simulacin Haga click sobre los pulsadores para cerrarlos Los leds muestran la cuenta en binario en el puerto B. Puede detener la simulacin en cualquier momento haciendo click en STOP

Uso del software (MASTER-PROG+) Despues de haber instalado el softaware entramos al programa y nos debe aparecer una ventana como la siguiente.

Teniendo el dispositivo programador de pics conectado a la computadora, master-prog+ lo detectara automticamente, en caso contrario, revisar correctamente y pulsar el botn (AUTO/CONEX). Cuando se haya detectado el dispositivo podemos operar con el, en nuestro caso que este conectado

necesitamos programarlo por lo cual le daremos en la opcin borrar o directamente en la opcin escribir, aunque no se le indique que borre, este lo hace automticamente. Precedemos a indicarle donde se ubica nuestro archivo.hex le damos aceptar y listo.

Materiales de la practica

Pulsador Elemento que permite el paso o interrupcin de la corriente mientras es accionado. Cuando ya no se acta sobre l vuelve a su posicin de reposo. Puede ser el contacto normalmente cerrado en reposo NC, o con el contacto normalmente abierto Na. Consta del botn pulsador; una lmina conductora que establece contacto con los dos terminales al oprimir el botn y un muelle que hace recobrar a la lmina su posicin primitiva al cesar la presin sobre el botn pulsador, como se muestra en la figura 1

Figura 1 Esquema interno del pulsador

CLCULOS
Para la prctica se tienen que calcular tiempos de retardo en los momentos posteriores a las operaciones de encender y apagar el led, para ello es necesario considerar lo siguiente: Se cuenta con un cristal de 8MHz. A partir de ello se puede calcular el ciclo de reloj con la formula , donde T = Tiempo y F = Frecuencia. Un ciclo de instruccin es igual a cuatro ciclos de reloj. Para poder visualizar el led encendido fsicamente se tiene que tener un tiempo de retardo arriba de los 200ms.

Tomando en cuenta las consideraciones se calcula el ciclo de reloj con el cristal manejado.

Con el ciclo de reloj se calcula el ciclo de instruccin.

Por ltimo tomando en cuenta el tiempo mnimo requerido de un retardo se decide elaborar una rutina de tres ciclos anidados siendo dos de 255 instrucciones y un ltimo de 50 instrucciones. Calculando el nmero total de instrucciones por el ciclo de instruccin se tendr el siguiente retardo.

Con este tiempo de segundo y medio ser visible como enciende y apaga el led de forma fsica.

SIMULACIN

Fig. 2. Circuito PIC16F877A

El circuito que se muestra en la Fig. 2 se simulo en Proteus realizando los siguientes pasos: 1. En proteus se buscaron todos los componentes necesarios para realizar la simulacin: Led Resistencias de 330 y 10k PIC16F877A Fuente de voltaje(5v) Push button Cristal de 8MHz

2. Posteriormente se procedi a armar el circuito conectando respectivamente al pin de entrada a las resistencia de 10k seguida del push button el cual va conectado a una fuente de 5v, en el pin de salida se conect el led a una resistencia de 330 que

posteriormente se conecta a tierra, en los pines 13 y 14 de los osciladores se conect el cristal de 8MHz el cual va conectado a una tierra en sus dos pines. 3. Al pin 1, el de reset se conect una resistencia de 10k y una fuente de voltaje de 5v. 4. Al PIC en propiedades se le indico la direccin del archivo con extensin *.HEX el cual contiene el cdigo de la funcin que tiene que realizar y tambin se le indico la frecuencia del cristal (osciloscopio) 8MHz. 5. Una vez realizados estos pasos se procedi a probar la simulacin, la cual nos sirvi para verificar que el armado de nuestro circuito funcionaba de una manera adecuada y correcta

DESARROLLO
Para poder realizar la prctica ya definida, ocupamos el siguiente material: 1 PIC16F877A 1 Cristal de 8MHz 2 Condensadores 22pF 1 Led 2 Resistencias de 10K y una de 330 1 Programador de PICs 1 Fuente de Voltaje de 5volts Los pasos que se siguieron, para poder realizar la prctica fueron los siguientes: 1. Se realiz un cdigo en ensamblador, asistindonos del software MPLAB, el cual nos permite compilar dicho cdigo, para despus pasarlo al PIC 16F877A. El cual se encuentra en la carpeta de codigos Practica1.

2. Se compila dicho cdigo, al ejecutar esta accin, el software crea un archivo con extensin *.HEX. 3. Colocamos el PIC 16F877A en la ranura del programador, damos clic en autoprogramar y seleccionamos el archivo con la extensin *.HEX y escogemos la

opcin de Aceptar. Esperamos unos segundos a que acabe el programador y retiramos el PIC de la ranura. 4. Una vez el PIC programado, realizamos la parte fsica de la prctica. En la siguiente figura se visualiza la manera en la que conectamos el PIC con el resto de los componentes, para llevar a cabo dicha prctica:

Figura 3. Parte fsica de la prctica.

Figura 4. Circuito para encender un led por medio de un pulsador con el PIC16F877A.

En la figura 5, se observa el circuito con el cual se defini la manera en la que se conectaron los componentes al PIC, para su funcionamiento.

Figura 5. Resultado fsico de la prctica en funcionamiento.

5. Ya conectado todo, se procedi a verificar el funcionamiento de la parte fsica (la definicin de la prctica), como se muestra en la figura 5.

RESULTADOS
Los resultados esperados no se daban, ya que no encendia el led en el circuito armado, en la simulacion los resultados si se dieron como se esperaban, aproximadamente el segundo y medio si se veia claro. Despues de aumentar algunas directivas, los datos obtenidos varian un poco en cuanto el tiempo de encendido/apagado del led del circuito armado y la simulacion.

CONCLUSIONES Y/O OBSERVACIONES


La primera era para apagar la bandera de bajo voltaje ya que estamos utilizando un voltaje mayor, por lo que no se alimentaba correctamente el PIC, y la segunda es para decir que estamos utilizando un cristal mayor a 4MHz que en nuestro caso estamos utilizando uno de 8MHz. Estos son pequeos tips que en el futuro ya sabremos corregir el error y sabremos por que no funciona nuestro circuito fsico, y tambin tener en cuenta que en

ocasiones varia ya sea el tiempo o el voltaje que se ingresa de una simulacin a un circuito fsico. Despus de aumentar estas directivas se observ claramente el encendido/apagado de un led en un lapso de tiempo y llegamos a cumplir nuestro objetivo.

BIBLIOGRAFIA
Microcontrolador PIC16F84A Desarrollo de Proyectos, PIC16F87X Data Sheet, Microchip.

You might also like