Está en la página 1de 17

LÓGICA COMBINACIONAL

CAPÍTULO X

CÓDIGOS BINARIOS. CODIFICADORES y


DECODIFICADORES

10.1 Introducción.

Un código binario es al sistema binario de unos y ceros lo que el idioma es


al lenguaje humano de letras.
Son ordenaciones diferentes de unos y ceros para expresar un mismo
mensaje. Sabemos que los circuitos lógicos trabajan con dos niveles de tensión
claramente diferenciados: El 1 y el 0. Sin embargo todos los sistemas lógicos no
trabajan con el mismo idioma, esto es, la misma información no está formada por
la misma ordenación de unos y ceros.
A cada forma de ordenar los estados lógicos para expresar una misma
información es a lo que se llama código binario.
Por supuesto, nosotros no nos expresamos normalmente mediante unos y
ceros. Para comunicarnos con una máquina son necesarios circuitos que adapten
nuestro lenguaje al código que entiende la máquina y otros que realicen la función
inversa.
Un codificador es el circuito que convierte la información
presentada en un sistema de numeración o lenguaje alfanumérico en un código
binario, de unos y ceros.
Un decodificador es un circuito que realiza la función inversa: Traduce la
información de unos y ceros del circuito lógico al sistema humano de números o
letras.
Frecuentemente se hace necesaria la comunicación entre sistemas lógicos
que no trabajan en el mismo código, para que se puedan entender hay que traducir
la información de un código a otro código. Estos circuitos son los
transcodificadores.
90
LÓGICA COMBINACIONAL
Hay una gran cantidad de códigos binarios, algunos con misiones muy
específicas, otros más generales. Se pueden establecer diferencias en función de su
estructura, de su utilización,... Se pueden distinguir: Códigos pesados y no pesados,
continuos, cíclicos, progresivos, operativos, detectores de errores, correctores de
errores,... Cada código se puede englobar dentro de una o varias clasificaciones. Al
final del capítulo hay una relación de códigos con sus equivalencias.
Básicamente hay cuatro lenguajes para introducir información a un sistema
electrónico: Sistema octal, decimal, hexadecimal y alfanumérico.
Los códigos binarios más usados son: binario natural, BCD natural
(Decimal Codificado en Binario), BCD exceso tres, octal, hexadecimal,
complemento a dos y ASCII y EBC DIC para los sistemas alfanuméricos.

10.2 Diseño de codificadores

Un codificador es el circuito que convierte la información presentada en un


sistema de numeración o lenguaje alfanumérico en un código binario, de unos y
ceros.
El primer paso para construir un codificador es establecer la relación entre
el sistema o lenguaje empleado y el código binario elegido.
Construyamos un codificador decimal a binario BCD natural:

Entradas Salidas
0 1 2 3 4 5 6 7 8 9 D C B A
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 0 0 0 1 1 1
0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1

Para conocer el circuito interno del bloque codificador


habrá que considerar a A, B, C y D como salidas
diferentes de un circuito en que los números decimales
son las entradas.
El codificador, tal como está diseñado, es bastante
imperfecto. Por ejemplo, la inutilidad práctica del
número 0 como entrada, que no activa ninguna salida o
la incomprensión para el circuito cuando se accionen dos
91
LÓGICA COMBINACIONAL
entradas simultáneamente. Por ello, los codificadores se pueden construir sin el
número 0 como entrada y con prioridad, para eliminar la indecisión cuando se
habiliten dos o más entradas.
Veamos un codificador decimal a BCD natural comercializado: El C.I.
74147
Entradas Salidas
1 2 3 4 5 6 7 8 9 D C B A
1 1 1 1 1 1 1 1 1 1 1 1 1
X X X X X X X X 0 0 1 1 0
X X X X X X X 0 1 0 1 1 1
X X X X X X 0 1 1 1 0 0 0
X X X X X 0 1 1 1 1 0 0 1
X X X X 0 1 1 1 1 1 0 1 0
X X X 0 1 1 1 1 1 1 0 1 1
X X 0 1 1 1 1 1 1 1 1 0 0
X 0 1 1 1 1 1 1 1 1 1 0 1
0 1 1 1 1 1 1 1 1 1 1 1 0

Los círculos de las entradas y salidas indican in-


versión.
Si eliminásemos las inversiones de entradas y
salidas, cambiando los unos por ceros y viceversa
en la tabla de funcionamiento, veríamos con más
claridad la correspondencia entre el decimal y el
código BCD natural.
Con cuatro salidas D, C, B y A se podrían obtener
16 combinaciones, sin embargo, en BCD el resto
de los números no tiene ningún significado. Al
tratarse de un código decimal sólo puede abarcar
los números del sistema decimal: 0 al 9.

10.3 Construcción de decodificadores

Los decodificadores son circuitos que traducen la información del código


binario al sistema humano de números y letras.
Para construir un decodificador se sigue el mismo criterio que para los
codificadores: Tabla de funcionamiento en la que se vea la correspondencia entre
las entradas y las salidas.
Veamos un decodificador BCD natural a decimal:

92
LÓGICA COMBINACIONAL

Entradas Salidas
D C B A 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 1 1 1 1 1 1 1 1 1
0 0 0 1 1 0 1 1 1 1 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1 1 1
0 0 1 1 1 1 1 0 1 1 1 1 1 1
0 1 0 0 1 1 1 1 0 1 1 1 1 1
0 1 0 1 1 1 1 1 1 0 1 1 1 1
0 1 1 0 1 1 1 1 1 1 0 1 1 1
0 1 1 1 1 1 1 1 1 1 1 0 1 1
1 0 0 0 1 1 1 1 1 1 1 1 0 1
1 0 0 1 1 1 1 1 1 1 1 1 1 0
Hasta el final 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1

Las ecuaciones de salida son:


S0 =D . C . B . A
S1 =D . C . B . A
S2 =D . C . B . A
S3 =D . C . B . A
S4 =D . C . B . A
S5 =D . C . B . A
S6 =D . C . B . A
S7 =D . C . B . A
S8 =D . C . B . A S9 =D . C . B . A

Hemos visto un decodificador BCD a decimal, 7442, con nivel bajo activo,
esto es, la salida activada está en nivel bajo, mientras las demás permanecen en
alto, en 1.
Esto es muy frecuente en los decodificadores, al igual que ocurría con los
demultiplexores. Por un lado es más simple el circuito fabricado en puertas No-Y
que en puertas Y, aunque fundamentalmente se debe a las necesidades del circuito
exterior, del tipo de circuito a los que normalmente se acoplan las salidas de estos
circuitos. Los circuitos lógicos de la serie 74 por ejemplo, se alimentan a 5 voltios,
sin embargo, a veces deben pilotar, hacer funcionar cargas que requieren más
tensión. La salida del circuito lógico no puede por tanto entregar esas tensiones.
Usando como nivel activo el cero, la salida del circuito se comporta como un
interruptor conectado a masa, que deja pasar o no la intensidad del circuito

93
LÓGICA COMBINACIONAL
exterior, permitiendo que la carga funcione a distinta tensión de los 5 voltios del
circuito integrado.
No obstante podemos encontrar otros circuitos con nivel alto activo. La
tabla de funcionamiento es idéntica si se sustituyen los ceros de la salida por unos y
viceversa. En esta ocasión las ecuaciones de salida quedan:

S0 =D . C . B . A S1 =D . C . B . A
S2 =D . C . B . A S3 =D . C . B . A
S4 =D . C . B . A S5 =D . C . B . A
S6 =D . C . B . A S7 =D . C . B . A
S8 =D . C . B . A
S9 =D . C . B . A

Como vemos, un decodificador es un generador de productos canónicos, ya


que cada salida es el producto canónico de las variables de entrada. Tiene la misma
estructura por tanto que un demultiplexor, de ahí que a los demultiplexores se les
llame también decodificadores. Un demultiplexor 1 X 8 es un decodificador 3 X 8.
Para obtener un decodificador de un demultiplexor, basta con poner
permanentemente activada la entrada de dato. La entrada de dato funciona en este
caso como permiso de funcionamiento.

10.4 Realización de funciones mediante decodificadores

Hemos visto que los decodificadores son generadores de productos


canónicos. Supongamos un decodificador octal, un decodificador 3 X 8; tres
entradas: A, B y C y ocho salidas: de SO a S7. Cada una de las salidas es el
producto canónico de las tres entradas.
Podríamos asemejar su funcionamiento al del
C B A S siguiente cuadro:
Para cada combinación de entrada se activa una
0 0 0 S0 sola de las salidas, la que se indica en el cuadro.
0 0 1 S1 Cada una de las salidas es el producto canónico de
las entradas.
0 1 0 S2 El cuadro, así expuesto, es similar a cualquiera de
0 1 1 S3 los que hemos venido viendo hasta ahora. Cuando la
función de salida la obteníamos directamente del cuadro
1 0 0 S4
de funcionamiento, cada uno de la salida era el producto
1 0 1 S5 canónico de todas las entradas. El resultado final era la
1 1 0 S6 suma de esos productos canónicos obtenidos.
Esto mismo lo podemos hacer con
1 1 1 S7 decodificadores, teniendo en cuenta que los productos
canónicos ya están hechos, por lo que solamente falta
94
LÓGICA COMBINACIONAL
realizar la suma lógica de las salidas cuyos productos canónicos coincidan con los
del cuadro que nos ocupe.
Vemos al comparar la salida del circuito con C B A S Sd
la respuesta de un decodificador que son válidas las
0 0 0 1 S0
salidas S0, S3 y S4. El resto no se usan.
0 0 1 0 S1
0 1 0 0 S2
0 1 1 1 S3
1 0 0 1 S4
1 0 1 0 S5
1 1 0 0 S6
Para este ejemplo hemos tomado un 1 1 1 0 S7
decodificador con nivel alto activo: Salida activada en
nivel alto. Si tomásemos uno con salida activada en nivel bajo, tendría que
cambiarse la puerta O de salida por una puerta No-Y.

10.5 Visualizador de siete segmentos (Display)

Es la forma más común de visualizar cantidades numéricas.


Consta de 7 diodos led de forma rectangular dispuestos en la forma que
indica la figura. Generalmente, todos estos leds tienen un terminal común, que
dependiendo del tipo puede ser el ánodo o el cátodo. Los otros siete terminales
correspondientes a los siete segmentos son independientes entre sí. Pueden tener
junto con los siete segmentos, otros leds más pequeños para señalizar puntos o
comas.
Combinando los leds encendidos en cada momento se pueden visualizar
los números decimales y hexadecimales (y algunas letras).
Hay que
hacer notar que este
visualizador está
concebido especialmente
para representar canti-
dades numéricas del
sistema decimal, de ahí
que si bien pueden
representarse algunas letras, no siempre pueden ser mayúsculas, como la B y la D,
que se confundirían con los números 8 y 0 respectivamente.
Un decodificador comercializado de binario BCD a 7 segmentos es el
7447, concebido para acoplarse directamente a un display con ánodo común. No
obstante, entre las salidas del decodificador y el display, se suelen intercalar una
95
LÓGICA COMBINACIONAL
resistencia por segmento, dado que los diodos leds que componen cada segmento
tienen similares características que los leds redondos. Con una alimentación de 5
voltios, la visualización es correcta con resistencias entre 180 y 390 ohmios.
Para la construcción de un decodificador de binario a siete segmentos se
siguen las mismas normas que para los demás decodificadores, si bien, las
ecuaciones que rigen el funcionamiento de cada uno de los segmentos ya no
corresponde a un producto canónico de las entradas. Esto se debe a que cada salida
del decodificador no representa un número del sistema
decimal o hexadecimal sino una porción visual del
mismo. Podríamos decir que el visualizador de siete
segmentos es una forma codificada de visualizar un
número.
Para construir la tabla de funcionamiento, cada
segmento se representa mediante una letra.

10.6 Transcodificadores.

Son circuitos que convierten la información binaria de un código


en otro código binario diferente.
El sistema de construcción es exacto a los codificadores o decodificadores.
Las ecuaciones de salida tampoco tienen que ser productos canónicos de
las entradas.

10.7 Códigos binarios y equivalencias

10.7.1 BCD natural


Se trata de un código pesado, es decir, que
Decimal BCD natural cada “1” de cada combinación tiene un valor
8 4 2 1 específico, según el lugar que ocupa dentro de esa
0 0 0 0 0
1 0 0 0 1 cantidad. Un uno en el último lugar vale 1. Es el
2 0 0 1 0 lugar en que menos vale, por eso se le llama de
3 0 0 1 1 menor peso o bit menos significativo: LSB (Least
4 0 1 0 0 Significative Bit).
5 0 1 0 1 Un uno en el primer lugar tiene el mayor
6 0 1 1 0 peso, tiene el mayor valor: 8, por eso se le llama
7 0 1 1 1 valor más significativo y a ese lugar: Bit más
8 1 0 0 0 significativo, MSB (More Significative Bit).
9 1 0 0 1 La equivalencia entre el código BCD
natural y el sistema decimal es la misma que en sistema binario, hasta el número 9
y se establece sumando el peso, el valor de los unos de cada combinación.
Para representar cantidades superiores a 9 hemos de recurrir a cuatro bits
más por cada dígito del sistema decimal.
96
LÓGICA COMBINACIONAL
Ejemplo: Número decimal: 386
Número binario BCD natural: 0011 1000 0110
Este método de representar cantidades numéricas es común a todos
los códigos BCD.
Nº decimal Nº octal Código octal 10.7.2 Código octal
4 2 1 4 2 1
0 0 0 0 0 Es también un código pesado,
1 1 0 0 1 con el mismo peso inicial que el BCD
2 2 0 1 0 natural. pero a diferencia del anterior,
3 3 0 1 1 su equivalencia directa la obtiene del
4 4 1 0 0 sistema de numeración octal (0 al 7).
5 5 1 0 1 Por lo demás su tratamiento es igual al
6 6 1 1 0 BCD natural. Sólo usa tres bits por
7 7 1 1 1 cada cifra del número octal.
8 10 0 0 1 0 0 0 Nº octal: 436
9 11 0 0 1 0 0 1 código octal: 100 011 110

10.7.3 Código hexadecimal

Es otro código Nº decimal Nº hexadecimal Código hexadecimal


pesado, con el mismo peso 8 4 2 1 8 4 2 1
que el binario natural, pero 0 0 0 0 0 0
su equivalencia directa la 1 1 0 0 0 1
obtiene del sistema de 2 2 0 0 1 0
numeración hexadecimal. 3 3 0 0 1 1
4 4 0 1 0 0
Nº hexadecimal: BA5 5 5 0 1 0 1
Código hexadecimal: 6 6 0 1 1 0
1011 1010 0101 7 7 0 1 1 1
La ventaja de este 8 8 1 0 0 0
código sobre el BCD es la 9 9 1 0 0 1
de estar más aprovechado.
10 A 1 0 1 0
Usa también cuatro bits por
11 B 1 0 1 1
cada dígito, pero con esos
12 C 1 1 0 0
mismos cuatro bits
13 D 1 1 0 1
consigue hasta 16
combinaciones, todas las 14 E 1 1 1 0
que es posible plantear, 15 F 1 1 1 1
mientras que en el BCD 16 10 0 0 0 1 0 0 0 0
sólo se aprovechan 10. 17 11 0 0 0 1 0 0 0 1

97
LÓGICA COMBINACIONAL
Esta diferencia es notable cuando se trata de operar con cantidades muy grandes.

10.7.4 BCD AIKEN

Se trata también de un código pesado. Pero con un peso, es decir, con un


valor de los unos, distinto al BCD natural.

Decima BCD Como en todos los códigos BCD, decimal


l AIKEN codificado en binario, cada grupo de cuatro bits, de
2 4 2 1 cuatro signos 0 y 1, sólo representa una cantidad del
0 0 0 0 0 0 al 9; para construir un número mayor debemos
1 0 0 0 1 acudir a más grupos de cuatro bits.
2 0 0 1 0 Nº decimal: 386
3 0 0 1 1 BCD AIKEN: 0011 1110 1100
4 0 1 0 0 Este código tiene la propiedad de ser
5 1 0 1 1 autocomplementario: los números del 0 al 4 son
6 1 1 0 0 iguales que del 9 al 5, en este orden, cambiando los
7 1 1 0 1 unos por los ceros y los ceros por los unos. A esto se
llama espejo invertido: Si doblamos el papel por la
8 1 1 1 0
línea entre el 4 y el 5 veremos que todos los ceros se
9 1 1 1 1
superponen con los unos y viceversa.

10.7.5 Otros códigos pesados en BCD

decimal 4 2 2 1 5 4 2 1
0 0 0 0 0 0 0 0 0 Como vemos, el código
1 0 0 0 1 0 0 0 1 4221 tiene la misma propiedad
2 0 0 1 0 0 0 1 0 que el Aiken, es
3 0 0 1 1 0 0 1 1 autocomplementario, aunque
4 1 0 0 0 0 1 0 0 tiene un peso distinto.
5 0 1 1 1 1 0 0 0 El 5421, del 0 al 4 es
6 1 1 0 0 1 0 0 1 igual que del 5 al 9, excepto la
7 1 1 0 1 1 0 1 0 columna de peso 5.
8 1 1 1 0 1 0 1 1
9 1 1 1 1 1 1 0 0

98
LÓGICA COMBINACIONAL
10.7.6 Código BCD exceso 3 (XS3)

decimal BCD XS3 Se obtiene fácilmente sumando 3 (0011) al


0 0 0 1 1 número correspondiente del BCD natural.
1 0 1 0 0 Como el código Aiken, tiene la propiedad de
2 0 1 0 1 ser autocomplementario.
3 0 1 1 0 No es un código pesado.
4 0 1 1 1 Es uno de los más usados.
5 1 0 0 0 Nº decimal: 386
6 1 0 0 1 BCD XS3: 0110 1011 1001
7 1 0 1 0
8 1 0 1 1 10.7.7 Código biquinario
9 1 1 0 0
Se trata decimal Biquinario
también de un código BCD pesado. pero ade- 5 0 4 3 2 1 0
más es un código progresivo. Los dos primeros 0 0 1 0 0 0 0 1
bits indican si el número es mayor o menor de 1 0 1 0 0 0 1 0
5 y los cinco dígitos restantes indican el valor 2 0 1 0 0 1 0 0
del 0 al 4. 3 0 1 0 1 0 0 0
Ha sido usado en el cálculo 4 0 1 1 0 0 0 0
matemático y por su facilidad para detectar 5 1 0 0 0 0 0 1
errores. 6 1 0 0 0 0 1 0
Tiene, como inconveniente serio, el 7 1 0 0 0 1 0 0
tener un elevado número de dígitos, siete, para 8 1 0 0 1 0 0 0
un código BCD. Casi todos los códigos BCD 9 1 0 1 0 0 0 0
usan solamente cuatro dígitos.

10.7.8 Código Johnson


decimal Código Johnson
0 0 0 0 0 0 Es un código progresivo, continuo y cíclico.
1 0 0 0 0 1 Usado en contadores y registros de desplazamiento
2 0 0 0 1 1 por su sencillez de construcción. No tiene
3 0 0 1 1 1 necesariamente un número concreto de bits. En el
4 0 1 1 1 1 ejemplo tenemos un ejemplo con un código
5 1 1 1 1 1 Johnson de 5 bits, que da lugar a 10 combinaciones
6 1 1 1 1 0 y por tanto a convertirlo en un código BCD.
7 1 1 1 0 0 Entre una combinación y la siguiente y
8 1 1 0 0 0 entre la última y la primera sólo cambia el valor de
9 1 0 0 0 0 uno de los dígitos.

99
LÓGICA COMBINACIONAL

10.7.9 Código Gray


decimal Gray
Es otro código no pesado y cíclico, muy usado 0 0 0 0
también, como ya hemos visto hasta ahora. Presenta la 1 0 0 1
virtud que entre cada combinación y la siguiente sólo 2 0 1 1
hay un cambio de variable; entre cada combinación y la 3 0 1 0
siguiente sólo cambia el valor de un dígito, lo mismo 4 1 1 0
que ocurre entre la primera combinación y la última en 5 1 1 1
una serie de 2n combinaciones, en que termina el ciclo. 6 1 0 1
Sobre este código ya hemos hablado 7 1 0 0
anteriormente en la forma de confeccionar el cuadro de
funcionamiento y en los diagramas de Karnaugh. Presenta una particularidad de la
que anteriormente no hemos hablado: La primera mitad de la serie es "espejo" de la
segunda. Si doblamos el papel por la mitad de la tabla, los unos y los ceros
coinciden, exceptuando el primer dígito que en la primera mitad es siempre 0 y en
la segunda mitad es siempre 1.
Al igual que el sistema binario es ilimitado, pero el código Gray sólo se
usa en series completas de 2n combinaciones (4, 8, 16...).

10.8 Código detector de error

También hemos hablado de esto en el capítulo referido a la "O exclusiva".


El más usado es el bit de paridad. El bit de paridad es un bit más (0 o 1) que se
añade a la cantidad o palabra a transmitir, a llevar de un sitio a otro, que identifica
con un 1 si hay un número impar de unos en la combinación transmitida, con lo
que al final, el número de unos transmitidos contando el bit de paridad impar,
resulta ser siempre un número par de unos. Lo mismo sirve, pero al contrario,
cuando lo que se añade es el bit de paridad par, que indica si la combinación de la
palabra a transmitir tiene un número par de unos.
El bit de paridad puede usarse con
dec. BCD XS3 + bit impar todos los códigos binarios. Como ejemplo,
0 0 0 1 1 0 veamos un código BCD exceso tres (XS3) con bit
1 0 1 0 0 1 de paridad impar.
2 0 1 0 1 0 La última columna corresponde al bit de
3 0 1 1 0 0 paridad impar.
4 0 1 1 1 1 La detección de errores con el bit de
5 1 0 0 0 1 paridad permite detectar un solo error en la
6 1 0 0 1 0 palabra transmitida, ya que de haber más de un
7 1 0 1 0 0 error, el circuito podría identificar la palabra como
8 1 0 1 1 1 buena.
9 1 1 0 0 0
100
LÓGICA COMBINACIONAL
Por ejemplo: Palabra transmitida 0101; con el bit de paridad impar el
circuito receptor debe recibir: 01010. Si por alguna razón el circuito de llegada
recibe 01110, rechaza el mensaje por encontrar en él un error, lo que no sabe
distinguir es si el error está en la palabra o en el bit de paridad. Si mandamos a
transmitir la misma palabra y el circuito de llegada recibe 01111, se han acumulado
dos errores, sin embargo el mensaje se da por válido, ya que la palabra 0111
pertenece al código con el que se está trabajando, por ejemplo el BCD decimal y el
bit de paridad, el último dígito tiene un valor 1, coherente con los tres unos de la
palabra que ha llegado.
El bit de paridad hace que dos combinaciones, dos palabras de un mismo
código se diferencien por lo menos en dos bits. Compruébese. A esto se le llama
distancia mínima o distancia de código.
Con una distancia mínima de dos bits, distancia mínima de dos, sólo se
puede detectar si hay un solo error, aunque no se puede identificar dónde está ese
error, por tanto no puede corregirse.

10.9 Código corrector de error

Hemos visto cómo puede detectarse la existencia de un error. En


cualquier caso una palabra errónea se desecha, pero a veces es fundamental que un
proceso no se detenga por la existencia de un error. De ahí nace la necesidad de
utilizar códigos como los de Hamming que permiten detectar y corregir
automáticamente la existencia de un error.
No existe un único código de Hamming, sino que se trata más bien de una
forma de trabajo. Es un método válido para usarse en todos los códigos binarios de
cuatro bits, ya que lo único que hace es acompañar a la palabra o combinación a
transmitir, no de un bit de paridad, sino de tres bits de paridad, que puede ser par o
impar.
BCD natural en código Hamming con paridad impar:

Hamming
Decimal
L7 L6 L5 L4 L3 L2 LI
0 0 0 0 0 0 0 0
1 0 0 0 0 1 1 1
2 0 0 1 1 0 0 1
3 0 0 1 1 1 1 0
4 0 1 0 1 0 1 0
5 0 1 0 1 1 0 1
6 0 1 1 0 0 1 1
7 0 1 1 0 1 0 0
8 1 0 0 1 0 1 1
9 1 0 0 1 1 0 0
D C B 765 A 763 753

101
LÓGICA COMBINACIONAL
Las columnas 7, 6, 5 y 3 son las de las combinaciones en BCD natural. Las
otras tres columnas son tres bits de paridad impar. La columna 4, línea 4, L4, es el
bit de paridad de las combinaciones de L7, L6 y L5. La columna L2, línea de
transmisión 2, es el bit de paridad de las combinaciones de las líneas 7, 6 y 3. La
columna L1, línea de transmisión 1, es el bit de paridad de las líneas 7, 5 y 3.
La distancia mínima o diferencia mínima entre dos palabras o dos
combinaciones del código es de tres bits. Con esta distancia mínima se puede
corregir un error. Para corregir más errores, 2 por ejemplo, habría que usar un
código con una distancia mínima de 4, y así sucesivamente.

Para construir un sistema de transmisión de datos de este tipo,


necesitaremos en el sistema emisor de datos, tres generadores de paridad. Pueden
ser generadores de paridad par o impar. En el circuito receptor harán falta otros tres
circuitos que detecten si el bit de paridad que llega es coherente con la información
de las tres líneas que lo han formado.

Estos detectores que acabamos de mencionar son en realidad otros tantos


generadores de bit de paridad. Hay que recordar que una información acompañada
de un bit de paridad impar, tiene siempre un número par de unos. Si esto se cumple
en todos los detectores, todo va bien.
Si solamente un detector indica error, significa que lo que ha fallado es el
bit de paridad que corresponde a ese detector; la palabra se da por buena.
Si dos detectores indican error, éste está en la línea que es común a
los dos, la 3, la 5 o la 6.
Si los tres detectores indican error, el fallo está en la línea 7 que es
común a los tres.
Una vez detectado el fallo, se corrige (se invierten el valor
1 o 0 de la línea que ha fallado) y la palabra se puede dar por buena.
Estos son básicamente los tres casos que se pueden plantear con un solo
error en la transmisión de datos. Para detectar y corregir más errores hay que acudir
a circuitos más complejos. Cuanto más segura queramos que sea una transmisión
de datos, más se complica el circuito, de ahí que se tienda más a mejorar las líneas
de transmisión, para evitar que se produzcan esos errores.

En largas distancias, estas transmisiones suelen hacerse, como vimos en el


capítulo anterior, por un solo hilo. Creo que es oportuno señalar que en estas largas
distancias, para evitar que la capacidad (efecto condensador) de la línea, almacene
demasiada tensión, impidiendo la correcta transmisión de los datos, se deben
mandar impulsos positivos y negativos. En ocasiones los datos referidos a la
palabra a transmitir son positivos y los de los bits de paridad se transmiten como
negativos.

102
LÓGICA COMBINACIONAL
10.10 Códigos alfanuméricos

Son los que sirven para representar letras y números. En general


estos códigos tienen una gran capacidad por lo que representan además de números
y letras, otros signos de escritura y matemáticos o incluso claves para la ejecución
de programas de escritura o de ordenador.
Los códigos alfanuméricos más extendidos son:
ASCII (American Standard Code for Information Interchange),
código americano normalizado para intercambio de información.
EBC DIC (Extended Binary Coded Decimal Interchange Code), código
ampliado de intercambio decimal codificado en binario. Es un código de 8 bits.
Ambos códigos son los más usados, muy parecidos en lo básico y que
pueden encontrarse además acompañados del bit de paridad para detectar errores.
Expondremos a continuación la tabla de caracteres ASCII. El orden de
escritura binaria de estos caracteres es: Primero columna, luego fila: 1101000 es la
letra h. 0110111 es el número 7.
Tabla de caracteres ASCII: (de 7 bits). Las hay de más y de menos bits.

103
LÓGICA COMBINACIONAL
Las palabras en abreviatura son claves para intercambio de información:
Espacio en blanco, pasa renglón, tabulación, fin o inicio de texto ....

10.11 Complemento a 2

Es un método de representación especialmente usado en el cálculo


matemático, que permite usar números positivos y negativos sin tener que operar
con el signo de forma separada.
Por este método, usando un código hexadecimal por ejemplo, el bit más
significativo de la primera palabra, el de la izquierda, indica el signo (1 si es
negativo y 0 si es positivo).
Para convertir un número hexadecimal en complemento a dos se plantean
dos casos:
-Si el número es positivo, el hexadecimal, en general el binario,
es igual que el complemento a dos.
38 = 0011 1000
MSB

-Si el número es negativo hay que seguir el siguiente método:


1º Se pone la cantidad como si fuese un número positivo (valor absoluto).
-38 0011 1000
2º Se cambian los unos por ceros y los ceros por unos.
(Complemento a 1): 1100 0111
3º Se suma “1” a la cantidad que nos ha quedado:
-38 = 1100 0111 + 1 = 1100 1000
MSB
Hemos visto cómo el bit más significativo (MSB) es cero en los números
positivos y uno en los negativos.

Para hacer el proceso inverso: Se conoce un número negativo en


complemento a dos y se quiere saber a qué binario (hexadecimal o no)
corresponde, el proceso es el mismo que el anterior: Se cambian los unos por ceros
y viceversa (complemento a 1); al resultado que nos da le sumamos “1”.

Resumiendo: Complemento a dos = complemento a 1 + 1 en los negativos.


En los positivos, complemento a dos es igual que el código binario que se esté
usando.

104
LÓGICA COMBINACIONAL

10.12 Preguntas y problemas

1. ¿Cuántos signos diferentes se usan en un código binario?...................................


2. ¿Qué hace un
codificador?...................................................................................... ..........................
............................................................................................................
3. ¿Qué hace un
decodificador?................................................... ............................ .............................
.... ........... ...........................................................................
4. En un circuito codificador decimal a BCD natural, los números decimales son
las....................................
5. En un circuito codificador la salida es...................................................................
6. ¿Qué relación hay entre la entrada y la salida en un circuito
decodificador?...............................................................................................
7. ¿Quién es la entrada en un circuito decodificador?........................ ....................
8. ¿Qué es un decodificador 3 X 8? ............................ ............................ ...............
9. ¿Qué es un transcodificador?................................................................. ............ ....
10. Construir un transcodificador de binario natural a código Gray de tres bits.
11. Dar las ecuaciones de un decodificador de BCD a 7 segmentos.
12. ¿Cuántos bits tiene un código BCD natural?..............................
13. ¿Cuántas combinaciones diferentes, sin repetir, se pueden hacer en un código
BCD cualquiera? ..............
14. Codificar el número decimal 4386 en todos los códigos BCD que se han
expuesto.
15. Se tiene el número 100101110010. De qué cantidad se trata si es un número
decimal, un número binario del sistema binario, código BCD natural, código BCD
AIKEN, código hexadecimal o hexadecimal complemento a 2
16. Una salida se debe activar cuando las dos entradas del sistema sean iguales.
Realizar el circuito con la ayuda de un decodificador.
17. Realizar un circuito comparador de dos cantidades de un bit con un
decodificador.
18. Un motor se pone en marcha cuando se accionan al menos dos de los tres
interruptores que lo gobiernan. Realizar el circuito mediante un decodificador 3X8.
19. Realizar un circuito detector de paridad par de tres entradas, con la ayuda de un
decodificador.
20. Igual que el anterior, pero de paridad impar.
21. Una báscula de pesaje tiene tres sensores que se activan: A a los 100 Kg, B a
los 500 Kg y C a los 3500 Kg. Debemos realizar un circuito en cuya salida se
indique si el peso cargado a la báscula está comprendido entre 0 y 100 Kg, entre
100 y 500 Kg 0 entre 500 y 3500 Kg.

105
LÓGICA COMBINACIONAL

106

También podría gustarte