Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
214 Микроконтроллеры AVR от азов программирования... Схема И в этом примере мы воспользуемся уже знакомой нам схемой, изо браженной на рис. 5.2. Алгоритм программы Алгоритм такой программы тоже состоит из алгоритма начальной установки и алгоритма основного цикла. Начальная установка в данном случае не отличается от начальной установки всех предыдущих примеров. Алгоритм основного цикла программы можно описать следующим образом. 1. Произвести чтение порта PD. 2. Проверить младший разряд полученного числа (если его значение равно нулю, включить алгоритм мигания). 3. Если значение младшего разряда PD равно единице, выключить алго ритм мигания и потушить светодиод. 4. Перейти к началу основного цикла (пункті). Для того, чтобы выполнить все предыдущие пункты, нам нужно опи сать алгоритм мигания светодиода. Он будет выглядеть следующим образом. 5. Зажечь светодиод. 6. Выдержать паузу. 7. Потушить светодиод. 8. Выдержать паузу. 9. Перейти к началу алгоритма мигания (пункт 1). Программа на Ассемблере Возможный вариант программы приведен в листинге 5.7. Листинг 5.7 ,## Пример 4 ## ;## Мигающий светодиод ## Псевдокоманды управления 1 2 3 4 5 6 . include "tn2313def . inc" list def temp = R16 def loopl = R17 .def loop2 = R18 .def ІоорЗ = R19 Присоединение файла описаний Включение листинга Определение главного рабочего регистра Определение первого регистра организации цикла Определение второго регистра организации цикла Определение третьего регистра организации цикла 7 8 ------------------------------ Начало программного кода cseg ; Выбор сегмента программного кода .огд 0 ; Установка текущего адреса на ноль ------------------------------------------------- Инициализация стека 9 10 ldi temp, RAMEND out SPL, temp Выбор адреса вершины стека Запись его в регистр стека
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==