Como corregir el resultado de una resta?

Buenas gente del foro, le comento mi problema. Estoy haciendo un sumador/restador de 4 bits donde se sumen números del 0-9 utilizando un sumador total 74LS83, pero el tema es el siguiente. Así como entran los números del 0-9 en BCD deseo obtener la suma y la resta en forma BCD para luego utilizar un decodificador BCD-7segmentos. Además aclaro que el resultado se debe ver en 2 display separados por ejemplo para cuando se deba mostrar el resultado de 9+9 = 18.

Con la suma no encuentro muchos problemas en corregir el resultado para que me muestre el resultado en BCD. La ecuación lógica aplicada al resultado es el siguiente:

carry + 4 bit (3 bit + 2 bit)

Si el resultado es "1" entonces se pasa el resultado a un nuevo sumador que le sume 0110 (6) y utilizar el primer carry para colocar un "1" en el display de las decenas y el resultado corregido en el segundo display.

El problema viene con la resta complmento a 2, porque todavía no logro encontrar como corregir el resultado para todo caso posible que exista. Como por ejemplo

7-8 = -1
9-3 = 6
9-0 = 9
0-9= -9
9-1= 8

Donde espero que el signo "-" si el resultado es negativo se muestre en el display de las decenas.

Bueno creo que fui muy específico y un poco largo en la explicación. Espero que me puedan dar una mano para poder solucionar esto.

Saludos!
 
Estaba pensando en que lo mejor que puedo hacer es que mi sumador/restador sólo pueda sumar como máximo 8+8 porque de esa forma sólo con las condición

4to bit y no hay acarreo

logro que me haga complemento a 2 el resultado cuando se requiera, pero seguiría una única situación que cause problema y es cuando resto

8-0 = 8

Pero creo que lo podría arreglar viendo cuando resto a un número el 0

No se que les parece?
 
hola compañeros, lo que puedes usar para que en la resta, por ejemplo 3 -9 = -6,,,,,, para que aparecas el negativo debes de poner un 74ls85 es un comparador de 4 bit, y este mismo compara A>B, A=B, A<B, y pues el 74ls85 que este solo alimentado solo cuando selecciones la opcion de restar,,, espere y esto te aya servido de algo,,,

Oye me podrias pasar tu circuito, es que en mi escuela me encargaron hacer un sumador restador de 4bit y tambien con 2 display de 7 segmentos, y la verdad que no me sale, solo me funciona con un display,pero ya cuando quiero sumar 9+9= 18 no me funciona, no se como conectar los 2 display con el 74ls83 para corregir el error y me marque un 18 en el display,,.

te agradeceria mucho si me puedes subir una foto de tu circuito aki en el foro, por favor,, que si estoy algo apurado, que tengo que entregar el circuito en 3 dias,

gracias
 
si lo haces en XS3, ej: 6 -9 , 6 en XS3 0110+0011=1001 , 9 en XS3 1001+0011=1100, el complemento a la base de 9 sera 0100, ===> 1001 + 0100 =1101 este resultado lo complementas y te da 0011 lo cual es 3 y ya lo tienes en BCD queda que pongas un comparador a la entrada para determinar el signo. compruebalo con otras combinaciones ej= 7-8, 7 en XS3 0111+0011=1010, 8 en XS3 1000+0011=1011, el complemento de 8 sera 0101, entonces 1010+0101=1111 este resultado lo complementas y te da 0001 = 1 en BCD el signo lo dara el comparador.
si tienes 5-2, 5 en XS3 0101+0011=1000, 2 en XS3 0010+0011=0101, el complemento de 2 sera 1011, entonces 1000+1011= 1 0011, este 1 de carry sera tu bandera para NO complementar el resultado y asi la resta te dara 0011, 3 en BCD el signo lo dara el comparador.
espero te sirva de algo
 
ola soy nuevo en esto pero bueno espero ayudarte yo tambien estoy haciedno algo como lo tuyo y tambien eh tenido muchos problemas con lo de la resta en como expresar numeros negativos pero pues me puse a checar muchas paginas aqui y pues encontre algo que te puede servir en este lick te explica como se hace la resta con complemente 2 y uno...

http://www.iuma.ulpgc.es/users/jrse...ownload/transparencias/aritmetica_binaria.pdf

checalo esta muy completo

espero averte ayudado sale
 
Atrás
Arriba