Программирование PIC-микроконтроллеров
на языке Си
Лабораторная работа № 1
Программирование на языке Си в среде MPLABIDE
1. Цель работы
Изучить основы разработки и отладки программ на языке Си для микроконтроллеров семейства PIC18 с помощью интегрированной среды программирования MPLAB IDE.
2. Основные теоретические сведения
2.1. Средства для программирования в MPLAB IDE
2.1.1. Си компилятор MPLAB C18. Это кросс-компилятор, работающий на персональном компьютере и генерирующий код, который может выполняться на микроконтроллерах фирмы Microchip семейства PIC18. Как и ассемблер, MPLAB C18 компилятор переводит понятные и привычные для человека предложения в набор кодов из нулей и единиц для выполнения микроконтроллером. Однако, в отличие от ассемблера, компилятор не выполняет буквальный перевод мнемоник команд в машинные коды.
MPLAB C18 читает стандартные для языка ANSI C выражения, такие как “if ( x == y )” или “temp = 0x27”, и преобразует их в машинные коды для микроконтроллеров семейства PIC18. Компилятор проявляет при этом значительный «интеллект». Он может оптимизировать код, используя подпрограммы, которые будут использоваться многими функциями. Он может перегруппировать коды исходной программы, исключить при этом коды, которые не будут исполняться, использовать одинаковые фрагменты кодов в различных функциях, может определить данные и регистры, которые используются не эффективно, и оптимизировать их работу.
Текст исходной программы использует стандартную для языка ANSI C нотацию. Исходный текст компилируется в блоки кодов программ и данных, которые компонуются с другими блоками и затем размещаются в различных областях памяти микроконтроллера PIC18. Этот процесс называется build (построение), и очень часто выполняется многократно в ходе разработки программы, при котором код пишется, тестируется и отлаживается. MPLAB C18 компилятор и связанные с ним программные средства, такие как линкер (компоновщик) и ассемблер, могут запускаться из командной строки, а могут использоваться в интегрированной среде разработки MPLAB IDE. При этом графический интерфейс пользователя служит единственной средой для написания, компилирования и отладки программ.
Окна диалогов MPLAB IDE и менеджер проектов управляют всеми деталями компилирования, ассемблирования и компоновки, позволяя сосредоточить все внимание на процесс написания и отладки программ.
MPLAB C18 компилятор делает разработку программ для микроконтроллерных устройств намного удобнее, так как он использует стандартный язык Си. Кроме того, компилятор MPLAB C18 способен генерировать исключительно эффективный код для микроконтроллеров семейства PIC18.
Использование языка Си имеет следующие преимущества над программированием на Ассемблере:
1) глубокого знания системы команд микроконтроллера не требуется, элементарное знание архитектуры желательно;
2) распределение регистров и способы адресации управляются полностью компилятором;
3) лучшая читаемость программы, используются ключевые слова и выражения, которые более свойственны человеческой мысли;
4) время разработки программ и их отладки значительно короче в сравнении с программированием на Ассемблере;
5) библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в прикладную программу.
2.1.2. MPASM кросс-ассемблер и MPLINK линкер. Очень часто кросс-ассемблер используется при написании текста программы в проекте. MPASM является компонентом MPLAB IDE и он работает вместе с линкером MPLINK, чтобы скомпоновать ассемблерные секции кода с секциями, сформированными компилятором MPLAB C18.
Язык Ассемблера часто используется для небольших модулей программы, которые должны выполняться с максимальной скоростью или за строго определенное время.
2.2. Проекты в MPLAB IDE
Проектами в MPLAB IDE принято называть группу файлов, необходимых для работы различных инструментальных средств среды разработки, например, такими как MPLAB C18. Проект состоит из исходных файлов, написанных на языке Ассемблер или Си, заголовочных, объектных и библиотечных файлов и файла сценария линкера. Каждый проект должен иметь один или больше исходных файлов и один файл сценария линкера.
Обычно, по крайней мере, требуется хотя бы один заголовочный файл для идентификации регистров целевого микроконтроллера. Заголовочные файлы обычно включаются в исходные файлы и поэтому специально не добавляются в проект.
Выходные файлы проекта включают HEX-файл (файл с расширением *.hex), который может быть записан в память микроконтроллера с помощью программатора, а также используется симулятором MPLAB SIM для проверки работы программы на компьютере. Дополнительные отладочные файлы с расширениями *.cof и *.map используются MPLAB IDE для корреляции имен переменных и функций из исходных файлов с исполняемыми кодами и областями памяти микроконтроллера.
В данной лабораторной работе проекты будут состоять только из одного исходного файла и файла сценария линкера.
3. Порядок выполнения работы
При первоначальном ознакомлении с интегрированной средой разработки обычно используется метод “Quick start – быстрый старт”. Цель его состоит в том, чтобы, не углубляясь в подробности, дать новичку первое представление о программном средстве, дать возможность быстро получить конкретный результат.
Рассмотрим основные особенности программы на языке Си с использованием компилятора MPLAB C18. В качестве микроконтроллера выберем PIC18F242 с тремя портами ввода/вывода, которые обозначаются: PORTA, PORTB, PORTC. Программа будет просто увеличивать число на 1 и выводить его в порт В.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.