
- •1.Программирование типовых функций управления: опрос двоичного датчика, ожидание события, дребезг, формирование временной задержки, вывод управляющих сигналов
- •Борьба с дребезгом контактов
- •2. Формирование временных задержек с помощью таймеров
- •3.Виды клавиатур
- •Кодирующие клавиатуры.
- •Табличный метод.
- •Метод сдвигов унитарного кода.
- •4.Подключение светодиодов и светод. Семисегментных индикаторов
- •5. Статический метод управления линейным дисплеем.
- •1. С использованием дешифраторов семисегментного кода.
- •2. С использованием программной перекодировки:
- •6. ДинамичесКий метод управления линейным дисплеем.
- •7. Виды ацп, схемы подключения и программы опроса ацп
- •Интерфейс быстрых ацп с мпс
- •Интерфейс медленных ацп с мпс
- •8) Микроконтроллеры pic18: общая характеристика, особенности архитектуры и системы команд.
- •9. Язык с18 для pic-микроконтроллеров: структура программы, директивы препроцессора, ключевые слова.
- •10. Представление информации в языке Си
- •11. Операции и выражения в Си
- •12.Операторы управления вычислительным процессом
- •13. Функции в языке с18: определение функции, прототип, библиотечные функции.
- •14. Функции формирования временных задержек в языке с18
- •15. Программирование на языке с18 типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя.
- •16. Подключение жк-дисплея к pic-микроконтроллеру: структура жк-дисплея, функции управления дисплеем.
- •2.2. Библиотека функций управления жк-дисплеем
- •17. Аналого-цифровое преобразование в pic-микроконтроллерах: структура внутреннего ацп, функции управления ацп на языке с18.
- •18. Реализация широтно-импульсной модуляции в pic-микроконтроллерах: параметры шим, функции управления шим на языке с18.
- •19. Прерывания в pic18: источники прерываний, управляющие биты, программирование прерываний на языке с18.
- •24) Интегрированная среда CodeVisionAvr: состав и назначение, структура программы на языке Си в cvavr, управление портами и отдельными битами.
- •25) Программирование в CodeVisionAvr типовых функций управления и контроля: вывод информации в порт, управление отдельными разрядами портов, опрос переключателя, реализация временных задержек.
- •26. Интерфейс can: общее описание и основные параметры, виды и форматы сообщений в can.
- •27. Интерфейс can: арбитраж, обнаружение и обработка ошибок, скорость передачи и длина сети.
- •28. Понятия: микроконтроллерная система (мкс) и микроконтроллерное устройство (мку). Основные этапы разработки мкс.
- •29. Разработка и автономная отладка аппаратных и программных средств микроконтроллерных систем.
- •30. Методы и средства совместной отладки аппаратных и программных средств микроконтроллерных систем.
11. Операции и выражения в Си
Выражения в языке Си – это последовательность операндов, операций и символов-разделителей. Операнды – это переменные, константы либо другие выражения. По числу операндов, участвующих в операции, различают две группы операций: унарные (один операнд) и бинарные (два операнда). По типу выполняемой операции различают арифметические, поразрядные логические, сдвига, логические, операции отношения и др.
Арифметические операции. Язык Си включает стандартный набор арифметических операций сложения (+), вычитания (-), умножения (*) и деления (/), не требующих особого пояснения. Специфичными для Си являются операции определения остатка (%), инкремента (++) и декремента (--).
Поразрядные логические операции. В Си используются:
& - поразрядное логическое И (AND);
| - поразрядное логическое ИЛИ (OR);
^ - поразрядное исключающее ИЛИ (XOR);
~ - поразрядная инверсия.
Операции сдвига. Си имеет две операции поразрядного сдвига:
<< - сдвиг операнда влево на число двоичных разрядов, указанное справа от знака операции;
>> - сдвиг операнда вправо на число двоичных разрядов, указанное справа от знака операции.
Логические операции и операции отношения. Эти операции используются для формирования логических выражений, имеющих только два значения: 1, если логическое выражение ИСТИННО (по англ. TRUE), и 0, если логическое выражение ЛОЖНО (по англ. FALSE). Следует отметить, что в языке Си нет логических данных (boolean).
Операции отношения обозначаются следующим образом:
== равно; != не равно; < меньше; > больше; <= меньше или равно; >= больше или равно.
Логические операции обозначаются:
&& - логическое И;
| | - логическое ИЛИ;
! – логическое НЕ.
12.Операторы управления вычислительным процессом
Операторы управления вычислительным процессом позволяют выполнять ветвление, циклическое повторение одного или нескольких операторов, передачу управления в нужное место кода программы.
Операторы ветвления выбирают в программе из группы альтернатив возможное продолжение вычислительного процесса. Выбор выполняется исходя из заданного выражения. В Си наиболее часто используется оператор ветвления if … else.
Оператор if имеет следующую общую форму записи:
if (выражение)
оператор _1;
else
оператор_2;
где часть else может и отсутствовать. Сначала вычисляется «выражение» в скобках, и если оно истинно (отлично от нуля), то выполняется оператор_1. Если «выражение» ложно (равно нулю) и else-ветвь присутствует, то выполняется оператор_2, а оперетор_1 пропускается. Если на месте условно выполняемых операторов должна располагаться группа из нескольких операторов, то он заключаются в фигурные скобки. Часто «выражение» представляет собой условие, заданное с помощью операций отношения или логических.
Операторы цикла while и do…while. Эти операторы предназначены для организации циклических процессов при выполнении некоторых условий. Наиболее универсальным является оператор while (пока), который организует цикл с предусловием. Он имеет следующий формат:
while(условие)
оператор;
Условие понимается в широком смысле и может быть произвольным выражением. Оператор while производит выполнение оператора, следующего после условия до тех пор, пока это условие истинно. Если это условие не истинно (ложно) с самого начала или становится ложным, заданный оператор не выполняется и управление передается первому оператору, следующему за оператором цикла. Если повторяемая часть оператора (тело цикла) содержит не один, а несколько операторов, то вся повторяемая группа должна быть заключена в фигурные скобки:
while(условие)
{
оператор_1;
оператор_2;
…………
оператор_n;
}
Для описания условия в операторе while обычно используются операции отношения и логические.
В языке Си имеется возможность организовывать цикл с постусловием посредством оператора do … while. В общем виде этот оператор можно записать следующим образом:
do
оператор;
while(условие);
Выполняется «оператор», а затем проверяется «условие». Если оно истинно, то снова выполняется «оператор» и т.д. Если «условие» становится ложным, циклический процесс заканчивается. Для описания «условия» обычно используются операции отношения и логические.
Анализ рассмотренных примеров показывает, что разница между циклами while и do … while в том, что входящий в их состав оператор выполняется обязательно хотя бы один раз в случае использования цикла do … while.
Оператор цикла for. Этот оператор используется, когда известно точное число повторов, которое нужно выполнить. В общем виде этот оператор можно записать следующим образом:
for(выражение_1; выражение_2; выражение_3) оператор;
В операторе for определяются сразу три составляющие:
начальное значение параметра цикла («выражение_1»);
условие окончания цикла («выражение_2»);
закон изменения параметра цикла («выражение_3»)