- •Ответы по дисциплине мпт (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. Общие принципы и основные этапы разработки микроконтроллерных систем. Разработка и отладка аппаратных средств и программного обеспечения. Методы совместной отладки аппаратных и программных средств
22. Интегрированная среда разработки для avr-микроконтроллеров mikroC pro for avr. Программирование параллельного ввода/вывода данных в avr-микроконтроллерах
Для создания программного обеспечения микроконтроллерных систем широко используются средства вычислительной техники, в том числе персональные компьютеры, позволяющие разработчику выполнить весь цикл проектирования, включая отладку целевой программы.
В настоящее время самым мощным средством разработки программного обеспечения для микроконтроллеров являются интегрированные среды разработки (IDE – Integrated Development Environment), имеющие в своем составе текстовый редактор, компилятор языков высокого уровня типа Паскаль или Си, отладчик-симулятор, а также библиотеки готовых функций.
Одним из таких программных инструментов является среда разработки mikroC PRO компании MikroElektronika. Данная среда разработки позволяет быстро создавать эффективные программы на распространенном языке высокого уровня Си. Среда имеет удобный интерфейс пользователя со встроенным редактором текста и мощным отладчиком программ. Встроенный мастер проектов позволяет в считанные минуты создать заготовку рабочей программы для любого микроконтроллера из целого семейства. Библиотека готовых функций обеспечивает программиста поддержкой для быстрого и безошибочного создания программы. Компания MikroElektronika создала среду разработки mikroC PRO для таких популярных и известных микроконтроллеров, как семейство PIC компании Microchip, AVR компании Atmel и семейство MCS-51.
Для AVR-микроконтроллеров компания MikroElektronika разработала интегрированную среду разработки под названием mikroC PRO for AVR. С сайта www.mikroe.com компании можно бесплатно скачать демонстрационную версию среды mikroC PRO for AVR, которая позволяет создавать программы с объемом исполняемого кода до 2 Кбайт.
Разработка программного обеспечения при использовании mikroC PRO состоит из следующих основных этапов.
1. Создание проекта.
2. Создание исходных файлов на языке mikroC.
3. Построение проекта.
4. Тестирование программы и ее отладка.
Среда mikroC PRO организует программное обеспечение в виде проектов, состоящих из одного файла проекта (файл с расширением .mcpav) и одного или нескольких исходных файлов на языке mikroC (файлов с расширением .c). Исходные файлы могут компилироваться только в том случае, если они включены в проект.
Файл проекта содержит:
имя проекта;
тип микроконтроллера;
тактовую частоту его работы;
слово конфигурации микроконтроллера;
список исходных файлов для проекта;
другие (вспомогательные) файлы.
Программирование параллельного ввода/вывода данных в микроконтроллерах AVR
Порт микроконтроллера – это группа линий передачи данных, обозначаемая буквой латинского алфавита (A, B, C, D, …). Набор и разрядность портов отличается в зависимости от МК. Так, в популярных моделях ATmega16 и ATmega32 имеется 4 порта ввода/вывода, обозначаемые буквами A, B, C, D.
В каждом порту микроконтроллера имеется три регистра: DDRx, PORTx, PINx (где х – это буква A, B, C, …).
DDRx – это регистр направления данных. Он определяет, как сконфигурирован вывод (линия) порта – как вход или выход. Если в определенный разряд этого регистра записать “1”, то соответствующий вывод (линия) порта будет работать как выход. Если же в определенном разряде регистра DDRx записать “0”, то соответствующий вывод (линия) порта будет работать как вход.
PORTx – выходной регистр данных порта. В разрядах этого регистра записываются те значения, которые нужно получить на выводах (линиях) порта, при условии, что эти выводы сконфигурированы как выходы.
PINx – входной регистр данных порта. Этот регистр содержит логические значения, которые в данный момент присутствуют на выводах порта (ножках микросхемы), причем эти выводы должны быть сконфигурированы как входы.
Регистры DDRx и PORTx доступны как для записи, так и для чтения, а регистр PINx – только для чтения.
Пример конфигурирования (настройки на ввод или вывод) выводов портов.
DDRA = 0xFF; // настроить все линии порта А на вывод (как выходы)
DDRB = 0x00; // настроить все линии порта В на ввод (как входы)
DDRC = 0xF0; // настроить младшие четыре разряда (младшую тетраду)
// выводов порта С на ввод, остальные – на вывод
Если линии портов сконфигурированы, то можно выполнять чтение или запись данных через них, т.е. выполнять ввод данных из порта или вывод данных в порт.
PORTA = 0xFF; // вывести все “1” на линии порта А
// (вывести в порт А)
PORTA = PINB; // считать данные со входов порта В и записать их на
// линии порта А (вывести в порт А)
Допустим, что необходимо проверить работу программы, которая в бесконечном цикле выводит данные в порт С микроконтроллера ATmega16, а затем вводит информацию с выводов этого порта (непосредственно с ножек микросхемы).
/************************************************************
out_in.c – программа вывода кода в порт С и чтения кода
************************************************************/
void main( )
{
DDRC = 0xFF; // настроить все линии порта С на вывод
while(1)
{
PORTC = 0b00001111; // вывод числа 0x0F в порт С
PINC = PORTC; // чтение состояния выводов порта С
PORTC = 0b11110000; // вывод числа 0xF0 в порт С
PINC = PORTC; / чтение состояния выводов порта С
}
}
