Como se señaló, al usar los registros de desplazamiento, es posible controlar cualquier número de salidas usando una pequeña cantidad de pines de la CPU. Con respecto a sus requisitos específicos, no especifica el número de niveles de brillo que necesita, pero probablemente podría alcanzar un número razonable de niveles de brillo si tiene el pin de "registro latch" de los registros de desplazamiento vinculado a una habilitación de salida. Suponga que desea 128 niveles de brillo a una frecuencia de actualización de 60Hz o superior, y se necesitan 100us para marcar los bits para seleccionar y cargar una fila.
El bit de salida de reloj 0 del brillo para cada luz en la fila 0, luego pulsa la activación de latch / output para 20us. Luego registre en el bit 1 el brillo para cada luz en la fila 0 y pulse la función de enclavamiento / salida para 40us. Luego bit 2 y pulso para 80us. Para los bits 3 a 6, la duración del pulso seguirá duplicándose, pero podrá cronometrar en el siguiente bit de datos durante la parte "activa" del ciclo (ya que querrá que la habilitación esté activa durante más tiempo que él). Toma para desplazarse a través de los bits). Los primeros tres bits tomarán unos 100 + 20 + 100 + 40 + 100 + 80 microsegundos (440us en total). Los siguientes cuatro bits tomarán aproximadamente 160 + 320 + 640 + 1280 (2400us), para un total de aproximadamente 2840us. Hacer eso para las cuatro filas tomará menos de 12 ms, por lo que una frecuencia de actualización de 60Hz no debería ser un problema.
Una pequeña limitación con este enfoque es que debes asegurarte de no tratar de cambiar el brillo de las luces en una fila mientras se está procesando esa fila. De lo contrario, si por ejemplo el brillo de una luz cambia de 63 a 64 entre los tiempos en que se emiten los bits 5 y 6, la luz puede encenderse durante los primeros 6 bits (ya que los bits 0-5 están establecidos, aunque el bit 6 está despejado), y luego activado durante el último tiempo de bit (ya que el bit 6 se activará, aunque los bits 0-5 estén despejados), lo que hace que aparezca brevemente con el brillo máximo. Sin embargo, si ajusta el brillo de las luces en una fila antes de escanear esa fila, deben evitarse tales dificultades.