Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Устранение дребезга контактов



  Рисунок 4.4 – Переходные процессы при дребезге контактов   Рисунок 4.5 – Схема подавления дребезга контактов

При работе МК с датчиками, имеющими механические или электромеханические контакты (кнопки, клавиши, реле и т.п.), возникает явление, называемое дребезгом контактов (рисунок 4.4). Это явление заключается в том, что при замыкании контактов возможно появление отскока контактов, которое приводит к переходному процессу. При этом сигнал с контакта может быть прочитан МК как случайная последовательность нулей и единиц. Подавить это нежелательное явление можно схемотехническими средствами с использованием буферного триггера (рисунок 4.5), но чаще это делается программным путем.

Наибольшее распространение получили два программных способа ожидания установившегося значения:

1) подсчет заданного числа последовательно совпадающих значений сигнала;

2) временная задержка.

Блок-схемы процедур подавления помех от дребезга контактов при вводе сигнала логического 0 показаны на рисунке 4.6.

В первом способе число N подбирается экспериментально для каждого типа используемых датчиков в зависимости от частоты кварцевого резонатора МК и лежит, как правило, в пределах от 5 до 50.

Устранение дребезга контакта путем введения временной задержки заключается в следующем. Программа, обнаружив замыкание контакта, запрещает опрос состояния этого контакта на время, заведомо большее длительности переходного процесса, после чего вновь проверяет наличие замыкания. Если замыкание не подтвердилось, делается вывод о случайной помехе и процесс опроса повторяется. Временная задержка (в пределах 1–10 мс) подбирается экспериментально для каждого типа датчиков. Подробное описание реализации временных задержек приведено в п. 4.3.

а) путем многократного считывания;
б) с использованием временной задержки

Рисунок 4.6 – Блок-схемы процедур подавления дребезга контактов

Примеры программ устранения дребезга контактов первым и вторым способом приведены в листингах 4.6, 4.7 соответственно.

Листинг 4.6 – Программа устранения дребезга контактов путем
многократного считывания

; Пример программного подавления дребезга контакта приводится

; для случая, когда датчик импульсного сигнала подключен к входу

; Р3.4 (Т0), счет «удачных» опросов ведется в регистре RЗ, N=20.

; При замыкании на вход Р3.4 поступает логический 0.

.ORG 0000H ; Адрес начала программы
SETB P3.4 ; Настройка разряда 4 ; порта P 3 на ввод сигнала
BEGIN: NEXT: MOV R3, #20 JB P3.4, BEGIN   DJNZ R3, NEXT ; Инициализация счетчика ; Если контакт разомкнут, ; (Р3.4=«1»), то переход к ; инициализации счётчика ; Иначе декремент ; счётчика и проверка его ; на равенство нулю. Если ; R 3=0, то выход из цикла, ; иначе – переход на опрос ; разряда порта
  ; Подпрограмма обработки ; нажатия кнопки
  JMP BEGIN ;Переход на начало ; программы

Листинг 4.7 – Программа устранения дребезга контактов путем
введения временной задержки

; Программа написана для случая подключения датчика к входу Т0.

; Временная задержка реализуется подпрограммой DELAY.

; Длительность временной задержки определяется числом,

; загружаемым в регистры R1:R0.

; При замыкании на вход Т0 поступает логический 0.





Дата публикования: 2014-11-03; Прочитано: 510 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...