MOV R7,P1
MOV A,#04H
MOV P0,A
; ПРОЧИТАТЬ V2
MOV R6,P1
MOV A,#08H
MOV P0,A
; ПРОЧИТАТЬ V3
MOV R5,P1
MOV A,#12
CALL SETPORT
MOV A,P0
ANL A,#0F0H
MOV R4,A
MOV A,#13
CALL SETPORT
MOV A,P0
RL A
RL A
RL A
RL A
ANL A,#0FH
ORL A,R4
MOV A,R4
ADD A,R6
MOV R4,A
SUBB A,R7
JC MIN
MOV R7,R4
MIN:
MOV A,R7
SUBB A,#0 ; - КОНСТАНТА Q=0
JC Y2
MOV A,#14
CALL SETPORT
MOV A,#13 ; 40 МКС = 13*3+1
USTY2:
SETB P0.4
DEC A
JZ USTY2
CLR P0.4
JMP Y3
Y2:
MOV A,#15
CALL SETPORT
MOV A,#13 ; 20 МКС = 6*3+1+1
USTY3:
SETB P0.4
DEC A
JZ USTY3
DEC A
CLR P0.4
Y3:
MOV A,R5
MOV R1,#13 ; A1=13
CALL MULT
ADD A,#13 ; A0=13
MOV R5,A
MOV A,#8 ; ВЫДАТЬ НА ЦАП
CALL SETPORT
MOV A,R5
ANL A,#0F0H
MOV P0,A
MOV A,R5
RL A
RL A
RL A
RL A
ANL A,#0F0H
MOV P0,A
MOV R6,R3
CJNE R6,#FFH,BEGIN ; ЕСЛИ ПРОИЗОШЛА ОШИБКА
ITSELF: JMP ITSELF ; ОСТАНОВИТЬ ВЫПОЛНЕНИЕ
SETPORT:
RL A
RL A
ANL A,#0C0H
MOV P1,A
RET
INIT:
MOV IE,#89H ;ВКЛЮЧИТЬ ОБРАБОТЧИКИ INT1 И INT0
MOV R6,#00H
RET
PINT0:
JB P0.7,RINT1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ОБРАБОТЧИК INT0 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RINT0:
CALL ERROR
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ОБРАБОТЧИК INT1 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RINT1:
CALL ERROR
RETI
PINT1:
JB P0.7,RINT3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ОБРАБОТЧИК INT2 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RINT2:
MOV A,SBUF
SUBB A,#41H ; СРАВНИТЬ С "A" (КОД 41H)
JZ CODA
SUBB A,#03H ; СРАВНИТЬ С "D" (КОД 44H=41H+3H)
JZ EXITINT
MOV SBUF,R5 ; ВЫДАТЬ АНАЛОГОВЫЙ СИГНАЛ Y4
RETI
CODA:
MOV SBUF,R4 ; ВЫДАТЬ Y1
EXITINT:
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ОБРАБОТЧИК INT3 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RINT3:
JMP START
ERROR:
MOV R6,#FFH
MOV SBUF,#21H ; ВЫДАТЬ В ЛИНИЮ "!"
MOV A,#14
CALL SETPORT
MOV A,0
MOV P0,A
MOV A,#3
CALL SETPORT
MOV A,0
MOV P0,A
RET
END.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.