Pull to refresh

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вводная

Programming microcontrollers *
Доброго тебе времени суток, хороший человек.

Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.

Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.

MPLAB — среда разработки от Microchip. Скачать можно на офсайте. Полностью бесплатна.
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора).
Большинство компиляторов языка C имеют механизмы встраивания в эту среду.
Качаем обязательно.

Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;



CCS PICC. Платный. В своем составе содержит неплохую IDE. Возможна интеграция с MPLAB с помощью плагина.
Существует демо-версия с ограниченичем по размеру кода и отключеннными некоторыми функциями.
Узнать о нем можно в очень хорошей книге товарища Шпака «Программирование на языке C для AVR и PIC микроконтроллеров».
Весьма неплох. Используется многими. Информации в сети достаточно. Вакцина существует.

Micro-C. Платный. От копании mikroElektronika. В своем составе содержит весьма удобную IDE, симулятор и небольшой набор полезных инструментов.
Широкий ассортимент поддерживаемых устройств.
Главный плюс для начинающего — огромная библиотека модулей и примеров к ним. По этому параметру аналогов нет.
Есть документация на русском. Вакцина существует.
Лучший выбор для начинающего, но не более.

IAR C. Платный. Очень объемный проект. Поддержка огромного количества устройств и PIC18 в том числе.
Аналогов по функционалу и возможностям наверное нет.
Демо-версия существует, с ограничениями естественно.
Не лучший выбор для новичка. Хорошо подойдет в будущем, если желание работать с МК не пропадет:-)

HT-PICC. Платный. Поддержка многих устройств. Существуют верссии для Linux и Mac.
Будет использоваться мною в статьях для программирования PIC16.
У меня версия — 8.05PL1.

Microchip C18. Платный. Существует студенческая версия с полным функционалом на 2 месяца.
Будет использоваться мною в статьях о программировании PIC18.
У меня версия — 3.33.

едем дальше.

Proteus ISIS. одна из составляющих проекта Proteus от Labcent Electronics.
Симулятор-отладчик. Лучший вариант когда под рукой нет необходимого железа.
Информации о нем в сети предостаточно.
Качаем обязательно.
У меня версия — 7.5_SP3.

Железо.
Не буду советовать конкретной отладочной платы или схемы для нее из-за трудностей вопросов купить/спаять/достать для каждого индивидуально.
Скажу лишь что буду давать примеры для PIC16F628A и PIC18F4550.
С программатором в принципе тоже самое. Но советую PICkit2.

Теперь практика.
Сперва речь буду вести о PIC16.
Ну и для вводной статьи напишем и запустим простейшую программу

Скачали MPLAB. У меня версия 8.36.
Скачали HT-PICC. У меня версия — 8.05PL1.
Скачали Proteus. У меня версия — 7.5_SP3.
Все установили — все работает.
Выполняем все рекомендации по установке.
Если не работает — решаем проблемы.

Запускаем MPLAB.
Идем Project -> Set Language Tool Locations. Ищем в списке HI-TECH PICC Toolsuite.
Открываем Executables. И указываем для компиляторов и линковщика соответствующий установке путь. Жмем ОК.

image

Жмем Project -> Project Wizard. Выбираем PIC16F628A. Выбираем HI-TECH PICC Toolsuite. Выбираем имя нового проекта.
Получаем пустой проект.
Жмем File -> New. Сохраняем файл в папке проекта под именем main.c.
Жмем в менеджере проекта на Source Files -> Add files и добавляем наш main.c

Пишем код:

void main(void)
{
while(1);
}


Жмем F10.
Должны увидеть сообщение об удачном завершении.

image

В корне проекта появится файл с расширением .hex.
Этим файлом можно прошить МК и посмотреть как он ничего не делает:-)
В этой я лишь хотел помочь сделать выбор, и настроить ПО для дальнейшей работы.

В принципе собирался осветить в цикле вопросы об основах C для МК.
Показать примеры для большинства аппаратных модулей PIC16F628A и PIC18F4550.
Показать примеры работы PIC18F4550 с USB.
Рассказать о тонкостях C для подобных устройств.

Хотелось бы узнать есть ли интерес на Хабре к подобному?
Tags:
Hubs:
Total votes 67: ↑60 and ↓7 +53
Views 51K
Comments Comments 32