ВУЗ:
Составители:
21
Опрос группы импульсных датчиков. Эта процедура состоит из
последовательности действий: ожидания замыкания одного из контактов, устранения
дребезга, ожидания размыкания замкнутого контакта.
Программная реализация процедуры для случая подключения четырех импульсных
датчиков к входам 0-3 порта 1 будет иметь вид
;ВЕРСИЯ ДЛЯ МК48
KBRD: IN A,P1 ;ВВОД КОДА
CPL A ;ИНВЕРСИЯ КОДА
ANL A,#00001111B ;ЕСТЬ ЗАМКНУТЫЙ КОНТАКТ?
JZ KBRD ;ЕСЛИ НИ ОДИН КОТАКТ НЕ
;ЗАМКНУТ, ТО ЖДАТЬ
MOV R2,A ;ПЕРЕДАЧА ПРИНЯТОГО КОДА В R2
DBNC: CALL DELAY ;УСТРАНЕНИЕ ДРЕБЕЗГА
WAIT: IN A,P1 ;ВВОД КОДА
CPL A ;ИНВЕРСИЯ КОДА
ANL A,#00001111B ;ЕСТЬ ЗАМКНУТЫЙ КОНТАКТ?
JNZ WAIT ;ЕСЛИ КОНТАКТ ЗАМКНУТ, ТО
;ЖДАТЬ, ИНАЧЕ
EXIT: … ;ВЫХОД ИЗ ПРОЦЕДУРЫ
Анализ состояния контактов осуществляется наложением маски на принятый от
датчиков код. Для датчиков, формирующих “отрицательный” импульс, принятый код удобно
инвертировать.
Для группы импульсных датчиков, представляющих собой клавишный регистр,
процедура должна быть дополнена процедурами идентификации нажатой клавиши и защиты
от одновременного нажатия двух или более клавиш.
Идентификация нажатой клавиши может осуществляться двумя способами: по
таблице или программно. При табличном способе перекодирования в памяти
программ
должна находиться таблица двоичных эквивалентов кодов клавиш.
Программное преобразование унитарного кода, принятого от клавиатуры, в двоичный
может быть выполнено методом сдвигов исходного унитарного кода и подсчетом числа
сдвигов на счетчике до появления первого переноса. Схема алгоритма такой процедуры
приведена на рис. 8, программа для МК48 будет иметь вид:
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »