Проектирование средств контроля и диагностики с элементами высокой интеграции. Голубков В.А - 15 стр.

UptoLike

13
состояние кнопки. В случае если она нажата, после задержки 50мс
производится повторный опрос (50 мс. соответствуют приближенно 409 циклам
при тактовой частоте 32768 Гц). Если состояние клавиши не изменилось, то ее
считают нажатой.
Схема лабораторной установки представлена на рис. 1. Подключение
выводов VDD, VSS, MCLR, OSC1 и OSC2 аналогично лабораторной работе
2. Кнопки соединены с выводами RB4, RB5, RB6, RB7. Остальные выводы
порта не используются в данной работе.
Рассмотрим работу кнопки. Конфигурируем вывод порта В на вывод
данных. Устанавливаем на выводе уровень логической единицы. При отжатой в
исходном состоянии кнопки на выводе RB4 установлен уровень логической
единицы и при считывании порта определяется 1. При нажатии кнопки вывода
RB4 оказывается соединенным с общим проводом, имеющим
нулевой
потенциал. На RB4 появляется логический ноль и при считывании порта в 4-м
разряде определяется 0.
В задачу контроллера входит опрос кнопок.
Для опроса кнопок необходимо настроить выводы RB4, RB5, RB6, RB7
на вывод. Для этого используется регистр TRISB, имеющий структуру:
7 6 5 4 3 2 1 0
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Назначение его битов аналогично назначению битов регистра TRISA. Для
проверки значения бита порта B (регистр PORTB) можно использовать
команды:
BTFSS f, b
BTFSC f, b
Команда BTFSC проверяет, равен ли нулю бит с номером b ячейки
памяти (регистра) с адресом f. Если этот бит равен нулю, то вместо следующей
команды выполняется команда NOP. Команда BTFSS отличается тем, что
проверяет бит на равенство
единице. С помощью этих команд можно
организовать условный оператор.
Иногда небольшой фрагмент программы, встречающийся несколько раз и
отличающийся только обрабатываемыми данными, целесообразно представить
в виде макроопределения (макроса). Его формат:
<имя_макроса> MACRO параметр1, параметр2, …