Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
62 Микроконтроллеры AVR от азов программирования... Любой бит любой ячейки памяти всегда равен либо нулю, либо единице. То есть всегда содержит какое-либо число. Поэтому команды перемещения считывают байт данных из ячейки-источника и записывают их в ячейку- приемник. При этом в ячейке-источнике данные не изменяются. Ко второй группе относятся команды преобразования данных. Именно в эту группу входят команды сложения, вычитания, логических преобразований, сдвига разрядов и т. д. К третьей группе относятся команды передачи управления. Вот об этом классе команд я хотел бы поговорить подробнее. Сложно пред ставить себе программу, состоящую лишь из одной последовательной цепочки команд. Подавляющее число алгоритмов требуют разветвления программы. Это значит, что программа должна уметь выполнять разные последовательности действий в зависимости от некоторого условия. Пример. Допустим, что наше микропроцессорное устройство имеет кнопки управления. При нажатии каждой кнопки должно выполняться свое определенное действие. Например, при нажатии одной кнопки исполнительный механизм должен повернуться влево. При нажа тии другой — повернуться вправо и т. п. Для того, чтобы это было возможно, программа периодически считывает состояние кнопок. Затем программа должна оценить их состояние. Если нажата первая кнопка, выполняется некая последовательность команд, выдающая на соответствующий порт код, приводящий к включению двигателя в прямом направлении. Если нажата вторая кнопка, то выполняется другая последовательность команд, выдающая в тот же порт совсем другой код. Этот код должен вызвать включение двигателя в реверс ном направлении. Очевидно, что для реализации данного алгоритма придется прервать последовательное выполнение команд. Для того, чтобы программа имела возможность менять алгоритм своей работы в зависимости от какого- либо условия, в системе команд любого процессора обязательно имеются команды передачи управления. К командам передачи управления отно сятся следующие виды команд: команды условного перехода; команды безусловного перехода; команды перехода к подпрограмме; команды организации цикла. Рассмотрим все эти виды команд по порядку. Команды условного и безусловного перехода Оба этих вида команд предназначены для того, чтобы прерывать после довательное выполнение программы и вызывать так называемый переход. Причем условный переход происходит только при соблюдении какого- либо условия. Безусловный переход выполняется всегда, как только про
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==