PROGRAMACION EN MPLAB

Para iniciar la programacion te recomendamos descargar la version 8.8 de MPLAB desde el enlace dado en los sitios de interes de nuestro blog, ya que esta es la que nosotros usaremos para mostrarles la simulacion y el progreso del programa, las dificultades y las soluciones a dichas dificultades. La instalacion es muy facil si ya lo haz hecho con cualquier otro programa.

Una vez tienes instalado MPLAB ejecutas la aplicacion e inicias un nuevo proyecto. Listo? Pues es verdad que si nunca han utilizado este programa hay que hacer ciertos ajustes. Esta entrada les dara las herramientas necesarias para poder iniciar un proyecto en MPLAB, solo hay que seguir la presentacion y tendras exito...Eso te lo aseguramos!

http://www.slideshare.net/victorpe/uso-mplab-presentation

Una vez tengas listo el proyecto podemos usar la plantilla planteada en el slide e incluso podemos configurar nuestros puertos de acuerdo al diagrama de flujo lo cual es muy similar en ambos casos.

Basados en nuestro diagrama de flujo configuraremos el puerto A como entrada y el puerto B como salida, esto se hace poniendo en 1 todos los pines del puerto A y poniendo en 0 los pines del puerto B. Para estar sintonizados debes tener a la mano el diagrama de pines del PIC y alli encontraras cuales son sus posiciones, estas debes tenerlas en cuenta a la hora del montaje en el protoboard para evitar errores en las conexiones. Por ahora nos centraremos en la programacion : Para hacer 1 todos los pines del puerto A debo empezar a usar las instrucciones que teniamos con anterioridad, para esto usaremos una instruccion orientada a Bytes y una de literales y control. Lo que haremos es colocar los 1 que necesitamos en el registro de trabajo y luego llevarlos al puerto A; esto se hace usando la instruccion MOVLW que significa mueva un literal al registro de trabajo W y una vez este alli lo llevo a la posicion de mi puerto A. Por definicion del fabricante la parte logica del puerto A es TRISA, entonces en hexadecimal 6 unos que necesito para hacer la configuracion serian 3F ese literal lo llevo al registro de trabajo y luego lo muevo al puerto A.

Para hacer que puerto B sea salida debo usar la instruccion  CLRF y a continuacion designo quien se pondra en 0, por lo tanto lo siguiente es TRISB. De esta forma nuestro programa ira de esta forma:

Fig. 1 Como ajustar entradas y salidas del PIC



Bien, siguiendo con el proceso de escritura y habiendo definido por donde puedo ingresar la señal y por donde la puedo sacar para visualizar continuaremos con la siguiente parte que es revisar el estado de las interrupciones ocurridas en alguno de los pines de entrada del PIC y que eso se vea reflejado en en la salida para ella se debe escojer dos de los pines del puerto A y 3 de los pines del puerto B debes tener muy claro cuales son para asi incluirlos en el programa. Nosotros tomaremos en el Puerto A los pines 0 y 1 y para el puerto B los pines 0,1 y 2.
Entonces lo que haremos es convertir la parte fisica de las salidas del PIC en estados de 1 o 0 logico para que encienda los leds de acuerdo a nuestro diagrama de flujo.

1) Apagar todas las salidas y verificar si algun pulsador esta cerrado: Para ello utilizo las instrucciones de bit y lo hago pin a pin o puedo hacer todos los pines 0 v con la instruccion BCF PORTB. Ahora aplico un retardo llamando la subrutina UNSEGUNDO. Inmediatamente verifico que por los pines 1 o 0 del puerto de entradas este llegando 5v de ser asi debo encender alguno de los leds.
2) Dependiendo del tiempo en el que pulse el boton debera cumplir con las condiciones dadas en el principio del planteamiento, por lo tanto debo crear un contador del tiempo para que antes de encender cualquier salida  preguntemos a este reloj si es mayor o menor que alguna condicion, debo tener cuidado de usar una logica adecuada de acuerdo a las instrucciones.
3) Una vez verificado el contador debo verificar cual de los pulsadores esta cerrado o si ambos lo estan y de acuerdo a ello hacer encender el led correspondiente.
De esta forma y con el detalle dado en los comentarios del lado derecho para que comprendan mejor lo que se plantea, el programa sera asi:

Fig. 2 Programa finalizado: