Haz una pregunta
  Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

12/11/2012 #1

Avatar de gzaloprgm

Cargar datos en Registro de desplazamiento desde botones
Hola a todos.

Estoy haciendo un proyecto y necesito cargar datos desde un par de botones en un registro de desplazamiento. La idea es que al apretar un botón se agregue un cero y al apretar el otro un uno.
Lo primero que hago es un "anti-rebote" por cada botón, con una red RC y un inversor schmitt trigger. Luego hago una OR de ambos botones (considerando que al apretarlos las señales se pasan a uno) y eso lo uso como clock del shift register. Luego agarro la señal del botón "1" y la conecto a la data del shift register.

En el simulador anda bien, pero el problema es que no estoy seguro de estar cumpliendo el "set-up time" del shift register. A alguien se le ocurre alguna manera de plantearlo? O si es posible (y razonable) demorar el clock con más compuertas?

Muchas gracias,
Gonzalo
13/11/2012 #2


Hola gzaloprgm

Es difícil adivinar, por ejemplo, cuál Shift Register estás utilizando, qué simulador utilizas.
Luego Dices: La idea es que al apretar un botón se agregue un cero y al apretar el otro un uno.
Sin soltar el Primero ??
Supongo que sí por lo que dices más adelante: (considerando que al apretarlos las señales se pasan a uno).
Pero si los 2 botones están conectados a la OR el estatuto de ésta es: Cualquier 1, en sus entradas, da 1 en su salida así que cualquiera que presiones la salida de la OR será 1.

Qué tal si adjuntas el archivo que se genera con tu simulador. Tendríamos una visión más clara del este asunto.
Además puedes agregar una imagen (BMP, JPG) de tu circuito.

saludos
a sus ordenes
13/11/2012 #3

Avatar de gzaloprgm

Hola... Los botones se aprietan de a uno. El shift register es serie-paralelo. El circuito es este:



En el simulador anda bien (todavía no lo probé en la vida real). La idea es que se genera una señal de clock al apretar cualquiera de los dos botones, y la señal de "data" viene de uno de ellos. Espero que se entienda. Mi duda es cómo retardar el pulso de clock.

Un saludo,
Gonzalo
13/11/2012 #4


Hola gzaloprgm

Ahora es más claro.
Con el botón superior quieres desplazar un nivel bajo(0).
Con el botón inferior quieres desplazar un nivel alto(1).

Para lograrlo debes retardar el nivel alto en la entrada C1/_>(8) del 74HCT164 con respecto las entradas &(1, 2).
Por ejemplo para desplazar un 0 primero &=0, poco tiempo después C1/_>(8)=1.
Para desplazar un 1 primero &=1, poco tiempo después C1/_>(8)=1.

Lo puedes lograr como se mira en la imagen adjunta.
Nota que el capacitor es de 100 mF solo para que se note la rampa en la entrada C1/_>(8)=1 en el osciloscopio.
Este capacitor y la resistencia asociada deben calcularse para el rango en frecuencia de trabajo de tu circuito.


saludos
a sus ordenes
Imágenes Adjuntas
Tipo de Archivo: jpg Shift Register.jpg (261,1 KB (Kilobytes), 7 visitas)
Archivos Adjuntos
Tipo de Archivo: zip Shift Register.zip (12,6 KB (Kilobytes), 3 visitas)
13/11/2012 #5

Avatar de Gudino Roberto duberlin

Hola Amigo otra alternativa consiste en aprovechar las otras restantes compuertas OR conectandolas en cascada a la salida de la compuerta principal.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Circuitos lógicos combinacionales y secuenciales

Compuertas, flips flops, registros, PLDs, codificadores, contadores, multiplexores, ...

Cerrar
Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.