отчет(гр3) (1031593), страница 2
Текст из файла (страница 2)
; LJMP NAME7
ORG 162h ;-------name user-start programm
; LJMP START
;----------------------USER PROGRAMM----------------------------
START: MOV R3, #8h ; 00001000 в фазу
; MOV R2, #0Ch ; 00001100 в маску1
; MOV R4, #0Ah ; 00001010 в маску2
MOV R0,#30h
MOV 30h,#0F8h
MOV 31h,#0F4h
MOV 32h,#0F2h
MOV 33h,#0F1h
MOV P1, R3 ; фазу в порт
CLR 20h.0h ; снять статус кванта STEP1
MOV R1, #20h ; задержка кванта STEP–32тика
MOV 08h, R1 ; переписать ее в регистр задержек кванта STEP
SETB 20h.1h ; установить статус кванта KLAV
MOV 09h, #80h ; записать 128 в регистр задержек кванта KLAV
MOV 28h, #0FFh ; клавиши не нажимались
MOV 22h, #00h ; все задержки в коротких тиках
RET ; возврат из ПП
;------------------user start programm--------------------------
;-----------------------user quants---------------------------
;-----------------------STEP---------------------------
STEP1: CLR A ; очистить аккумулятор
; ORL A, P1 ; фазу в аккумулятор
; XRL A, R2 ; исключающее ИЛИ фазы и маски1
MOV P1, @R0 ; результат в порт
; MOV R3, A ; новую фазу в R3
; MOV A, R2 ; маску1 в аккумулятор
; XRL A, R4 ; исключающее ИЛИ маски1 и маски2
; MOV R2, A ; новую маску1 в R2
; MOV A, R4 ; маску2 в аккумулятор
; XRL A, #0Fh ; исключающее ИЛИ маски и 0Fh
; MOV R4, A ; новую маску2 в R4
INC R0
CJNE R0, #33h, MOO
MOV R0, #30h ; равно 33
MOO: MOV 08h, R1 ; установка задержки по клавиатуре
RET ; возврат из ПП
;-----------------------KLAV---------------------------
KLAV: ORL P1, #0F0h
P1_7: JB P1.7, N_P1_7
JNB 28h.7h, P1_6
LCALL PUSK_STOP
INV7: CPL 28h.7h
SJMP P1_6
N_P1_7: JB 28h.7h, P1_6
SJMP INV7
P1_6: JB P1.6, N_P1_6
JNB 28h.6h, P1_5
LCALL REVERS
INV6: CPL 28h.6h
SJMP P1_5
N_P1_6: JB 28h.6h, P1_5
SJMP INV6
P1_5: JB P1.5, P1_4
LCALL FASTER
P1_4: JB P1.4, EKL
LCALL SLOWLY
EKL: RET
PUSK_STOP: CPL 20h.0h
MOV P1, #0F0h
JNB 20h.0h, ENDPS
MOV P1, R3
ENDPS: RET
REVERS: XRL 02, #0Fh
XRL 04, #0Fh
RET
SLOWLY: INC R1
RET
FASTER: DEC R1
RET
;----------------------------------------------
END