Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 5. Переходим непосредственно к разработке устройств и программ 201 сначала читает значение бита PD0, а затем проверяет его на равенство единице. Если PD0 не равно единице (кнопка нажата), то цикл ожидания повторяется. Если PD0 равно единице (кнопка отпущена) то цикл ожида ния прерывается, и управление перейдет на начало основного цикла. Новый алгоритм вполне работоспособен и может стать основой реальной программы. Попробуем составить такую программу. Программа на Ассемблере Текст возможного варианта программы для второго примера приве ден в листинге 5.3. В программе применены следующие новые для нас команды: sbrc _________________________________________________________ Команда из группы условных переходов. Вызывает пропуск следующей за ней команды, если соответствующий разряд РОН сброшен. У команды два параметра. Первый параметр — имя регистра общего назначения, второй параметр — номер проверяемого бита. В строке 17 программы (листинг 5.3) подобная команда проверяет нулевой разряд регистра temp. Если этот разряд равен нулю, то команда, записанная в строке 18, пропу скается, и выполняется команда из строки 19. Если проверяемый бит равен единице, то пропуска не происходит, и выполняется команда в строке 18. sbrs _________________________________________________________ Команда, обратная предыдущей. Пропускает следующую команду, если соответствующий разряд РОН установлен в единицу. Имеет те же два параметра, что и команда sbrc. В строке 26 (листинг 5.3) подобная команда проверяет значение младшего разряда регистра temp. Если про веряемый бит равен единице, то команда в строке 27 пропускается, и выполняется команда в строке 28. Если проверяемый разряд равен нулю, то выполняется строка 27. sbi _________________________________________________________ Установка в единицу одного из разрядов порта ввода-вывода. Команда имеет два параметра: имя порта и номер устанавливаемого разряда. В строке 22 (листинг 5.3) подобная команда выполняет установку млад шего разряда порта PORTB. сЫ _________________________________________________________ Сброс в ноль одного из разрядов порта ввода-вывода. Имеет такие же два параметра, как и предыдущая команда. В строке 24 (листинг 5.3) подобная команда сбрасывает младший разряд порта PORTB в ноль.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==