; ISR3 – подпрограмма обработки запроса прерывания INT3
ISR3:XRA A
OUT PC
OUT SELOPORT1
OUT SELOPORT2
OUT SELOPORT3
OUT SELOPORT4
OUT SELOPORT5
; Ввод и обработка сигналов X1, X2
LXI H, DATA_Х
IN PA
MOV C, A
MOV M, A ; Запомнить X1 и X2
ANI 0000 0001B ; Выделить разряд D0
INX H
MOV M, A ; Запомнить X1
MOV A, C
RRC
ANI 0000 0001B
INX H
MOV M, A ; Запомнить X2
MOV A, C
RRC
RRC
ANI 0000 0001B
INX H
MOV M, A ; Запомнить X3
MOV A, C
RRC
RRC
RRC
ANI 0000 0001B
INX H
MOV M, A ; Запомнить X4
;ВЫЧИСЛЯЕМ ФУНКЦИЮ ДВОИЧНЫХ ДАТЧИКОВ
LXI H DATA_X
INX H
MOV A,M
CMA ; NOT (X2)
DCX H ;уменьшаем HL на 1
ANA M
MOV B,A ;рузультат 1 скобки в рег.В
INX H
INX H ;переход на (X3)
MOV A,M
CMA ; NOT (X3)
INX H
ORA M ; переход на (X4)
ORA B
JZ EXIT ; Идти на метку EXIT, если Y1=0
; Формирование импульса длительностью t1
FORM_Y1:
LXI H,DATA_Y ;ЗАПИСЬ ЗНАЧ. Y1
MOV A,M
ORI 0001 0000B
MOV M,A
MVI A, B0H
OUT RUS53_1 ; Загрузить управляющее слово
MVI A, B8H
OUT ST2_1 ; Загрузить N2
MVI A, 0BH
OUT ST2_1 ; Загрузить N2
; Вывод 1 в 0-й разряд порта
IN PC
ORI 0001 0000B
OUT PC
JMP EXIT2
EXIT:
; Вывод 0 в 0-й разряд порта
OUT RUS55
IN PC
ORI 0000 0000B
OUT PC
EXIT2:
; На входах коммутатора A1=A0=0, при этом Y=X1
IN PC
ORI 0000 0000B ;Вывод в порт РС числа 00000000
OUT PC
LXI H, DATA_W1
CALL ADCONV ; Ввод сигнала V1
IN PC
ORI 0000 0010B ;Вывод в порт РС числа 00000010
OUT PC
LXI H, DATA_W2
CALL ADCONV ; Ввод сигнала V2
IN PC
ORI 0000 0100B ;Вывод в порт РС числа 00000100
OUT PC
LXI H, DATA_W3
CALL ADCONV ; Ввод сигнала V3
IN PC
ORI 0000 0110B ;Вывод в порт РС числа 00000110
OUT PC
LXI H, DATA_W4
CALL ADCONV ; Ввод сигнала V4
;ВЫЧИСЛЕНИЕ g()
LXI H,DATA_W1 ;
MOV E,M ;W1
INX H
MOV D,M
MOV A,5 ;5
CALL M16_8 ;5w1
MOV D,H
MOV E,L
LXI H,FUNW1
MOV M,E ;СОХРАНЯЕМ 5W1
INX H
MOV D,M
LXI H,DATA_W2 ;
MOV E,M ;W2
INX H
MOV A,7 ;7
CALL M16_8 ;7w2
MOV D,H
MOV E,L
LXI H,FUN1
MOV A,E
SUB M
MOV E,A ;млаший байт полуразности 7W2-5W1
INX H
MOV A,D
SBB M
MOV D,A ;старший байт полуразности 7W2-5W1
LXI H,ADR_K1
MOV A,E
ADD M
MOV E,A ;млаший байт полусуммы W2-5W1+K1
INX H
MOV A,D
ADC M
MOV D,A ;млаший байт полусуммы W2-5W1+K1
LXI H,ADR_K2
MOV A,E
SUB M
MOV E,A ;млаший байт полуразности W2-5W1+K1-K2
INX H
MOV A,D
SBB M
MOV D,A ;млаший байт полуразности W2-5W1+K1-K2
LXI H,FUN1 ;сохраняем значение g( )
MOV M,E
INX H
MOV M,D
JC FORM_Y3 ; Если Q( )–G < 0
FORM_Y2:
LXI H,DATA_Y ;ЗАПИСЬ ЗНАЧ. Y2
MOV A,M
ANA 1001 1111B
ORI 0010 0000B
MOV M,A
; Формирование импульса длительностью t2 y2
MVI A, 30H
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.