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 darrera l'altre. 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 C (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 C 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:
#include <p16F690.inc> __config (_INTRC_OSC_NOCLKOUT&_WDT_OFF&_PWRTE_OFF&_MCLRE_OFF&_CP_OFF&_BOR_OFF&_IESO_OFF&_FCMEN_OFF)
cblock 0x20 Retard1 ; Definim dues variables de comptatge Retard2 Visualit ; I una variable on guardem el que mostraran els LED endc
org 0 Inici bsf STATUS,RP0 ; Tria el banc 1 clrf TRISC ; Posa tots els bits del port C com a sortida bcf STATUS,RP0 ; Tria el banc 0 movlw b'00001000' ; 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 1 ; 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 2 goto Ret ; Salta, excepte si el resultat ha estat zero bcf STATUS,C ; 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 STATUS,C ; 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
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 b'00001000'. 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 C 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 C. Per tant comprovem si s'ha activat C. Si no s'ha activat la instrucció següent es saltarà i, per tant, repetirem el bucle. Si, en canvi, s'ha activat C 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 b'00001100' o b'00001010' 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 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.