
Program Assembly Animasi Lampu Kedip
Part 1
;==========================
; PROGAM UTAMA =
;==========================
ORG 0H
MULAI:
LCALL MODE1
LCALL MODE1
LCALL MODE1
LCALL MODE1
LCALL MODE1
LCALL MODE1
LCALL MODE2
LCALL MODE2
LCALL MODE2
LCALL MODE2
LCALL MODE2
LCALL MODE3
LCALL MODE3
LCALL MODE3
LCALL MODE3
LCALL MODE4
LCALL MODE4
LCALL MODE4
LCALL MODE4
LCALL MODE5
LCALL MODE5
LCALL MODE5
LCALL MODE6
LCALL MODE6
LCALL MODE6
LCALL MODE6
LJMP MULAI
;
;==========================
; MODE1 = GESER KIRI =
;==========================
MODE1:
ORG 0H
MOV R4,#08H
MOV A,#0FEH
MULAI1:
MOV P1,A
LCALL DELAY
RL A
DJNZ R4,MULAI1
RET
;
;===========================
; MODE2 = GESER KANAN =
;===========================
MODE2:
ORG 0H
MOV R4,#08H
MOV A,#0EFH
MULAI2:
MOV P1,A
LCALL DELAY
RR A
DJNZ R4,MULAI2
RET
;
;=================================
; MODE3 = BELAH DARI TENGAH =
;=================================
MODE3:
ORG 0H
MOV R4,#08H
MOV DPTR,#DATA1
LOOP1: CLR A
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC DPTR
DJNZ R4,LOOP2
DATA1: DB 0E7H,0DBH,0BDH,07EH
RET
;
;==============================
; MODE4 = TUTUP KETENGAH =
;==============================
MODE4:
ORG 0H
MOV R4,#08H
MOV DPTR,#DATA2
LOOP2: CLR A
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC DPTR
DJNZ R4,LOOP2
DATA2: DB 07EH,0BDH,0DBH,0E7H
RET
;
;==============================
; MODE5 = KEDIP 8 BIT =
;==============================
MODE5:
ORG 0H
MOV A,00H
MOV P1,A
LCALL DELAY
MOV A,0FFH
MOV P1,A
LCALL DELAY
RET
;
;==============================
; MODE6 = KEDIP 4 BIT =
;==============================
MODE6:
ORG 0H
MOV A,00FH
MOV P1,A
LCALL DELAY
MOV A,0F0H
MOV P1,A
LCALL DELAY
RET
;
DELAY: MOV R0,#0FFH
DELAY1: MOV R1,#0FFH
DELAY2: DJNZ R1,DELAY2
DJNZ R0,DELAY1
RET;
END
Part 2
ORG 00H
MULAI: MOV A, P1
CJNE A, #0FEh, LONCAT
ACALL MAJU
SJMP MULAI
LONCAT: CJNE A, #0FDh, MULAI
ACALL MUNDUR
SJMP MULAI
MAJU: MOV P0, #00000011b
ACALL TUNDA
MOV P0, #00000110b
ACALL TUNDA
MOV P0, #00001100b
ACALL TUNDA
MOV P0, #00001001b
ACALL TUNDA
SJMP MAJU
MUNDUR: MOV P0, #00001100b
ACALL TUNDA
MOV P0, #00000110b
ACALL TUNDA
MOV P0, #00000011b
ACALL TUNDA
MOV P0, #00001001b
ACALL TUNDA
SJMP MUNDUR
; Sub Routine Tunda
TUNDA: MOV R0, #001h
TUNDA1: MOV R1, #0FFH
TUNDA2: MOV R2, #0FFH
TUNDA3: NOP
DJNZ R2, TUNDA3
DJNZ R1, TUNDA2
DJNZ R0, TUNDA1
RET
END
Part 3
ORG 00H
MULAI: MOV A, P1
CJNE A, #0FEh, LONCAT
ACALL MAJU
SJMP MULAI
LONCAT: CJNE A, #0FDh, MULAI
ACALL MUNDUR
SJMP MULAI
MAJU: MOV R7,#01
BALEK: MOV P0, #00000011b
ACALL TUNDA
MOV P0, #00000110b
ACALL TUNDA
MOV P0, #00001100b
ACALL TUNDA
MOV P0, #00001001b
ACALL TUNDA
DJNZ R1,BALEK
SJMP MULAI
MUNDUR: MOV R6,#01
BALI: MOV P0, #00001100b
ACALL TUNDA
MOV P0, #00000110b
ACALL TUNDA
MOV P0, #00000011b
ACALL TUNDA
MOV P0, #00001001b
ACALL TUNDA
DJNZ R1,BALI
SJMP MULAI
; Sub Routine Tunda
TUNDA: MOV R0, #001h
TUNDA1: MOV R1, #0FFH
TUNDA2: MOV R2, #0FFH
TUNDA3: NOP
DJNZ R2, TUNDA3
DJNZ R1, TUNDA2
DJNZ R0, TUNDA1
RET
END
Semoga bermanfaat & selamat belajar!