Saltar al contenido

PIC C Compiler Primeros Pasos

En esta entrada veremos la introducción al PIC C Compiler para programar microcontroladores PIC e iniciarnos en este interesante mundo de los sistemas embebidos.

PIC C COMPILER

Antes que nada, si es tu primera vez aquí, te cuento que tienes a tu disposición todo un Curso gratis de microcontroladores PIC usando el PIC C COMPILER

Tambien puedes seguir la LISTA DE VIDEOS GRATIS EN YOUTUBE DE PIC C COMPILER

Una vez tenemos instalado el compilador PIC C Compiler (CCS Compiler), procederemos a realizar nuestro primer código en lenguaje C. Y para esto lo primero que se debe hacer en cada proyecto donde se programa un microcontrolador con PIC es su encabezado, donde se realiza la primera configuración del dispositivo, en esta sección se plantean las librerías a usar en el proyecto, la velocidad con la que el dispositivo realiza cada instrucción, la posición de ciertos registros en memoria, etc.

Encabezados en PIC C Compiler

Para entender mejor de lo que hablo, veamos un encabezado sencillo:

#INCLUDE <16f887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#DEFINE SW1 PORTB,2
#DEFINE SW2 PORTB,1
#DEFINE LED PORTB,0
#BYTE PORTB= 6
INT CONT;

• Con la primera línea se le indica al compilador con que tipo de microcontrolador que se va a trabajar, en este caso con un PIC16F887.
• La segunda línea indica que se esta trabajando con un cristal de 4Mhz.
• La tercera línea consiste en la configuración de los fusibles:

XT Tipo de oscilador cristal puede seleccionarse entre los siguientes (XT, RC, HS, LP)

XT: Es un acrónimo que viene de XTAL (o cristal en castellano). Este modo de funcionamiento implica que tendremos que disponer de un cristal de cuarzo externo al Pic y dos condensadores. El valor del cristal generalmente será de 4Mhz o 10Mhz, y los condensadores serán cerámicos de entre 27 y 33 nF. La exactitud de este dispositivo es muy muy alta, por lo que lo hace muy recomendable para casi todas las aplicaciones.

RC: Este es el sistema más sencillo y económico. Se basa en un montaje con una resistencia y un condensador. La velocidad a la que oscile el pic dependerá de los valores del condensador y de la resistencia. En la hoja de características del Pic están los valores.

HS: Para cuando necesitemos aplicaciones de «alta velocidad», entre 8 y 10Mhz. Se basa también en un cristal de cuarzo, como el XT

LP: «Low Power» la velocidad máxima a la que podemos poner el pic con este oscilador es de 200Khz. Al igual que el XT y el HS, necesitaremos de un cristal de cuarzo y unos condensadores.

NOPROTECT Código no protegido para lectura
NOWDT No activa el perro guardián
NOBROWNOUT No resetea por bajo voltaje
NOPUT No active el temporizador que retarda el funcionamiento ante la presencia de tensión de alimentación
NOLVP No bajo voltaje de programación

• La cuarta, quinta y sexta línea consiste en definir un nombre a los diferentes bits que se van a utilizar en el programa.
• La séptima línea indica la dirección de memoria RAM del puerto B (Estas direcciones se observan en el Datasheet pagina 23).
• La octava línea indica que se declara la variable CONT tipo entero, esta variable es global, ya que fue declarada en el encabezado del programa y se podrá utilizar tanto en el programa principal como en las diferentes funciones.

INSTRUCCIONES BÁSICAS PIC C Compiler

Antes de comenzar a programar, vamos a ver las instrucciones de código más básicas, las cuales podremos ver directamente del MANUAL DE PIC C COMPILER, con las cuales vamos a aprender a preguntar por una entrada especifica y al mismo tiempo a activar alguna salida especifica. Estas instrucciones las veremos en la siguiente entrada donde haremos PROGRAMAS BÁSICOS CON PIC C COMPILER.

¿Cómo preguntar si una entrada esta activada?

IF(BIT_TEST(SW1))
{
//Sentencia;
}

La instrucción corresponde a la decisión que se va a tomar en caso de que la entrada llamada «SW1» este activada, la entrada «SW1» fue definida en el encabezado para referirse al PORTB, 2 (RB2).

Si no deseamos nombrar el pin en el encabezado, también podríamos preguntar si una entrada está activa (Es decir tiene un 1 lógico en el pin ó +5V llegando al pin) podemos preguntar así:

IF(BIT_TEST(portb,2))
{
   Sentencia;
}

¿Cómo preguntar si una entrada esta desactivada?

IF(!BIT_TEST(SW1))
{
  Sentencia;
}
ó
IF(!BIT_TEST(PORTB,2))
{
Sentencia;
}

El código corresponde a la decisión que se va a tomar en caso de que la entrada este desactivada.

¿Activar una salida PIC C Compiler?

BIT_SET(LED);

ó

BIT_SET(PORTB,0);

¿Desactivar una salida PIC C Compiler?

BIT_CLEAR(LED);

ó

BIT_CLEAR(PORTB,0);

¿Cómo llevar un valor a un puerto?
(Tener en cuenta que cada puerto tiene máximo 8 bits)

PORTB = 15;
PORTB = 0X0F;
PORTB = 0B00001111:

(Decimal) (Hexadecimal) (Binario)
Las tres instrucciones equivalen exactamente a lo mismo, llevar el valor 15 al puerto B, solo
que en diferente formato.

Con lo visto hasta ahora, ya tenemos las nociones básicas para empezar a realizar nuestro primer proyecto en PIC.

Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:

👉 Invitar a Sergio a un Café ☕️

Que esten muy bien, nos vemos en la siguiente entrada.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Comentarios (24)

Muchas gracias

Responder

Hola Sergio.
Quería agradecer los videos y la info que nos brindas para aprender. Pero tengo algunas dudas, estoy usando MPLAB IDE bajo Linux, y si bien pude hacer un blink otras directivas no funcionan en mplab, como #BYTE no lo reconoce, puede ser….? Porque la diferencia…..podrás ayudarme u orientarme para seguir avanzando.

Responder

Estás usando el compilador CCS C dentro de MPLAB o estás usando el XC8? El curso que tengo aquí es basado en el CCS C.

Responder

Sergio, no el XC8, eso cambia mucho…….es compatible con linux……

Responder

Hola Ariel, lo que pasa es que estás usando otro compilador, en este caso el XC8 que es el de microchip, entonces no podrás seguir este curso pues las instrucciones cambian. Te va a servir toda la teoría sin embargo los comandos de código no te van a funcionar. Debes buscar un curso que te enseñe en XC8 o si lo deseas puedes usar el CCS C para Linux (clcik aqui), y seguir el curso de la página. Saludos.

Responder

Ok Sergio, voy a tratar de instalar en linux y seguir el curso ya que me es sumamente necesario para realizar mi tesis. Si o molesta te haré otras preguntas.

Excelente tutorial muchas gracias!!

Responder

Gracias Wilmer. Saludos!

Responder

hola muy buena tarde, muchas gracias por tus aportes me han ayudado mucho te agradezco
mucho , también me gustaría me ayudaras en un código que solo me falta hacer parpadear un led sin afectar el funcionamiento de lo demás de antemano gracias…

Responder

Hola Sergio, Dando CLICK AQUI se muestra como hacerlo. Saludos. https://controlautomaticoeducacion.com/microcontroladores-pic/programar-pic/

Responder

muchas gracias, por tus tutoriales desde hace mucho que me interesa aprender la programacion de microcontroladores pic y ahora encontre el mejor de los tantos que y descargado en la web.

Responder

Gracias Osmelfb5, espero puedas aprender bastante. Saludos!!

Responder

magnifica exposicion ING. SERGIO C.

Responder

Gracias Bolivar. Saludos!

Responder

Gracias Sergio!!!Mejor explicación es muy difícil que alguien la encuentre en la web. Sigue con este proyecto que así nos ayudas a muchos

Responder

Gracias Alex, que bueno que te ha gustado el contenido del sitio web. Saludos!!

Responder

me puedes ayudar he hecho la programación como la tienes aquí y la he simulado en proteus 8 pero me sale este mensaje No power supply specified for net VDD in Power Rail Configuration. ya lo configure en design y entre a configure power rails y sigue fallando. me puedes asesorar

Responder

Hola Gabriel, en esta entrada todavía no hicimos código, solo se mostró lo que debe llevar cada programa para poder comenzar. Ahora, puedes ver la siguiente entrada, que explica como hacer el primer programa: Haz Click Aqui. Saludos.

Responder

Excelente, ya te seguia en el canal, ahora estaré atento a la pagina.

Responder

Gracias Diogenes, espero te sea de utilidad la información. Saludos!!

Responder

Que bueno, ing Sergio muy bien explicado

Responder

Gracias Jose.

Responder

Gracias Ing. Sergio Castaños por tan brillante exposición y sencillez como su claridad para exponer los temas de Microcontroladores en PICC COMPILER..Gracias nuevamente.

Responder

Gracias Luis por tu comentário. Que bueno que te ha servido.

Responder