- •Ответы по дисциплине мпт (2015 г.)
- •1. Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микрокомпьютер, контроллер, микроконтроллер. Принципы построения микропроцессорных систем.
- •2. Архитектура микропроцессора: архитектура со сложной системой команд (cisc-процессоры), архитектура с упрощенной системой команд (risc-процессоры), принстонская и гарвардская архитектуры.
- •3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
- •4. Классификация микропроцессоров: универсальные и специализированные, цифровые сигнальные процессоры и микроконтроллеры
- •5. Классификация и структура микроконтроллеров (мк). Процессорное ядро мк, его основные характеристики.
- •6. Типы памяти микроконтроллеров: память программ, память данных, регистры.
- •7. Однокристальные микроконтроллеры семейства pic: состав и общая характеристика. Микроконтроллер pic16f84a: основные параметры, внутренняя структура, назначение выводов.
- •8. Микроконтроллер pic16f84a: организация памяти программ и данных, портов ввода/вывода.
- •9. Применение языка Си для разработки программ микроконтроллерных систем. Интегрированная среда mikroC pro для pic-микроконтроллеров.
- •10. Представление информации в языке Си: имена, типы данных, переменные и константы, массивы и строки.
- •11. Арифметические операции в языке mikroC. Виды операций, примеры их использования в программах.
- •12. Операции отношения и логические в языке mikroC. Виды операций, примеры их использования в программах.
- •13. Поразрядные операции в языке mikroC. Виды операций, примеры их использования в программах.
- •14. Операторы выбора if и switch в языке mikroC. Выполняемые функции, примеры их использования в программах.
- •15. Операторы цикла языка mikroC: for, while, do … while. Выполняемые функции, примеры использования в программах.
- •16. Операторы перехода языка mikroC: break, continue, goto. Выполняемые функции, промеры использования в программах.
- •17. Функции языка mikroC: определение и прототипы.
- •18. Управление отдельными разрядами регистров pic-микроконтроллеров в языке mikroC. Встроенные функции формирования временных задержек компилятора mikroC pro for pic.
- •19. Программирование на mikroC типовых процедур управления для pic-микроконтроллеров: управление светодиодом, формирование периодических сигналов, опрос контактов переключателя.
- •20. Средства аналогового ввода/вывода микроконтроллеров: назначение, принцип построения аналого-цифрового преобразователя (ацп). Модуль ацп в pic-микроконтроллерах.
- •21. Микроконтроллеры семейства avr фирмы Atmel: общая характеристика, внутренняя структура
- •22. Интегрированная среда разработки для avr-микроконтроллеров mikroC pro for avr. Программирование параллельного ввода/вывода данных в avr-микроконтроллерах
- •23. Программирование на mikroC для avr-микроконтроллеров процедур управления отдельными разрядами портов, опроса контактов переключателей
- •24. Интерфейсы микропроцессорных систем, классификация и принципы построения. Интерфейсы параллельные и последовательные, синхронные и асинхронные
- •25. Последовательный асинхронный интерфейс rs-232. Назначение, форматы передачи данных, основные технические характеристики
- •26. Последовательные асинхронные интерфейсы rs-422 и rs-485. Назначение, форматы передачи данных, основные технические характеристики
- •27. Последовательный синхронный интерфейс spi. Назначение, форматы передачи данных, основные технические характеристики
- •28. Интерфейсная шина i2c. Назначение, форматы передачи данных, основные технические характеристики
- •29. Интерфейсная шина can. Назначение, форматы передачи данных, основные технические характеристики
- •30. Общие принципы и основные этапы разработки микроконтроллерных систем. Разработка и отладка аппаратных средств и программного обеспечения. Методы совместной отладки аппаратных и программных средств
9. Применение языка Си для разработки программ микроконтроллерных систем. Интегрированная среда mikroC pro для pic-микроконтроллеров.
На заре возникновения микропроцессоров, а затем и микроконтроллеров разработка программного обеспечения происходила исключительно на том или ином языке Ассемблера, ориентированного на конкретный тип МП или МК. По сути такие языки представляют собой символьные мнемоники соответствующих машинных кодов, а перевод мнемоники в машинный код выполняется программой-транслятором. Главный недостаток языков Ассемблера является то, что каждый из них привязан к конкретному типу МК и логике его работы. Кроме того, Ассемблер сложен в освоении, что требует достаточно больших усилий в его изучении. Однако они оказываются потраченными впустую, если впоследствии потребуется перейти на использование микроконтроллеров других производителей.
Язык Си, являясь языком высокого уровня, лишен подобных недостатков и может использоваться для программирования любого МК, для которого есть компилятор с языка Си.
Язык Си - это универсальный язык программирования, который обеспечивает эффективность программного кода, имеет элементы структурного программирования и богатый набор операторов. Использование языка Си имеет следующие преимущества над программированием на Ассемблере.
Глубокого знания системы команд не требуется. Элементарное знание архитектуры конкретного МК желательно.
Лучшая читаемость программы. Используются слова и выражения, которые более свойственны человеческой мысли.
Библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в основную программу.
Изучив язык Си, можно легко переходить от одного семейства МК к другому, тратя гораздо меньше времени на разработку программ.
В настоящее время документация языка Си закреплена в международном стандарте 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). Исходные файлы могут компилироваться только в том случае, если они включены в проект.
Файл проекта содержит:
имя проекта;
тип микроконтроллера;
тактовую частоту его работы;
слово конфигурации микроконтроллера;
список исходных файлов для проекта;
другие (вспомогательные) файлы.
