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

UptoLike

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

51
WAITOP:MOV A,#0FFH
WAIT :CJNE A,P2,WAIT ;ЕСЛИ КЛАВИША НАЖАТА , ТО ЖДАТЬ
Процедура WAITOP в том виде, в котором она приведена выше, может быть
использована только в системах, защищённых от «залипания» контактов.
Обнаружить «залипание» контакта можно путём подсчёта «неудачных» опросов.
Если число «неудачных» опросов превысило N и клавиша не была освобождена, выдаётся
сообщение оператору о «
залипании» контактов. Число N (и соответственно разрядность
счётчика ) определяется исходя из механических свойств клавиатуры.
Идентификация нажатой клавиши. Каждой клавише клавиатуры должен быть
поставлен в соответствие код ( её вес ), являющийся функцией номеров линий сканирования
(С) и линии возврата (В), на пересечении которых нажата клавиша. Процедура
идентификации нажатой клавиши KEYW может быть совмещена
с процедурой сканирования
( как в рассмотренном выше примере ). Тогда после выхода из процедура SCAN в регистре
SCANCODE будет размещён код нажатой клавиши.
Для сложных клавиатур SCANCODE не всегда удаётся совместить с истинным
весом клавиши. В этом случае необходима дополнительная перекодировка, которая
выполняется табличным способом с использованием SCANCODE в качестве указателя.
Процедура KEYW может
оформлена и как самостоятельная. В этом случае наиболее
распространённый способ вычисления веса нажатой клавиши - аналитический в
соответствии с выражением W= n x C + B, где n - количество линий возврата. Номера
активных линий сканирования и возврата представлены в унитарном коде в виде байта
сканирования и байта возврата. Поэтому процедура KEYW реализуется на основе процедур
преобразования унитарного кода в двоичный
и вычисления W.
Кроме аналитического существует табличный способ определения кода нажатой
клавиши.
Оформление процедуры ввода. Процедура ввода кода клавиши KEYBRD
оформляется в виде линейной последовательности рассмотренных выше частных процедур :
KEYBRD: ;ВЕРСИЯ ДЛЯ МК-48 И МК-51
SCAN: . . . ;СКАНИРОВАНИЕ КЛАВИАТУРЫ
. . .
DBNC: CALL DELAY ;УСТРАНЕНИЕ ДРЕБЕЗГА ПРИ НАЖАТИИ
WAITOP: . . . ;ОЖИДАНИЕ ОСВОБОЖДЕНИЯ КЛАВИШИ