xaviergarvi.
Oye Hice un diagramita en Pint, Peo no he podido adjuntarlo , no se como hacerlo.
Tal vez te lo podria enviar directamente a tu Correo.
O que alguien me ensene por favor, como adjuntar imagenes y diagramas.
Mira . esta seria una de las muchas maneras de hacer lo que tu quieres.
SE podria hacer un circuito similar a este , para manejar los LEDS RGB.
Enviariamos primero un 0 a PORTB 0. Al pasar por el transistor Tendriamos a la salida 5 Volts.
Enviamos un pulso a Data por PORTA,0
Ahora Enviamos Un Clock A los SN 74HC 164 que sea nesesario para manejar la cantidad de leds que queremos, cada SN 74HC164 Maneja hasta 8 salidas * ( 8 Leds )
La ultima salida de cada SN 74HC164 se conecta al pin Data ( pin 1y2) de el siguiente SN 74 HC 164 y asi susesivamente hasta lograr la cantidad de salidas que queremos
Veamos:
Iluminare los LEDS Rojos.
BCF PORTB,0 ; Salida para primera hilera de LEDS Rojos
BCF Data ; DATA en 0
BSF Clock ; Ingresa el 0 Del DATA, sale un 0 Por la primer salida de
; el SN 74HC164.
; El primer Led Rojo Enciende, Anodo( RB0 = 5 Volts
; Katodo 0 Volts ( salida 1 del primer SN 74HC)
CALL Retardo_1ms ; Dura iluminado este Tiempo
BCF Clock ; Pongo el reloj en 0
BSF Data ; Ahora coloco DATA en 5 Voltios .y lo dejare asi hasta
; Ilumniar la totalidad de los LEDS ROJOS
CALL Retardo_1ms ‘ Se apaga el Led Durante Este Tiempo.
; Ahora bien Lo que haremos ahora en adelante es DESPLAZAR el Primer 0 ( Cero ) que introdujimos En Data, Desplazandolo por la totalidad de los SN 74HC164 que Hayamos Colocado.
BSF Clock ; Desplazo el 0 ( cero) Saldra cero por la segunda
; Salida del primer SN 74HC,
CALL Retardo_1ms : el Segundo LED ROJO ilumninara durante este T.
BCF Clock ; Cero al Clock
CALL Retardo_1ms ; Ledapagado durante este tiempo.
BSF Clock ; Asi iremos desplazando el Cero por
CALL Retardo_1ms ; Shift Register
BCF Clock ; iluminando cada led
CALL Retardo_1ms ; Hasta Completar los 60 o ma sleds.
; Cuando terminemos.
; Ahora colocaremos Cero en la salida de RB1 y
; Repetiremos lo anterior para iluminar la hilera de ; Verdes
;Esta seria una de las muchas maneras de hacer un desplazamiento secuencial para los LEDS.
#DEFINE Clock EQU PORTA,0
#DEFINE Data EQU PORTA,1
Al comienzo Coloco en alto Las salidas de PORTB, para que ninguno illumine,
BSF PORTB,0
BSF PORTB,1
BSF PORTB,2
Y para habilitar cada hilera, Simplemente Coloco un cero en la salida del PORTB correspondiente
BCF PORTB,0
Los demas PORTB seguiran en alto hasta que decida Hacerlos Iluminar.
Puedo tambien Hacer
#DEFINE Clock EQU PORTA,0
#DEFINE Data EQU PORTA,1
#DEFINE Rojo EQU PORTB,0
#DEFINE Verde EQU PORTB,1
#DEFINE Azul EQU PORTB,2
Quedaria entonces
BSF Rojo
BSF Verde
BSF Azul
Para que por ahora ninguna hilera illumine.
Para que una \hilera illumine
BCF Rojo
BCF Data
BSF Clock
CALL Retardo
BCF Clock
BSF Data
BSF Clock
Call Retardo
BCF Clock
CALL Retardo
Y ETC.