Белов, А.В. Микроконтроллеры 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 ; Установка текущего адреса на ноль
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==