Разработка микропроцессорной системы управления ответственным объектом, страница 12

01F3  78          A_ZERO:mov a,b    ; все Х = 0

01F4  E6 F3      ani 0f3h

01F6  32 10 80    O_R1:sta RG1      ; выдаем Х на индикацию

01F9  3A 3E 02   lda Q

01FC  32 14 80   sta RG2     ; выдаем Q на индикацию

01FF  E1         pop h       ; вместо последнего значения в стеке

0200  21 28 00   lxi h,FBEGIN; записываем адрес первой инструкции

0203  E5         push h      ; следующей за инициализацией

0204  3E 02      mvi a,2

0206  32 06 80   sta PPI+2   ; сигнализируем ВЕ51 о том,

0209  3E 10      mvi a,10h   ; что перешли к началу цикла

020B  32 04 80   sta PPI

020E  FB         ei

020F  C9         ret         ; возврат

                 ; прерывание от БСС1

0210  3A 02 08   INT1: lda SECOND

0213  B7         ora a

0214  CA 1D 02   jz CONT

0217  3E 0C      mvi a,0ch   ; если это второй сбой (уже было

0219  32 06 80   sta PPI+2   ; повторение цикла), то останов

021C  76         hlt

021D  3C          CONT:inr a

021E  32 02 08   sta SECOND

0221  7A         mov a,d

0222  F6 04      ori 04

0224  32 06 80   sta PPI+2

0227  E1         pop h       ; вместо последнего значения в стеке

0228  21 28 00   lxi h,FBEGIN; записываем адрес первой инструкции

022B  E5         push h      ; следующей за инициализацией

022C  3E 02      mvi a,2

022E  32 06 80   sta PPI+2   ; сигнализируем ВЕ51 о том,

0231  3E 10      mvi a,10h   ; что перешли к началу цикла

0233  32 04 80   sta PPI

0236  FB         ei

0237  C9         ret

                 ; прерывание от БСС2

0238  3E 0C      INT2: mvi a,0ch    ; сигнализируем об ошибке

023A  32 06 80   sta PPI+2   ; останов

023D  76         hlt

                 ;----------------------------------------

                 ; ROM (постоянные ПЗУ)

                 ;----------------------------------------

023E  55         Q:      db 55h

023F  14         A0:     db 14h

0240  25         A1:     db 25h

0241  E0         L_FRQ:  db e0h

0242  2E         H_FRQ:  db 2eh

                 ;----------------------------------------

                 ; таблица переходов к обработчикам

                 ; прерываний

                 ;----------------------------------------

                 ;int0

0400  C3 65 01   jmp INT0

                 ;int1

0404             org 0404h

0404  C3 10 02   jmp INT1

                 ;int2

0408             org 0408h

0408  C3 38 02   jmp INT2

                 ;int3

040C             org 040ch

040C  C3 94 01   jmp INT3

                 ;int4

0410             org 0410h

0410  C3 B0 01   jmp INT4

                 ;int4

0414             org 0414h

0414  C3 CB 01   jmp INT5

                 ;int5

0418             org 0418h

0418  C3 CB 01   jmp INT5

                 ;----------------------------------------

                 ; RAM (ОЗУ)

                 ;----------------------------------------

0800             org 0800h

                 ; таблица входных величин и результатов

0800  00         DT:     db 0 dup(7)

                 ; таблица входных величин и результатов

                 ; последнего рабочего режима

0801  00         DT_INT: db 0 dup(5)

                 ; признак повторного сбоя

0802  00         SECOND: db 0

                 ; стек

0803  00         STACK:  db 0 dup(50h)

                 ;----------------------------------------

                 ; переферийные устройства

                 ;----------------------------------------

8000  00         PIC:    db 0 ; ПКП

8004  00         PPI:    db 0 ; ППА

8008  00         PCI:    db 0 ; ПСА

800C  00         PIT:    db 0 ; ПТ

8010  00         RG1:    db 0 ; регистр 1

8014  00         RG2:    db 0 ; регистр 2

8018  00         RG3:    db 0 ; регистр 3

801C  00         RG4:    db 0 ; регистр 4

8020  00         K:    db 0         ; регистр К

8024  00         OUT_REG:    db 0   ; регистр для ЦАП

Labels:

FBEGIN              0028

BEGIN               002F

A_K                 0034

RDY                 0040

CMP_Q               0091

Y3                  009D

SAVEY2              009F

O_Y2                00D2

O_Y3                00E7

EO_Y2               00F5

O_Y4                0101

C_MODE              0115

F_DTI               0128

C_ERR               0134