Наибольшее распространение получили два программных способа ожидания установившегося значения:
1) подсчет заданного числа совпадающих значений сигнала;
2) временная задержка.
Суть первого способа состоит в многократном считывании сигнала с контакта. Подсчет удачных опросов, обнаруживших, что контакт устойчиво замкнут, ведется программным счетчиком. Если после серии удачных опросов встречается неудачный, то подсчет начинается сначала. Контакт считается устойчиво замкнутым, если последовало N удачных опросов. Число N подбирается экспериментально для каждого типа используемых датчиков и лежит в пределах от 5 до 50.
Пример программного подавления дребезга контакта приводится для случая, когда датчик импульсного сигнала подключен к входу Т0, счет удачных опросов ведется в регистре R3, N=20:
DBNC: MOV R3, #20 ;инициализация счетчика
DBNC1: JB P3.4, DBNC;если контакт разомкнут, то
;начать отсчёт опросов сначала
DJNZ R3, DBNC1 ;повторять, пока R3 не станет равным 0
|