Practica 1

25
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA Facultad de Ciencias de la Computación Microprocesadores e Interfaces PRÁCTICA #1 Encendido de LED con push buttom Equipo: No. 8 Puebla, Pue. A 01 de Julio de 2011

Transcript of Practica 1

Page 1: Practica 1

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA

Facultad de Ciencias de la Computación

Microprocesadores e Interfaces

PRÁCTICA #1

Encendido de LED con push buttom

Equipo: No. 8

Puebla, Pue. A 01 de Julio de 2011

Page 2: Practica 1

OBJETIVOS

1. Análisis y manejo de un microcontrolador PIC16F877A

2. Diseño del circuito de reset y oscilador

3. Manejo de un ensamblador y de un simulador

4. Programación de un microcontrolador

5. Manejo del conjunto de instrucciones

MARCO TEORICO

MARCO TEÓRICO

PIC16F877A

El PIC16f877A pertenece a la familia PIC16F87X Y cuenta con memoria de programa de

tipo EEPROM Flash mejorada, lo que permite programarlos fácilmente usando un

dispositivo programador de PIC. Esta característica facilita sustancialmente el diseño de

proyectos, minimizando el tiempo empleado en programar los microcontroladores.

La letra “A” al final indica que este cuenta con módulos de comparación analógicos.

La información mas detallada sobre este dispositivo se encuentra documentada en la

carpeta “Tareas/Tarea1” dentro del CD de trabajo.

Page 3: Practica 1

Uso de la herramienta Mp Lab 8.15

MPLAB es un software que junto con un emulador y un programador de los

múltiples que existen en el mercado, forman un conjunto de herramientas de desarrollo

muy completo para el trabajo y/o el diseño con los microcontroladores PIC desarrollados y

fabricados por la empresa Arizona Microchip Technology (AMT). El MPLAB incorpora todas

las utilidades necesarias para la realización 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, además de ensamblarlo y simularlo en pantalla,

pudiendo ejecutarlo posteriormente en modo paso a paso y ver como evolucionarían de

forma real tanto sus registros internos, la memoria RAM y/o EEPROM de usuario como la

memoria de programa, según se fueran ejecutando las instrucciones. Además el entorno

que se utiliza es el mismo que si se estuviera utilizando un emulador.

La versión que utilizáremos en este curso es MpLab versión 8.15. A continuación se

describe como generar un proyecto con esta herramienta de forma rápida y fácil.

Creación de un proyecto

1) La forma más 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:

Page 4: Practica 1

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 errónea debemos pulsar "Browse" para localizarlo.

Page 5: Practica 1

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

5) La pantalla siguiente nos pregunta qué archivos queremos añadir a nuestro

proyecto. Debemos seleccionar y añadir (pulsar en "Add") el fichero fuente (nombre.asm).

Una vez seleccionado, el archivo se añade al proyecto, ver siguiente figura:

Page 6: Practica 1

Aparece entonces una pantalla con un resumen del proyecto que queremos crear como se

muestra en la figura a continuación:

Si esos datos no son correctos, debemos pulsar "Atrás" 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:

Page 7: Practica 1

Se pueden añadir archivos y salvar proyectos pulsando el botón derecho del ratón cuando

nos encontremos en la ventana de proyecto. Los archivos también se pueden borrar

manualmente seleccionándolos y utilizando el botón derecho del ratón.

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.

También puede utilizarse el icono correspondiente de la barra de herramientas.

Al trabajar con mplab es común encontrarse con mensajes, advertencias y errores, los

cuales deben considerarse para obtener los resultados deseados.

Simulación del proyecto

MPLAB-SIM es un simulador para los microcontroladores PIC que viene integrado

en el entorno MPLAB IDE. La velocidad de ejecución, aunque llega siempre a la máxima

posible, es varios órdenes de magnitud más baja que la del procesador real y depende del

ordenador y de otros factores. Puede llegar al orden de unos ms por instrucción (un PIC

real, con un cristal de 4 MHz, emplea 1 μs por instrucción).

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

Page 8: Practica 1

En primer lugar es conveniente que el simulador empiece por ejecutar la primera

instrucción del programa, para eso realizamos un "reset" del procesador:

Debugger > Reset

O también 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.

Page 9: Practica 1

Uso de la herramienta Proteus 7.5

Proteus VSM es un co-simulador de microprocesadores dentro de un simulador

PSPICE de modo mixto (digital/analógico) desarrollado por Labcenter Electronics (página

Web en http://www.labcenter.co.uk/ ).

Proteus permite el diseño esquemático de circuitos conformado por microprocesadores,

o microcontroladores conectados con elementos electrónicos (fuentes, resistencias,

capacitares, inductores, LEDs), dispositivos de entrada/salida (displays siete segmentos y

LCD, teclados, botones), elementos electromecánicos (botones, contactos, motores),

circuitos integrados, y otros componentes.

Luego de construir el circuito mediante una interfaz de dibujo esquemático, el usuario

puede programar virtualmente los micros presentes en el circuito, y correr una completa

simulación del mismo. Esto permite validar el diseño, corregir errores e introducir mejoras

antes de implementar el circuito real en el Laboratorio.

La simulación de Proteus es interactiva, puesto que el usuario, mediante clicks del mouse

sobre los dispositivos periféricos, puede cambiar el estado de las señales de entrada al

micro y observar la respuesta de éste de acuerdo a su programación.

Inicio de Proteus VSM

El programa se encuentra identificado en el menú inicio de Windows, en la sección: 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 más grande de

la pantalla se llama Ventana de Edición (Editing Window), y es donde se colocan

componentes y líneas de conexión. El área arriba a la izquierda, es el VIsor (Overview

Window), en el cual se presenta una visión global de la actual posición del plano lógico y

además contiene la vista preliminar de cada objeto a ser colocado en el plano. Debajo del

Page 10: Practica 1

Visor está el Selector de objetos (Object Selector), en donde se despliega una lista de los

componentes, símbolos, 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 diseño, seleccionando File > New Design.

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

Page 11: Practica 1

Seleccionar Dispositivo PIC

Ahora, seleccionamos el componente PIC16F877 en las bibliotecas de Proteus. Para ello,

seleccionamos Library > Pick Device/Symbol

Page 12: Practica 1

Seguidamente s e nos muestra en pantalla la Ventana de Selección 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 aparecerán, a la derecha de la ventana de diálogo, las vistas preliminares del símbolo del dispositivo (PC16F877A Preview) y del diagrama de circuito impreso (PCB Preview).

Page 13: Practica 1

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.

Page 14: Practica 1

Seleccionar restantes componentes

Vamos a conectar al PIC:

· El botón 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 selección de dispositivo mediante File > Library > Pick

Devices/Symbol.

Conectar componentes entre sí y a Vcc y tierra.

Seguidamente trazamos las líneas que conectan a nuestros componentes entre sì y

con Vcc y tierra, resultando en el siguiente circuito:

Page 15: Practica 1

· Para trazar una línea, click en los terminales de inicio y final

Programar el microprocesador del circuito (asignarle el código ejecutable)

El siguiente paso es muy importante: indicar en Proteus que el programa recién

ensamblado será programado a un micro presente en nuestro circuito. Para ello hacemos

click en el modo edición > 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.

Simulación

Para simular el circuito, presionamos los botones de simulación situados abajo a la

izquierda de la ventana de Proteus. A continuación se muestran los botones Correr (Run),

Paso a Paso (Step), Pausa y Parar (Stop), respectivamente.

Page 16: Practica 1

Procedemos a hacer click en RUN. En este momento, todos los terminales en voltaje bajo

aparecerán con un cuadro azul, y aquellos con voltaje alto aparecerán con voltaje en rojo.

Igualmente la indicación de ANIMATING y el número 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 edición 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 botón 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 fácilmente, y dentro de una ventana de simulación, la

forma en que el micro responde a los estímulos externos (Botones UP y RESET), y cómo

manipula las salidas (Puerto B).

Procure que el modo de edición no esté activado. Puede hacer click en Components.

Presionar el botón RUN para iniciar la simulación Haga click sobre los pulsadores

para cerrarlos Los leds muestran la cuenta en binario en el puerto B.

Puede detener la simulación en cualquier momento haciendo click en STOP

Page 17: Practica 1

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 pic´s conectado a la computadora, master-prog+

lo detectara automáticamente, en caso contrario, revisar que este conectado

correctamente y pulsar el botón (AUTO/CONEX).

Cuando se haya detectado el dispositivo podemos operar con el, en nuestro caso

necesitamos programarlo por lo cual le daremos en la opción borrar o directamente en

la opción escribir, aunque no se le indique que borre, este lo hace automáticamente.

Precedemos a indicarle donde se ubica nuestro archivo.hex le damos aceptar y listo.

Page 18: Practica 1

Materiales de la practica

Pulsador

Elemento que permite el paso o interrupción de la corriente mientras es accionado.

Cuando ya no se actúa sobre él vuelve a su posición de reposo. Puede ser el contacto

normalmente cerrado en reposo NC, o con el contacto normalmente abierto Na.

Consta del botón pulsador; una lámina conductora que establece contacto con los

dos terminales al oprimir el botón y un muelle que hace recobrar a la lámina su posición

primitiva al cesar la presión sobre el botón pulsador, como se muestra en la figura 1

Figura 1 Esquema interno del pulsador

Page 19: Practica 1

CÁLCULOS

Para la práctica 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 instrucción es igual a cuatro ciclos de reloj.

Para poder visualizar el led encendido físicamente 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 instrucción.

Por último tomando en cuenta el tiempo mínimo 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 número total de instrucciones por el ciclo de

instrucción se tendrá el siguiente retardo.

Con este tiempo de segundo y medio será visible como enciende y apaga el led de

forma física.

Page 20: Practica 1

SIMULACIÓN

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

simulación:

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

Page 21: Practica 1

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 dirección del archivo con extensión *.HEX el

cual contiene el código de la función que tiene que realizar y también se le indico la

frecuencia del cristal (osciloscopio) 8MHz.

5. Una vez realizados estos pasos se procedió a probar la simulación, la cual nos sirvió

para verificar que el armado de nuestro circuito funcionaba de una manera adecuada

y correcta

DESARROLLO

Para poder realizar la práctica 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 PIC’s

• 1 Fuente de Voltaje de 5volts

Los pasos que se siguieron, para poder realizar la práctica fueron los siguientes:

1. Se realizó un código en ensamblador, asistiéndonos del software MPLAB, el cual

nos permite compilar dicho código, para después pasarlo al PIC 16F877A.

El cual se encuentra en la carpeta de codigos Practica1.

2. Se compila dicho código, al ejecutar esta acción, el software crea un archivo con

extensión *.HEX.

3. Colocamos el PIC 16F877A en la ranura del programador, damos clic en auto-

programar y seleccionamos el archivo con la extensión *.HEX y escogemos la

Page 22: Practica 1

opción 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 física de la práctica. 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 práctica:

Page 23: Practica 1

Figura 3. Parte física de la práctica.

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

Page 24: Practica 1

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 físico de la práctica en funcionamiento.

5. Ya conectado todo, se procedió a verificar el funcionamiento de la parte física (la

definición de la práctica), 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 pequeños tips que en el futuro ya sabremos corregir el error y sabremos

por que no funciona nuestro circuito físico, y también tener en cuenta que en

Page 25: Practica 1

ocasiones varia ya sea el tiempo o el voltaje que se ingresa de una simulación a un

circuito físico.

Después 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.