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

3.1.8 Формирование последовательности импульсных сигналов с изменяемой длительностью и скважностью.

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

Пусть требуется на выходе D1 порта 3 сформировать последовательность управляющих сигналов (рис.9).

Рисунок 9 - Последовательность управляющих сигналов

Из временной диаграммы видно, что некоторая последовательность чередующихся сигналов 0 и 1 формируется на основе периода 100 мкс. Следовательно, программа нормирования таких сигналов будет иметь вид (табл.18):

Таблица 18

Адрес

Код

Метка

Мнемокод

Комментарий

1

2

3

4

5

LXI H, 0800H

загрузка начального

адреса таблицы

длительностей в (HL)

SEQU

MVI A, 02H

номер вывода порта

OUTPUT

OUT PORT3

установка 1-го значения сигнала

MOV D, M

число обращений к

задержке

LOOP

CALL TIME

задержка

DCR D

декремент счетчика

JNZ LOOP

если D0, то вызов

подпрограммы

Продолжение таблицы 18

1

2

3

4

5

XPI 02H

изменение сигнала на

противоположный

INX H

увеличение содержимого парных регисторов H-L

JMP OUTPUT

безусловный переход на метку OUTPUT

RET

выход из подпрограммы

Пример:

Данная программа формирует управляющие сигналы прямоугольной формы.

Причем сигнал высокого уровня "порождает" засветку числа "1" на определенном индикаторе, а сигнал низкого уровня - засветку числа "0" на следующем индикаторе.

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

Необходимо сформировать следующую последовательность управляющих сигналов (рис.10)

Рисунок 10 - Последовательность управляющих сигналов

Таблица длительностей задержки хранится по адресам 0800 - 0802:

0800 7F ; 7FH - 127D (0, 1, 2,...,127 итого 128 циклов)

0801 BF ; BFH - 191D (0, 1, 2,...,191 итого 192 цикла)

0802 FF ; FFH - 255D (0, 1, 2,...,255 итого 256 циклов)

Пример:

Основная программа начинается с адреса 0820 (табл.19):

Таблица 19

Адрес

Код

Метка

Мнемокод

Комментарий

0820

21 00 08

SEQU:

LXI H, 0800H

загрузка начального адреса таблицы

длительностей в H-L

0823

06 08

MVI В, 08Н

номер 5-го индикатора поместить в регистр В

0825

0E 06

MVI С, 06Н

поместить в регистр С код числа " 1"

0827

CD 90 08

OUT:

CALL LIGHT

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

082A

56

MOV D, M

число обращений к

задержке поместить в регистр D

082B

CD A0 08

LOOP:

CALL TIME

задержка в 7816 мкс

082Е

15

DCR D

декремент счетчика

082F

C2 2B 08

JNZ LOOP

если D  0, то вызвать задержку

0832

78

MOV А, В

переход к следующему индикатору

0833

1F

RAR

для засветки

0834

DA 20 08

JC SEQU

если 7-ой индикатор

уже зажжен, то

повторить программу

0837

47

MOV В, А;

иначе сохранить номер зажигаемого регистре В

0838

79

MOV А, С;

изменить значение

сигнала на

0839

EE 39

XRI 39H

противоположный и

083В

4F

MOV С, А

результат сохранить в регистре С

083С

23

INX Н;

выбрать следующую длительность задержки

083D

C3 27 08

JMP OUT

высветить на

индикаторе значение сигнала с заданной

длительностью

083E

C9

RET

выход из подпрограммы

Код порта засветки индикаторов имеет адрес F8, код порта выбора сегментов выбранного индикатора - адрес F9.

Порт чтения клавиатуры имеет адрес FA.

Для изменения отдельных бит байта, хранимого в аккумуляторе применяется маскирование разрядов. Для этого используются команды:

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

- ORI, используется для установки тех бит, которые в маске заданы единицей;

- XRI, используется для инвертирования тех бит, которые в маске заданы единицей