AFON // радиотехник affonya@mail.ru
← Радиотехника

Программирование PIC на C (MPLAB X, XC8)

Практическое введение в PIC на C: среда MPLAB X и компилятор XC8, конфигурационные биты, порты TRIS/PORT, первая программа и прошивка PICkit по ICSP.

Среда и компилятор

Для программирования микроконтроллеров PIC на языке C фирменный набор — среда MPLAB X IDE и компилятор XC8 (для 8-битных PIC). Это практическое введение в разработку под PIC на C; обзорный справочник по архитектуре и семействам см. на странице микроконтроллеры PIC.

  • MPLAB X IDE — бесплатная среда (Windows/Linux/macOS).
  • XC8 — компилятор C для PIC10/12/16/18.
  • Прошивка — программатор PICkit (3/4) по интерфейсу ICSP.

Конфигурационные биты

Перед работой в прошивку зашивают биты конфигурации через #pragma config: режим генератора, сторожевой таймер, защита кода, сброс по питанию. Неверный FOSC — самая частая причина неработающего контроллера.

// PIC16F877A, XC8
#pragma config FOSC = HS    // внешний кварц 4-20 МГц
#pragma config WDTE = OFF   // сторожевой таймер выкл.
#pragma config LVP  = OFF   // низковольтное прогр. выкл.

Порты ввода-вывода

Направление вывода задаёт регистр TRISx (0 — выход, 1 — вход), состояние — PORTx (или LATx у PIC18).

#include <xc.h>
#define _XTAL_FREQ 4000000

void main(void) {
    TRISB0 = 0;                 // RB0 — выход
    while (1) {
        RB0 = 1; __delay_ms(500);
        RB0 = 0; __delay_ms(500);
    }
}

Макрос _XTAL_FREQ задаёт частоту для функций задержки __delay_ms/__delay_us.

Прошивка (ICSP)

PIC прошиваются внутрисхемно по пяти линиям: MCLR/VPP, PGD (данные), PGC (такт), VDD, VSS. Готовый HEX удобно проверить в разборе Intel HEX (адреса, контрольные суммы, точка входа).

Частые вопросы

Чем XC8 отличается от старых компиляторов?

XC8 — современный единый компилятор Microchip для всех 8-битных PIC, пришедший на смену HI-TECH C и MPASM-подходу. Он интегрирован в MPLAB X и поддерживает актуальные модели.

Почему PIC не запускается после прошивки?

Обычно из-за неверного #pragma config (не тот FOSC), отсутствия подтяжки на MCLR или несоответствия _XTAL_FREQ реальному кварцу. Проверьте конфигурацию и тактирование.

Итоги

Разработка под PIC на C строится на связке MPLAB X + XC8: задать конфигурационные биты, настроить порты через TRIS/PORT, собрать HEX и прошить программатором PICkit по ICSP. Ключ к запуску — корректные биты конфигурации и тактирование.

Смотрите также: Микроконтроллеры PIC · Прерывания и таймеры · Intel HEX · Цоколёвки.