Среда и компилятор
Для программирования микроконтроллеров 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 · Цоколёвки.