Ring counter atau akrab dipanggil Led Berjalan, merupakan sebuah rangkaian logika yang terdiri dari barisan register geser. Output register bergeser lalu diumpankan ke input register pertama, begitu seterusnya.

Ring counter yang paling digemari adalah model Johnson counter, sebab secara mandiri mampu menginisialisasi seluruh register dengan nol, tanpa memerlukan suntikan hitungan bit pertama via external saat start-up.
Source code:
#include <sfr51.inc>
; Program penyalaan lampu jalan dengan nyala tiap dua
; lampu secara berurutan.
; bundet.com
ORG 00H
MULAI: MOV P0, #0FCH
ACALL TUNDA
MOV P0, #0F3H
ACALL TUNDA
MOV P0, #0CFH
ACALL TUNDA
MOV P0, #03FH
ACALL TUNDA
SJMP MULAI
; Sub Routine Tunda
TUNDA: MOV R0, #003H
TUNDA1: MOV R1, #0FFH
TUNDA2: MOV R2, #0FFH
TUNDA3: NOP
DJNZ R2, TUNDA3
DJNZ R1, TUNDA2
DJNZ R0, TUNDA1
RET
END
Demo:
https://youtu.be/1TzmImUMIT0
Semoga bermanfaat & selamat belajar!