Dudas muy puntuales - Entradas y salidas controlador display 7447

Buenas buenas!! Si les da pereza leer, las preguntas en sí están marcadas ^^

Soy nuevo en el foro, y aunque he a veces leido bastante, este es el primer tema que abro ^^ gracias por la ayuda!

Mi duda es la siguiente: Necesitamos armar una calculadora de 4 bits, que sume, reste, multiplique y divida.

Tenemos listos los displays de entrada y salida: un display para cada entrada (con un dipswitch de 4) y dos displays para la salida. Para la conversión de la salida de binario a BCD usamos un circuito suma 3 para general el BCD de dos digitos. Los displays son anodo comun y los controladores de los displays son 7447.

Ahora, todo esto lo hemos hecho casi a pasos de ciego ^^ ya que nuestro profesor no es, digamos, muy dado a enseñar... Y tenemos una duda con respecto a las entradas y salidas de los sumadores 7483 y de los controladores 7447.

Duda 1: A base de prueba y error, nos hemos dado cuenta de que, para que el 7447 reconozca un 1 en la entrada, debemos poner esa entrada en tierra (con una resistencia, en este caso de 330Ω). Si la conectamos a Vcc o simplemente la dejamos al aire, nos reconoce un 0. ¿Alguien me podría explicar esto ligeramente? ¿Tiene algo que ver con la lógica negativa o positiva?

Duda 2: La otra duda, todavía más puntual, es esta: Necesitamos que la calculadora divida también. Existe, en la familia 74xx, algún chip divisor??? Hemos buscado por todos lados y preguntado en cualquier cantidad de electrónicas y nos han dicho que no...

Muchas gracias de antemano!!!
 
Hola dhcarmona

Qué simulador estás utilizando ?.

Vamos Viendo El Decodificador BCD a 7-Segmentos:
En el dibujo “Demo 74LS47” se puede apreciar un rectángulo llamado DigiSwitch. Este es un conmutador que por sus salidas 4, 3, 2, 1 aplica ceros o unos al DM74LS47 a sus entradas llamadas A3(6), A2(2), A1(1), A0(7).
Un máximo de 16 combinaciones posibles de unos y ceros se pueden lograr con esos 4 BIT’s de salida del DigiSwitch. Desde el cero (0000) hasta el 15 (1111).
Los valores o el Peso de cada salida(BIT) del DigiSwitch son:
4 = 8.
3 = 4.
2 = 2.
1 = 1.
De tal suerte que si por esas salidas tenemos una combinación así: 4=0, 3=1, 2=1, 1=0. tendríamos en las entradas A3, A2, A1, A0 del Decodificador programado un 6. 0110(Binario) = 6(Decimal).
Este Decodificador haría su trabajo poniendo a nivel bajo(0) sus salidas correspondientes para mostrar un 6 en el Display.
En la imagen “Demo 74LS47” las líneas azules son nivel bajo(0), las rojas son nivel alto(1), las verdes son nivel indefinido(x). Este último, en circuitos de 3 estados, es “abierto”.
De la palabrería anterior podemos definir que las entradas del 74LS47 son cierta cuando son altas, podríamos llamarla Lógica positiva. Las salidas hacia los segmentos del Display son ciertas cuando son bajas, podríamos llamarla Lógica negativa.
El que encienda un 6 en el Display depende también de las condiciones de las entradas de control llamadas test(3) y RBI(5).
Test(3) cuando es cierto, cero, encienden todos los segmentos del Display.
RBI(5) cuando es cierto, cero, se apaga el Display si en las entradas A0 hasta A3 están a nivel bajo.
Ésta entrada de control es particularmente importante cuando tenemos que mostrar más de una cifra. Por ejemplo en 2 Display’s cuando queremos mostrar el número 10 si encenderían los 2 Display’s cada uno con su correspondiente número pero si las cifras son 01 el cero no debería encender.
La salida RBO(4) es utilizada en conjunción con RBI para que los ceros a la izquierda no enciendan en los Display’s en sistemas de más de una cifra. Sin embargo para mostrar 606 el cero si debe encender no así en 066 en donde el cero no debe encender.

Probablemente no han estudiado las hojas de datos de este u otro circuito integrado.
Las hojas de datos de cualquiera las puede encontrar y bajar de este enlace:
http://www.alldatasheet.com/
pueden indagar por número de parte o por descripción.

Al respecto de su Duda 2, efectivamente a la fecha no se conoce algún circuito integrado que efectúe la operación de dividir o multiplicar o restar.
Solo hay circuitos integrados que efectúan la operación de sumar.
Con estos se puede diseñar los divisores, multiplicadores y restadores.
Visiten este enlace donde encontrarán como hacer el restador, multiplicador y divisor. Binarios todos ellos.
https://www.forosdeelectronica.com/f25/aritmetica-binaria-restador-multiplicador-divisor-binarios-53889/#post473675


Puedes no leer estos párrafos pero no los contestes, no es necesario.
Dices: ya que nuestro profesor no es, digamos, muy dado a enseñar.
La enseñanza ya no es como antiguamente,
El profesor ya no enseña; pero mucho o poco solo guía.

Antes un profesor enseñaba 100 cosas a 10 alumnos.
En estos tiempos trata de enseñar 10000 cosas a 100 alumnos.
Es imposible, en el tiempo de clases, enseñar x a tantos alumnos así que mucho o poco los guía para que los alumnos efectúen las labores de investigación y desarrollo de cualquier tema.

Actualmente Tú estás desarrollando la labor de investigación.
El cómo funciona esto o aquello. Que supuestamente el profesor debería haberte enseñado.
Ponte en los zapatos de él e imagínate que aquellos 100 alumnos, después de haberles explicado el 74LS47, c/u te hace una pregunta diferente. Si tardas 5 minutos en dar 100 respuestas tardarías más de 8 Hrs. En responderlas.
Luego de esas 100 respuestas de seguro surgirían otras preguntas.
Claro estoy exagerando con 10000 cosas a 100 alumnos. Pero no podemos negar que cada día hay más cosas que aprender y cada día hay más alumnos a los que hay que enseñar. Pero el tiempo es el mismo de antes 24 horas por día.
Pero creo que vas por buen camino. Como que tienes la filosofía de:
Yo tengo que hacer lo que tenga que hacer aunque los demás no hagan su parte.

saludos
a sus ordenes
 

Adjuntos

  • Demo 74LS47.jpg
    Demo 74LS47.jpg
    162.1 KB · Visitas: 39
Muchas gracias MrCarlos por la respuesta ^^

La calculadora la estamos armando en protoboards (llevamos 6 protoboards por ahora ^^) pero usamos el LiveWire para guiarnos.

Me queda todo bastante más claro, excepto por un tema:

Entiendo cuando dices que al 7447 le debe entrar un 1 lógico para la entrada que quiero "encender", como en el ejemplo que pones del 6. Lo que no comprendo es porqué, en la protoboard, el 1 lógico lo envío conectando esa patilla mediante una resistencia a la tierra. ¿No debería ser al revés, que envíe un 1 lógico si lo conecto a Vcc? Lo hemos probado de las dos maneras, pero conectando a tierra es la única forma...
 
Hola dhcarmona

A las entradas del 7447 NO se conectan resistencias. Se conectan al Vcc. o a Gnd. O, desde luego, a otro circuito integrado. Pero para que funcione bien se DEBEN conectar todas ellas, desde A3 hasta A0, ya sea a un 1 lógico o a un 0 lógico.
Tal vez se conecten resistencias pero como se muestra en la imagen adjunta. Estas son con el fin de que EFECTIVAMANTE las entradas “Sientan” un 1 o un 0.
Si alguna entrada se deja sin conectar, esa(s) entrada(s) quedaría(n) en estado indefinido. Ni 0 ni 1.

Te recomiendo estudias las hojas de datos del SN74LS47 de Texas Instruments.
En ellas viene el diagrama a nivel compuertas Lógicas y también a nivel componentes discretos, transistores, diodos, resistencias.
Por medio del análisis de los diagramas con componentes discretos puedes definir el cómo y por qué hay que conectar las entradas y salidas.
Notarás que las entradas son por el emisor de un transistor y las salidas son por el colector de un transistor, internamente no hay otra conexión en las salidas que el colector.
En el 7448, los transistores de salida si tienen una resistencia hacia el Vcc.

saludos
a sus ordenes
 

Adjuntos

  • Borrame 4.jpg
    Borrame 4.jpg
    257.2 KB · Visitas: 39
  • SN74LS46 a LS49 BCD-To-7-Segment Decoder Driver.pdf
    585.1 KB · Visitas: 21
Última edición:
Lo que no comprendo es porqué, en la protoboard, el 1 lógico lo envío conectando esa patilla mediante una resistencia a la tierra. ¿No debería ser al revés, que envíe un 1 lógico si lo conecto a Vcc? Lo hemos probado de las dos maneras, pero conectando a tierra es la única forma...

:unsure: eso es preocupante... posiblemente conectaste el positivo a la linea del protoboard marcada como negativa y al hacer la prueba en realidad le estas metiendo un 1.. pero como vez que sale de la negativa piensas que es un cero...

revisa que los voltajes sean correctos con un multimetro, y tambien realiza pruebas solo con el 7447 y un display en un protobard sin conexiones al resto de tu circuito... asi se puede discipar la duda...
 
Gracias a los dos ^^ pues sí, a todos los compañeros del grupo nos preocupa lo mismo, los positivos y negativos del protoboard están bien marcados, y se da el caso de que, si conecto la patilla de entrada del 7447 al Vcc, el chip detecta un 0 ahí. Le consultamos al profesor y nos contestó que "es así porque el 7447 trabaja en lógica negativa". Comprendo la lógica negativa de salida del 7447, pero no la de entrada T_T...

MrCarlos, estudiando las datasheet que pusiste veo que tienes toda la razón, y de hecho así lo probamos primero (1 lógico = Vcc), pero no nos sirvió...

¿Crees que las resistencias tengan algo que ver?
 
Hola dhcarmona

Lo que has venido mencionando de los voltajes positivos y negativos referenciados a cualquiera lógica positiva o negativa tiene su fundamento en lo que se requiere que haga algún circuito en su(s) salida(s) a consecuencia de lo que hay en sus entradas.

A) Observa las compuertas en la imagen adjunta; los de las columnas izquierdas son iguales a los de las columnas derechas. Cierto ?.
Aquí podemos ejemplificar lo mismo:
Imagínate que te hubiera escrito esto:
B) Observa las compuertas en la imagen adjunta; los de las columnas derechas son iguales a los de las columnas Izquierdas. Cierto ?.
Es lo mismo A) que B). Cierto ?.

Normalmente en lógica positiva los valores ciertos son 1’s y en lógica negativa los valores ciertos son 0’s
Pero que es eso de valores ciertos ?.

No es masque la conveniencia para el entendimiento o el nivel que da cada componente del circuito; suponiendo que quiero que se encienda un LED(x) cuando está lloviendo(A) Y que sea de noche(B) Y que tenga en el patio algo(C) que se dañaría con la lluvia.
Podríamos decir que con una compuerta AND de 3 entradas tendríamos nuestro sistema de alarma para cuando en el patio hay algo se perjudica con la lluvia. Cierto ?.
Sin embargo no es así pues no sabemos que niveles de voltaje, unos o ceros, nos da nuestros sensores.
Por ejemplo:
Sensor(A) de lluvia, bajo cuando lleve.
Sensor(B) de luz diurna, alta cuando es de noche.
Sensor(C) de objetos en el patio, baja cuando no hay objetos.

Como que el de la lluvia está al contrario, en lógica positiva, pues debería ser 1 cuando llueve indicando que está lloviendo.
El de la luz parece correcto pues es 1 cuando es de noche. Indicando que SI es de noche.
El de los objetos también parece correcto pues nos da un 0 cuando no hay objetos.

Así que no es tan sencillo el hacer nuestro sistema de alarma a consecuencia de esa conjunción de lógica positiva y negativa.
Falta considerar el LED: Qué anunciaría si conectamos el cátodo a la salida de nuestro circuito ?. y si conectamos el ánodo a la salida del circuito ?. claro con su respectiva resistencia limitadora.

Las entradas A3, A2, A1, A0 del 7447 entienden la Lógica positiva.
Los valores ciertos son altos, unos. Por consecuencia los valores falsos son bajos, ceros.
Ahora bien, dices que conectan, atreves de una resistencia, UNA terminal de entrada a tierra y que en el Display aparece un número. Esto hecho en el ProtoBoard.
Bien: necesito saber qué terminal conectaron a tierra y qué número aparece en el Display.
Estoy suponiendo que solo una terminal conectan a tierra, si no es así díganme como o a qué conectan todas las entradas del 7447.

saludos
a sus ordenes
 

Adjuntos

  • Negative & Positive Logic Gates.jpg
    Negative & Positive Logic Gates.jpg
    157.1 KB · Visitas: 12
Muchisimas gracias MrCarlos!! Disculpa por no haber contestado hasta ahora, pero estabamos trabajando en el proyecto...

Resulta que revisamos las conexiones y sí, había un problema con los "puentes" de la protoboard: donde creiamos que era tierra, en realidad habia un Vcc :) que verguenza, disculpen de verdad, y muchas gracias por la ayuda ^^ de verdad ahora me queda mucho mas claro el asunto de la logica negativa y la logica positiva (por ahora tenemos el asunto de que reconoce la tierra como 0, una entrada en Vcc como 1 logico, pero un indefinido (simplemente desconectar la patilla) como un 1 también... No sé si será por alimentar el 7447 con una bateria cuadrada de 9 voltios...

Tenemos otra duda con respecto a la alimentación, pero mejor abro otro post.

De nuevo, muchisimas gracias!!
 
Hola dhcarmona

Tierra = 0.
Vcc = 1.
Desconectada = Indefinido.

Pero en éste caso “Indefinido” habría que ver las hojas de datos del 7447. mira la hoja donde está el dibujo con componentes discretos para las entradas.
Notarás que para éste 7447 “Desconectada” no es “Indefinido” sino uno(1) lógico.
Así que para ÉSTE, el 7447, una entrada sin conexión se puede considerar que tiene un uno(1) lógico.
Para otro puede no ser así. Ojo.

Mejor, si tienes un diodo Zener de 5V, haz un circuito para que no se vayan a quemar tus IC’s.

saludos
a sus ordenes
 
Atrás
Arriba