http://www.romanblack.com/shift1.htmhttp://microcontrolandos.blogspot.mx/2014/04/one-wire-com-74hc595.html#morehttp://dqsoft.blogspot.mx/
Controlar display de 7 segmentos con shift register Etiquetas:
74hc595, 74xx595, Circuito, Conexin, Diagrama, Display, Display 7
segmentos, Electrnica, Microcontrolador, PIC, Registro de
desplazamiento, Robtica, Shift register Ya vimos lo que es y como
se controla un shift register, ahora veremos una de las tantas
utilidades que tiene. Aqu se explicar como utilizar un shift
register para controlar un display de 7 segmentos.
Para el que todava no lo conozca, un display de 7 segmentos es
un panel conformado por 7 LED que comparten entre si sus nodos o
ctodos segn si sean de nodo o ctodo comn respectivamente.
A un display de nodo comn deberemos aplicar tensin positiva al
pin compartido y GND a cada uno de los pines correspondientes a los
segmentos que se quieran iluminar, para un display de ctodo comn
deberemos invertir la polaridad. La mayora de displais poseen
tambin un octavo segmento que normalmente es un punto o dos.
Hasta aqu una pequea introduccin para conocer un poco su
funcionamiento, ahora bien, vimos que un shift register
serial-paralelo memoriza el estado (0 o 1) de un pin (entrada) y va
rotando esos valores por cada pulso de reloj para representar la
secuencia completa, cuando se activa el pin Load, en unos pines
asignados que tiene el integrado a tal fin.
Si a cada pin de salida (Q0-Q7) del integrado le conectamos un
segmento del display, como en la figura 1, logramos encender y
apagar dichos segmentos independientes unos de los otros. La
principal utilidad es representar un nmero del 0 al 9 o una letra
de la A a la F.
La ventaja de usar el shift register es que slo necesitaremos 3
pines del microcontrolador: Clock (Amarillo), Data out (Verde) y
Load (Rojo).
Figura 1. Conexin de un display de 7 segmentos a un shift
register.
Si en lugar de emplear un solo integrado usamos dos (Figura 2),
podremos multiplexar los datos. Utilizando el segundo integrado
para seleccionar el display que deseamos encender en determinado
momento, aumentaremos el numero de displais de 1 a 8 con un
integrado mas.
Figura 2. Conexin de 8 display de 7 segmentos a 2 shift
register.
Si encendemos un display, lo apagamos y luego encendemos otro, y
hacemos todo esto de manera muy rpida el cerebro humano lo
interpreta como si en realidad todos los display permanecieran
encendidos al mismo tiempo. Jugando con esto podemos ahorrarnos
muchsimos pines de nuestro PIC, por ejemplo si quisiramos hacer un
reloj que indique la hora, los minutos y los segundos, y
conectramos cada segmento a cada pin de un microcontrolador
necesitaramos uno con 42 pines solo para los displais.
Sin shift register tambin se puede multiplexar, pero aun as
utilizaramos demasiados pines, 7 para los segmentos y 1 para cada
display, para disear el mismo reloj del ejemplo anterior
necesitaramos un total de 13 pines contra los 4 que se necesitan
implementando los registros de desplazamiento.
Para usar los dos integrados, se conectan siguiendo el diagrama
de la figura 2, el segmento A de todos los displais con la Q0 del
primer integrado, los segmentos B con el Q1, los C con Q2 y as
sucesivamente. La salida Q0 del segundo integrado se conecta al
comn del primer display, el pin Q1 al segundo, el Q2 al tercero as
hasta un mximo de 8 displais.
Para controlarlo enviaremos los bits que conforman el caracter
del primer display al primer integrado y el bit correspondiente a
dicho display en 0, a cada pulso de reloj, cuando hayamos enviado
todos los bits se manda el pulso Load y es cuando aparece el
caracter en el primer display, luego se repite la operacin pero con
el bit del segundo display en 0, de esa forma, y si los displais
son de ctodo comn, encendern de a uno. A una alta frecuencia esto
crea la ilusin de estar todos encendidos.
Utilizando dos shift registers y 4 pines del microcontrolador
tendremos capacidad para controlar 8 displais, y si utilizramos un
integrado y un pin del microcontrolador ms, aumentaramos la
cantidad de displais a 16.
SHIFT REGISTER que son y cmo se usan? Etiquetas: 74hc165,
74hc595, 74xx165, 74xx595, Diagrama, Electrnica, PIC, Registro de
desplazamiento, Robtica, Shift register, SiLMuP Un registro de
desplazamiento (shift register en ingls), es un integrado capaz de
almacenar bits y presentarlos en sus pines.
Hay varios tipos pero los que aqu nos interesan son los del tipo
Serial-Paralelo y Paralelo-Serial, esto significa que en el primer
caso los bits "entran" en forma serial (uno a uno) y "salen" de
forma paralela, en el segundo caso entrar en paralelo (todos
juntos) y salen en serie.
Unos de los integrados que hacen esto, entre muchos otros, son
el 74HC595 y el 74HC165, que son Serial/Paralelo y Paralelo/Serial
respectivamente.
El pinout del 74HC595 es el siguiente:
Los pines marcados como Q0-Q7 son salidas y reflejan el estado
interno de cada bit cuando es activado poniendo a nivel alto el pin
12 (STCP), los datos ingresan de forma serial por el pin 14(DS)
cada vez que el pin SHCP pasa de estado bajo a alto ( de 0v a
5v).
Tambin se pueden enlazar varios integrados iguales de modo que
ampliamos la cantidad de bits. para ello agregamos un segundo
integrado y conectamos la patilla DS a la patilla Q7' del
primero.
La secuencia seria la siguiente: 1.Se pone el pin DS en el
estado del bit que se quiera ingresar 2.Pin SHCP en bajo3.Pin SHCP
en alto 4.Se repite el proceso hasta enviar los 8 bits 5.Se coloca
el pin STCP en bajo6.Se coloca el pin STCP en alto
y de esa forma aparece el byte en las salidas.
Pinout del 74HC165:
De manera similar funciona el 74HC165 solo que a los bit los
"lee" todos juntos.
Aqu las entradas son D0 a D7 y la salida es Q7, PL es el Load y
cuando pasa a estado bajo carga los valores de las patas D0-D7 en
"memoria" y dandole pulsos altos y bajos a CP los datos van
saliendo bit a bit.
Para encadenar varios basta con conectar Q7 de un integrado con
DS del siguiente y leer la pata Q7 del ltimo.
Este es el diagrama de conexin para leer 16 bits (2bytes) con
dos integrados enlazados:
La forma de proceder sera asi: Se pone en bajo el Load para
tomar el estado de todas las entradas (b0 a b15) luego se envia la
seal de reloj poniendo en bajo y luego en alto Clk y se lee el
estado de DI (Data-In). Recordar que en DI aparecer primero el bit
mas significativo (MSB).
Esta tcnica es vlida para controlar un display LCD, o
multiplexar cualquier dato.
Aqu esta el cdigo en CSS C:#include
#define Clk Pin_A0 #define Load Pin_A1 #define DI Pin_A2
#use fast_io(a) #use fast_io(b) int Leer_Shift (void); void
main(void){
set_tris_A(0b10100); set_tris_B(0b00000000);
do{ if (input(pin_a4)==true) output_b(leer_shift());
}while(true);
}int Leer_Shift (void){ int t; int Lectura=0; output_low (Load);
// Pongo a low Load para "cargar" el estado de las
output_high(Load); // entradas y paso a high para poder
leerlas.
for(t=0;t