- •Ответы по дисциплине мпт (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. Общие принципы и основные этапы разработки микроконтроллерных систем. Разработка и отладка аппаратных средств и программного обеспечения. Методы совместной отладки аппаратных и программных средств
15. Операторы цикла языка mikroC: for, while, do … while. Выполняемые функции, примеры использования в программах.
Оператор цикла for
Цикл for является универсальным, поскольку компоненты цикла могут быть произвольными выражениями. Общая форма записи оператора цикла for имеет вид:
for(инициализация; условие; увеличение/уменьшение переменной цикла)
{
тело цикла;
}
Оператор for имеет три компонента:
Инициализация – это место, где обычно находится оператор присваивания, используемый для установки начального значения переменной цикла.
Условие – это место, где находится выражение, определяющее условие работы цикла.
Увеличение/уменьшение переменной цикла – это место, где определяется характер изменения переменной цикла на каждой итерации, т.е. повторения цикла.
Тело цикла – это оператор или группа операторов, которые будут выполняться в цикле. Цикл for работает до тех пор, пока условие истинно. Когда условие становится ложным, выполнение программы продолжается с оператора, следующего за циклом for.
Например, в следующей программе осуществляется вывод чисел от 1 до 100 включительно в порт C микроконтроллера:
void main( )
{
char x;
for( x = 1; x <= 100; x++)
PORTC = x;
}
В программе переменная х изначально установлена в 1. Поскольку х меньше 100, выполняется оператор PORTC = x, который выводит х в порт C. После этого х увеличивается на 1 и проверяется условие: по-прежнему ли х меньше либо равен 100. Данный процесс продолжается до тех пор, пока х не станет больше 100, и в этот момент цикл прервется. В данном примере х является переменной цикла, которая изменяется и проверяется на каждой итерации цикла.
Вариации цикла for. Важной особенностью цикла for является то, что все три компонента цикла являются необязательными.
Например, если оставить все три компонента пустыми, то получим бесконечный цикл:
for( ; ; );
Кроме того, тело цикла может быть пустым, т.е. не содержать операторов. Такие циклы могут использоваться для получения временных задержек при выполнении программы:
for( i = 0; i < 10000; i++);
Оператор цикла while
Цикл while является разновидностью условного цикла, повторяющегося до тех пор, пока условие выполнено. Таким образом, цикл while может не выполняться ни разу, если условие проверки изначально ложно. Форма записи оператора цикла while имеет вид:
while( условие )
{
блок операторов;
}
Пример. Следующий цикл выводит в порт C числа от 1 до 100:
int x = 1;
while( x < = 100 )
{
PORTC = x;
x++;
}
Оператор цикла do…while
В цикле do… while условие повторения проверяется после каждого прохождения тела цикла. Следовательно, цикл do… while выполняется, по крайней мере, один раз.
Форма записи цикла do… while имеет вид:
do
{
блок операторов;
}
while( условие);
Пример. Следующий цикл выводит в порт C значения квадратов чисел от 2 до 10:
int x = 2;
do
{
PORTC = x * x;
x++;
}
while( x < = 10);
