Está en la página 1de 14

CAPITULO 1

INTRODUCCION AL DISEÑO DIGITAL

Introducción
Los sistemas digitales se han desarrollado de una manera vertiginosa en tan sólo unas cuantas
décadas; se utilizan actualmente en casi todas las áreas de la vida cotidiana como la medicina,
finanzas, transporte, educación, entretenimiento, etc. Estos sistemas emplean circuitos
electrónicos integrados (circuitos lógicos) que incluyen desde decenas hasta millones de
dispositivos que funcionan como interruptores.

Iniciamos este capítulo presentando algunos conceptos fundamentales de la tecnología


digital, mismos que se irán ampliando y detallando en los siguientes capítulos. Nuestro punto
de partida son las señales digitales; proseguimos con el estudio de los sistemas numéricos,
en particular el sistema binario, y presentamos las compuertas que implementan las
funciones lógicas requeridas por los sistemas digitales.

1.1 Señales analógicas y digitales


Una señal analógica es de naturaleza continua; esto es, puede tomar un número infinito de
valores en un intervalo de tiempo. Se dice que un sistema es analógico cuando las
magnitudes de la señal se representan mediante variables continuas, esto es análogas a las
magnitudes que dan lugar a la generación de esta señal. Una señal discreta, en cambio,
puede representarse por un conjunto finito de valores en el mismo intervalo; las señales
digitales son discretas, y sus valores se representan por uno o más dígitos.

Para ilustrar estos conceptos, pensemos en un reloj de manecillas. Sabemos que el tiempo
transcurre en forma continua, y las manecillas se mueven supuestamente también en forma
continua, indicando un conjunto infinito de valores, aunque no podamos precisar en un
momento dado su posición exacta al observar la carátula del reloj, dado que la resolución de
la carátula es finita. La señal corresponde con la que se muestra en la Figura 1.1.1a.

En un reloj digital, por contraste, observamos que los segundos avanzan en pasos discretos
como 01, 02, 03, hasta 59. Al terminar dicha secuencia el conteo de los minutos aumenta por
1 (de 34 a 35, por ejemplo). Igualmente, la indicación de las horas aumenta por 1 después
que la de minutos rebasa el valor 59. Hablamos entonces de un sistema discreto, cuyos
valores están representados por dígitos cada intervalo de tiempo. (Figura 1.1.1b).

(a) (b)
Figura 1.1.1.- Lectura del tiempo (a) continua (b) discreta
La mayoría de las variables físicas de la naturaleza son continuas y, por tanto, analógicas:
temperatura, distancia, presión, velocidad, nivel de un fluido, etc. La medición o
procesamiento de dichas variables suele realizarse con aparatos eléctricos o electrónicos, ya
que es más sencillo y económico controlar señales eléctricas. Para ello se requiere efectuar,
desde luego, una transducción de la variable física a una eléctrica.

Originalmente, la señal eléctrica que resulta de un transductor suele ser analógica, y puede
medirse por tanto directamente en un multímetro analógico. La misma señal puede
transformarse en una señal digital. Esto puede lograrse mediante un sistema de conversión
analógico a digital (CAD); la señal resultante puede procesarse entonces mediante un sistema
digital. Si se requiere que la señal procesada se convierta de nuevo en analógica, utilizamos
un sistema de conversión digital a analógico (CDA).

Un sistema digital electrónico es un dispositivo o un conjunto de dispositivos que procesan


o manipulan señales digitales binarias, aun cuando la exhibición de valores se presente con
dígitos decimales o hexadecimales.

Las señales binarias exhiben sólo 2 valores. La razón fundamental por la cual se emplea el
sistema binario es que resulta muy sencillo y económico implementar sistemas electrónicos
que sólo manejan dos valores, utilizando dispositivos que funcionan como interruptores,
llamados circuitos de conmutación. Estos exhiben voltaje alto o voltaje bajo; empleamos los
dígitos binarios 1 y 0 para representar voltajes en forma simbólica; por ejemplo, voltaje alto=1
y voltaje bajo=0. Los dígitos binarios se conocen como bits (abreviación de binary digit en
inglés).

Los circuitos de conmutación se conocen también como circuitos lógicos, puesto que
obedecen las reglas del cálculo proposicional (lógico) expresadas algebraicamente por el
matemático Francés George Boole en 1894. Este trabajo fue aplicado por Claude Shannon al
análisis de circuitos de conmutación (trabajo publicado en 1938). Al álgebra que formaliza
las reglas se le conoce como Algebra de Boole, la cual se presenta en el siguiente capítulo.

1.2 Ventajas de los sistemas digitales

Las razones principales por las cuales los sistemas digitales tienden a reemplazar a los
analógicos son:

1. Los sistemas digitales son generalmente más fáciles de diseñar. Los valores de
voltaje exactos que entregan los circuitos digitales no son significativos; sólo importa
que entreguen valores dentro de un rango específico (voltajes altos o bajos,
equivalentes de los dígitos 1 ó 0, por ejemplo). Por lo tanto, son también menos
susceptibles a variaciones causadas por cambios de voltaje de línea, temperatura o
resistencia, que afectan más a circuitos analógicos.
2. Ofrecen una mayor precisión. La precisión en los sistemas digitales puede
aumentarse agregando más circuitos lógicos; los valores analógicos de más de unos
cuantos dígitos no pueden precisarse en un instrumento y, de nuevo, son más
susceptibles a variaciones y ruido.
3. Permiten almacenar información. Los sistemas digitales pueden almacenar
información por el tiempo deseado. Gracias a esto existen las computadoras digitales
y grandes bancos de datos, por ejemplo.
4. Los circuitos digitales pueden producirse con mucha mayor densidad (transistores
por milímetro cuadrado en un chip) que los circuitos analógicos. Los aparatos que
los incluyen son, por tanto, más pequeños, y consumen menos energía.
5. Los circuitos digitales resultan más económicos en general que los sistemas
analógicos que cumplen una función semejante. Esto debido a que los circuitos
digitales permiten una densidad mucho mayor (más transistores por área de silicio);
además, los sistemas analógicos requieren de un número mayor de componentes de
tecnología diferente, costosa y difícil de integrar tales como: capacitores de alto
valor, resistores de precisión, transformadores, etc.
6. Los sistemas digitales pueden programarse mucho más fácilmente que los
analógicos, tanto para su diseño, su configuración como para su operación.

1.3 Sistemas numéricos


Como se ha mencionado anteriormente, los sistemas digitales utilizan básicamente el sistema
binario (base 2); podemos representar sus valores también en sistema octal o hexadecimal,
cuyas bases (8 y 16) son múltiplos de 2. Los seres humanos estamos acostumbrados al
sistema decimal (base 10), en el cual utilizamos cualquiera de 10 dígitos (del 0 al 9) para
representar un número de un dígito. Para representar un número de varios dígitos, utilizamos
una notación posicional, que implica una potencia de 10 de acuerdo con la posición. Por
ejemplo, el número N=2746.81 puede expresarse como:

N = 2x103 + 7x102 + 4x101 + 6x100 + 8x10-1 + 1x10-2

El término de la izquierda corresponde con las unidades de millar (2x103 =2000); el siguiente
las centenas (700), luego el de las decenas (40), unidades (6), y por último los términos
fraccionarios (0.8+0.01). En términos algebraicos, podemos escribir

N=Anx10n +An-1x10n-1+....A1x101 + A0x100 + A-1x10-1 + A-2x10-2 + …. (1.3.1)

donde An es el dígito más significativo. Los dígitos A poseen valores de 0 a 9.

Esta expresión aplica para un número en cualquier base r, reemplazando 10 por r:

N = Anxrn + An-1xrn-1 +....A1xr1 + A0xr0 + A-1xr-1 + A-2xr-2 +……… (1.3.2)

Los dígitos A toman los valores 0 a r-1. Así, si r=5, los dígitos utilizados son 0,1, 2, 3, 4. En
el caso del sistema binario (r=2), los dígitos son 0 y 1, y se conocen como bits (contracción
de las palabras del inglés binary digit) En el sistema decimal (r=10), los dígitos son 0, 1, 2,
3, 4, 5, 6, 7, 8, 9.

Para un sistema de base r mayor que 10, requerimos de símbolos adicionales para representar
los dígitos mayores que 9. En el sistema hexadecimal, por ejemplo, utilizamos los símbolos:
A=10, B=11, C=12, D=13, E=14, F=15.
Nos interesa en particular el sistema binario; en un sistema digital los bits se almacenan en
dispositivos llamados registros. El número binario de 8 bits 10010110, por ejemplo, se
almacena como en la Figura 2.3.1 El bit más significativo (MSB, del inglés most significant
bit) se encuentra en el extremo izquierdo, y el menos significativo (LSB, least significant
bit) en el derecho. El número puede representarse como se muestra en la Figura 1.3.1:

Figura 1.3.1. Almacenamiento del número binario 10010110 en un registro

1.4 Conversión de un número de base r a base 10.


La conversión de un número de base r a base 10 es muy sencilla. Todo lo que debe hacerse
es calcular la expresión 1.3.2 utilizando aritmética decimal. Por ejemplo, el número 3645
de base 8 resulta:

N = 3x83 + 6x82 + 4x81 + 5x80 = 3x512 + 6x64 + 4x8 + 5 = 1957 base 10

EJEMPLO 1.4.1. Calcular el valor decimal del número binario 1001001110.011


Solución: Aplicando la expresión 2.3.2 con r=2, tenemos:

N = 1x29 + 1x26 + 1x23 + 1x22 + 1x21 + 1x2-2 + 1x2-4= 512 + 64 + 8 +


4 + 2 + 0.25 + 0.125 = 590.375 base 10.

EJEMPLO 1.4.2. Calcular el valor decimal del número 4B05.2 base 16.
Solución: Aplicando la expresión 2.3.2 con r = 16 tenemos:
N = 4x163 + 11x162 + 5x161 + 2x16-1 = 16,384 + 2,816 + 80 + 0.125 = 19,280.125

1.5 Conversión de un número decimal a base r.


Esta conversión es más sencilla si separamos la parte entera de la fraccionaria, como A = AE
+ AF, donde AE es la parte entera, y AF la fraccionaria.

Veamos primeramente como transformar la parte entera. El método más sencillo consiste en
efectuar una división entera del número decimal sucesivamente entre r, anotando los residuos
de cada división, hasta obtener un resultado cero; el último residuo corresponde con el dígito
más significativo. Este método, llamado de división repetida, se ilustra convirtiendo el
número 1742 base 10 a base 8:

Número/8 resultado residuo


1742/8 217 6 = A0
217/8 27 1 = A1
27/8 3 3 = A2
3/8 0 3 = A3
El resultado es por tanto, 3316 base 8. El lector podrá constatar que la conversión de éste
número a decimal arroja el valor 1742.

Ejemplo 1.5.1: Convertir el mismo número a binario:

Número/2 resultado residuo


1742/2 871 0 = A0
871/2 435 1 = A1
435/2 217 1 = A2
217/2 108 1 = A3
108/2 54 0 = A4
54/2 27 0 = A5
27/2 13 1 = A6
13/2 6 1 = A7
6/2 3 0 = A8
3/2 1 1 = A9
½ 0 1 = A10

El número binario es, por tanto, 11011001110

Veamos ahora la conversión de la parte fraccionaria. Denominamos como AF al número


después de la conversión, que se representa como:

AF = A-1 x r-1 + A-2 x r-2 + A-3 x r-3 +… 1.5.1

Necesitamos determinar los coeficientes A-1, A-2, etc. Principiamos por A-1; para ello
multiplicamos ambos lados de la expresión 1.5.1 por r:

AF x r = A-1 + A-2 x r-1 + A-3 x r-2 +…

El valor de A-1 es justamente la parte entera de este resultado. Para obtener A-2, pasamos
A-1 al lado izquierdo de la última expresión, y volvemos a multiplicar por r:

(AF x r – A-1) x r = A-2 + A-3 x r-1 +...

El valor de A-2 es la parte entera. De nuevo, la pasamos al lado izquierdo y volvemos a


multiplicar por r. Continuamos con este proceso hasta obtener la resolución deseada.

EJEMPLO 1.5.2: Convertir 0.6841 base 10 a binario


Solución: Multiplicar el número por 2: El resultado es 1.3682, por tanto, A-1 = 1
Ahora, multiplicamos 0.3682 por 2. El resultado es 0. 7364, y A-2 = 0
Seguimos: 0.7364 x 2 = 1.4728, luego A-3 = 1
Continuando, 0.4728 x 2 = 0.9456, luego A-4 = 0.
Y ahora, 0.9456 x 2 = 1.8912, luego A-5 = 1
Seguimos: 0.8912 x 2 = 1.7824
Si nos basta la resolución a 6 dígitos, tendríamos que 0.6841 base 10 = 0.101011. Este valor
es sólo una aproximación: 0.5+0.125 + 0.0325 + 0.01625 = 0.67375.

EJEMPLO 1.5.3: Convertir el número decimal 0.6841 a octal.


Solución: Aplicando el mismo procedimiento con r = 8 tenemos:
0.6841 x 8 = 5.4728. Luego A-1 = 5
0.4728 x 8 = 3.7824. Luego A-2 = 3
0.7824 x 8 = 6.2592. Luego A-3 = 6
0.2592 x 8 = 2.0736. Luego A-4 = 2
0.0736 x 8 = 0.5888. Luego A-5 = 0
Con una resolución de 5 dígitos, tenemos entonces que 0.6841 base 10 = 0.53620 base 8

1.6. Conversiones especiales entre números de base 2, 8, 16.


Al representar un número grande en el sistema binario se requiere escribir muchos bits; a fin
de tener una representación más compacta, se utilizan los sistemas octal y hexadecimal.
Considerando que 8 = 23, tenemos que 3 dígitos binarios representan un dígito octal.
Igualmente, 4 dígitos binarios conforman un dígito hexadecimal, ya que 16 = 24. La
conversión entre la base 2 y base 8 se efectúa entonces agrupando los dígitos en grupos de 3,
y a hexadecimal en grupos de 4 dígitos. Esto se ilustra a continuación, considerando el
número binario 110001110110.01101110:

110 001 110 110.011 011 10 = 6166.334 base 8


1100 0111 0110.0110 1110 = C76.6E base 16

1.7 Números con signo.


Las operaciones aritméticas elementales se efectúan en cualquier base r mediante los mismos
algoritmos que en el sistema base 10, definiendo acarreos cuando la suma de dos dígitos
exceden del valor máximo r-1. Si r=5, por ejemplo, 3+4=2 con acarreo=1; si r=8, 4+7=3 con
acarreo=1. En el caso binario, podemos establecer la tabla de la suma siguiente, con los
valores s para suma y c para acarreo:

ab cs
00 00
01 01
10 01
11 10
Tabla 1.7.1. Tabla de verdad de la suma de 2 bits

La convención aceptada en el sistema decimal para escribir un número con signo es anteponer
el signo (+ ó -) a la izquierda de la magnitud. En un sistema digital debemos emplear un bit
para representar el signo (0 para el signo +, 1 para el -), y respetamos la convención de
anteponerlo a la izquierda (bit más significativo). Si el resto del número binario es la
magnitud, que es igual para números positivos y negativos, llamamos al método de
representación como signo y magnitud. Por ejemplo, el número binario -28, representado por
un registro de 8 bits, resulta 10011100, mientras que el número +28 se representa como
00011100. Esta representación es muy sencilla de comprender, pero no se adapta bien a los
sistemas digitales para efectuar operaciones aritméticas mediante las reglas de adición de
números binarios como lo muestra el ejemplo siguiente, que consiste en sumar en binario -28
+ 4:
Acarreos 111
10011100
+00000100
10100000

En la representación de signo y magnitud, el resultado corresponde con el número decimal -


32. Este es evidentemente incorrecto, pues deberíamos obtener -24. De hecho, pudimos haber
reconocido que con la representación de signo y magnitud, la suma de un número x con su
supuesto negativo –x no produce el resultado esperado 0.

Cabe preguntarse si es posible hallar otra representación para los números negativos en un
sistema digital que arroje resultados correctos al hacer operaciones de suma y resta de
números positivos y negativos. Exploramos esta posibilidad considerando el concepto de
complemento. Consideremos primeramente el complemento a 1. Para un número binario
entero x de n bits, el complemento a 1 C1x se define como el número y tal que, sumado a x,
arroja el resultado 1111…1 donde el número de 1s es igual a n. Esto se logra siempre y cuando
cada bit de y sea igual al complemento lógico de cada bit correspondiente de x. Por ejemplo,
si x=01001101, el complemento a 1 C1x de x es y=10110010, ya que x + y=11111111. En
pocas palabras, el bit k yk del número y es igual a xk´. Por ende, es muy sencillo obtener el
complemento a 1 de un número binario x; basta complementar cada bit de x (sustituir 1 por 0
ó 0 por 1), operación que puede realizarse con dispositivos denominados inversores.

Definimos ahora el complemento a 2 C2x de un número binario entero x, como C2x=C1x+1.


Si sumamos x+C2x obtenemos entonces el resultado 1000…0, con n bits igual a 0, y el bit
más significativo igual a 1. Si descartamos este bit, tenemos el resultado 000…0. Esto es,
x+C1x+1=x+C2x=0. Esto significa que C2x=y es una representación de (–x), ya que x + (-x)
= 0. Para el ejemplo anterior (x = 01001101), la representación de –x se obtiene de la suma

10110010
+ 00000001
10110011

El lector podrá comprobar que x + (-x) = 100000000, donde el acarreo final 1 se descarta.
Esto es, -x =10110011. El bit más significativo es el signo, en este caso 1, negativo.

EJEMPLO 1.7.1. Efectuar la operación x-z, con x=00101011 y z=00100011. (En decimal, 43-
35).
Solución. x-z = x+(-z). El valor de C1z es 11011100, luego C2z=C1z+1=11011101. Hacemos
la suma ahora:
Acarreos 11111111
00101011
+ 11011101
100001000
Si descartamos el acarreo final=1, el resultado corresponde con el número decimal 8.
EJEMPLO 1.7.2. Efectuar la operación x-z, con x=00101011 y z=10111011.
Solución: Notar que, en este caso, z es negativo. El valor de C2z es igual a 01000101 (decimal
69), luego

Acarreos1111
00101011
+ 01000101
01110000
Este resultado corresponde con el número decimal 112, que es el correcto.

Desbordamiento. Los ejemplos anteriores han producido resultados correctos al efectuar


operaciones aritméticas de suma o resta con la representación de complemento a 2 para
números negativos. Esto porque los resultados no rebasan la capacidad de representación del
registro de 8 bits que contiene los números. La capacidad se cuantifica considerando el
número positivo mayor posible (01111111 = 12710), y el número negativo de magnitud mayor
posible que, sorprendentemente no es el equivalente de -127, sino de -128: 10000000. En
general, para un número x de n bits, donde el bit más significativo es el signo, la representación
de números con complemento a 2 tiene el rango

-2n-1 a (2n-1-1)

Cuando el resultado de una operación aritmética queda fuera de este rango, se ha rebasado la
capacidad del registro, y hablamos de un desbordamiento o sobreflujo. Por ejemplo, si
x= 00101011 y z = 10011100, C2z = 01100100 (decimal 100), y x - z resulta

Acarreos 0 1 1
00101011
+01100100
10001111

Este parece ser un número negativo, lo cual es imposible dado que 43+100=143 en decimal.
El problema proviene de haber rebasado la capacidad de representación de un número de
8 bits, (+127), lo cual ha producido un desbordamiento. Cabe preguntarse cómo saber si el
resultado de una operación aritmética es válido; esto es, si no hay desbordamiento. Puede
demostrarse que cuando hay desbordamiento, el acarreo hacia el penúltimo bit, Cn, es
diferente que el acarreo final, Cn+1. Llamando a esta condición V, tenemos que V=Cn Cn+1
(el operador se denomina O exclusivo); el valor de V es 1 si Cn difiere de Cn+1 La mayoría
de las computadoras detectan esta condición usando un dispositivo denominado compuerta
XOR que efectúa la operación.

1.8. Códigos
La representación de cadenas de bits que hemos empleado corresponde a una representación
binaria natural. Así como representamos números, podemos representar otro tipo de
variables: colores, claves de libros en una biblioteca, días de la semana, etc. La representación
puede ser binaria natural, cuando, por ejemplo, determinamos la clave de cada uno de 16
colores; en dicho caso requerimos 4 bits, desde 0000 hasta 1111. En otros casos, la
representación o código no necesariamente es binaria natural. Presentamos a continuación
algunos ejemplos importantes:

1.8.1. Código BCD. Para los seres humanos, es conveniente observar separadamente cada
dígito decimal en la pantalla de un dispositivo, aunque cada dígito esté representado en
binario. Así, el número decimal 185, por ejemplo, se representa como

0001 1000 0101


1 8 5

Esta representación se denomina BCD, del inglés Binary Coded Decimal. Es evidente que
no corresponde con el número binario natural 185. Como un segundo ejemplo, el número
4832 se representa en BCD como 0100 1000 0011 0010.
4 8 3 2

1.8.2 Código ASCII. Este código se diseñó para la representación de caracteres


alfanuméricos, como los que contiene un teclado típico de una computadora. El código
estándar se denomina ASCII, que utiliza 7 bits para representar 128 distintos caracteres,
mostrado en la tabla 2.8.2.1 con los bits b6b5b4b3b2b1b0. Notar que los 3 bits más
significativos denotan el tipo de carácter (letra, número o carácter especial). En el caso de
números, los 4 bits menos significativos corresponden con la representación binaria natural
del dígito decimal correspondiente. Así, la clave correspondiente al número 4 es 0110100.

b3b2b1b0 b6b5b4
000 001 010 011 100 101 110 111
0000 NUL DEL SP 0 P ´ p
0001 SOH DC1 1 A Q a q
0010 STX DC2 “ 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
0111 BEL ETB ´ 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS , < L l |
1101 CR GS = M ] m }
1110 SO RS . > N n
1111 SI US / O _ o DEL
Tabla 1.8.2.1 Tabla del Código ASCII estándar.

El código ASCII se utiliza para transferir información entre una computadora y dispositivos
periféricos (impresora, teclado, etc). Por lo general, la transmisión de los bits se efectúa en
serie, y se añade un octavo bit en la posición más significativa, denominado bit de paridad.
Su valor es tal que el total de bits debe ser par o impar de acuerdo con una paridad acordada.
Por ejemplo, si se acuerda que la paridad sea par, agregamos al código de la letra G (1000111)
el bit 0, y al de la letra O (1001111) el bit 1, de manera que, al teclear la palabra GO se
transmiten los octetos 01000111 y 11001111 en secuencia. Un octeto se conoce comúnmente
como un byte.

El bit de paridad que se añade permite detectar errores de transmisión de un número impar
de bits (1, 3, 5 o 7), ya que al ocurrir tal error se cambia la paridad acordada, y se solicita
una retransmisión. Por ejemplo, si se desea transmitir el código del número 4, y se acuerda
que la paridad debe ser impar, se debería transmitir el byte 00110100. Si ocurren errores en
2 de los bits, y se transmite x010000, x = 0 y el bit de paridad no los descubre, pero si se
alteran 3 bits, como x110000, ahora x = 1, y se solicita una retransmisión.

1.8.3. Código Gray. Este pertenece a un conjunto de códigos denominados de distancia


unitaria, y se utiliza para minimizar errores al transformar una posición angular de una flecha
rotatoria a un patrón de bits. La idea fundamental es que cambie sólo un bit al pasar la flecha
de una región angular a la siguiente. La tabla 1.8.3.1 muestra el código para 3 bits (8 regiones
angulares del 000 al 111).

Número binario Código Gray


000 000
001 001
010 011
011 010
100 110
101 111
110 101
111 100
Tabla 1.8.3.1. Código Gray para 3 bits

1.9. Funciones lógicas. Circuitos de conmutación.


Hemos mencionado que los sistemas digitales se basan fundamentalmente en circuitos de
conmutación que manejan 2 valores. Consideremos el circuito de la figura. 1.9.1 que contiene
un interruptor simple A. Si el interruptor está cerrado, circula corriente por el resistor R, y se
observa un voltaje V alto (H), mientras que, si está abierto, no hay corriente y el voltaje V
es bajo (L). Identificamos, por el momento, H con 1 y L con 0, de manera que el voltaje de
salida representa directamente el estado del interruptor; esta convención se denomina lógica
positiva.

Figura 1.9.1. Circuito simple con interruptor

Consideremos ahora el circuito de la figura. 1.9.2, con dos interruptores en serie A y B y su


símbolo electrónico lógico correspondiente, conocido como compuerta AND. Para que
circule corriente se requiere que ambos interruptores estén cerrados. Esto corresponde con la
operación lógica AND, representada como A·B. (coloquialmente, decimos A y B). La
operación puede representarse como una tabla de verdad, que muestra los valores lógicos de
la salida en función de todas las combinaciones posibles de los valores de entrada; estos
valores corresponden con el estado de cada interruptor.

Figura 1.9.2. Operación lógica AND y su símbolo

En el circuito de la figura. 1.9.3, en cambio, los interruptores A y B están en paralelo; la


corriente fluye si cualquiera de ellos está cerrado, y la operación lógica se conoce como OR,
representada como A+B (coloquialmente A ó B); a esta operación le corresponde la tabla de
verdad que acompaña a la figura.

Figura 1.9.3. Operación lógica OR y su símbolo

Es posible formar combinaciones más complejas de interruptores; el lector puede constatar


que el circuito de la figura. 1.9.4, por ejemplo, se comporta como se indica en su tabla de
verdad, y que la función lógica realizada es (A+B)·(C+D).

Estos circuitos se caracterizan por arrojar un sólo valor para una combinación específica de
los valores de entrada (estado de los interruptores o voltajes de entrada de las compuertas).
Se conocen como circuitos combinacionales.

ABCD A+B C+D F=(A+B)·(C+D)


0000 0 0 0
0001 0 1 0
0010 0 1 0
0011 0 1 0
0100 1 0 0
0101 1 1 1
0110 1 1 1
0111 1 1 1
1000 1 0 0
1001 1 1 1
1010 1 1 1
1011 1 1 1
1100 1 0 0
1101 1 1 1
1110 1 1 1
1111 1 1 1

Figura 1.9.4

En contraste, es posible diseñar con compuertas y bucles de realimentación dispositivos con


capacidad de memoria, llamados flip-flops, cuya respuesta no depende únicamente de las
entradas presentes, sino de entradas anteriores, por lo que los conocemos como circuitos
secuenciales, y pueden controlarse para almacenar información, en unidades básicas que
denominamos registros.

Los circuitos digitales incluyen desde varias decenas hasta millones de compuertas y
registros, y utilizan los llamados circuitos integrados (CI) de baja (SSI), mediana (MSI), alta
(LSI) y muy alta (VLSI) densidad, que encapsulan unos cuantos o hasta millones de
componentes en un “chip” o circuito integrado (CI). Los circuitos utilizados como
compuertas AND, OR, así como NOT, NAND, NOR y XOR, que veremos en el capítulo
siguiente, vienen en un CI SSI, con 2, 3, 4 o 6 compuertas en el chip (dependiendo del número
de entradas).

1.10 Problemas de fin de capítulo


1.10.1. Representar el número N=28174 base 10 en: a) binario, b) hexadecimal, c) BCD
Solución:
a): Número/2 Resultado Residuo
28174/2 14087 0=A0
14087/2 7043 1=A1
7043/2 3521 1=A2
3521/2 1760 1=A3
1760/2 880 0=A4
880/2 440 0=A5
440/2 220 0=A6
220/2 110 0=A7
110/2 55 0=A8
55/2 27 1=A9
27/2 13 1=A10
13/2 6 1=A11
6/2 3 0=A12
3/2 1 1=A13
1/2 1 1=A14
Luego N2 = 110111000001110
b): 0110 1110 0000 1110= 6E0E16
c): 0010 1000 0001 0111 0100 (BCD)

1.10.2. Representar el número N=4253 base 8 en binario:


Solución: Recordar que cada dígito octal equivale a un binario de 3 bits. Luego
N2=100 010 101 011

1.10.3. Representar en ASCII la palabra BIT con paridad impar:


Solución: 11000010 01001001 01010100
Byte B Byte I Byte T

1.10.4. Calcular el resultado de restar el número 57 del número 86 (ambos en base 10)
utilizando el sistema binario con 8 bits
Solución: Convertimos primeramente cada número a base 2:

57=32+16+8+1= 00111001 base 2 (sustraendo)


86= 64+16+4+2=01010110 base 2(minuendo)

Obtenemos ahora el negativo del sustraendo: 11000110+1=11000111


La suma del minuendo mas el valor anterior resulta:
01010110
+11000111
100011100

Si descartamos el acarreo final, obtenemos 00011100=16+8+4+1=29

RESUMEN
1. Se han presentado las características las diferencias fundamentales entre señales analógicas y digitales,
y las ventajas que presentan estas últimas para almacenar y procesar información (secciones 1.1 y 1.2).
2. Se presentaron fórmulas y algoritmos para la conversión de un número de base r a base 10, y viceversa
(secciones 1.3 a 1.5)
3. Se presentaron métodos sencillos de conversión de números binarios a bases octal y hexadecimal
(sección 1.6)
4. Se presentó la representación de números binarios negativos por medio de su complemento a 2, y
ejemplos de operaciones de suma y resta, incluyendo desbordamiento (sección 1.7).
5. Se presentaron códigos varios de representación numérica y alfanumérica: BCD, Gray, ASCII(sección
1.8).
6. Se presentó el concepto de función lógica, los operadores AND, OR, y su implementación por medio
de switches y compuertas lógicas (sección 1.9).

PROBLEMAS
1. Convierta los números de base 10 siguientes a:
a) Binario
b) Octal
c) Hexadecimal
1084.2, 798, 6477.25, 10044.8, 83.4, 1077.77
2. Convierta los números binarios siguientes a:
a) Base 10
b) Octal
c) Hexadecimal
11101001.01, 110000101.11, 1000100001, 1101.0111, 101010.10, 1.1110111
3. Represente los números de base 10 siguiente en código BCD
102, 1735.7, 888.8, 18699.253
4. Determine el valor de x si la paridad de los caracteres ASCII siguientes es par:
x0101111, x0010100, x1010000, x0101010
5 Determine la función lógica realizada por el siguiente arreglo de interruptores.

6 Determine la función lógica realizada por el siguiente arreglo de interruptores.

Figura C1.6
7 ¿Cuál es el número decimal más grande que puede obtenerse con
16 bits, 24 bits, 32 bits, 48 bits, 64 bits
8. En cada uno de los casos siguientes, determine la base r:
a) 314r =20410 b) 123r =3010 c) 1036r =14610
9. Escriba su nombre completo con caracteres ASCII y bit adicional de paridad
impar.
10. Convierta los números BCD siguientes a binario:
27.36, 149.72, 1024.02
11. Efectúe las operaciones siguientes con números binarios de 8 bits y representación de
números negativos con complemento a 2. Determine cuando existe desbordamiento.
83-58, 83+58, 47-93, 55-14, 112+23, 112-23
12. Determine el valor de x si representa a un bit de paridad par para los siguientes bytes:
x1011010, x0001001, x0101111
13. Represente al número 2048 en binario, BCD, ASCII

EXPERIMENTOS SUGERIDOS

1. Arme un circuito con interruptores en serie y en paralelo y diodos tipo LED para comprobar
las funciones lógicas básicas AND y OR en una tablilla tipo protoboard.

También podría gustarte