jueves, 2 de mayo de 2013

Proyecto de prueba con MPLAB/PIC16F84A

Proyecto con MPLAB y PROTEL ISIS
En este proyecto vamos a realizar un programa sencillo utilizando el MPLAB y vamos a poder visualizarlo con el PROTEUS/ISIS de una mejor forma.

En este proyecto vamos a conectar un led al pin  RB7 del PIC16F84A. El programa deberá encender y apagar un led utilizando un clock de 4MHz.

Lo primero, será realizar el programa en MPLAB para ello vamos a seguir los siguientes pasos.
Opción 1 para crear un proyecto
Posteriormente de abrir el programa ir a la solapa superior Proyect
-> Proyect Wizard 
-> Siguiente 
-> Elegimos el Device, es decir el integrado en cual vamos a realizar el programa 
-> Siguiente
-> Elegimos el MPASM Asembler que es la herramienta con que vamos a trabajar
-> Siguiente 
-> Nombramos el proyecto y elegimos una carpeta donde se guardará nuestro programa 
-> Siguiente 
-> Si tenemos creado un archivo .asm podemos unirlo a nuestro proyecto sino ponemos continuar 
-> Finalizar
Luego de realizar el proyecto si no tenemos ningún archivo nuevo vamos a
-> File 
-> New

Opción 2 para crear un proyecto
-> Configure, select device, y seleccionamos el PIC que utilizaremos.
->Realizamos el programa.
->Una vez finalizado lo guardamos como archivo .asm
->Creamos un nuevo proyecto con el mismo nombre, Proyect, New.
->Y lo guardamos en la misma carpeta que está el .asm

COMÚN PARA SENDAS OPCIONES
Después de crear el archivo guardarlo en la misma carpeta que guardamos el proyecto con el mismo nombre. Poner View Projetc y luego ir a Sources Files y una vez seleccionado poner clic derecho añadir el archivo y buscamos el archivo en la carpeta.

Ahora realizaremos el programa 

Para finalizar ponemos Build All -> Ponemos Absolute y deberá decir BUILD SUCCESCED

Para Visualizar el Programa se podrá hacer de dos maneras
1) Con el MPLAB
2) Con el PROTEUS ISIS, con este programa será mas fácil visualizarlo

CON EL MPLAB
Primero debemos seleccionar la frecuencia en la cual estará dado el tiempo de instrucción, para ello iremos a:
-> Debugger 
-> Settings 
-> Y en la solapa Osc/Trace seleccionar 4MHz.

Para visualizarlo iremos a View -> Special Function Register, donde visualizaremos el RB7 y con el debugger correremos el programa viendo como cambia el PORTB7 de 0 a 1.

Luego reseteamos y con el Stop Watch que se encuentra en Debugger -> StopWatch podremos observar cuantos milisegundos se encuentra encendido y apagado el LED.
En este caso el LED permanece encendido 1mseg. y el LED permanece apagado 3mseg, ya que las instrucciones de salto tardan el doble que las normales.

CON EL PROTEUS ISIS
Esta manera es más visual ya que la persona que va a ver como corre el programa podrá visualizar como prende y apaga el led (se verá que se prende y apaga muy rápidamente). Además se podrá medir con un osciloscopio la salida del puerto RB7 y visualizar como un osciloscopio real, la señal y el tiempo de encendido y apagado.
Deberemos abrir el PROTEUS ISIS y con el icono PIC on library (una P que se encuentra en la barra lateral izquierda) poner el integrado, el led, su resistencia, masa, vdd y realizar las conexiones.

Para cambiar el valor de la resistencia, clic derecho -> Edit Properties y cambiarlo.
Para cambiar el Power y seleccionar Vdd clic derecho -> Edit Properties y poner Vdd.

Otro paso muy importante son las Propiedades del PIC16F84A.
Para editarlo, clic derecho -> Edit properties, le cambiamos la frecuencia a 4MHz.
Le cambiamos la configuración del programa, para ello tendremos que abrir el archivo creado por el MPLAB.
Además hay que ver la configuración del programa, para ello abrir el archivo .lst en nuestra carpeta del proyecto y abrirlo con el txt y buscar la configuración del Programa (__CONFIG)
Ya con eso podremos visualizar con la barra inferior dándole al PLAY como prende y apaga el Led  muy rápidamente.

Para visualizarlo con el osciloscopio digital y medir el tiempo que permanece encendido y apagado el led deberemos ir a Virtual Instrument Mode en la barra lateral izquierda y conectarlo en la entrada del led.
Al poner play se abrirá automáticamente el Osciloscopio pero si no lo hace tendremos que seleccionar el osciloscopio, clic derecho y poner clic en DIGITAL OSCILLOSCOPE.

Deberemos desactivar los canales que no utilizamos, y el que utilizamos ponerlo en continua.
Cambiar la escala con el regulador de tensión. Con el Trigger level lo movemos de tal forma que se detenga la imagen para poder visualizarla.
Para medir el tiempo en trigger poner cursor y seleccionar en la señal donde empieza y termina el bit alto (encendido del led) y lo mismo con el bit bajo (apagado del led).


Finalmente guardamos el diseño en la misma carpeta que está hecho el proyecto para eso ir a:
File-> Save Design -> Nombrar al diseño y poner guardar.

Luego de realizarlo en la computadora vamos a hacerlo en un protoboard por lo que vamos a realizar el circuito y probrarlo con nuestro programador antes hecho.
Luego de realizado el circuito conectaremos el programador a la pc y realizaremos el cable para conectar del programador al protoboard.


Para aferrar los terminales al RJ12 macho vamos a utilizar la crimpeadora.

1) Abrimos el PICKIT 2, vamos a tools, Check comunication y deberá reconocer la ID. Luego de realizarlo conectar el RJ12 macho al programador y los terminales al uC según corresponda, OJO conectaremos primero los terminales para no hacer ningún cortocircuito.
2) Conectamos el RJ12 al programador y desde la PC, pulsamos Read y deberá reconocer el PIC16F84A

3) Vamor a File -> Import Hex y buscamos el programa hex que creamos, en nuestro caso Tes.hex

4) Pulsamos Write, esperamos que escriba el programa en el uC y deberá decir Programming Successful

5) Luego alimentaremos con 5V y conectaremos un osciloscopio a la entrada del led
En el osciloscopio el trigger lo seteamos como barrido único, la tensión la pondremos en 2V y se verán los 1 y 0 .

No hay comentarios:

Publicar un comentario