martes, 30 de abril de 2013

Electrónica Digital. sistema binario

Curso de electrónica digital.

NÚMEROS UTILIZADOS EN ELECTRÓNICA DIGITAL 
Los sistemas de numeración utilizados en electrónica digital son los siguientes: sistema decimal, sistema binario, sistema octal y sistema hexadecimal 
  
  
SISTEMA DECIMAL 
Este sistema consta de diez símbolos que van desde el numero 0 hasta el numero 9, los cuales le dan la característica principal a este sistema conocido por todo el mundo. Estos símbolos numéricos también forman unidades numéricas compuestas, al tomarlos como exponentes de un número que se encargará de regular el procedimiento, este número es llamado base. El numero base  va a ser 10, por tal motivo también es conocido como "sistema de numeración en base 10". 

Figura 1: Sistema decimal 
SISTEMAS DE NÚMEROS BINARIOS 

Figura 2: Sistema de números binarios 
Este es el sistema numérico que utilizan los sistemas digitales para contar y es el código al que traduce todas las informaciones que recibe. Se dice "Binario" a todo aquello que tiene dos partes, dos aspectos, etc. Muchas cosas en los sistemas digitales son binarias: Los impulsos eléctricos que circulan en los circuitos son de baja o de alta tensión, los interruptores biestables están encendidos o apagados, abiertos o cerrados, etc. A diferencia del sistema decimal al que estamos habituados, y que utiliza diez cifras, del 0 al 9, el sistema numérico binario utiliza solo dos cifras, el 0 y el 1. En el sistema binario las columnas no representan la unidad, la decena, la centena, como en el sistema decimal, sino la unidad (20), el doble (21), el doble (22), etc. De modo que al sumar en la misma columna 1 y 1, dará como resultado 0, llevándonos 1 a la columna inmediatamente a la izquierda. Para los sistemas digitales es fácil, hasta el punto que reduce todas las operaciones a sumas y restas de números binarios.
  
  

Figura 3: Sistema binario 


Figura 4: Números binarios 
También las palabras, los números y los dibujos se traducen en el ordenador en secuencias de 1 y 0. De hecho toda letra, cifra o símbolo gráfico es codificado en una secuencia de 0 y 1. Si, por ejemplo, nuestro nombre tiene cinco letras, la representación para el ordenador constara de cinco bytes. La palabra bit deriva de las dos palabras inglesas "binary digit" cifra binaria, y designa a las dos cifras 0 y 1, que se utilizan en el sistema binario. Un bit es también, la porción más pequeña de información representable mediante un número, e indica si una cosa es verdadera o falsa, alta o baja, negra o blanca, etc. 
Un byte es generalmente una secuencia de 8 bits. Ocho ceros y unos se pueden ordenar de 256 maneras diferentes ya que cada bit tiene un valor de posición diferente, donde el bit numero 1 le corresponderá un valor de posición de 20(1), el siguiente bit tendrá un valor de 21(2), el siguiente 22(4), el siguiente 23(8), el siguiente 24(16), el siguiente un valor de 25(32), y así sucesivamente hasta llegar la ultima posición, o ultimo bit, en este caso el numero 8, que también es llamado el MSB (Bit Mas Significativo) y el LSB (Bit Menos Significativo) correspondiente a la primera posición o bit numero 1. Ejemplo: 

Figura 5: Valores de las posiciones de los números binarios 


SISTEMA DE NUMERACIÓN OCTAL 

Figura 6: Sistema de numeración octal 
Este sistema consta de 8 símbolos desde el 0 hasta el 7, es muy poco utilizado en los computadores. La facilidad con que se pueden convertir entre el sistema Octal y el binario hace que el sistema Octal sea atractivo como un medio "taquigráfico" de expresión de números binarios grandes. Cuando trabajamos con una gran cantidad de números binarios de muchos bits, es más adecuado y eficaz escribirlos en octal y no en binarios. Sin embargo, recordemos los circuitos y sistemas digitales trabajan eléctricamente en binario, usamos el sistema Octal solo por conveniencia con los operadores del sistema 
SISTEMA DE NUMERACIÓN HEXADECIMAL
Este sistema consta de 16 símbolos donde desde el 0 hasta el 9 son números y del 10 hasta el 15 son letras, las cuales se encuentran distribuidas en la siguiente forma:

Hexadecimal
DecimalHexadecimalDecimal
0088
1199
22A10
33B11
44C12
55D13
66E14
77F15
Tabla 1: Símbolos utilizados en el sistema de numeración hexadecimal 
La ventaja principal de este sistema de numeración es que se utiliza para convertir directamente números binarios de 4 bits. En donde un solo dígito hexadecimal puede representar 4 números binarios o 4 bits. 
CONVERSIONES DE SISTEMAS DE NUMERACIÓN 
CONVERSIÓN DE UN NUMERO DECIMAL A BINARIO 
Para esta transformación es necesario tener en cuenta los pasos que mostraremos en el siguiente ejemplo: Transformemos el número 42 a número binario
    1. Dividimos el número 42 entre 2
    2. Dividimos el cociente obtenido por 2 y repetimos el mismo procedimiento hasta que el cociente sea 1.
    3. El numero binario lo formamos tomando el primer dígito el ultimo cociente, seguidos por los residuos obtenidos en cada división, seleccionándolos de derecha a izquierda, como se muestra en el siguiente esquema.

Figura 7: Conversión de decimal a binario 

  
CONVERSIÓN DE UN NUMERO DECIMAL FRACCIONARIO A UN NUMERO BINARIO 
Para transformar un número decimal fraccionario a un número binario debemos seguir los pasos que mostramos en el siguiente ejemplo: transformemos el numero 42,375.
    1. la parte entera se transforma de igual forma que el ejemplo anterior.
    2. La parte fraccionaria de la siguiente manera:
    • Multiplicamos por el número 2 y tomamos la parte entera del producto que ira formando el número binario correspondiente
    • Tomamos nuevamente la parte entera del producto, y la parte fraccionaria la multiplicamos sucesivamente por 2 hasta llegar a 0
    • Tomamos nuevamente la parte entera, y como la parte fraccionaria es 0, indica que se ha terminado el proceso .El número binario correspondiente a la parte decimal será la unión de todas las partes enteras, tomadas de las multiplicaciones sucesivas realizadas durante el transcurso del proceso, en donde el primer dígito binario corresponde a la primera parte entera, el segundo dígito a la segunda parte entera, y así sucesivamente hasta llegar al ultimo. Luego tomamos el numero binario, correspondiente a la parte entera, y el número binario, correspondiente a la parte fraccionaria y lo unimos en un solo número binario correspondiente a el numero decimal.

Figura 8: Conversión de decimal fraccionario a binario 

 
CONVERSIÓN DE UN NUMERO BINARIO A UN NUMERO DECIMAL 
Para convertir un número binario a decimal, realizamos los siguientes pasos:
    1. Tomamos los valores de posición correspondiente a las columnas donde aparezcan únicamente unos
    2. Sumamos los valores de posición para identificar el numero decimal equivalente

Figura 9: Conversión de binario a decimal 

 
CONVERSIÓN DE UN NUMERO DECIMAL A OCTAL 
Para convertir un numero en el sistema decimal al sistema de numeración Octal, debemos seguir los pasos que mostraremos en el siguiente ejemplo Convertir el numero decimal 323.625 a el sistema de numeración Octal
    1. Se toma el numero entero y se divide entre 8 repetidamente hasta que el dividendo sea menor que el divisor, para colocar entonces el numero 0 y pasar el dividendo a formar el primer dígito del numero equivalente en decimal
    2. Se toma la parte fraccionaria del numero decimal y la multiplicamos por 8 sucesivamente hasta que el producto no tenga números fraccionarios
    3. Pasamos la parte entera del producto a formar el dígito correspondiente
    4. Al igual que los demás sistemas , el numero equivalente en el sistema decimal , esta formado por la unión del numero entero equivalente y el numero fraccionario equivalente.

Figura 10: Conversión de decimal a octal 

 
CONVERSIÓN DE UN NUMERO OCTAL A BINARIO 
La ventaja principal del sistema de numeración Octal es la facilidad conque pueden realizarse la conversión entre un numero binario y octal. A continuación mostraremos un ejercicio que ilustrará la teoría. Por medio de este tipo de conversiones, cualquier numero Octal se convierte a binario de manera individual. En este ejemplo, mostramos claramente el equivalente 100 111 010 en binario de cada numero octal de forma individual. 

Figura 11: Conversión de octal a binario 

  
CONVERSIÓN DE UN NUMERO DECIMAL A UN NUMERO HEXADECIMAL 
Convertir el numero 250.25 a Hexadecimal
    1. Se toma la parte entera y se divide sucesivamente por el numero decimal 16 (base) hasta que el cociente sea 0
    2. Los números enteros resultantes de los cocientes, pasarán a conformar el numero hexadecimal correspondiente, teniendo en cuenta que el sistema de numeración hexadecimal posee solo 16 símbolos, donde los números  del 10 hasta el 15 tienen símbolos alfabéticos que ya hemos explicado
    3. La parte fraccionaria del numero a convertir se multiplica por 16 (Base) sucesivamente hasta que el producto resultante no tenga parte fraccionaria
    4. Al igual que en los sistemas anteriores, el numero equivalente se forma, de la unión de los dos números equivalentes, tanto entero como fraccionario, separados por un punto que establece la diferencia entre ellos.

Figura 12: Conversión de decimal a hexadecimal 
CONVERSIÓN DE UN NUMERO HEXADECIMAL A UN NUMERO DECIMAL 
Como en los ejemplos anteriores este también nos ayudará a entender mejor este procedimiento: Convertir el numero hexadecimal 2B6 a su equivalente decimal.
    1. Multiplicamos el valor de posición de cada columna por el dígito hexadecimal correspondiente.
    2. El resultado del número decimal equivalente se obtiene, sumando todos los productos obtenidos en el paso anterior.

Figura 13: Conversión de hexadecimal a decimal
SISTEMA DE NÚMEROS EN COMPLEMENTO A 2 
Este es un sistema que nos permite representar números binarios de forma negativa, en donde el MSB (Bit mas Significativo) es el bit del signo. Si este bit es 0 entonces el numero binario es positivo (+), si el bit del signo es 1, entonces el numero es negativo(-) los siete bits restantes del registro representan la magnitud del numero1010110, para complementar mejor la explicación tendremos que dedicarle mucha atención a la explicación de conversiones donde interviene este tipo de numeración, que es bastante utilizado en los microprocesadores, ya que estos manejan tanto números positivos como números negativos. 
Para comprender mejor la conversión de sistema de numeración de este sistema de numeración, hay que tener en cuenta las siguientes definiciones 
FORMA COMPLEMENTO A 1 
El complemento a 1 de un numero binario se obtiene cambiando cada 0 por 1 y viceversa. En otras palabras, se cambia cada bit del numero por su complemento. 

Figura 14: Complemento a uno 

 
FORMA COMPLEMENTO A 2 
El complemento a 2 de un numero binario se obtiene tomando el complemento a 1, y sumándole 1 al bit menos significativo. A continuación se ilustra este proceso para el numero 1001 = 9 

Figura 15: Complemento a 2 

 
Cuando se agrega el bit de signo 1 al MSB, el numero complemento a 2 con signo se convierte en 10111 y es el numero equivalente al - 9. 
 
Debido a la naturaleza biestable de los circuitos de electrónica digital, estos solo procesan códigos que constan de 0 y 1 (códigos binarios) existen muchas situaciones en la electrónica digital en la que necesitamos realizar tareas especificas, por lo tanto se necesitaran utilizar una serie de códigos que también utilizan ceros (0) y unos (1), pero sus significados pueden variar. A continuación detallaremos estos tipos de códigos. 
  
CÓDIGOS BINARIOS CON PESO 
Supongamos que queramos transformar el numero decimal 89532 a su correspondiente equivalencia en binario, aplicando el método de la división sucesiva por dos, llegaremos al siguiente resultado: 10101110110111100 pero para llegar a este resultado seguro te tomará cierto tiempo y trabajo, de igual forma si queremos diseñar un sencillo circuito digital en el que la cifra introducida en el teclado sea visualizada en la pantalla, se necesitarían una gran cantidad de compuertas lógicas para construir el circuito decodificado y codificador. Los códigos binarios con peso nos resuelven este problema pues estos códigos fueron diseñados para realizar la conversión de decimal a binario de una manera mucho mas fácil y rápida. 
 

CÓDIGOS BCD

Los códigos BCD (Binary Coded Decimal) (Decimal Codificado en Binario) son grupos de 4 bits en el cual cada grupo de 4 bits solo puede representar a un único dígito decimal (del 0 al 9) Estos códigos son llamados códigos con peso ya que cada bit del grupo posee un peso o valor especifico. Existen por lo tanto códigos BCD's de acuerdo al valor o peso que posea cada bit. Ejemplos de estos códigos son el BCD 8421, el BCD 4221, el BCD 5421, el BCD 7421, el BCD 6311, etc. donde la parte numérica indica el peso o valor de cada bit. Así por ejemplo el código BCD 8421 nos indica que el MSB posee un valor de 8, el segundo MSB posee un valor de 4, el tercer MSB tiene un valor de 2 y el LSB tiene un valor de 1. Para el código BCD 6311 el MSB tiene un peso o valor de 6, el segundo MSB posee un peso de 3, el tercer MSB posee un valor de 1, y el LSB tiene un valor de 1. El código BCD 8421 es el código BCD mas utilizado, es común referenciarlo simplemente como código BCD, así en el transcurso del curso se entenderá el código BCD como el BCD 8421, a menos que se indique lo contrario. 
  
  
  
CONVERSIÓN DE DECIMAL A BCD 
Ya que cada grupo de 4 bits solo puede representar a un único dígito decimal, la conversión de un numero decimal a un numero BCD se lleva a cabo de la siguiente forma:
    1. Separamos al dígito decimal en cada uno de sus dígitos
    2. Cada dígito decimal se transforma a su equivalente BCD.
    3. El número obtenido es el equivalente en BCD del número decimal.
Por ejemplo, para convertir el decimal 469 a BCD, según lo explicado anteriormente, tenemos que tomar cada dígito decimal y transformarlo a su equivalente BCD. 
  
  

Figura 1: Conversión de decimal a BCD
De esta forma el decimal 469 equivale al BCD 010001100011 
NOTA: En BCD los códigos 1010, 1011, 1100, 1101 y 1111 no tienen decimales equivalentes.  Por lo tanto se les llaman códigos inválidos 
  
CONVERSIÓN DECIMAL FRACCIONARIO A BCD 
Se realiza del modo similar al anterior pero hay que tener en cuenta el punto binario, el punto del numero decimal se convertirá en el punto binario del código BCD. 
Ejemplo: para convertir el decimal 74.42 a BCD: 
Separamos el decimal en sus dígitos 7 4. 4 2. 
Convertimos cada dígito a decimal a BCD, y colocamos el punto binario en la misma posición del punto decimal. 

Figura 2: Conversión de decimal fraccionario a BCD 



De esta forma el decimal 74.42 equivale al BCD 01100100. 010000101. 
  
CONVERSIÓN DE BCD A DECIMAL 
Ya que el código BCD son grupos de 4 bits, realizaremos lo siguiente: 
 
    1. A partir de la izquierda separamos al número BCD en grupos de 4 bits.
    2. Cada grupo de 4 bits se convierte a su decimal correspondiente.
    3. El número obtenido es el equivalente decimal del número BCD.

Ejemplo: Convertir el número BCD 010101000011 a decimal. 
Separamos en grupos de 4 bits a partir de la izquierda 0101 0100 0011. 
Transformamos cada grupo a decimal. 

  
  

Figura 3: Conversión de BCD a decimal.
El BCD 010101000011 equivale al decimal 543 
  
CONVERSIÓN BCD FRACCIONARIO A DECIMAL 
 
    1. A partir del punto binario separamos al número binario en grupos de 4 bits.
    2. Cada grupo de 4 bits se convierte a su equivalente decimal.
    3. El punto binario se convertirá en el punto decimal.
    4. El número obtenido equivale en decimal al número BCD.

Ejemplo: Convertir el número BCD 01110001.0000100 a decimal. 
separamos en grupo de 4 bits 0111 0001. 0000 1000. 
convertimos cada grupo a decimal y colocamos el punto binario como punto decimal. 
  
  

Figura 4: Conversión de BCD fraccionario a decimal.
El BCD 01110001.00001000 equivale al decimal 71.08 
  
CONVERSIÓN BCD A BINARIO PURO 
Si queremos transformar un numero BCD a su correspondiente binario llevaremos a cabo los siguientes pasos: 
 
    1. El número BCD lo transformamos a decimal.
    2. Convertimos el decimal obtenido a binario mediante las técnicas ya estudiadas.
    3. El binario obtenido es el equivalente en binario del número BCD.

Ejemplo: Convertir el BCD 000100000011.0101 a binario. 
Convertimos 0001 0000 0011. 0101 a decimal 1 0 3. 5. 
Transformamos el decimal a binario 103.5(10)=1100111.1 
  
CONVERSIÓN DE BINARIO PURO A BCD 
 
    1. Convertimos el número binario a número decimal.
    2. Cada dígito decimal se convierte a su equivalente BCD.
    3. El numero obtenido es el equivalente BCD del número binario puro.

Ejemplo: convertir el binario 10001010.101 a BCD 
Se convierte primero a decimal 10001010.101 
128 + 8 + 2 + 0.5 + 0.125 = 138.625. 
convertimos el decimal a BCD 
138.625 = 0001 0011 1000. 0110 0010 0101 
El binario 10001010.101 es igual al BCD 000100111000.011000100101 
NOTA: Seguramente ha notado que los números en código BCD contienen mayor numero de bits que sus correspondientes números binarios, pero nuevamente recalcamos que esta desventaja es compensada por su facilidad para convertir a decimal. 
  
CÓDIGOS BINARIOS SIN PESO 
De la misma forma que existen códigos binarios con peso, también existen códigos binarios sin peso en el cual cada bit no va a poseer un valor o ponderación por posición. Aquí detallaremos dos códigos binarios sin peso: el de exceso 3 y el código Gray. 
  
CÓDIGO DE EXCESO 3 
A pesar de ser un código binario sin peso, el código de exceso 3 guarda una estrecha relación con el código BCD 8421 por el hecho de que cada grupo de 4 bits solo pueden representar a un único dígito decimal (del 0 al 9), y deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número BCD 8421 mas 3. 
  
CONVERSIÓN DE DECIMAL A EXCESO 3 
 
    1. Se separa al numero decimal en cada uno de sus dígitos.
    2. Sumarle tres (3) a cada dígito decimal.
    3. Convertir a BCD el número decimal obtenido.
    4. El número obtenido es el equivalente en XS3 del número decimal.

Ejemplo: convertir el numero decimal 18 a su equivalente XS3. 
Solución: primero le sumamos 3 a cada dígito. 
            1       8 
          + 3     + 3 
         -----   ----- 
            4      11 
luego cada resultado se transforma a BCD 
        4 = 0100 
       11 = 1001 
Nota: En las conversiones de exceso 3 no se tiene en cuenta los códigos inválidos (1010, 1011, 1100, 1101, 1110, 1111) como vimos en el ejemplo anterior el número 11, el cual nos resultó de la suma de 8+3, se convirtió directamente al BCD 1001. 
  
CONVERSIÓN BCD A XS3 
Para convertir un número BCD a código de exceso 3 tenemos en cuenta los siguientes pasos: 
 
    1. A partir de la izquierda separamos al código BCD en grupos de 4 bits.
    2. Sumamos 00112 a cada grupo de 4 bits.
    3. El resultado es el equivalente en XS3 del código BCD.

Ejemplo: Convertir el BCD 00101001 a XS3 
Separamos en grupos de bits. 0010 1001 
Sumamos 00112 a cada grupo 
         0010      1001 
       + 0011     +0011 
      --------   ------- 
         0101      1100 
El código XS3 01011100 equivale al BCD 00101001 
  
CONVERSIÓN DE XS3 A DECIMAL 
 
    1. Dividimos a partir de la izquierda al número XS3 en grupos de 4 bits.
    2. Convertimos a decimal cada grupo de 4 bits.
    3. Restamos 3 a cada decimal.
    4. El número obtenido es el equivalente decimal del número XS3.

Ejemplo : Convertir 10011010 XS3 a decimal 
Separamos en 4 bits 1001 1010 
Convirtiendo a decimal 1001 1010 
    1001 = 9 
    1010 = 10 
restamos 3 a cada resultado 
      9     10 
     -3     -3 
    ----   ---- 
      6      7 
  
el número 6710 equivale al XS3 10011010 
  
CÓDIGO GRAY 
Observemos lo siguiente: 
El decimal 5 se representa en binario por 0101 
El decimal 6 se representa en binario por 0110 
¿Qué has notado? 
Observa que con solo aumentar un nivel en la cuenta (del 5 al 6) dos bits cambiaron de estado (el tercer MSB y el LSB de ambos números), probablemente esto no signifique nada ni nos afectaría en lo mas mínimo sin embargo existen algunas situaciones en electrónica digital en el cual solo necesitamos que al incrementarse la cuenta en un nivel solo cambie de estado (de 0 a 1 o viceversa) uno y únicamente un solo bit. 
La solución esta en el código Gray, un código binario sin peso que no tiene ninguna relación con el código BCD. 
Así para el ejemplo que hemos venido analizando: 
el decimal 5 en binario es 0101 y en código Gray es 0 1 1 1 
el decimal 6 en binario es 0110 y en código Gray es 0 1 0 1 
el color azul indica el bit que cambió de estado. 
Pero, ¿cuales son los pasos que se deben llevar cabo para hacer la transformación a código Gray? 
  
CONVERSIÓN DE NUMERO BINARIO A CÓDIGO GRAY 
 
    1. El MSB del numero binario será el mismo para el código Gray.
    2. Sumar el MSB del numero binario al bit situado a su derecha inmediata y anotar el resultado del numero en código Gray que estamos formando.
    3. Continuar sumando bits a los bits situados a la derecha y anotando las sumas; hasta llegar al LSB.
    4. El número en código Gray tendrá el mismo número de bits que el número binario.

Ilustraremos mejor esta explicación con un ejemplo: 
Ejemplo: convertir el numero binario 0010 a código Gray 

Aquí finaliza la conversión dado que ya llegamos al LSB del numero binario. 
Entonces el numero binario 0010 equivale al 0011 en código Gray 
  
CONVERSIÓN DE CÓDIGO GRAY A BINARIO 
 
    1. El bit izquierdo de código Gray será el MSB del numero binario.
    2. El bit obtenido es sumado al segundo bit de la izquierda del código Gray, y el resultado se anotara a la derecha del numero binario a formar.
    3. Este resultado se le suma al bit situado a la derecha inmediata del ultimo bit que sumamos y el resultado será el otro bit del número binario (se ordena de izquierda a derecha).
    4. Repetir el paso anterior hasta llegar al bit mas a la derecha del código Gray.
    5. El número de bits del numero binario deberá coincidir con el número de bits del número en código Gray.

Ejemplo: convertir el número en código Gray 1001 a numero binario 

CÓDIGOS ALFANUMÉRICOS 
Los códigos estudiados anteriormente sólo sirven para representar números, pero ; ¿y si queremos representar las letras del alfabeto o algunos símbolos? ; ¿cómo lo haríamos?. 
La solución está en los códigos alfanuméricos, que no es más que un tipo de código diseñado especialmente para representar números, letras del alfabeto (mayúsculas y minúsculas), símbolos especiales, signos de puntuación y unos caracteres de control. 
Un código alfanumérico muy popular y ampliamente utilizado, es el llamado código ASCII (American Standard Code for Information Interchange), que en español quiere decir: código estándar americano para el intercambio de información, el cual es un código de siete bits muy utilizado en los sistemas digitales avanzados (computadores, redes de transmisión de datos, etc.) para representar hasta 128 (27) piezas de información diferentes, incluyendo letras, números, signos de puntuación, instrucciones y caracteres especiales.

No hay comentarios:

Publicar un comentario

Entradas populares