Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
печать шпоры мпт.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
708.61 Кб
Скачать

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

Опрос двоичного датчика − сигналы датчика можно разделить по характеру датчика на контактные и бесконтактные.

Опрос состоит в том, что МП опрашивает состояние датчика и зависимости от состояния происходит переход к какой-то ветви программы.

Пример подключения датчика к порту ввода:

OPROS: IN IPORT

ANI 0000 0010B ; выделить D1

JZ M2 ; если D1 = 0

M1: … ; если D1 = 1

M2: …

Ожидание события (ожидание появления определенного сигнала) − МП опрашивает состояние датчика в цикле до тех пор, пока на выходе датчика не будет заданного сигнала. Сигналы по виду разделяются на:

Ожидание размыкания контактов (высокого уровня)

CALL WAIT_H

WAIT_H: IN IPORT

ANI 0000 0100B ; выделить D2

JZ WAIT_H ; цикл ожидания

RET ; выход

Ожидание замыкания контактов (низкого уровня)

WAIT_L: IN IPORT

ANI 0000 0100B ; выделить D2

JZ WAIT_L ; цикл ожидания

RET ; выход

Борьба с дребезгом контактов

Для борьбы:

1. аппаратный метод − используются RS − триггеры или триггер Шмидта

2. программный метод:

а) подсчитывается число переключений контакта.

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

б) программная задержка: когда программа обнаружила срабатывание контакта, выполнение ее приостанавливается на время, большее времени дребезга.

WAIT_L: IN IPORT

ANI 0000 0010B

JNZ WAIT_L ; цикл, если D1 = 1

CALL DELAY ; подпрограмма задержки на tзд

RET

Виды управляющих сигналов:

1] Статические

VKL: MVI A, 01H

OUT OPORT ; вывод D0 = 1

OTKL: MVI A, 00H

OUT OPORT ; вывод D0 = 0

OTKL: XRA A ; сброс (А)

OUT OPORT ; вывод D0 = 0

2] Формирование импульсных управляющих сигналов

XRA A

OUT OPORT ; вывод D1 = 0

MVI A, 02H

OUT OPORT ; вывод D1 = 1

CALL DELAY ; задержка на tИ

XRA A

OUT OPORT ; вывод D1 = 0

Формирование временных задержек

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

DELAY: MVI B, X ; загрузка в регистр В числа Х

LOOP: DCR B ; декремент В

JNZ LOOP ; цикл, если (В)=0

RET ; возврат в основную программу, если (В)=0

Для получения требуемой временной задержки необходимо опреде­лить значение числа Х, загружаемого в регистр-счетчик В. При этом необходимо учитывать, что ко­манды MVI B, X и RET выполняются однократно, а число повторений ко­манд DCR B и JNZ LOOP равно числу Х, загружаемому в регистр В.

Можно записать длительность выполнения команд:

CALL DELAY - 17 тактов

MVI B, X - 7 тактов

DCR В - 5 тактов

JNZ LOOP - 10 тактов

RЕТ - 10 тактов

Время выполнения любой команды подсчитывается по формуле: t = n *T,

где n - число машинных тактов в команде;

Т - длительность машинного такта.

Длительность машинного такта определяется частотой fт тактового генератора микропроцессорной системы:

Т=1/fт

Величина Х может быть вычислена по формуле:

X=(tз-to)/tц,

где tз - заданная величина задержки;

tо - время, требуемое для однократно выполняемых команд;

tц - время цикла, требуемое для выполнения циклически повторяе­мых команд.