C贸mo Programar un PIC

驴Qu茅 te ha parecido?

驴Quieres aprender como programar un PIC desde cero? Aqu铆 encontrar谩s informaci贸n sobre las diferentes herramientas y pr谩cticas de programaci贸n para microcontroladores pic.

conexiones quemador pickit3
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:

脥ndice
  1. SOFTWARE PARA PROGRAMAR UN PIC
    1. PROGRAMAR UN PIC EN ENSAMBLADOR
    2. PROGRAMAR UN PIC EN BASIC
    3. PROGRAMAR PIC EN C
    4. PROGRAMAR EN CSS COMPILER
  2. 驴SE PUEDE PROGRAMAR UN PIC CON PYTHON?
    1. 驴Que microcontroladores se programan con Python?
    2. PROGRAMAR UN PIC CON ARDUINO
    3. 驴NO TIENES HARDWARE Y QUIERES PRACTICAR?
  3. HARDWARE PARA PROGRMAR PICS
  4. PROGRAMADOR DE PICS

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 en C compiler 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:

驴Que microcontroladores se programan con Python?

Aunque python sea m谩s amigable que C en cuanto a sintaxis, no puedes grabar un script de python en cualquier microcontrolador, este debe cumplir ciertas caracter铆sticas:

  • Memoria flash de m铆nimo 256 Kilobytes
  • RAM de minimo 16 kilobytes
  • Frecuencia del reloj de m铆nimo 80 megahertz

De hecho en la p谩gina oficial de microPython los ejemplos de varias placas basadas en microcontroladores dise帽adas para funcionar con este lenguaje de programaci贸n. Un ejemplo de c贸digo para hacer el "hola mundo" de los microcontroladores es el siguiente:

# M贸dulos necesarios
import machine
import time
# Inicializamos el pin 0 como salida
pin = machine.Pin(0, machine.Pin.OUT)
# Dentro de un bucle hacemos que el led se encienda y apague
for i in range(10):
    pin.on()
    time.sleep(0.5)
    pin.off()
    time.sleep(0.5)

Adem谩s de poder programar los microcontroladores PIC utilizando Python tambi茅n puedes utilizar el mismo lenguaje en otras tarjetas basadas en microcontroladores como la ESP8266

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!

Para mejorar tu experiencia a trav茅s de internet este sitio web utiliza cookies. Mas Info