Stelmakh / чиж смемотехн_ка
.docx// address of LEDs 0x07
// define DATA transfer register
DAT EQU R0
// define ADDRESS transfer register
ADDR EQU R1
// define temporary0 register
Temp0 EQU R2
// Address for PUSH and POP commands
_Temp0 EQU 0x02
//Interrupt vector
ORG 0x0000
JMP Start
ORG 0x0033
START:
MOV DAT,#10000000b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#01000000b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00100000b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00010000b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00001000b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00000100b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00000010b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00000001b
MOV ADDR, #0x07
CALL write
call Delay1s
MOV DAT,#00b
MOV ADDR, #0x07
CALL write
call Delay1s
JMP START
// Write to periferal device subroutine
write: setb P3.6 //Set Data bus buffer to TX
mov P0, DAT //moving data to bus buffer
mov P2, ADDR //set periferals address
nop //wait
nop
mov P2, #0x00 //clock pulse for device latch
ret //exit from subroutine
LDelay: // П³дпрограма затримки тривал³стю 17.9 мс.
MOV Temp0, #0xFF
LD1:
DEC Temp0
PUSH _Temp0
MOV Temp0, #0xFF
DJNZ Temp0, $
POP _Temp0
CJNE Temp0, #0x00, LD1
RET
Delay1s:
mov R3,#56
del1s:
CALL LDelay
djnz R3,del1s
RET
END