Anda di halaman 1dari 1

;-- -----------------------------------------------------------

;
; Lampu flip-flop pada Port 1
;
;--------------------------------------------------------------------------
ORG 0H ; program ditempatkan pada lokasi 0000H
;
MULAI: MOV P1,#10101010B ; LED P1.4 s/d P1.7 nyala (heksa= #0FH)
ACALL DELAY ; lakukan penundaan sesaat (sub. DELAY)
MOV P1,#01010101B ; LED P1.0 s/d P1.3 nyala (heksa= #0F0H)
ACALL DELAY ; lakukan penundaan sesaat (sub. DELAY)
SJMP MULAI ; ulangi lagi dari awal
;
;-subrutin DELAY-----------------------------------------------------------
;
; subrutin ini hanya sekedar melakukan penundaan sesaat dengan cara
; mengulangi proses (pengurangan isi register) hingga dicapai suatu
; kondisi tertentu
;
;--------------------------------------------------------------------------
DELAY: MOV R0,#5H ; Isi Register R0 dengan 5 (5x ulang)
DELAY1: MOV R1,#0FFH ; Isi Register R1 dengan 255 (255x ulang
DELAY2: MOV R2,#0 ; Isi register R2 dengan 0 (256x ulang)
DJNZ R2,$ ; R2=R2-1, jika R2 belum 0 ulangi lagi
DJNZ R1,DELAY2 ; R1=R1-1, jika R1 belum 0 ulangi DELAY2
DJNZ R0,DELAY1 ; R0=R0-1, jika R0 belum 0 ulangi DELAY1
RET ; Kembali ke pemanggil subrutin DELAY
END

Anda mungkin juga menyukai