# Registro de corrimiento bidireccional



## ferpapi (May 13, 2010)

Hola a todos:

Este es mi primera participacion en este foro. Bueno el problema que tengo es que necesito crear un registro de corrimiento que siga la siguinete secuencia:

1000   0100   0010   0001 0010 0100 1000

y regrese. la verdad no tengo ni idea. investigando un poco creo que se realiza con un 74194 pero no se como van las conexiones.

si alguien me podria ayudar se lo agradecere mucho.


----------



## canales (May 14, 2010)

Investiga el diseño de contadores síncronos.

Saludos....


----------



## MrCarlos (May 16, 2010)

Hola ferpapi

Para desplazar esos 28 Bit’s:
({1000 0100 0010 0001 0010 0100 1000) = 8, 4, 2, 1, 2, 4, 8})
puedes utilizar:
4 IC’s 74165; Son registros de desplazamiento de 8 Bit’s tipo PISO (Parallel In, Serial Out) entrada paralelo salida serie.
4 IC’s 74164; Son registros de desplazamiento de 8 Bit’s tipo SIPO (Serial In, Parallel Out) Estrada Serie Salida Paralelo.
2 IC’s 74191; Son Contadores Binarios.
Y Algunas Compuertas.

Los 74165 deben estar conectados en cascada de Q a IN, las entradas de control LD Juntas; las entradas Clock Juntas; las entradas EN a tierra; en las entradas de la A a la H tus datos. Sobrará un grupo de cuatro Bit’s.

Los 74164 deben estar conectados en cascada de la H a S1; las entradas S2 a tierra, las entradas CL Juntas, las entradas Clock Juntas.

La salida Q del 74165, primero en la cascada, se conecta a S1 del 74164, primero de la cascada.

Los 74191 se conectan en cascada la salida C(Carry) a la entrada Clock del Siguiente; de los 2 74191: Las entradas LD Juntas, las entradas L’s, EN, U/D a tierra; queda una entrada Clock sin conectar...ahí se conecta la salida de una compuerta OR de 2 entradas y también todas las demás entradas Clock de los 74165 y 74164. la salida de una compuerta AND de 3 entradas se conecta a una entrada de la compuerta OR, por su otra entrada se aplica la señal de Clock. Una entrada de la compuerta AND se conecta a Q1 del segundo 74191, otra entrada de la compuerta AND se conecta a Q4 del primer contador y otra entrada de la compuerta AND se conecta a Q8 del primer contador.
Este arreglo es para que el desplazamiento se detenga cuando la cuenta de los 74191 llegue a 28 (8+4+16=28) por el momento.

Un Push Button Normalmente cerrado se utilizará para iniciar el proceso de desplazamiento. Una punta al positivo y la otra a las entradas LD de los 74165 y 74191 así como a las entradas CL de los 74164.

De algún modo programa las entradas de la A hasta la H de los 4 74165 con tus datos, recuerda que sobra un juego de 4 Bit’s conéctalos a tierra. Otro detalle: si le damos un nombre a tus Bit’s sería así de Izq. A Der.
A8, A4, A2, A1, B8, B4, B2, B1......Etc. Entonces, el grupo de las A’s se conecta de la E a la H y el Grupo de las B’s se conecta de la A a la D del 74165, ¡ como que está al revez, pero así es. De modo que ten en cuenta este detalle para cuando conectes los otros 3 74165 con los datos de C’s, D’s, E’s, F’s y G’s.

Si armas este circuito (Virtual o Real) notarás que se desplazan tus datos de Izq. a Der. Solamente. Qué hacer para que se regresen hacia la Izq. ?

Necesitarás otros 4 74164 y por medio de otra circuiteria pasar los datos de los primeros 74164 a estos otros cuatro.
No es muy difícil el hacerlo.

Si nombramos a los 74164 A, B, C, D podemos decir que están conectados así:
A(H)>-B(S1), B(H)>-C(S1), C(H)>-D(S1). cierto ? (Nombre de la terminal), >- Va a.

Para que se regresen debes conectarlos así:
A(S1)>-B(H), B(S1)>-C(H), C(S1)>-D(D), A(A)>- Nuevo(S1) y Así sucesivamente.
Como los 74191 con su cuenta 28 nos dice que ya termino de moverlos hacia Izq. ó Der. Ese pulso se puede aprovechar para cambiar estas conexiones por medio de una circuiteria y así moverlos en ambos sentidos.

No olvides desconectar la salida Q del 74165 a S1 del 74164 para que no interfiera.

saludos
a sus ordenes


----------



## ferpapi (May 17, 2010)

Muchas gracias a todos por su respuesta la verdad es que es mas facil de lo que parecia.
investigando y preguntando con maestros de la universidad me ayudar a diseñarlo.

Gracias MrCarlos por la informacion pero creo que entendiste mal, el registro es de 4 bits no de 28, jeje a lo mejor no me di a explicar bien.
primero 1000
despues 0100
despues 0010
despues 0001
despues 0010
despues 0100
despues 1000
y de ahi volver a empezar.
si quieres luego subo la simulacion para que lo cheques.
GRACIAS!!!!


----------



## MrCarlos (May 17, 2010)

Hola ferpapi

claro que si me gustaría ver la simulacion.
ojala la subas para aprender algo mas todos.
gracias

saludos
a sus ordenes


----------



## ferpapi (May 17, 2010)

Hola:

Lo prometido es deuda y aqui esta el registro de corrimiento que necesitaba. Gracias a todos.
les explico:
el circuito trae dos switch. Uno es por el cual metemos el 1 al registro y el otro es para simular los pulsos de reloj. hay que prender y apagar para vaer el funcionamiento del circuito.



eso es todo espero que alguien le ayude un poco.


----------



## MrCarlos (May 17, 2010)

Hola ferpapi

solo para darte las gracias.

saludos
a sus ordenes


----------



## luvapi (Abr 29, 2011)

Hola Ferpapi!!

Me gustaria revisar tu simulacion, pero en que programa lo hiciste??  
Gracias!


----------



## MrCarlos (Abr 29, 2011)

Hola luvapi

El circuito contenido en el archivo RAR que adjuntó ferpapi en su mensaje #6 fue desarrollado con el SoftWare CircuitMaker.

Esta es una imagen del circuito.

saludos
a sus ordenes


----------



## luvapi (Abr 30, 2011)

MrCarlos dijo:


> Hola luvapi
> 
> El circuito contenido en el archivo RAR que adjuntó ferpapi en su mensaje #6 fue desarrollado con el SoftWare CircuitMaker.
> 
> ...




Ahhh que bien MrCarlos!! muchas gracias, me sera bien utili.


----------



## Roney43 (Jul 17, 2014)

hola a todos me pueden ayudar con el este circuito en proteus os agrede mucho


----------



## MrCarlos (Jul 17, 2014)

Hola Roney43

Puedes tomar como referencia la imagen que aparece en el mensaje #9 para desarrollar tu diseño en ISIS de Proteus.
O a cuál circuito te refieres ??

saludos
a sus ordenes


----------



## Roney43 (Jul 17, 2014)

Quiero realizar un registro biestable es decir los leds se enciendan uno por uno desde derecha a izquierda y luego se apaguen uno por uno de izquierda a derecha si por favor me puedes ayudar te lo agradecería



aqui te envio el programa para que le hagas correr


----------



## MrCarlos (Jul 18, 2014)

Hola Roney43

Es un poco difícil lograr tu objetivo con el IC 74LS164.
Este IC solo desplaza un 1 o un 0 en la transición positiva de un pulso aplicado a su entrada Clock(8).
Su entrada de control R(9) debe ser falsa, 0, para que funcione el desplazamiento. Tú NO tienes desconectada esta entrada.
El símbolo & representa una función AND en sus PIN’s 1 y 2.
Tú tienes conectada la entrada de un inversor al PIN 2 del 74LS164 y, la salida de aquel, a los PIN’s 8 y 13; de este modo el inversor no hace ningún efecto en tu diseño.

El 74LS164, invariablemente, desplaza el Dato así: 
Pin 1 & 2 = 0 (Función AND).
Desplaza un 0 por los PIN’s Así:
3 -> 4 -> 5 -> 6 -> 10 -> 11 -> 12 -> 13 

Pin 1 & 2 = 1 (Función AND).
Desplaza un 1 por los PIN’s Así:
3 -> 4 -> 5 -> 6 -> 10 -> 11 -> 12 -> 13

Ahora bien, si quieres encender, uno por uno, los LED’s de Derecha a Izquierda y luego que se vayan apagando, uno por uno, de Izquierda a Derecha necesitarías más IC’s.

Por ejemplo:
8 compuertas OR exclusivas entre las salidas de los 74LS164 y las resistencias limitadoras de corriente para los LED’s.
Colocando los LED’s Horizontalmente en la hoja de trabajo de tu ISIS de proteus y los dos 74LS164 colocados con las terminales de salida hacia arriba: 
El LED de la Derechaa se conecta, con su resistencia, a la salida de una...compuerta OR Exclusiva.
El LED de la Izquierda se conecta, con su resistencia, a la salida de otra compuerta OR Exclusiva.
Y así cada uno de los LED’s

Una de las entradas de la compuerta OR Exclusiva conectada al LED de la Derecha se conecta a un 74LS164(A) en su PIN 3 mientras si otro PIN se conecta al otro 74LS164(B) En Su Pin 13.
Una de las entradas de la otra compuerta OR Exclusiva conectada al LED de la Izquierda se conecta a un 74LS164(A) en su PIN 13 mientras si otro PIN se conecta al otro 74LS164(B) En Su Pin 3.
Me estoy explicando ??. . . Continua conectando las demás compuertas hacia los 74LS164 A y B.

Supongo que colocaste horizontalmente los dos 74LS164. 
El que está a la Derecha, encenderá los LED’s uno a uno de Derecha a Izquierda. 
El que está a la Izquierda, apagará los LED’s uno a uno de Izquierda a Derecha.

El truco ahora es desplazar un 1 por las salidas del 74LS164 de la Derecha. 
Y posteriormente desplazar un 1 por las salidas del 74LS164 de la Izquierda
Esto lo puedes lograr con un Flip-Flop, por ejemplo el 74LS74.
Además requerirás de: 
Una compuerta OR de 2 entradas. 
2 compuertas AND de 2 entradas. 
Una compuerta NAND de 2 entradas.

Crees poder continuar solo ??. . . ¡Inténtalo, no es muy difícil.

Te voy a dar algunos TIP’s:
La compuerta OR es para cambiar el estado del Flip-Flip, las entradas de la OR van hacia el PIN 13 de cada 74LS164.
Las compuertas AND son para permitir el paso del Clock, por medio de la Q y ‘Q del 74LS74, hacia uno de los dos 74LS164.
La compuerta NAND es para restablecer todo cuando las dos salidas 13 de los 74LS164 son 1.

saludos
a sus ordenes

PD: creo que sería más sencillo utilizar 2 IC’s 74LS194.


----------



## Roney43 (Jul 18, 2014)

si es verdad si estoy utilizando dos ci 14ls164 gracias por la ayuda
aqui te envio una foto lo estoy haciendo haciendo


----------



## MrCarlos (Jul 18, 2014)

Hola Roney43

Bueno, en la imagen que adjuntaste no se distinguen varias cosas.
Que tanto has hecho de lo que te recomendé en mi mensaje #14 ??

saludos
a sus ordenes


----------



## Roney43 (Jul 19, 2014)

Basicamente para que los leds se enciendan consecutivamente se necesita 1 74ls164  y 1 74ls04 y los leds se encienden de derecha a izquierda pero para que se enciendan como te dije anteriormente utilie otra 74ls164 y otro 74ls04 conectando los pines de salida de la 2 74ls164 a la 1 74ls164 como podes ver en este archivo. gracias por tu ayuda



y si es verdad no tengo conectado las entradas 9 como las utilizo por favor


----------



## MrCarlos (Jul 19, 2014)

Hola Roney43

El archivo DOCX comprimido en el RAR que adjuntaste es el mismo que se mira en tu mensaje #15.
No son claramente distinguibles algunos detalles de tu diseño.

Fíjate en la imagen adjunta *M13 LED’a.PNG*. es tu mismo circuito; contiene algunas notas.
Es el mismo dibujo que contiene el documento *M13 LED’a.PDF* que te adjunto.

Observa los archivos Demo que te adjunto, puedes analizarlos detalladamente y basándote en lo que te menciono en mi mensaje #14 realizar tu proyecto.

No creo que con tan solo 2 74LS164 y 2 inversores logres tu objetivo; se requieren más componentes.

Yo ya lo tengo hecho tal cual lo describo en aquel mi mensaje #14. Pero has un esfuerzo ¡ no es tan difícil ¡.
Muéstrame algún adelanto para poderte ayudar.

saludos
a sus ordenes


----------



## Roney43 (Jul 19, 2014)

hasta aqui he llegado en el trabajome sale un error al querer hacer correr el programa con los or exclusivas por favor como lo hago es mi trabajo final ayuda

he seguido tus pasos al pie de la letra pero no me sale



 por fa necesito ayuda


----------



## MrCarlos (Jul 19, 2014)

Hola Roney43

Parece que te está ganando tu ISIS de Proteus Versión 8.
La compuerta XOR que seleccionaste NO es simulable. Es tan solo para, teniendo el diseño completo, hacer el PCB.
Te recomiendo que utilices la 74LS136.

Las conexiones entre los 74LS164 y las compuertas XOR parecen correctas.

Vas muy lento. Cuándo debes entregar tu diseño ??

saludos
a sus ordenes


----------



## Roney43 (Jul 20, 2014)

Es para el martes es el examen final y no me sale soy nuevo con el isis de proteus


----------



## Roney43 (Jul 20, 2014)

gracias gracias con tu ayuda estoy a punto de lograr hacer el circuito  
solo me falta q se este repitiendo y ya  gracias bro


----------



## MrCarlos (Jul 20, 2014)

Hola Roney43

Ojalá veas a tiempo este mensaje.
Dale una buena estudiada, espero te sirva.

saludos
a sus ordenes


----------

