Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 5. Переходим непосредственно к разработке устройств и программ 247 Так же, как и в предыдущих примерах, признаком достижения конеч ной позиции служит появление единицы в флаге переноса (вспомните табл. 5.2). Проверка флага переноса производится в строке 59. Если значение флага равно нулю, строка 60 программы пропускается. Если же значение флага окажется равным единице, то команда в строке 60 записывает в регистр rab новое значение. После записи этого значения единица ока жется в самом старшем разряде. Таким образом организуется движение единицы по кругу (дойдя до крайней правой позиции, единица появля ется слева). В строке 61 процедура сдвига вправо завершается. Управление пере дается по метке рЗ . То есть к процедуре вывода сдвинутого значения в порт. Процедура сдвига влево (строки 62 — 64) работает аналогично пред ыдущей процедуре. Отличие состоит лишь в том, что здесь применяется другая команда сдвига (строка 62). Кроме того, при достижении крайней позиции регистру присваивается другое начальное значение. Теперь еди ница окажется в самом младшем разряде. Таким образом организуется кольцевое движение, но в другую сторону. В строке 65 начинается процедура вывода содержимого rab в порт РВ. Процедура занимает строки 65 — 67. Точно такая же процедура применя лась и в двух предыдущих версиях программы бегущих огней. В строках 68 — 70 происходит подготовка к завершению процедуры обработки прерывания. Сначала содержимое rab сохраняется в буфере ОЗУ (строка 68). Затем в строках 69, 70 восстанавливаются значения регистров temp и rab. И, наконец, в строке 71 процедура обработки пре рывания завершается. Программа на языке СИ Как мы убедились на примере Ассемблера, для нашей новой задачи потребуются довольно значительные изменения программы. При разра ботке программы средствами системы CodeVisionAVR в подобной ситу ации целесообразнее воспользоваться мастером, при помощи которого удобно создать новую заготовку программы. Для создания новой заготовки программы удобно восстановить настройки из созданного ранее примера, подкорректировать их в соот ветствии с новыми требованиями и записать под новым именем. Для этого зайдем в программу CodeVisionAVR и запустим мастер. Для запу ска мастера достаточно нажать на панели инструментов кнопку j^| . После запуска мастера все его управляющие элементы будут нахо диться в исходном состоянии. То есть иметь значения по умолчанию.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==