;всего будет 8000 повторений
;снятие синала Y3 (то есть сброс в 0)
00D0 90 08 01 mov DPTR,#0801H
00D3 E0 movx A,@DPTR
00D4 C2 E2 clr A.2
00D6 F0 movx @DPTR,A
00D7 02 00 F3 ljmp ENDLABEL
LABEL2Q: ;Q2<=Q0, поэтому формируем сигнал Y2
;выставим сигнал Y2=1
00DA 90 08 01 mov DPTR,#0801H
00DD E0 movx A,@DPTR
00DE D2 E1 setb A.1
00E0 F0 movx @DPTR,A
;задержка на 20 мс-время присутствия
;сигнала Y2
00E1 79 14 mov R1,#20
00E3 78 C8 LABEL21: mov R0,#200
00E5 00 LABEL22: nop
00E6 00 nop
00E7 00 nop
00E8 D8 FB djnz R0,LABEL22
00EA D9 F7 djnz R1,LABEL21
;всего будет 4000 повторений
;снятие синала Y2 (то есть сброс в 0)
00EC 90 08 01 mov DPTR,#0801H
00EF E0 movx A,@DPTR
00F0 C2 E1 clr A.1
00F2 F0 movx @DPTR,A
;конец вывода сигналов
00F3 22 ENDLABEL:ret
;---------------------------------------------------------;Модуль ввода напряжения Х7 и
;формирования сигнала Y4
00F4 OUTY4:
002B A0 EQU 00101011B
0040 A1 EQU 01000000B
;обращение за оцифрованным Х7
00F4 90 09 02 mov DPTR,#0902H
00F7 E0 movx A,@DPTR
;вычисление значения Q4
;вычисление N7*A1
00F8 75 F0 40 mov B,#A1
00FB A4 mul AB
;для вычислений берем только старший байт
00FC E5 F0 mov A,B
;вычисление A0+N7*A1
00FE 24 2B add A,#A0
;вывод Q4 на ЦАП
0100 90 08 02 mov DPTR,#0802H
0103 F0 movx @DPTR,A
0104 22 ret
;---------------------------------------------------------;Подпрограмма обработки прерываний
0105 INTSUBR:
;Уточнение источника прерывания
0105 90 0B 00 mov DPTR,#0B00H
0108 E0 movx A,@DPTR
;просмотр трех младших бит А
0109 13 rrc A
;переход к обработке сигнала аварии
010A 40 09 jc ALARMLAB
010C 13 rrc A
;к обработке запроса от источника питания
010D 40 2E jc POWERLAB
010F 13 rrc A
;к обработке прерывания от клавиатуры
0110 40 49 jc KEYBDLAB
;источников прерывания не обнаружено;к выходу
0112 02 01 BB ljmp ENDLABEL1
ALARMLAB:;обработка запроса IRQ0
;вызов процедуры индикации
0115 12 01 BC lcall VIEW
;запрет прерываний
0118 C2 AF clr IE.7
NEXTPER: ;вывод сигнала аварии на панель
011A 90 0B 02 mov DPTR,#0B02H
011D E0 movx A,@DPTR
;вывод "1" на светодиод
011E D2 E4 setb A.4
0120 F0 movx @DPTR,A
;задержка на 250 мс-время полупериода
;сигнала аварии
0121 79 C8 mov R1,#200
0123 78 FA LABEL31: mov R0,#250
0125 00 LABEL32: nop
0126 00 nop
0127 00 nop
0128 D8 FB djnz R0,LABEL32
012A D9 F7 djnz R1,LABEL31
;всего будет 50000 повторений
;снятие синала аварии
;(то есть сброс в 0)
012C C2 E4 clr A.4
012E F0 movx @DPTR,A
;задержка на 250 мс-время полупериода
;сигнала аварии
012F 79 C8 mov R1,#200
0131 78 FA LABEL41: mov R0,#250
0133 00 LABEL42: nop
0134 00 nop
0135 00 nop
0136 D8 FB djnz R0,LABEL42
0138 D9 F7 djnz R1,LABEL41
;всего будет 50000 повторений
013A 02 01 1A ljmp NEXTPER
013D POWERLAB:
;вывод всех основных регистров ОМЭВМ
;в энергонезависимое ОЗУ, начиная с
;адреса 0010Н
013D 90 00 10 mov DPTR,#0010H
;сохранение регистров
0140 F0 movx @DPTR,A
0141 A3 inc DPTR
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.