MOV M, A
MVI A,70H
OUT SELPT1_RUS ; Управл. слово ПТ1 режим СТ1
MVI A,96H
OUT SELPT1_ST1 ; Загрузка в СТ1 ПТ1 мл-го байта N2
MVI A,05H
OUT SELPT1_ST1 ; Загрузка в СТ1 ПТ1 ст-го байта N2
;Вывод 1 в 4-й разряд порта
IN SELPIO1_PC
ORI 00010000B
OUT SELPIO1_PC ;Выдать U4=1
; Обработка сигнала W3, функция е( )
MET_DL1:
LXI H, ADR_K3 ; (BC) (K3)
MOV C, M
INX H
MOV B, M
LXI H, DATA_W3 ;(DE) (W3)
MOV E, M
MVI D,00H
CALL M16_16F ; Вызов под-мы умножения (K3*W3)
LXI H,ADR_K4
MOV A,C
SUB M ;Вычитаем младшие байты
MOV C,A
INX H
MOV A,B
SBB M ;Вычитаем старшие байты
MOV B,A ; Результат (K3*W3 - K4 )
; в регистровой паре BC
LXI H, ADR_K5
MOV A,M
ADD C ;Cуммируем младшие байты
MOV C,A
INX H
MOV A,M
ADC B ;Cуммируем старшие байты
MOV B,A ; Результат (K3*W3 - K4+K5) в BC
LXI H,DATA_Z
MOV M,C
INX H
MOV M,B ;Сохраняем (K3*W3 - K4+K5)
JMP MET_CAP ;Перейти на метку MET_CAP
; Проверка нажатия кнопки “Останов”
CHECK:
IN SELIPORT ;Проверка вкл. SA4
ANI 0010 0000B ;Выделить разряд D5
JZ STOP ;Если SA4 замкнут
EI
RET
STOP:
MVI A,1000 0000B
OUT SELPIO2_PB ;Включить VD9 “Останов”
HLT
;*********************************************************************
; ISR1- подпрограмма обработки запроса прерывания от кнопки SB2 “Прерывание”
;*********************************************************************
ISR1: PUSH PSW ;Сохранить в стеке содержимое
PUSH B ;регистров A, F, B, C, D, E, H, L
PUSH D
PUSH H
Vozvrat:
;Показать X1,X2,X3,X4,Y1,Y2,Y3
LXI H,DATA_X
MOV A,M
ANA 0000 1111B
LXI H,DATA_Y
ANA M
OUT SELPIO2_PB
IN SELIPORT
ANI 07H ;Выделить разряды D2-D0
CPI 07H
JZ CHEK ;Переход, если SA1-SA3 разомкнуты
CALL IDENTIF ;Вызов подпрограммы идентификации
MVI B,0H
;Вывод на дисплей
DISPLAY:
LXI H, DATA_W1
MOV A,C
ADD A
MOV C,A
MOV A,L
ADD C
MOV L,A
MOV A,L
ACI 0H
MOV H,A
DAD B ;Установка для вывода
MOV A,M
ANI 0FH
MOV C, A
CALL CROSSCODE ;Перекодировка
OUT SELPIO2_PC ;Вывод на HG1
MOV A,M
RRC
RRC
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.