Categorías
pic

Cómo Programar Un PIC

¿Quieres aprender como programar un microcontrolador PIC desde cero? Continua leyendo y encontrarás todo lo que necesitas para programar un pic en más de una forma incluyendo los quemadores.

conexion de quemador para pics

En primer lugar hay que definir algo muy sencillo pero esencial, ¿Qué es programar PICs?:

Pues bien, la programación de estos microcontroladores PIC es el proceso en el cual tu grabas o quemas tu algoritmo dentro del circuito integrado, algoritmo el cual se encargará de llevar a tu PIC las instrucciones necesarias para poder funcionar.

Antes de comenzar con el proceso de programación de PICs debes tener en cuenta que vas a necesitar de ciertos materiales, los cuales puedes ver a continuación:

SOFTWARE PARA PROGRAMAR UN PIC

Los dos primeros son realmente para conocer algo de historia respecto a la programación de PICs, ya que con el avance actual no es muy común usarlos, si quieres pasar directo a conocer como programar en C o microPython, puedes saltar los primeros dos.

PROGRAMAR UN PIC EN ENSAMBLADOR

Programar PICs en lenguaje ensamblador, al ser un lenguaje de bajo nivel, es una de las formas más difíciles de hacerlo, puesto que fue de los primeros métodos que se utilizaron para grabar algoritmos en microprocesadores, microcontroladores u otros circuitos programables. 

Para programar de esta manera tendrías que aprender las instrucciones específicas que reconoce tu microcontrolador y programar en base a eso. MPLAB es el mejor software para realizar este tipo de programación, puedes encontrar un manual del mismo dando click en el boton de aquí abajo el cual te llevará hacia un manual de programación de PICs en formato PDF.

Los mismo fabricantes de los microcontroladores PIC (Microchip) desarrollaron MPLAB de manera gratuita por lo que tendrá una excelente compatibilidad con tu microcontrolador.

PROGRAMAR UN PIC EN BASIC

La programación en Basic o PicBasic Pro es lo que vino luego de la programación de pics en lenguaje ensamblador. Micro Engineering Labs creó este compilador, fue uno de los preferidos en su momento debido a que ya no tenías que grabar con instrucciones tan complicadas como en ensamblador.

El plus de este compilador para pics fue que ya generaba los archivos *.hex que serían grabados en el microcontrolador, también soportaba ya otras familias de PICs como los de la gama 16FXXX.

Para programar en basic ya se utilizaba un programador más sencillo de utilizar, como podrás ver en la siguiente imagen:

quemador antiguo para programar un pic

La programación en Basic es más profunda que lo que leíste aquí, esto solo fue una introducción. Si quieres conocer más, da click en el botón a continuación y podras ver un manual de programación en PIC utilizando el compilador basic, en formato pdf.

Lo que siguió después de esto fue la programación en IDE que te permiten hacerlo en lenguajes de alto nivel cómo lo es C o Python, los cuales podrás conocer en las siguientes secciones.

PROGRAMAR PIC EN C

La programación de microcontroladores en lenguaje C es bastante utilizada, de hecho para los ejemplos posteados en la web usamos un IDE de lenguaje C para crear los algoritmo y pues esto debido a que estos IDE nos facilitan mucho la vida ya que por ejemplo MikroC no necesita que estés llamando la librería del microcontrolador puesto que lo escoges al inicio de la creación del proyecto.

La gran ventaja que tiene programar un pic en un lenguaje de alto nivel como lo es C es que a diferencia de la programación en Ensamblador, la manera de crear el código aquí es mucho más legible para el programador lo que vuelve a los programas más fáciles de crear y/o optimizar en tu proyecto con un microcontrolador PIC.

Programar PIC en lenguaje C te da acceso a una gran cantidad de librerías de las cuales puedes disponer según sea el enfoque que le estás dando a tu proyecto, estas librerías también son las que te permiten manejar los dispositivos externos como pantallas LCD, sensores, teclados, etc.

Un buen ejemplo para empezar la programación de PICs en lenguaje C es el de la secuencia de leds, el cual lo tenemos en nuestros ejemplos de manera detallada.

En esa práctica puedes empezar a relacionarte con algunas funciones que puedes utilizar para crear tus proyectos, en esa práctica en específico hacemos énfasis en la programación de salidas de tu microcontrolador PIC. Si quieres ir más a fondo con un proyecto más potente también puedes ir a nuestro post de la creación de un robot controlado por bluetooth haciendo uso de un PIC, ahí ya se utilizan varios códigos como son los condicionales y ciclos repetitivos que puede aceptar tu programa antes de grabarlo en tu PIC.

PROGRAMAR EN CSS COMPILER

Lo primero que debes hacer como ya supondrás es adquirir el software, el cual lo puedes encontrar por toda la internet. Después de eso lo primero que tendrás que hacer es llamar la librería de tu microcontrolador y la frecuencia a la que vas a trabajar, algo cómo lo siguiente:

#include<16F877A.h> #use delay(clock = 20M)

Una vez llamado esto podrás continuar con la función principal de tu algoritmo (La función main) despues de eso tendrás que crear un ciclo repetitivo infinito para que tu algoritmo esté siempre en repetición y así logres su funcionamiento. Esta última parte lo lograrás utilizando un bucle con la sentencia while y tendrás algo de la siguiente manera:

#include<16F877A.h> #use delay(clock = 20M)
main{ 
  while(true){
  
  }
}

Dentro de ese bucle ya podrás crear tu programa que será programado en tu PIC. Puedes usar este pequeño ejemplo a continuación el cual se encarga de encender y apagar un led despues de cierto tiempo de manera infinita debido al bucle en el que se encuentra:

#include<16F877A.h> #use delay(clock = 20M)
main{ 
  while(true){
    output_high(pin_b0); 
    delay_ms(200); 
    output_low(pin_b0); 
    delay_ms(200);
  }
}

Si quieres probar ese código debes conectar una resistencia al PIN B0 de tu microcontrolador, y despues de la resitencia el led hacia tierra. 

En esta web encontrarás ejemplos hechos en lenguaje C, con la diferencia de que no llamamos por librerías al microcontrolador, sino que directamente el IDE que usamos lo configura por si solo, pero si quieres aprender más sobre la programación de PICs en CCS Compiler puedes dar click en el botón que tienes a continuación y podrás ver un manual en PDF sobre este software:

¿SE PUEDE PROGRAMAR UN PIC CON PYTHON?

El lenguaje de programación interpretado Python ha sido enfocado últimamente a la programación de microcontroladores, la versión creada para estos toma el nombre de MicroPython.

MicroPython se usa mayormente para programar microcontroladores que tengan un enfoque más hacia el IoT (Internet de las cosas). Y pues respondiendo a la pregunta de esta sección, aún no hemos visto muchas aplicaciones hacia los PIC con este lenguaje de programación, pero si te interesa saber más sobre el mismo puedes ver el siguiente video:

PROGRAMAR UN PIC CON ARDUINO

En algún momento nos vamos a topar con el inconveniente de no tener un quemador a la mano, por lo que aquí aprenderás a programar los PICs sin hacer uso de un quemador, lo que vas a necesitar será un arduino.

Un método poco utilizado que únicamente se probó en algunos microcontroladores de la serie 18FXXXX, específicamente en los  18F2550 y 18f4550 por que al parecer en los otros no ha funcionado aún.

La fuente de donde se ha tomado esta información es del siguiente video, el cual se encuentra en francés pero puedes verlo con subtítulos que genera youtube e intentarlo tu mismo.

¿NO TIENES HARDWARE Y QUIERES PRACTICAR?

Luego de programar el algoritmo para tu pic puedes simularlo en proteus y ver su funcionamiento previo a la implementación.

Es mejor aprender de manera visual, por eso en el anterior video se muestra cómo simular o programar tu PIC en el software proteus.

En proteus podrás probar la mayoría de tus proyectos que requieran usar un PIC o cualquier otro elemento electrónico, así que es una buena opción para prototipar antes de ir a la implementación.

HARDWARE PARA PROGRMAR PICS

Antes de que te asustes con la foto anterior, debes saber que esa es una imagen del software que se utilizaba antiguamente para programar los microcontroladores PIC. 

En la actualidad puedes encontrar programadores mucho más elaborados y con conexión usb en los cuales puedes quemar los PICs con una conexión USB y haciendo uso del software que el mismo microchip ha creado para este propósito. Podrás ver los diferentes tipos de programadores a continuación:

PROGRAMADOR DE PICS

Del mismo microchip puedes adquirir los programadores, para poder llevar tus algoritmos hacia la memoria de tu microcontrolador. Puedes revisar las diferentes versiones hay del quemador para pics Pickit a continuación, e incluso en uno te enseñamos cómo puedes hacerlo tu mismo!