Разработка микропроцессорной системы. Составление карты распределения адресного пространства МПС под ОЗУ, ПЗУ, внешние и интерфейсные устройства, страница 14

;приоритета "1"

0054 75 B8 FF         mov IP,#FFH

;запрет  всех  прерываний, кроме  INT0

0057 75 A8 00          mov IE,#00H

005A D2 A8             setb IE.0

005C D2 AF             setb IE.7

;настройка  всех  параллельных  интерфейсов

;на  ввод / вывод

;код  управляющего  слова

005E 74 90                mov A,#10010000B

;рассылка  по  портам

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

0060 90 08 03            mov DPTR,#0803H

0063 F0                     movx @DPTR,A

;второй  интерфейс

0064 90 0A 03          mov DPTR,#0A03H

0067 F0                    movx @DPTR,A

;третий  интерфейс

0068 90 0B 03          mov DPTR,#0B03H

006B F0                   movx @DPTR,A

;сброс  триггера-фиксатора  запроса

;прерывания  от  клавиатуры

006C C2 90             clr P1.0

006E D2 90             setb P1.0

;гашение  всех  цифровых  индикаторов

0070 E4                    clr A

0071 90 0A 00          mov DPTR,#0A00H

0074 F0                    movx @DPTR,A

0075 90 0A 01          mov DPTR,#0A01H

0078 F0                    movx @DPTR,A

0079 90 0A 02          mov DPTR,#0A02H

007C F0                   movx @DPTR,A

;гашение  всех  светодиодов

007D 90 0B 02          mov DPTR,#0B02H

0080 F0                      movx @DPTR,A

0081 22                      ret

;---------------------------------------------------------;Модуль  логической  обработки  сигналов

;Х1-Х4  и  формирования  управляющего

;сигнала  Y1

0082          OUTY1:

;ввод  значений  Х1-Х4  в  A

0082 90 08 00          mov DPTR,#0800H

0085 E0                    movx A,@DPTR

;вычисление  функции  Y1-результат  в  C

;пересылка  в  С  Х2

0086 A2 E1             mov C,A.1

;операция  Х2*X3

0088 82 E2              anl C,A.2

;операция  X4+X2*X3

008A 72 E3             orl C,A.3

;операция  X1*(X4+X2*X3)

008C 82 E0             anl C,A.0

;выставим  сигнал  Y1=1

008E 90 08 01         mov DPTR,#0801H

0091 E0                  movx A,@DPTR

0092 92 E0             mov A.0,C

0094 F0                  movx @DPTR,A

;задержка  на  100 мс-время  присутствия

;сигнала  Y1

0095 79 64             mov R1,#100

0097 78 C8    LABEL1:  mov R0,#200

0099 00       LABEL2:  nop

009A 00                  nop

009B 00                   nop

009C D8 FB           djnz R0,LABEL2

009E D9 F7            djnz R1,LABEL1

;всего  будет  20000  повторений

;снятие  синала  Y1 (то  есть  сброс  в  0)

00A0 90 08 01         mov DPTR,#0801H

00A3 E0                   movx A,@DPTR

00A4 C2 E0             clr A.0

00A6 F0                   movx @DPTR,A

00A7 22                    ret

;---------------------------------------------------------;Модуль  ввода  напряжений  Х5  и  Х6  и

;формирования  сигналов  Y2  и  Y3

00A8          OUTY2Y3:

;произвольное  значение  константы  Q0

0011     Q0             EQU     11H

;ввод  значения  Х5  в  R2

00A8 90 09 00          mov DPTR,#0900H

00AB E0                   movx A,@DPTR

00AC FA                  mov R2,A

;ввод  значения  Х6  в  R3

00AD 90 09 01          mov DPTR,#0901H

00B0 E0                     movx A,@DPTR

00B1 FB                    mov R3,A

;ввод  значения  K(уставка)  в  R4

00B2 90 00 00          mov DPTR,#0000H

00B5 E0                   movx A,@DPTR

00B6 FC                  mov R4,A

;вычисление  значения  функции  Q2

;результат  будет  в  А

00B7 EA                   mov A,R2

00B8 2B                    add A,R3

00B9 2C                    add A,R4

;сравнение  Q2  с  Q0

00BA 95 11               subb A,Q0

;если  Q2>Q0, то  флаг  С=0

;иначе  флаг  С=1

00BC 40 1C               jc LABEL2Q

;Q2>Q0, поэтому  формируем  Y3

;выставим  сигнал  Y3=1

00BE 90 08 01          mov DPTR,#0801H

00C1 E0                    movx A,@DPTR

00C2 D2 E2              setb A.2

00C4 F0                    movx @DPTR,A

;задержка  на  40 мс-время  присутствия

;сигнала  Y3

00C5 79 28               mov R1,#40

00C7 78 C8    LABEL11: mov R0,#200

00C9 00       LABEL12: nop

00CA 00                    nop

00CB 00                     nop

00CC D8 FB             djnz R0,LABEL12

00CE D9 F7              djnz R1,LABEL11