Domina la Programación de Microcontrolador PIC18 en C – Guía Paso a Paso
Cómo Programar un Microcontrolador PIC18 en C. Tutorial Paso a Paso (Vistas Pictóricas)
¿Cómo Programar un Microcontrolador?
Programar microcontrolador significa codificar para diferentes propósitos en software especial. Hay mucho software para escribir códigos para microcontroladores e ICs. Discutiremos cómo programar un microcontrolador.
En este tutorial, programaremos/escribiremos código simple para microcontrolador PIC18 en C, donde "C" es lenguaje ampliamente usado y actualmente el único soportado (junto a ensamblador) para PIC de 8 y 16 bits.
PIC de 8 bits:
Series PIC10, PIC12, PIC16, PIC18 son MCU de 8 bits.
PIC de 16 bits:
Series PIC24, dsPIC30, dsPIC33 son MCU de 16 bits.
PIC de 32 bits:
Serie PIC32 es MCU de 32 bits.
¿Cómo Grabar un Programa Codificado al Microcontrolador?
Grabar microcontrolador = transferir programa codificado del compilador (software donde escribimos, analizamos, testeamos y depuramos código) a memoria del microcontrolador.
Código escrito generalmente en ensamblador/C y compilador genera archivo .hex entendible por microcontrolador. Archivo hex contiene instrucciones especiales para transferir a memoria y luego funciona según instrucciones dadas.
Al programar microcontrolador, necesitamos grabar programa en su memoria. Para esto, hardware que lea contenido y códigos del archivo hex en PC/Laptop via software. Conectamos hardware via USB/serie a PC y transferimos código a memoria del microcontrolador, que luego ejecuta la función exacta para la que fue diseñado.
Artículo relacionado: Diferentes Tipos de Microcontroladores
Programación PIC18 en C
Microchip Technology es 2da industria electrónica y fabricación IC. Vende microcontroladores en paquetes 6-pines (PIC10F2xx), 100-pines (dsPIC33EP512MU810) y 144-pines (algunos PIC32). Series previas: PIC12, PIC16, PIC18.
Introducción al Controlador Objetivo:
Discutimos serie PIC18. Común: PIC18F452. MCU 8 bits, 40 pines, 32KB memoria programa, hasta 40MHz cristal. Adecuado para muchas aplicaciones. Suministra/hunde hasta 25mA → no necesita transistor para驱动 LED y conectar a otro hardware. 3 pines interrupción externa, dos timers 16 bits, uno 8 bits. Módulo captura y comparador. ADC integrado → no necesita ADC externo. Módulos comunicación: RS232, I2C, 1-Wire, Puerto Esclavo Paralelo. Dispositivo ingenierizado estéticamente, apto para principiantes, aficionados y profesionales en proyectos mini y complejos.
Entorno de Programación:
Usamos MikroC para PIC. IDE totalmente equipado con librerías integradas e interfaz fácil. Incluye calculadoras (hex-binario-decimal) que ayudan mucho. Tamaño pequeño vs otros software, fácil uso/instalación. Sintaxis ligeramente diferente a MPLAB, pero sugiero MikroC por sintaxis legible y muchas librerías integradas. Reduce tiempo de programación y no hay que construir funciones comunes desde cero (delay, LCD read/write, RS232, etc.).
Nota: MikroC no es gratuito; MPLAB X IDE y compilador XC8 de Microchip son gratuitos con muchas librerías libres.
Artículo relacionado: Qué es Arduino y Cómo Programarlo? Programación Arduino
Crear Nuevo Proyecto en MikroC
Paso 1: Doble clic icono MikroC en Escritorio o donde instalado.
Paso 2: Botón "Project" esquina superior derecha → clic "Project".
Paso 3: Clic "New Project" → nueva ventana.
Paso 4: Clic "Next", seleccionar MCU objetivo, velocidad reloj, nombre proyecto y directorio. Clic "Next" en ventanas restantes. Aparece entorno de programación: escribir código y compilar.
Escribiendo Código para PIC18
PIC18F452 tiene 5 puertos. Cuatro de 8 bits, uno de 4 bits. Usaremos puerto 8 bits. Cosas a tener en cuenta:
Definir puerto como entrada o salida:
Cada puerto tiene registro TRISX que define uso para entrada o salida. X = A, B, C, D, E, F (ej. TRISB). Para salida: 0x00 en TRISB; para entrada: 0xFF. Pero cada pin independientemente seleccionable. Ej: 0x09 en TRISB → RB0 y RB3 entradas, resto salidas.
Función Delay:
En MikroC seleccioné librería delay → uso Delay_ms(). Argumento: milisegundos (ej. Delay_ms(1000) = 1000ms).
Primer Código Simple: Toggle Bits Puerto
void main() {
TRISB = 0x00; // Definido como Salida
while(1) { // Bucle infinito
PORTB = 0x00;
Delay_ms(500); // 500ms delay
PORTB = 0xFF;
Delay_ms(500);
}
}
Escribir código → compilar (botón "Build All") → hex creado en carpeta del proyecto. Grabar hex en PIC18F452 con hardware PICKIT o testear con Proteus.
Eso es todo por este primer tutorial. Mantente atento para próximos posts.
Artículos Relacionados:
- Diferencia entre Microprocesador y Microcontrolador
- Diferencia entre 8085 y 8086 Microprocesador – Comparación
- MAX232: Construcción, Operación, Tipos y Aplicación
- Protocolo Comunicación Serie RS232 y Cómo Funciona
- Circuito Proyecto Interruptor de Aplausos Usando Temporizador 555
- 10+ Herramientas Diseño y Simulación para Ingenieros Eléctricos/Electrónicos Online
- Códigos Resistencia SMD: Cómo Encontrar Valor de Resistencias SMD
Tecnología Industrial
- Desarrollo de un Programa Robusto de Mantenimiento Eléctrico: Guía Práctica
- Lanzando un programa de fiabilidad: una hoja de ruta probada
- Lanzar un Programa Exitoso de Aprendizaje en Manufactura: Guía Práctica
- Cómo Construir un Programa Robusto de Mantenimiento de Equipos para Reducir Tiempos Muertos
- Dominando la Soldadura de Aluminio: Una Guía Experta Completa
- Guía experta para soldar hierro fundido: Técnicas probadas para uniones fuertes y duraderas
- Dominando el soldadura blanda de aluminio: Técnicas y consejos expertos
- Dominando el brasado de aluminio: Técnicas expertas y guía práctica
- Guía experta para soldar cobre: Técnicas, consejos y mejores prácticas
- Diseñando un programa de mantenimiento eléctrico fiable para impulsar seguridad y producción
- Mecánica de los embragues: guía industrial completa