Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 5. Переходим непосредственно к разработке устройств и программ 301 sbic _________________________________________________________ Оператор типа «проверить — пропустить». Общая форма записи команды: sbic А,п, где А — номер регистра ввода-вывода; п — номер разряда. Вместо номера регистра и номера разряда может использоваться имя регистра и имя разряда. Обычно используются стандартные имена от фирмы Atmel. Команда проверяет содержимое разряда номер п регистра А. Если разряд сброшен, то очередная команда программы не выполняется. Пример использования данной команды — строка 159 нашей программы (см. листинг 5.19). В этой строке команда sbic проверяет бит eewe регистра EECR. Если этот бит сброшен, то команда в строке 160 не выполняется, а управление передается к строке 161. Если бит установлен, то выполняется команда в строке 160. Команда sbic имеет одно ограничение. Она рабо тает с регистрами ввода-вывода с адресами в диапазоне от 0 до 31. cbr _________________________________________________________ Сброс разрядов РОН. Данный оператор предназначен для одновре менного сброса нескольких разрядов. Оператор имеет два параметра. Первый параметр — это имя регистра общего назначения, разряды которого должны быть сброшены. Второй параметр — это маска сброса разрядов. В данном случае маска — это двоичное число, у которого в единицу установлены те разряды, которые должны быть сброшены. Например, в строке 129 программы (листинг 5.19) сбрасываются раз ряды регистра ХН. Значение маски равно 0xF8. В двоичном виде число 0хҒ8 выглядит так: Obi 1111000. Поэтому в результате действия команды cbr в строке 129 пять старших разрядов числа, находящегося в регистре ХН, будут сброшены в ноль, а три младшие останутся без изменений. Это альтернативный способ наложения маски. Описание программы (листинг 5.19) Строки 1, 2 программы, я думаю, вопросов не вызывают. В строках 3 — 11 происходит описание всех используемых в программе переменных. Назначение каждой из этих переменных мы рассмотрим в ходе описания принципов работы программы. Далее, в строках 12 — 14 происходит опи сание констант. Каждая из трех констант определяет один из параметров нашего устройства. Остановимся на этом подробнее. Константа bsize (строка 12) определяет размер буфера для хра нения кодовой комбинации. Этот размер выбран равным 60 ячейкам. Учитывая, что в буфер будут записываться коды состояния клавиатуры,
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==