Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по АТ89С51 изд.вариант 2010-54.doc
Скачиваний:
86
Добавлен:
19.11.2019
Размер:
865.22 Кб
Скачать
        1. Ожидание импульсного сигнала

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

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

а) отрицательный

б) положительный

Рисунок 4.2 – Формы импульса

Последовательность объединения процедур ожидания нуля и единицы зависит от формы импульса. Для отрицательного импульса (рисунок 4.2) процедура ожидания замыкания контакта предшествует процедуре ожидания размыкания, для положительного импульса – следует за ней.

Ниже приведены примеры программной реализации процедуры ожидания «отрицательного» импульсного сигнала при подключении датчика к разряду 3 порта P1 (листинг 4.3):

Листинг 4.3 – Программа регистрации отрицательного импульса

.ORG 0000H

; Адрес начала программы

SETB P1.3

; Настройка разряда 3

; порта P1 на ввод сигнала

MAIN:

JB P1.3, $

; Ожидание логического «0»

JNB P1.3, $

; Ожидание логической «1»

; Подпрограмма обработки

; импульса

JMP MAIN

; Переход на регистрацию

; следующего импульса

Аналогичным образом строится программа при подключении датчика положительного импульсного сигнала (листинг 4.4):

Листинг 4.4 – Программа регистрации положительного импульса

.ORG 0000H

; Адрес начала программы

SETB P1.3

; Настройка разряда 3

; порта P1 на ввод сигнала

MAIN:

JNB P1.3, $

; Ожидание логической «1»

JB P1.3, $

; Ожидание логического «0»

; Подпрограмма обработки

; импульса

JMP MAIN

; Переход на регистрацию

; следующего импульса

Программная реализация цикла ожидания накладывает ограничения на длительность импульса: импульсы длительностью меньше времени выполнения цикла ожидания могут быть «не замечены» МК. Минимально допустимые длительности импульсов определяются тактовой частотой процессора. Гарантирована регистрация событий, частота которых не превышает 1/24 частоты процессора.

Для обнаружения кратковременных импульсов можно использовать способ фиксации импульса на внешнем триггере флага (рисунок 4.3).

Рисунок 4.3 – Схема фиксации кратковременного импульса на триггере флага

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

Листинг 4.5 – Программа регистрации кратковременного импульса, ориентированная на использование внешнего триггера

.ORG 0000H

; Адрес начала программы

SETB P1.3

; Настройка разряда 3

; порта P1 на ввод

; сигнала

BEGIN:

CLR P2.0

SETB P2.0

; Сброс триггера флага

JNB P1.3, $

; Ожидание логической «1»

; Подпрограмма обработки

; импульса

JMP BEGIN

; Переход на начало

; программы