МПС

Опрос двоичного датчика (Лекция)

ПЛАН ЛЕКЦИИ

1. Опрос двоичного датчика. Ожидание события

2. Ожидание статического сигнала

3. Ожидание импульсного сигнала

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

 

1. Опрос двоичного датчика. Ожидание события

В устройствах и системах логического управления объектами события в объекте управления фиксируются с использованием разнообразных датчиков цифрового и аналогового типов. Наибольшее распространение имеют двоичные датчики типа да/нет, например концевые выключатели, которые подключаются к МК так, как показано на рисунке 1.

Рис. 1.  Схема двоичного датчика а) и сигнал на его выходе б)

 

2. Ожидание статического сигнала

Типовая процедура ожидания события (WAIT) состоит из следующих действий: ввода сигнала от датчика, анализа значения сигнала и передачи управления в зависимости от состояния датчика. На рисунке 2 представлена блок-схема алгоритма процедуры ожидания события, фиксируемого замыканием контакта двоичного датчика.

Рис. 2. Блок-схема процедуры ожидания события

 

Например, при подключении датчика к линии бита 3 порта 1 программа реализации процедуры ожидания замыкания контакта будет иметь вид:

 

WAITO:  JNB P1.3, WAITO ;ожидание размыкания контакта датчика

 

Другим частным случаем типовой процедуры ожидания события является процедура ожидания размыкания контакта, которая может быть реализована следующим образом:

 

WAITC:  JB P1.3, WAITC  ;ожидание замыкания контакта датчика

 

Режим прерывания целесообразно использовать только для опроса особо важных датчиков с целью уменьшения времени реакции на исключительную (аварийную) ситуацию в объекте управления.

 

3. Ожидание импульсного сигнала

Схема подключения датчика импульсного сигнала аналогична схеме на рисунке 1. Особенность процедуры ожидания импульсного сигнала состоит в том, что МК должен обнаружить не только факт появления, но и факт окончания сигнала.

Для программирования этой процедуры удобно воспользоваться рассмотренными выше примерами ожидания события, смонтировав их последовательно в линейную программу. Оформлять процедуры WAITC и WAIT0 в виде подпрограмм нецелесообразно, так как это удлиняет программу, а длина и, следовательно, время исполнения программы определяют минимальную длительность импульса, который может быть обнаружен программой.

Последовательность склеивания процедур WAITC и WAIT0 зависит от формы импульса. Для "отрицательного" импульса (1 --> 0--> 1) процедура WAITC предшествует процедуре WAIT0, для "положительного" (0 --> 1 --> 0) следует за ней.

Ниже приведены примеры программной реализации процедуры ожидания "отрицательного" импульсного сигнала при подключении датчика к биту 3 порта 1 при условии, что начальное состояние входа - единичное:

 

WAITC:  JB P1.3, WAITC  ;ожидание замыкания контакта датчика

WAITO:  JNB P1.3, WAITO ;ожидание размыкания контакта датчика

 

Программная реализация цикла ожидания накладывает ограничения на длительность импульса: импульсы длительностью меньше времени выполнения цикла ожидания могут быть "не замечены" МК.

 

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

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

Рис. 3. Схема подавления  дребезга контактов

 

Наибольшее распространение получил программный способ ожидания установившегося значения с помощью временной задержки.

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

Временная задержка (в пределах 1-20 мс) подбирается экспериментально для каждого типа датчиков и реализуется подпрограммой DELAY.

 

WAITC:  JB P1.3, WAITC  ;ожидание замыкания контакта датчика

        ACALL DELAY     ;вызов подпрограммы задержки

        JB P1.3, WAITC  ;повторная проверка на замыкание контакта

 

Повторная проверка не обязательна и проводится для устранения реакции на случайные помехи.

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

WAITC:      JB P1.3, WAITC    ;ожидание замыкания контакта датчика

ACALL DELAY ;вызов подпрограммы задержки

JB P1.3, WAITC    ;повторная проверка на замыкание контакта

WAITO:      JNB P1.3, WAITO   ;ожидание размыкания контакта датчика

ACALL DELAY ;вызов подпрограммы задержки

JNB P1.3, WAITO   ;повторная проверка размыкания контакта