Ara volem que els LED s'activin de manera seqüencial. Podríem fer un programa de l'estil dels anteriors on anéssim activant i desactivant els bits un darrere l'altre; però també podem fer un programa més curt fent servir una instrucció de rotació de bits.
Els microcontroladors tenen unes instruccions que permeten desplaçar els bits d'una variable o registre cap a un costat. Per exemple la instrucció rrf fa girar els bits d'una variable cap a la dreta fent servir el registre d'arrossegament CARRY (un dels bits d'estat) com a element d'entrada i sortida.

En el nostre cas volem treballar amb només quatre LED que estan connectats als quatre bits menys significatius (els quatre de la dreta) del port C. El que farem serà començar activant el bit 3 i anar rodant. Quan s'activi CARRY vol dir que ja no tenim cap LED activat i llavors tornarem a activar el bit 3. La seqüència serà la següent:

on el bit que està a 1 correspon al LED encès. El programa serà el següent:
PROCESSOR 16F690 #include <xc.inc> config FOSC = INTRCIO, WDTE = OFF, PWRTE = OFF, MCLRE = OFF, CP = OFF config CPD = OFF, BOREN = OFF, IESO = OFF, FCMEN = OFF
Retard1 EQU 0x20 ; Definim dues variables de comptatge Retard2 EQU 0x21 Visualit EQU 0x22 ; I una variable on guardem el que mostraran els LED
PSECT code, class=CODE, delta=2, abs ; A l'inici de la memòria
main:
bsf RP0 ; Tria el banc 1
clrf TRISC ; Posa tots els bits del port C com a sortida
bcf RP0 ; Tria el banc 0
movlw 00001000B ; Activa el bit 3 al registre W
movwf Visualit ; Copia el valor de W a la variable Visualit
Bucle:
movf Visualit,w ; Copia la variable Visualit sobre el registre W
movwf PORTC ; Copia el valor de W al port C
Ret:
decfsz Retard1,f ; Decrementa la variable
; si dona zero, no es fa la instrucció següent
goto Ret ; Salta, excepte si el resultat ha estat zero
decfsz Retard2,f ; Decrementa la variable
; si dona zero, no es fa la instrucció següent
goto Ret ; Salta, excepte si el resultat ha estat zero
bcf CARRY ; posa a zero el bit d'arrossegament
rrf Visualit,f ; Fa rodar els bits cap a la dreta
; el bit d'arrossegament entra per l'esquerra
; i el bit de la dreta passa a l'arrossegament
btfsc CARRY ; Comprova si s'ha activat l'arrossegament
; Si no s'ha activat, salta una instrucció
bsf Visualit,3 ; Si s'ha activat, torna a posar un 1
goto Bucle ; Repetim-ho...
END main
Anem a comentar les línies que estan en color, és a dir les que han canviat respecte al programa anterior. Hem definit una variable Visualit que serà la que farem rodar i on tindrem quin és el LED que s'activa a cada moment.
Com ara ja no treballem amb una sola sortida, hem fet servir la instrucció clrf per posar a 0 el registre TRISC; així tot el port C queda definit com a sortida.
Nosaltres volem activar el bit 3 de la variable Visualit i desactivar els altres; és a dir escriure-hi 00001000B. No hi ha cap instrucció que ens permeti escriure directament un valor a una variable. El que farem serà carregar un valor a l'acumulador (registre W) i després copiar-lo a la variable. La instrucció movlw copia un valor a l'acumulador. Tot seguit la instrucció movwf ens copia l'acumulador a la variable Visualit.
Amb això hem acabat la inicialització. Ara anem al bucle. Al començament del cicle copiem la variable al port C. Com tampoc podem fer-ho directament, fem servir el mateix recurs que abans. Després hi ha el bucle de retard.
Després del retard volem fer la rotació de bits. Per evitar problemes, posem CARRY a zero amb una instrucció bcf; així ens assegurem que l'únic 1 del registre és el que fem rodar. Tot seguit fem rodar i sabem que el bit de més a la dreta passarà a CARRY. Per tant comprovem si s'ha activat CARRY. Si no s'ha activat la instrucció següent es saltarà i, per tant, repetirem el bucle. Si, en canvi, s'ha activat CARRY tornarem a activar el bit 3 de la variable per tenir altre cop el primer dels quatre estats.
Un cop hagueu provat el programa podeu repetir-ho posant 00001100B o 00001010B al registre i tindreu també rotacions de bits però amb dos bits encesos.
El microcontrolador també té una instrucció rlf que fa girar els bits cap a l'esquerra.

Fixem-nos que fer girar els bits cap a la dreta equival a dividir per 2 i fer-los girar cap a l'esquerra a multiplicar per 2. Vegem-ho:
| Decimal | Hexadecimal | Binari |
| 54 | 36h | 0011 0110 |
| 27 | 1Bh | 0001 1011 |
Si intentem fer el nostre programa amb aquesta instrucció, no funcionaria bé ja que quan estiguessin activats els bits 4, 5, 6 o 7 no hi hauria cap LED encès. Per fer girar els LED en sentit contrari hauríem de canviar el programa de manera que comencessim activant només el bit 0 i quan detectéssim l'activació del bit 4 (en lloc de l'activació de CARRY) tornaríem a activar el bit 0.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.