Локальные системы управления. Конопелько Г.К. - 52 стр.

UptoLike

Составители: 

52
. . .
. . .
DBNC: CALL DELAY ;УСТРАНЕНИЕ ДРЕБЕЗГА КОНТАКТОВ ПРИ
;ОСВОБОЖДЕНИИ КЛАВИШИ
;(МОЖЕТ ОТСУТСТВОВАТЬ)
KEYW: . . . ;ИДЕНТИФИКАЦИЯ НАЖАТОЙ КЛАВИШИ
. . . ;(МОЖЕТ ОТСУТСВОВАТЬ)
Процедура опроса состояния клавиатуры. Выше уже отмечалось, что в МК - системах,
реализующих непрерывное управление, процедуре KEYBRD должна предшествовать
процедура опроса состояния клавиатуры ASK .Пример программной реализации процедуры
ASK, оформленной в виде подпрограммы, приведён ниже
.
Выходной параметр передаётся в основную программу через флаг переноса С, который
устанавливается, если хотя бы одна клавиша нажата:
ВЕРСИЯ ДЛЯ МК - 48
ASK: CLR A ;СБРОС АККУМУЛЯТОРА
CLR C ;СБРОС ФЛАГА ПЕРЕНОСА
OUTL P1,A ;ВЫВОД БАЙТА «ВСЕ НУЛИ» ДЛЯ
;ОДНОВРЕМЕННОГО ОПРОСА ВСЕХ КЛАВИШ
IN A,P2 ;ВВОД БАЙТА ВОЗВРАТА
CPL A ;ИНВЕРСИЯ БАЙТА ВОЗВРАТА
JZ EXIT ;ВЫХОД ЕСЛИ НЕТ НАЖАТОЙ КЛАВИШИ
CPL C ;УСТАНОВКА ФЛАГА ПЕРЕНОСА
EXIT: RET ;ВОЗВРАТ
Подпрограмма производит одновременный опрос всех клавиш. В случае, если хотя
бы одна клавиша нажата (байт возврата - не все единицы), устанавливается флаг переноса,
иначе - сбрасывается.