
Source code:
;- BAB3_04.ASM -------------------------------------------------------------------
; Lampu berjalan dari P1.0 s/d P1.7 kemudian kembali lagi
; bundet.com
;---------------------------------------------------------------------------------
#include <sfr51.inc>
Org 0h
;
Mov A,#11111110B ; data lampu menyala dikirim melalui akumulator
; agar P1.0 pertama kali menyala, akumulator
; diisi dengan 11111110B atau 0FEh
Mulai:
Mov P1,A ; kirimkan data di akumualtor ke port 1
Acall Delay ; lakukan penundaan sesaat
RL A ; rotasikan isi akumulator ke kiri
; +->------>----->----->+
; | |
; +<--7-6-5-4-3-2-1-0<--+
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,#0 ; Isi Register R0 dengan 0 (256x ulang)
Delay1: Mov R1,#0 ; Isi Register R1 dengan 0 (256x ulang)
Djnz R1,$
Djnz R0,Delay1
Ret
End
Demo:
https://youtu.be/rBCINYG4lyk
Semoga bermanfaat & selamat belajar!