Проектирование микропроцессорной системы контроля и управления объектом. Общие принципы проектирования микропроцессорных систем, страница 25

Программу аналого-цифрового преобразования удобно оформить в виде подпрограммы с именем ADCONV, которая вызывается по мере надобности. Перед ее вызовом в пару HL необходимо записать адрес ячеек для хранения полученного кода АЦП.

LXI   H, DATA_W

CALL   ADCONV

…………………..

…………………..

ADCONV:

MVI   A, 07H

OUT   РУС55

;

Вывод PC31

MVI   A, 06H

OUT   РУС55

;

Вывод PC30, запуск АЦП

WAIT:

IN   PA

ANI   0010 0000B

;

Выделить разряд D5

JNZ   WAIT

;

Ожидание готовности данных АЦП

IN   PB

MOV   M, A

;

Запомнить младший байт кода АЦП

INX   H

IN   PA

RLC

RLC

ANI   0000 0011B

;

Выделить D1, D0

MOV   M, A

;

Запомнить старший байт кода АЦП

RET

Фрагмент программы ввода и обработки сигналов V1 и V2 имеет вид:

; На входах коммутатора A1=A0=0, при этом Y=X1

; Ввод сигнала V1

LXI   H, DATA_W

CALL   ADCONV

; Установить на коммутаторе A0=1, A1=0, при этом Y=X2

MVI   A, 05H

OUT   РУС55

;

Вывод PC21

; Ввод сигнала V2

INX   H

CALL   ADCONV

; Вычисление суммы W1+W2

; Пересылка W2 в регистры D, E

MOV   D, M

DCX   H

MOV   E, M

DCX   H

DCX   H

MOV   A, M

ADD   E

MOV   E, A

;

Младший байт суммы

INX   H

MOV   A, M

ADD   D

MOV   D, A

;

Старший байт суммы

; Вычисление g( )=W1+W2–K1

LXI   H, ADR_K1

MOV   A, E

SUB   M

MOV   E, A

;

Младший байт разности

INX   H

MOV   A, D

SBB   M

MOV   D, A

;

Старший байт разности

; Вычисление g( ) – Q

LXI   H, ADR_Q

MOV   A, E

SUB   M

INX   H

MOV   A, D

SBB   M

JC   FORM_Y2

;

Если  g( )–Q < 0

FORM_Y3:

…………………

;

Если  g( )–Q > 0

FORM_Y2:

…………………