Применение языка Си для разработки программ микроконтроллерных систем. Интегрированная среда mikroC PRO для PIC-микроконтроллеров.

На заре возникновения микропроцессоров, а затем и микроконтроллеров разработка программного обеспечения происходила исключительно на том или ином языке Ассемблера, ориентированного на конкретный тип МП или МК. По сути такие языки представляют собой символьные мнемоники соответствующих машинных кодов, а перевод мнемоники в машинный код выполняется программой-транслятором. Главный недостаток языков Ассемблера является то, что каждый из них привязан к конкретному типу МК и логике его работы. Кроме того, Ассемблер сложен в освоении, что требует достаточно больших усилий в его изучении. Однако они оказываются потраченными впустую, если впоследствии потребуется перейти на использование микроконтроллеров других производителей.

Язык Си, являясь языком высокого уровня, лишен подобных недостатков и может использоваться для программирования любого МК, для которого есть компилятор с языка Си.

Язык Си - это универсальный язык программирования, который обеспечивает эффективность программного кода, имеет элементы структурного программирования и богатый набор операторов. Использование языка Си имеет следующие преимущества над программированием на Ассемблере.

1. Глубокого знания системы команд не требуется. Элементарное знание архитектуры конкретного МК желательно.

2. Лучшая читаемость программы. Используются слова и выражения, которые более свойственны человеческой мысли.

3. Библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в основную программу.

4. Изучив язык Си, можно легко переходить от одного семейства МК к другому, тратя гораздо меньше времени на разработку программ.

В настоящее время документация языка Си закреплена в международном стандарте ANSI C.

Рассмотрим основные особенности программы на языке Си для микроконтроллеров. В качестве микроконтроллера выберем PIC16F84A с двумя портами ввода/вывода: порт А и порт В. Программа будет просто увеличивать число на 1 и выводить его в порт В.

/***********************************************************************

primer1.c – пример программы на Си для PIC16F84A

***********************************************************************/

char counter; // переменная counter –однобайтное целое число

void main(void) // здесь начинается главная программа

{

PORTB = 0; // очистить регистр данных порта В

TRISB = 0; // настроить все линии порта В на вывод

counter = 1; // инициализировать counter значением 1

while(1) // бесконечный цикл повторения

{

PORTB = counter; // поместить значение counter в порт В

counter = counter + 1; // увеличить counter

}

}

Рассмотрим основные составляющие программы на языке Си.

Комментарии. Это некоторый поясняющий текст, который при компиляции не учитывается. Комментарии бывают двух видов:

• многострочные (начинаются с комбинации символов /* и заканчиваются символами */ );

• однострочные (начинаются с комбинации символов // до конца строки).

Объявления переменных. Строка программы char counter; объявляет переменную counter как однобайтное целое число. Компилятор по этой информации выделит для переменной counter одну ячейку в памяти данных (один регистр из области РОН).

Функция main. Программы на Си оформляются как функции. Каждая программа должна содержать, по крайней мере, одну функцию, называемую главной (по-английски main). Выполнение программы всегда начинается с главной функции, и программа находится внутри нее. В общем случае в функцию могут передаваться аргументы (параметры), функция может возвращать результат. Главной особенностью программ на Си для микроконтроллеров является то, что в главную функцию main не передается никаких параметров и она не возвращает результата. Это обстоятельство указывается специальным словом void (пустой). Таким образом, формат главной функции всегда такой:

void main( void )

{ // начало функции

…….. // тело функции

} // конец функции

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

В настоящее время самым мощным средством разработки программного обеспечения для микроконтроллеров являются интегрированные среды разработки (IDE – Integrated Development Environment), имеющие в своем составе текстовый редактор, компилятор языков высокого уровня типа Паскаль или Си, отладчик-симулятор, а также библиотеки готовых функций.

Одним из таких программных инструментов является среда разработки mikroC PRO компании MikroElektronika. Данная среда разработки позволяет быстро создавать эффективные программы на распространенном языке высокого уровня Си. Среда имеет удобный интерфейс пользователя со встроенным редактором текста и мощным отладчиком программ. Встроенный мастер проектов позволяет в считанные минуты создать заготовку рабочей программы для любого микроконтроллера из целого семейства. Библиотека готовых функций обеспечивает программиста поддержкой для быстрого и безошибочного создания программы. Компания MikroElektronika создала среду разработки mikroC PRO для таких популярных и известных микроконтроллеров, как семейство PIC компании Microchip, AVR компании Atmel и семейство MCS-51.

Для PIC-микроконтроллеров компания MikroElektronika разработала интегрированную среду под названием mikroC PRO for PIC. С сайта www.mikroe.com компании можно бесплатно скачать демонстрационную версию среды mikroC PRO for PIC версии v.6.0.0, которая позволяет создавать программы с объемом исполняемого кода до 2 Кбайт.

Разработка программного обеспечения при использовании mikroC PRO состоит из следующих основных этапов.

1. Создание проекта.

2. Создание исходных файлов на языке mikroC.

3. Построение проекта.

4. Тестирование программы и ее отладка.

Среда mikroC PRO организует программное обеспечение в виде проектов, состоящих из одного файла проекта (файл с расширением .mcppi) и одного или нескольких исходных файлов на языке mikroC (файлов с расширением .c). Исходные файлы могут компилироваться только в том случае, если они включены в проект.

Файл проекта содержит:

· имя проекта;

· тип микроконтроллера;

· тактовую частоту его работы;

· слово конфигурации микроконтроллера;

· список исходных файлов для проекта;

· другие (вспомогательные) файлы.

Наши рекомендации