Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 2. Переходим от цифровой техники к микропроцессору и микроконтроллеру 63 грамма встретит соответствующую команду. В качестве условий перехода может выступать одно из следующих логических выражений: ♦ величина А равна величине В; ♦ величина А не равна величине В; ♦ величина А меньше величины В; ♦ величина А больше величины В; ♦ величина А меньше или равна величине В; ♦ величина А больше или равна величине В. В качестве величин для сравнения может выступать содержимое любых внутренних регистров процессора, содержимое любых ячеек памяти или просто константы. Пример. Рассмотрим пример применения условного и безусловного переходов. Для наглядности изобразим цепочку команд в программной памяти в виде последовательности графических элементов (см. рис. 2.2). Ход выполнения программы показан при помощи стрелок. Квадратиками обозначены обычные команды (команды перемещения и команды пре ­ образования данных). Кружочек с вопросом — это команда условного перехода. Скругленный элементе восклицательным знаком — это безусловный переход. Такая программа имеет две ветви. В случае, если условие есть ложь, выполняется ветвь номер 1. В случае, если условие — истина, выполняется ветвь номер 2. Рис. 2.2. Работа операторов условного и безусловного переходов Допустим, что условный переход производит сравнение кода нажатой клавиши с некоторой константой. Тогда действие, выполняемое услов ­ ным оператором, можно записать так: «Если код нажатой клавиши равен О, перейти к выполнению ветви номер 2». Соответственно, в случае невы ­ полнения условия (например, считанное число равно 1), программа про ­ должит свою работу в обычном режиме и перейдет, таким образом, к выполнению ветви номер 1. В конце ветви номер 1 стоит оператор безусловного перехода. Он слу ­ жит для того, чтобы программа не начала выполнять ветвь номер 2 сразу после выполнения ветви номер 1. В данном случае выполнение перехода обязательно и никакого условия не требуется.

RkJQdWJsaXNoZXIy MTExODQxMg==