Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Программирование микроконтроллеров PIC18 на языке C: пошаговое руководство

Как запрограммировать микроконтроллер PIC18 на языке C. Пошаговое руководство с иллюстрациями

Что такое программирование микроконтроллера?

Программирование микроконтроллера — это процесс написания кода для выполнения специфических задач в специализированном ПО. Существует множество сред разработки (IDE) для написания, анализа, тестирования и отладки кода для микроконтроллеров и микросхем. В этом руководстве мы разберем процесс программирования микроконтроллера PIC18 на языке C — наиболее широко используемом языке для 8-битных и 16-битных PIC (помимо ассемблера).

Классификация микроконтроллеров PIC по разрядности:

Программирование микроконтроллеров PIC18 на языке C: пошаговое руководство

Как прошить микроконтроллер (загрузка программы)?

Прошивка — это процесс переноса скомпилированной программы (hex-файла) из компилятора в память микроконтроллера. Компилятор преобразует код на C/ассемблере в hex-файл, содержащий инструкции, понятные микроконтроллеру.

Для прошивки нужен программатор (аппаратное обеспечение), который подключается к ПК через USB или COM-порт и записывает hex-файл в память чипа. После этого микроконтроллер начинает выполнять заложенные в нем функции.

Связанная статья: Разновидности микроконтроллеров

Программирование PIC18 на C в среде MikroC

Целевой контроллер: PIC18F452

В качестве примера рассмотрим популярный микроконтроллер серии PIC18 — PIC18F452. Это 8-битный МК в корпусе на 40 выводов с 32 КБ Flash-памяти, тактовой частотой до 40 МГц. Он способен источать/поглощать до 25 мА на выводе (можно управлять светодиодами без транзисторов), имеет 3 внешних прерывания, два 16-битных и один 8-битный таймер, модули захвата и сравнения, встроенный АЦП, а также интерфейсы USART, I2C, 1-Wire и параллельный порт. Это отличный выбор для начинающих и профессионалов.

Среда разработки: MikroC PRO for PIC

Мы будем использовать MikroC PRO for PIC — мощную IDE с обширными встроенными библиотеками, удобным интерфейсом и калькуляторами (перевод hex/dec/bin). Синтаксис проще, чем в MPLAB X, а готовые библиотеки (задержки, LCD, UART, SPI и др.) экономят массу времени.

Важно: MikroC — платный компилятор. Бесплатной альтернативой является MPLAB X IDE с компилятором XC8 от Microchip, также имеющий множество бесплатных библиотек.

Дальнейшее руководство предполагает, что вы установили MikroC и имеете базовые знания C.

Связанная статья: Что такое Arduino и как его программировать?

Создание нового проекта в MikroC

  1. Шаг 1: Запустите MikroC (ярлык на рабочем столе). Откроется стартовое окно.
    Программирование микроконтроллеров PIC18 на языке C: пошаговое руководствоПрограммирование микроконтроллеров PIC18 на языке C: пошаговое руководство
  2. Шаг 2: В меню выберите Project → New Project.
    Программирование микроконтроллеров PIC18 на языке C: пошаговое руководство
  3. Шаг 3: В мастере создания проекта нажмите Next.
    Программирование микроконтроллеров PIC18 на языке C: пошаговое руководство
  4. Шаг 4: Выберите целевой МК (PIC18F452), задайте тактовую частоту (например, 8 MHz или 20 MHz), имя проекта и папку для сохранения. Далее нажимайте Next во всех окнах до завершения.
    Откроется редактор кода — рабочая среда для написания и компиляции программы.
Связанная статья: Микроконтроллеры ATMega и проект с LED

Написание кода для PIC18F452

У PIC18F452 пять портов: четыре 8-битных (A–D) и один 4-битный (E). В примере используем порт B. Ключевые моменты:

Настройка направления порта (вход/выход)

Каждый порт управляется регистром TRISx (x = A, B, C, D, E). Запись 0x00 в TRISB делает все 8 пинов выходами, 0xFF — входами. Можно настраивать пины по отдельности: например, TRISB = 0x09 (00001001b) сделает RB0 и RB3 входами, остальные — выходами.

Функция задержки

В MikroC подключается библиотека задержек, поэтому можно использовать Delay_ms(миллисекунды). Например, Delay_ms(500) — пауза 0.5 секунды.

Программирование микроконтроллеров PIC18 на языке C: пошаговое руководство

Первый пример: мигание светодиодами на порту B

void main() {
    TRISB = 0x00;           // Порт B на выход
    while(1) {              // Бесконечный цикл
        PORTB = 0x00;       // Все пины в 0 (логический 0)
        Delay_ms(500);      // Задержка 500 мс
        PORTB = 0xFF;       // Все пины в 1 (логическая 1)
        Delay_ms(500);
    }
}

После написания кода нажмите кнопку Build All (или Ctrl+F9). При успешной компиляции в папке проекта появится .hex файл.
Программирование микроконтроллеров PIC18 на языке C: пошаговое руководство

Полученный hex-файл можно прошить в PIC18F452 с помощью программатора PICkit или протестировать в симуляторе Proteus.

Это базовое введение. В следующих статьях разберем работу с прерываниями, таймерами, АЦП, UART и периферией.

Полезные ссылки:

Промышленные технологии

  1. Разработка надежной программы электрического обслуживания: практическое руководство
  2. Запуск программы надежности: проверенная дорожная карта
  3. Запуск успешной программы ученичества в производстве: практическое руководство
  4. Как создать надежную программу обслуживания оборудования для сокращения простоя
  5. Освоение сварки алюминия: подробное экспертное руководство
  6. Экспертное руководство по сварке чугуна: проверенные техники для прочных и долговечных швов
  7. Мастерство пайки алюминия: экспертные техники и практические советы
  8. Освоение лужения алюминия: Экспертные техники и практическое руководство
  9. Экспертное руководство по сварке меди: Техники, советы и лучшие практики
  10. Проектирование надежной программы электрического обслуживания для повышения безопасности и производства