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

Шаг 5. Переходим непосредственно к разработке устройств и программ 231 тании данных чисел возникает перенос в старший разряд (содержимое регистра меньше константы), и сбрасывается, если нет переноса. Флаг Z (нулевой результат) устанавливается при равенстве содержимого РОН и константы и сбрасывается в случае их неравенства. Все остальные флаги устанавливаются в соответствии со своим назначением. Подробнее об этом вы можете узнать из приложения 1. После того, как значения фла ­ гов определены, они могут быть использованы различными условными операторами. В строке 44 программы (листинг 5.11) оператор срі произ ­ водит сравнение содержимого регистра temp с числом OxDO. brio _________________________________________________________ Переход по условию «меньше». Имеется в виду, что в предыдущей команде, в результате сравнения (или вычитания) двух операндов, пер ­ вый операнд оказался меньше, чем второй. Для проверки этого условия оператор использует флаг переноса С. Переход происходит лишь в том случае, если С = 1. В строке 45 программы условный переход использу ­ ется для того, чтобы передать управление на строку с меткой wt 1 в том случае, если по результатам предыдущего сравнения (строка 44) оказа ­ лось, что содержимое регистра temp меньше, чем число OxDO. Описание программы (листинг 5.11) Как уже говорилось, данная программа является модификацией про ­ граммы из предыдущего примера (см. листинг 5.9). Основное отли ­ чие новой программы от старой — полная переработка подпрограммы задержки. В связи с тем, что новая подпрограмма задержки использует таймер, для ее нормальной работы пришлось также доработать модуль инициализации основной программы. Листинг 5.11 ,## Пример 6 ## "Бегущие огни" ## с использованием таймера ## ; -------- --------------------------------------- Псевдокоманды управления . include "tn2313def . inc" ; Присоединение файла описаний . list ; Включение листинга .def temp = R16 ; Определение главного рабочего регистра def rab = R20 ; Определение рабочего регистра для команд сдвига equ kdel = 780 . -------- --------------------------------------- Начало программного кода .cseg , Выбор сегмента программного кода . org 0 ; Установка текущего адреса на ноль

RkJQdWJsaXNoZXIy MTExODQxMg==