Программное обеспечение. CONTROL – основная программа работы МПС. Адрес ячейки ОЗУ для хранения состояния выходов порта вывода, страница 5

RRC           

RRC           

ANI             0FH            

MOV           C, A           

CALL          CROSSCODE              ;Перекодировка

OUT            SELPIO3_PA              ;Вывод на HG2

INX             H

MOV           A,M            

ANI            0FH            

MOV           C, A           

CALL          CROSSCODE              ;Перекодировка

OUT            SELPIO3_PB               ;Вывод на HG3

CHEK:       

IN               SELIPORT            

ANI            80H                                ; Выделить разряд D7

JNZ            Vozvrat                          ; Идти на начало, если не нажата

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

; Подготовка к возврату из прерывания

POP             H                                   ; Восстановление регистров

POP             D                

POP             B                

POP             PSW           

EI                                                      ;  Разрешить прерывания

RET

;*********************************************************************

; ISR0- подпрограмма обработки запроса прерывания от сигнала X0 “Авария”

;*********************************************************************

ISR0:                                                           ;Включение аварийной сигнализации

IN                SELPIO1_PC                ;Чтение состояния выходов

ORI             0100 0000B

          OUT            SELPIO1_PC                 ;Установить    PC6      1

MVI           A,1000 0000B               ; Включение светодиода  “VD9”

OUT            SELPIO2_PB                ; “Останов”

HLT                                                  ; Останов МП

;Принятие данных с АЦП подпрограмма

ADCONV: 

IN                SELPIO1_PC

ORI             0000 1000B

          OUT            SELPIO1_PC                 ;Установить PC3         1 

IN                 PC

ANI             1111 0111B

          OUT            SELPIO1_PC                 ;Сбросить  PC3         0

WAIT:        

IN              SELPIO1_PA                

ANI             0010 0000B                  ;Выделить разряд D5

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

IN                SELPIO1_PB                 

MOV           M, A                             ;Запомнить  байт кода АЦП

RET            

;*********************************************************************

;CAP- программа вывода кода на ЦАП

;*********************************************************************

MET_CAP:

LXI              H,DATA_Z

MOV           A,M

OUT            SELPIO2_PA               ;Вывод  байта кода  

RET

;*********************************************************************

; IDENTIF – подпрограмма идентификации замкнутого SA1-SA3

; Выходной параметр: регистр С – позиционный код переключателя

;*********************************************************************                   

IDENTIF:

IN                SELIPORT           

ANI             0FH            

MOV           B, A           

CPI             MASK1                

JZ                EXIT1                         ;Если D0=0

MOV           A, B           

CPI             MASK2                

JZ                EXIT2                          ;Если D1=0

MOV           A, B           

CPI             MASK3                

JZ                EXIT3                           ;Если D2=0

EXIT1:       

MVI            C, 00H                          ;Код переключателя SA1

RET            

EXIT2:       

MVI            C, 01H                          ;Код переключателя SA2

RET            

EXIT3:       

MVI            C, 02H                          ;Код переключателя SA3

RET            

;*********************************************************************

; CROSSCODE – подпрограмма перекодировки

; Входной параметр: регистр С – позиционный код символа