El primer paso es ir a la zona de descargas y descargamos IDE MPLAB X v.5.25.
Una vez descargado lo ejecutamos y se nos abre la siguiente pantalla.
Pulsamos Next en cada pantalla que nos aparece, asegurandonos de que seleccionamos las opciones deseadas.
Ten en cuenta que las opciones que no vayas a usar, como micros de 16 bits o de 32 bits o memorias, puedes dejarlos sin marcar, ya que te ocuparán mucho espacio
Nos pide instalar los driver de los programadores, le decimos que sí, que los instale.
A este le damos en aceptar como si supieramos lo que hacemos.
Estas podemos desmarcarlas todas ya que sólo nos abrirá las páginas web para descargas y eso ya lo tenemos en nuestra web
Con eso ya está el entorno instalado.
El primer paso es ir a la zona de descargas y descargamos XC8 v.2.10.
Una vez descargado lo ejecutamos y se nos abre la siguiente pantalla.
Pulsamos Next en las pantallas mientras no se diga lo contrario. Seleccionando las opciones que deseemos instalar.
Pulsamos Next y hemos terminado de instalar el compilador XC8, lo que nos permitiría si es que supieramos, programar los micros en ese lenguaje.
lo primero que tenemos que tener en cuenta es que siempre que nos salga esta pantalla, en la instalación de un programa de confianza, tenemos que marcar todas las casillas y darle al botón de aceptar
Si no le damos permiso al programa para que se conecte a las redes, muy probablemente no funcione alguna de las partes del programa o el programa no se ejecute.
Una vez que llegamos a esta pantalla vamos a activar el plugin que nos permitirá programar con PICBASIC PRO, el cual, dicho sea de paso tenemos que haber instalado antes. Para eso pulsamos en el icono que pone Install more plugins
Se nos abre entonces la pantalla que nos indica cuantos plugins tenemos instalados y cuantos aún disponibles (Avaiables). Buscamos el PBP y tenemos la mitad del trabajo hecho. Ya solo queda pulsar Next o Continuar hasta el final.
Hemos pulsado en finish y está casi todo hecho, sólo nos queda comprobar que tenemos el PICBASIC PRO en la lista de compiladores, si es así, comprobar que la ruta es la de la versión que tenemos instalada. Si no nos aparece le damos a añadir y lo incluimos siguiendo las instrucciones.
Si queremos instalar más plugins el procedimiento es el mismo que para PBP. Por ejemplo vamos a instalar el importador de proyectos de Arduino
Bueno, la respuesta es facil, el 40% de vosotros direis: "¿nuestro qué?", el 50%, que ya sabeis lo que es un PIC, direis: "El PIC no habla" y el 10% restante dirá: "muchos".
La realidad es que no, sólo entiende un idioma, binario. Pero ante la dificultad de escribir en binario que tenemos se crearon una serie de lenguajes más estructurados para escribir los programas. Pero claro, el micro seguía entendiendo solo binario, así que se crearon un tipo de programas que traducian esos lenguajes estructurados a binario, los compiladores. Así aparecio el lenguaje Ensamblador, el Basic, el Fortran , el C y otros tantos. Cada uno de ellos requería su propio programa compilador.
Aunque a primera vista pueda parecer que cada lenguaje es un mundo diferente, realmente no es así, nuestros lenguajes tienen un número muy limitado de frases. La habilidad del programador consiste en ser capaz de decir lo que quiere con tan pocas frases disponibles. La ventaja que tiene es que el microcontrolador no espera que le hables de cualquier tema, sino que sólo quiere oir hablar de sus entradas y salidas y de dónde guarda las cosas, así que aprendiendo las frases clave daremos la impresión de entender el idioma. Para las que no sepamos traducir están los diccionarios.
Para que nuestro microcontrolador haga lo que nosotros deseamos, tenemos que darle una serie de instrucciones, esas instrucciones tendremos que dárselas siempre,
independientemente del lenguaje en el que los programemos. Usemos el lenguaje que usemos le tenemos que dar las mismas órdenes para que realice las mismas acciones.
Esto es fácil de entender si suponemos que tenemos delante a unas personas que hablan idiomas diferentes y queremos que pasen a la sala y se sienten. A todos les tenemos que decir
lo mismo, aunque en su idioma.
Si lo aplicamos por ejemplo a los PIC, este tiene una zona en su memoria interna dedicada a guardar los datos de su configuración como bytes, a estos bytes los llamamos registros y tienen un nombre que les ha puesto el fabricante.
Por ejemplo, al byte en que se configura el puerto A para indicarle al PIC si sus pin van a ser entradas o salidas le ha puesto el nombre de TRISA, al del puerto B TRISB . etc.
Así, si ponemos TRISB.0=0, le
estamos indicando al PIC que su pin 0 del puerto B va a ser una salida. Si ponemos TRISB.0=1, le estamos indicando al PIC que su pin 0 del puerto B va a ser una entrada.
Este nombre se lo ha puesto el fabricante porque, dependiendo del modelo de PIC, TRISA estará en una dirección de memoria o en otra, y así no nos tenemos que preocupar de saber en cual.
Pues bien, todos los lenguajes de programación
que se usen para programar PIC deben referirse a este registro por su nombre, aunque varíen un poco la forma de escribirlo, así para poner todo el puerto B como entradas en un PIC, todos deben decirle lo mismo,
la forma es lo que varía.
Deben decirle: "pon a 1 todos los bits del registro TRISB."
La forma de decirselo podría ser alguna de estas:
En PicBasic Pro serian equivalentes entre sí TRISB=%11111111, TRISB=$FF y TRISB=255,
En XC8 serían equivalentes entre sí TRISB=0b11111111, TRISB=oXFF y TRISB=255,
pero todos tienen que decirle lo mismo, si le dicen otra cosa, están configurando otra cosa.
Hay algunas diferencias en la sintaxis entre PBP y XC8 al asignar valores los registros, por ejemplo en XC8 pondríamos "PORTBbits.RB0 = 1;" para encender un led en el pin 0 del puerto B , y
en PicBasic lo haríamos de esta forma, "PORTB.0=1". De cualquier forma, el concepto principal es que el registro PORTB tiene que tener su bit número 0 puesto a 1 para que se active la salida de corriente
por el pin que corresponde a dicha salida.
Un programador es en esencia un dispositivo que nos permite copiar en las posiciones de memoria adecuadas a cada microcontrolador el programa, los datos de su eeprom y los registros de configuración.
Los programadores, incorporan otras funciones que nos facilitan la depuración del código, estas funciones les permiten hacer un seguimiento del código mientras se ejecuta en el microcontrolador, lo cual nos puede facilitar en programas de gran tamaño, la depuración de errores.
Estos dos programadores y debugers aparecieron en 2018 en el mercado. Tienen la peculiaridad de que sirven también para programar los micros Atmel, que ya fabrica microchip.
Las diferencias básicas entre uno y otro las encontramos en la tabla siguiente.
En la imagen podemos ver las conexiones del PICKIT 4 para programar PIC y ATMEL. El nombre de los PIN de cada microcontrolador se puede ver en su hoja de datos, pero si queremos programar un Atmel en una placa de Arduino, tenemos que hacerlo teniendo en cuenta el tipo de conector que traen, 6 o 10 PIN.
En la imagen siguiente vemos los pin del Atmega168, es facil identificar los que tenemos que conectar para programarlo, sólo hay que leer sus nombres y relacionarlos con los del programador.