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.
¿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.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.