Разработка микропроцессорной централизации малой станции. Разработка структурной схемы МПС. Блок центрального процессора, страница 19

04BC  36 00                MVI   M,00H    ;

04BE  26 20                MVI   H,20H    ;

04C0  CD C3 04             CALL  OTMEN    ; стандартная отмена с задержкой

04C3  3E 05      OTMEN:    MVI   A,05H    ; статус маршрута: "установлен", "отмена"

04C5  77                   MOV   M,A      ;

04C6  3E 09                MVI   A,09H    ;

04C8  D3 E7                OUT   PPI3MS   ; вкл лампочка "отмена"

04CA  26 2B                MVI   H,2BH    ; переход к таблице сигналов отмены

04CC  3A 70 20             LDA   OUTPUT2  ;

04CF  A6                   ANA   M        ;

04D0  CD EE 04             CALL  OUTPUT   ; закрытие входных светофоров

04D3  26 27                MVI   H,27H    ; проверка занятости участков приблиджения

04D5  16 20                MVI   D,20H    ;

04D7  5E                   MOV   E,M      ;

04D8  1A                   LDAX  D        ;

04D9  FE 03                CPI   03H      ; если они свободны - отмена без задержки

04DB  C2 E9 04             JNZ   180SEC   ; если заняты - 3 минутная задержка

04DE  26 20                MVI   H,20H    ;

04E0  36 00                MVI   M,00H    ;

04E2  3E 08                MVI   A,08H    ;

04E4  D3 E7                OUT   PPI3MS   ;

04E6  C3 19 05             JMP   IDLE     ;

04E9  3E 05      180SEC:   MVI   A,05H    ; GATE1=1 - пуск таймера отмены

04EB  D3 F7                OUT   PPI4MS   ;

04ED  C9                   RET            ; выход


04EE  DB C6      OUTPUT:   IN    PORT9    ; вывод информации

04F0  E6 20                ANI   20H      ; isOK?

04F2  CA F3 0A             JZ    VIKL     ; во втором канале неисправность - защитн. сост.

04F5  3A 60 20             LDA   OUTPUT1  ; выставляем информацию

04F8  D3 C4                OUT   PORT1    ;

04FA  3A 70 20             LDA   OUTPUT2  ;

04FD  D3 C5                OUT   PORT2    ;

04FF  3E 02                MVI   A,02H    ;

0501  32 53 20             STA   OUT_MODE ;

0504  3E 05                MVI   A,05H    ;

0506  D3 C7                OUT   PPI1MS   ; GO!=1

0508  CD 95 02             CALL  WAIT1    ; задержка

050B  3A 53 20             LDA   OUT_MODE ; проверка выполнения директивы

050E  E6 04                ANI   04H      ;

0510  CA F3 0A             JZ    VIKL     ; если не выполнилась - защитное состояние

0513  E6 00                ANI   00H      ;

0515  32 53 20             STA   OUT_MODE ; очистка управляющего байта вывода

0518  C9                   RET            ; возврат

IDLE:

0519  21 00 20   RAZMYK1:  LXI   H,2000H  ;

051C  16 0C                MVI   D,0CH    ; просмотр маршрутов на наличие размкающихся

051E  7E         MRR6:     MOV   A,M      ;

051F  FE 09                CPI   09H      ;

0521  CC 87 05             CZ    RAZMYK   ;

0524  23                   INX   H        ;

0525  7A                   MOV   A,D      ;

0526  3D                   DCR   A        ;

0527  57                   MOV   D,A      ;

0528  C2 1E 05             JNZ   MRR6     ;

;проверка на размыкание

052B  21 00 20   IS_RAZM:  LXI   H,2000H  ; таблица маршрутов

052E  16 0C                MVI   D,0CH    ; счетчик маршрутов

0530  7E         MMS5:     MOV   A,M      ; если маршрут установлен, проверяем,

0531  FE 01                CPI   01H      ; не заняты ли его секции

0533  CA 72 05             JZ    TEST_SVB ; если да - статус - "разделка"

0536  23                   INX   H        ;

0537  7A                   MOV   A,D      ;

0538  3D                   DCR   A        ;

0539  57                   MOV   D,A      ;

053A  C2 30 05             JNZ   MMS5     ;

053D  21 0C 20   VIKL:     LXI   H,200CH  ;

0540  2B         MVV1:     DCX   H        ;

0541  7E                   MOV   A,M      ;

0542  FE 09                CPI   09H      ;

0544  CA 5C 05             JZ    EX_V     ;

0547  7D                   MOV   A,L      ;

0548  FE 00                CPI   00H      ;  если есть размыкающиеся маршруты

054A  C2 40 05             JNZ   MVV1     ;  - не выключается