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

0142 E5 F0               mov A,B

0144 F0                     movx @DPTR,A

0145 A3                    inc DPTR

0146 E5 D0               mov A,PSW

0148 F0                     movx @DPTR,A

0149 A3                    inc DPTR

014A E5 81               mov A,SP

014C F0                    movx @DPTR,A

014D A3                   inc DPTR

014E E8                     mov A,R0

014F F0                     movx @DPTR,A

0150 A3                     inc DPTR

0151 78 07                 mov R0,#07H

NEXTREG: ;последовательное  сохранение  регистров

;нулевого  банка

0153 E6                     mov A,@R0

0154 F0                     movx @DPTR,A

0155 A3                    inc DPTR

0156 D8 FB             djnz R0,NEXTREG

;переход  к  выходу  из  подпрограммы

;прерывания

0158 02 01 BB          ljmp ENDLABEL1

KEYBDLAB:;обработка  запроса  прерывания  от  клавиатуры

;сначала  сбросим  запрос  от  клавиатуры

015B C2 90                clr P1.0

015D D2 90               setb P1.0

;прочитаем  скэн-код  нажатой  клавиши

015F 90 0B 01           mov DPTR,#0B01H

0162 E0                      movx A,@DPTR

0163 F5 F0                mov B,A

;просмотрим  текщий  режим  уставки

0165 90 00 08            mov DPTR,#0008H

0168 E0                     movx A,@DPTR

;если  не  0-то  переход  к  вводу  уставки

0169 70 24                 jnz LEVEL1

;просмотр  функциональных  клавиш

016B 30 F4 4D          jnb B.4,ENDLABEL1

;бит  B.4  установлен-то  есть  нажата

;функциональная  клавиша

;бит  B.0  говорит  о  том, что  нажата

;клавиша вывода

016E 20 F0 06            jb B.0,KEYOUT

;если  бит  R0.1  установлен, то-клавиша

;останова, иначе-уставка

0171 20 F1 09            jb B.1,KEYSTOP

0174 02 01 86            ljmp KEYUST

;блок  реакции  на  функциональные  клавиши

0177          KEYOUT:

;вызов  процедуры  вывода  на  панель

;управления

0177 12 01 BC           lcall VIEW

017A 02 01 BB          ljmp ENDLABEL1

017D          KEYSTOP:

;цикл  до  наступления  режима  уставки

017D 90 00 08 NEXTVIEW:mov DPTR,#0008H

0180 E0                     movx A,@DPTR

0181 60 FA               jz NEXTVIEW

0183 02 01 BB           ljmp ENDLABEL1

0186          KEYUST:

;перевод  в  режим  уставки

0186 90 00 08            mov DPTR,#0008H

0189 74 01                 mov A,#01H

018B F0                     movx @DPTR,A

018C 02 01 BB          ljmp ENDLABEL1

LEVEL1:  ;система  находится  в  режиме  ввода

;уставки (в  промежут. ячейку  0009Н)

;реакция-только  на  цифровые  клавиши

018F 20 F4 29            jb B.4,ENDLABEL1

;определение  номера  вводимой  тетрады

;если  А.0-"1", то  младшая  тетрада,

;иначе-старшая

0192 30 E0 10            jnb A.0,LEVEL2

;выводим  мл. тетраду  в  ячейку  0009H

0195 E5 F0                mov A,B

0197 54 0F                anl A,#00001111B

0199 90 00 09           mov DPTR,#0009H

019C F0                   movx @DPTR,A

;исправим  код  режима  уставки

019D 15 82               dec DPL

019F 74 02                mov A,#02H

01A1 F0                    movx @DPTR,A

01A2 02 01 BB         ljmp ENDLABEL1

LEVEL2:  ;заполнение  старшей  тетрады

;чтение  мл. тетрады

01A5 90 00 09            mov DPTR,#0009H

01A8 E0                     movx A,@DPTR

;подготовка  и  запись  старшей  тетрады

01A9 23                     rl A

01AA 23                    rl A

01AB 23                    rl A

01AC 23                    rl A

01AD 53 F0 0F        anl B,#00001111B

01B0 45 F0               orl A,B

01B2 C4                    swap A

;запись  новой  уставки

01B3 15 82                 dec DPL

01B5 E4                     clr A

01B6 F0                     movx @DPTR,A

01B7 90 00 00            mov DPTR,#0000H

01BA F0                    movx @DPTR,A

01BB 32       ENDLABEL1: reti

VIEW:    ;процедура  индикации  не  реализуется  в

;данном  варианте  задания

01BC 22                     ret

DELAY05: ;процедура задержки на 0,5 с ;реализация не предусмотрена данным вариантом

;задания

01BD 22                    ret

01BE                   .END