Все программные методы борьбы с дребезгом построены по принципу "не верь глазам своим", т.е. первоначально зафиксированно изменение в состоянии клавиатуры должно быть перепроверено. Наиболее просто такая перепроверка осуществляется опросом клавиатуры через время Тзад заведомо большее чем Тдр от момента фиксации изменения в состоянии клавиатуры. Так в первом случае (диаграмма "а"), если в момент времени t2 перепроверить состояние клавиатуры, то она окажется выключенной, что позволит отвергнуть предварительное заключение о ее нажатии, сделанное в момент времени t0. Перепроверки состояния клавиатуры, сделанные в моменты времени t2, t5 во втором случае (диаграмм "б"), подтвердят соответственно нажатие и отжатие клавиши, что предотвратит ввод ложного дополнительного символа в МПС при однократном нажатии клавиши. Алгоритм поддержки клавиатуры, построенный по такому методу, приведен на рис. П8.2.
Рис. П8.2. Алгоритм функционирования программы поддержки клавиатуры с подавлением дребезга
В блоках 1, 5, 9, 12 выполняется полное сканирование клавиатуры, подпрограмму реализации которого можно взять из ПРИЛОЖЕНИЯ 7. Блок 2 проверяет нажатие клавиши. Если клавиша не нажата, то следует переход на блок 1 для повторных сканирований клавиатуры. В противном случае значение скан-кода нажатой клавиши сохраняется в переменной Save (см. блок 3). После этого выполняется задержка на время Тзад (см. блок 4) с последующим полным сканированием клавиатуры (см. блок 5). Если клавиша окажется не нажатой (такая проверка осуществляется блоком 6), то следует признать, что, зафиксированное блоком 2, нажатие клавиши оказалось ложным и перейти в начало алгоритма. В противном случае в блоке 7 необходмио сравнить первоначальное значение скан-кода, сохраненное в переменной Save, с полученным в ходе второй проверки. Не совпадение этих кодов ведет к переходу в начало алгоритма, а совпадение - к констатации факта нажатой клавиши с последующей реакцией. Реакция на нажатую клавишу (см. блок 8) заключается в выводе визуального образа нажатой клавиши в крайнее правое знакоместо дисплея со сдвигом предыдущей информации на нем на один разряд влево. Именно так работает УОУ при штатной работе.
Далее в блоках 9...12 определяется отжатие клавиши. Причем, делается это дважды - в блоках 10 и 13. Между этими последовательными проверками также делается задержка на время Тзад. Поскольку задержка в программе выполняется дважды, то целесообразно эти части программы оформить в виде подпрограммы, которую можно вызывать в нужных местах. Ниже приводится один из возможных вариантов такой подпрограммы:
Zaderjka equ 3fffh
Delay:
push h
lxi h, Zaderjka
Loop:
dcx h
mov a, l
ora h
jnz Loop
pop h
ret
Значение Zaderjka определяет Тзад и подбирается экспериментально. Более сложные методы борьбы с дребезгом [7] требуют для принятия решения о нажатой клавише N - кратного последовательного повторения скан-кода нажатой клавиши или N - кратного повторения признака не нажатой клавиши при анализе размыкания ключа.
ПРИЛОЖЕНИЕ 9
Ввод частотных сигналов в МПС
П9.1. Общие положения
Частотным сигналом будем называть последовательность прямоугольных импульсов, частота следования Fx которых пропорцинальна измеряемому параметру. Такие последовательности могут возникать, например, в измерительных системах, подобных представленной на рис. П9.1.
Рис. П9.1. Структурная схема измерительной системы
На рис. П9.1 сделаны следующие обозначения:
ППИ - первичный преобразователь информации (датчик) измеряемого параметра Х;
Ux (Ix) - выходное напряжение (ток) датчика;
ПНЧ (ПТЧ) - преобразователь напряжение (ток) - частота;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.