- •Ответы по дисциплине мпт (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. Общие принципы и основные этапы разработки микроконтроллерных систем. Разработка и отладка аппаратных средств и программного обеспечения. Методы совместной отладки аппаратных и программных средств
11. Арифметические операции в языке mikroC. Виды операций, примеры их использования в программах.
Язык mikroC включает стандартный набор арифметических операций, обозначаемых значками: сложение “ + ”, вычитание “ - “, умножение “ * ”, деление “ / “, которые не требуют особого пояснения. Специфичными для mikroC являются операции определения остатка от деления, а также инкремента и декремента.
Операцию определения остатка от деления, обозначаемую значком “ % “, поясняет следующий пример:
int a = 5, b = 2, c;
c = a % b; // c = 1 – остаток от деления 5 / 2
c = b % a; // c = 2
Следует отметить, что операция определения остатка от деления применима только к целым числам.
Операции инкремента (обозначается как “ ++ “) и декремента (обозначается как “-- “) могут применяться только к переменным. Существуют две формы их записи: префиксная, когда операнд располагается справа от знака операции (например, ++i, --j), и постфиксная, когда операнд располагается слева от знака операции (i++, j--).
В префиксной форме (для инкремента) сначала выполняется увеличение операнда на 1, и увеличенное значение используется в выражении. В постфиксной форме (для инкремента) сначала используется в выражении значение операнда и только после этого его значение увеличивается на 1. Например:
int a = 0, b = 1, c;
c = a++; // c = 0, а = 1
c = ++a; // c = 2, a = 2
c = ++b; // c = 2, b = 2
Рассмотрим программу arifm.c, в которой будут использоваться некоторые арифметические операции.
/***************************************************************
arifm.c –программа для исследования арифметических операций
****************************************************************/
int i, k = 6, n, m ; // объявления переменных
void main( )
{
i = 10 * (k++); // i = 60 , k = 7
k--; // k = 6
i = 10 * (++k); // i = 70 , k = 7
k--; // k = 6
n = i / k; // n = 11
m = i % k; // m = 4
}
Операция присваивания
Операция присваивания в языке Си обозначается как “=”. Обычно она используется в виде:
переменная = выражение;
При выполнении операции присваивания переменная получает значение выражения. Выражение может быть одиночной константой или сложной комбинацией переменных, операторов и констант. Например:
x = 10;
x = x + y;
x = x + y + 50;
При программировании часто используются операторы вида:
x = x + 4;
x = x – y; и т.п.
В этих операторах переменная, которой присваивается результат выражения, является также первым операндом. Для выполнения подобных операций язык mikroC предлагает составные операторы присваивания, которые объединяют простые арифметические операции с присваиванием. В таблице 1 приведены арифметические составные операторы присваивания.
Таблица 1
Арифметические составные операторы присваивания
Оператор присваивания |
Длинная форма |
Пример |
x += y; |
x = x + y; |
x += 12; |
x -= y; |
x = x – y; |
x -= 34 + y; |
x *= y; |
x = x * y; |
x *= 10; |
x /= y; |
x = x / y; |
x /= 5; |
x %= y; |
x = x % y; |
x %=2; |
Примечание. В составном операторе присваивания между знаком арифметической операции (+, -, *, /, %) и знаком присваивания “=” пробел не допускается!
В качестве примера рассмотрим программу arifm_2.c, в которой используются арифметические составные операторы присваивания для целых чисел и чисел с плавающей точкой.
/**********************************************************
arifm_2.c – вторая программа для исследования
арифметических операций
********************************************************* */
int i = 5, j = 6;
float x = 2.5, y = 4.6;
void main( )
{
i += j; // i = 11
j -= 2; // j = 4
i *= 4; // i = 44
j /= 3; // j = 1
i %= 2; // i = 0
i++; // i = 1
j--; // j = 0
x += y; // x = 7.1
y -= 4.0; // y = 0.6
x *= 4.0; // x = 28.4
y /= 3.0; // y = 0.2
}
