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.

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.
No products found.
¿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.
Citar este Artículo
¡Hola! Soy Sergio Andrés Castaño Giraldo. Bienvenidos a Control Automático Educación, un espacio dedicado a una de mis grandes pasiones: la Ingeniería de Control y la Automatización.
Mi objetivo aquí es tender un puente entre la teoría académica y la práctica profesional. Como profesor e investigador, he tenido la oportunidad de trabajar en proyectos complejos —desde sistemas de compresión en plataformas offshore hasta modelos de control avanzado— y todo ese aprendizaje lo vuelco en este sitio.
Aquí encontrarás material que crece constantemente: desde fundamentos de instrumentación hasta estrategias de control avanzado y programación profesional. Mi meta es que la información que comparto te sea de utilidad real en tu carrera o formación.
Te invito a que te suscribas, te unas a nuestro canal de YouTube y formemos una comunidad de aprendizaje continuo. ¡Gracias por estar aquí!