Programacion De Pic En C Desde Cero

La Programación de PIC en C desde cero implica escribir código en lenguaje C para controlar microcontroladores PIC (Peripheral Interface Controller). Los PIC son pequeños ordenadores diseñados para tareas específicas, como controlar motores, leer sensores o gestionar pantallas. Usar C ofrece una forma más legible y fácil de mantener en comparación con el lenguaje ensamblador, facilitando la creación de proyectos electrónicos. Sus aplicaciones son vastísimas, desde automatización del hogar hasta instrumentación industrial.
Paso 1: Entorno de Desarrollo
- Necesitas un IDE (Integrated Development Environment). Popular es MPLAB X IDE de Microchip, gratuito y completo.
- Instala un compilador de C específico para PIC. XC8 es una opción común y también de Microchip.
- Asegúrate de tener un programador de PIC (hardware). PICKit 4 o ICD 4 son opciones válidas para cargar el código al PIC.
Paso 2: Estructura Básica del Programa en C
Un programa simple podría verse así:
#include <xc.h> // Incluye las definiciones específicas del PIC
void main(void) {
// Configuración inicial (ej: puertos como entrada/salida)
TRISB = 0x00; // Puerto B como salida
while(1) {
PORTB = 0xFF; // Enciende todos los leds conectados al Puerto B
}
}
#include <xc.h>: Incluye las cabeceras necesarias para acceder a las funciones específicas del PIC que estés usando.TRISB: Define si los pines del puerto B son entradas (1) o salidas (0).PORTB: Escribe valores en los pines del puerto B.0xFFes 255 en decimal, que enciende todos los pines si están configurados como salida.while(1): Crea un bucle infinito para que el código se ejecute continuamente.
Paso 3: Compilación y Programación
- Escribe tu código en el IDE.
- Compila el código. El compilador traduce el código C a lenguaje máquina, que el PIC entiende.
- Programa el PIC usando el programador. Conecta el programador al PIC y carga el archivo .hex generado durante la compilación.
Ejemplo Práctico: Blink LED
Para hacer parpadear un LED, necesitas:
Must Read
#include <xc.h>
#define _XTAL_FREQ 4000000 // Frecuencia del oscilador (ej: 4MHz)
void main(void) {
TRISBbits.TRISB0 = 0; // Pin RB0 como salida
while(1) {
PORTBbits.RB0 = 1; // Enciende el LED
__delay_ms(500); // Espera 500ms
PORTBbits.RB0 = 0; // Apaga el LED
__delay_ms(500); // Espera 500ms
}
}
__delay_ms() es una función que crea una pausa en milisegundos. Asegúrate de definir la frecuencia del oscilador con _XTAL_FREQ.
