Está en la página 1de 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


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.
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:
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.
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:


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:
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
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.
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
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.
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 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).
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 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:
· 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.
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


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.


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


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.
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
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
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:
Figura 3. Parte física de la práctica.

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 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
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.

También podría gustarte