Investigación Circuito Lógico
Investigación Circuito Lógico
Investigación Circuito Lógico
BCD
Cada dígito decimal tiene una representación binaria codificada con 4 bits:
Decimal: 0 1 2 3 4 5 6 7 8 9
BCD: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Los números decimales, se codifican en BCD con los bits que representan sus dígitos.
Por ejemplo, la codificación en BCD del número decimal 59237 es:
Decimal: 5 9 2 3 7
1110011101100101 = jfjfjfj
Fundamentos
En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se representa con su
equivalente binario en cuatro bits (nibble o cuarteto) (esto es así porque es el número de
bits necesario para representar el nueve, el número más alto que se puede representar en
BCD). En la siguiente tabla se muestran los códigos BCD más empleados:
0 0000 0011
1 0001 0100
2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100
Como se observa, con el BCD solo se utilizan 10 de las 16 posibles combinaciones que
se pueden formar con números de 4 bits, por lo que el sistema pierde capacidad de
representación, aunque se facilita la compresión de los números. Esto es porque el BCD
solo se usa para representar cifras, no números en su totalidad. Esto quiere decir
que para números de más de una cifra hacen falta dos números BCD.
Desde que los sistemas informáticos empezaron a almacenar los datos en conjuntos de
ocho bits (octeto), hay dos maneras comunes de almacenar los datos BCD:
El BCD sigue siendo ampliamente utilizado para almacenar datos, en aritmética binaria
o en electrónica. Los números se pueden mostrar fácilmente en visualizadores de siete
segmentos enviando cada cuarteto BCD a un visualizador. La BIOS de un ordenador
personal almacena generalmente la fecha y la hora en formato BCD; probablemente por
razones históricas se evitó la necesidad de su conversión en ASCII.
La ventaja del código BCD frente a la representación binaria clásica es que no hay
límite para el tamaño de un número. Los números que se representan en
formato binario están generalmente limitados por el número mayor que se pueda
representar con 8, 16, 32 o 64 bits. Por el contrario, utilizando BCD, añadir un nuevo
dígito solo implica añadir una nueva secuencia de 4 bits.
Exceso-3
El código binario Exceso-3, o 3-exceso (normalmente abreviado como XS-3 o X3)
o código Stibitz (por George Stibitz) es un código decimal codificado en binario auto
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas
registradoras y calculadoras electrónicas portátiles en la década del '70, además de
muchas otras cosas.
Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre especificado N como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):
Pseudo-
-3 0000 - -
tetradecanoico
Pseudo-
-2 0001 - -
tetradecanoico
Pseudo-
-1 0010 - -
tetradecanoico
Pseudo-
10 1101 Pseudo-tetradecanoico 1010
tetradecanoico
Pseudo-
11 1110 Pseudo-tetradecanoico 1011
tetradecanoico
Pseudo-
12 1111 Pseudo-tetradecanoico 1100
tetradecanoico
13 - - Pseudo-tetradecanoico 1101
14 - - Pseudo-tetradecanoico 1110
15 - - Pseudo-tetradecanoico 1111
Para codificar un número como el 127, uno simplemente codificada cada uno de los
Motivación
Ejemplo
entity bcdxs3 is
port (
a : in std_logic;
b : in std_logic;
c : in std_logic;
d : in std_logic;
an : inout std_logic;
bn : inout std_logic;
cn : inout std_logic;
dn : inout std_logic;
w : out std_logic;
x : out std_logic;
y : out std_logic;
z : out std_logic
);
an <= not a;
bn <= not b;
cn <= not c;
dn <= not d;
El visualizador de siete segmentos (llamado también display por calco del inglés) es
una forma de representar caracteres en equipos electrónicos. Está compuesto de siete
segmentos que se pueden encender o apagar individualmente. Cada segmento tiene la
forma de una pequeña línea. Se podría comparar a escribir números con cerillas o
fósforos de madera.
Funcionamiento
Cada uno de los segmentos que forman la pantalla están marcados con siete primeras
letras del alfabeto ('a'-'g'), y se montan de forma que permiten activar cada segmento por
separado, consiguiendo formar cualquier dígito numérico. A continuación se muestran
algunos ejemplos:
En algunos casos aparece un octavo segmento denominado dp. (del inglés decimal
point, punto decimal).
Los ledes trabajan a baja tensión y con pequeña potencia, por tanto, podrán excitarse
directamente con puertas lógicas. Normalmente se utiliza un codificador (en nuestro
caso decimal/BCD) que activando una sola pata de la entrada del codificador, activa las
salidas correspondientes mostrando el número deseado. Recordar también que existen
pantallas alfanuméricas de 16 segmentos e incluso de una matriz de 7*5 (35 bits).
En los de tipo de ánodo común, todos los ánodos de los leds o segmentos están unidos
internamente a una patilla común que debe ser conectada a potencial positivo (nivel
“1”). El encendido de cada segmento individual se realiza aplicando potencial negativo
(nivel “0”) por la patilla correspondiente a través de una resistencia que limite el paso
de la corriente.
En los de tipo de cátodo común, todos los cátodos de los leds o segmentos están unidos
internamente a una patilla común que debe ser conectada a potencial negativo (nivel
“0”). El encendido de cada segmento individual se realiza aplicando potencial positivo
(nivel “1”) por la patilla correspondiente a través de una resistencia que limite el paso
de la corriente.
Los segmentos pueden ser de diversos colores, aunque el visualizador más comúnmente
utilizado es el de color rojo, por su facilidad de visualización.
ASCII
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente
empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la
transmisión. A menudo se llama incorrectamente ASCII a varios códigos de caracteres
de 8 bits que extienden el ASCII con caracteres propios de idiomas distintos al inglés,
como el estándar ISO/IEC 8859-1.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por
última vez en 1986. En la actualidad define códigos para 32 caracteres no imprimibles,
de los cuales la mayoría son caracteres de control que tienen efecto sobre cómo se
procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración
(empezando por el carácter espacio).
Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión
compatible para representar textos y para el control de dispositivos que manejan letras o
cualquier símbolo en el teclado.
Vista general
ASCII es, en sentido estricto, un código de siete bits, lo que significa que usa cadenas
de bits representables con siete dígitos binarios (que van de 0 a 127 en base decimal)
para representar información de caracteres. En el momento en el que se introdujo el
código
ASCII
!"#$%&'()*+,-./0123456789:;<=>?
muchas
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
computadoras trabajaban con grupos de ocho bits (bytes u octetos), como la unidad
mínima de información; donde el octavo bit se usaba habitualmente como bit de
paridad con funciones de control de errores en líneas de comunicación u otras funciones
específicas del dispositivo. Las máquinas que no usaban la comprobación de paridad
asignaban al octavo bit el valor cero en la mayoría de los casos, aunque otros sistemas
como las computadoras Prime, que ejecutaban PRIMOS ponían el octavo bit del código
ASCII a uno. El código ASCII define una relación entre caracteres específicos y
secuencias de bits; además de reservar unos cuantos códigos de control para el
procesador de textos, y no define ningún mecanismo para describir la estructura o la
apariencia del texto en un documento; estos asuntos están especificados por otros
lenguajes como los lenguajes de etiquetas.
Historia
DIN publicó una versión de ASCII como el estándar DIN 66003 en 1974.
El código ASCII también está incluido en Unicode, constituyendo los primeros 128
caracteres (o los 'más bajos').
Muchos de los caracteres de control ASCII servían para marcar paquetes de datos, o
para controlar protocolos de transmisión de datos (por ejemplo ENQuiry, con el
significado: ¿hay alguna estación por ahí?, ACKnowledge: recibido o ", Start Of
Header: inicio de cabecera, Start of TeXt: inicio de texto, End of TeXt: final de texto,
etc.). ESCape y SUBstitute permitían a un protocolo de comunicaciones, por ejemplo,
marcar datos binarios para que contuviesen códigos con el mismo código que el carácter
de protocolo, y que el receptor pudiese interpretarlos como datos en lugar de como
caracteres propios del protocolo. Los diseñadores del código ASCII idearon los
caracteres de separación para su uso en sistemas de cintas magnéticas.
Los primeros usuarios de ASCII adoptaron algunos de los códigos de control para
representar "metainformación" como final-de-línea, principio/final de un elemento de
datos, etc. Estas asignaciones a menudo entraban en conflicto, así que parte del esfuerzo
de convertir datos de un formato a otro comporta hacer las conversiones correctas de
metainformación. Por ejemplo, el carácter que representa el final-de-línea en ficheros de
texto varía con el sistema operativo. Cuando se copian archivos de un sistema a otro, el
sistema de conversión debe reconocer estos caracteres como marcas de final-de-línea y
actuar en consecuencia.
Actualmente los usuarios de ASCII usan menos los caracteres de control, (con algunas
excepciones como "retorno de carro" o "nueva línea"). Los lenguajes modernos de
etiquetas, los protocolos modernos de comunicación, el paso de dispositivos basados en
texto a basados en gráficos, el declive de las teleimpresoras, las tarjetas perforadas y los
papeles continuos han dejado obsoleta la mayoría de caracteres de control.
Decima
Binario l Hex Abreviatura Repr AT Nombre/Significado
Control de dispositivo 1
0001 0001 17 11 DC1 ␑ ^Q
(XON)
Control de dispositivo 3
0001 0011 19 13 DC3 ␓ ^S
(XOFF)
^[ o
0001 1011 27 1B ESC ␛ Escape
ESC
^? o
0111 1111 127 7F DEL ␡ Suprimir
DEL
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}|~
0010 3 0100 6 1
24 $ 44 D 0110
0100 6 0100 8 0 64 d
0100
0
0010 3 0100 6
25 % 45 E
0101 7 0101 9 1
0110
0 65 e
0101
0010 3 0100 7 1
26 & 46 F
0110 8 0110 0
1
0110
0010 3 0100 7 0 66 f
27 ' 47 G 0110
0111 9 0111 1 2
0010 4 0100 7 1
28 ( 48 H 0110
1000 0 1000 2 0 67 g
0111
3
0010 4 0100 7
29 ) 49 I
1001 1 1001 3 1
0110
0 68 h
1000
0010 4 2 0100 7 4 4
* J
1010 2 A 1010 4 A
1
0110
0010 4 2 0100 7 4 0 69 i
+ K 1001
1011 3 B 1011 5 B 5
0010 4 2 0100 7 4 1
, L 0110 6
1100 4 C 1100 6 C 0 j
1010 A
6
0010 4 2 0100 7 4
- M
1101 5 D 1101 7 D 1
0110 6
0 k
0010 4 2 0100 7 4 1011 B
. N 7
1110 6 E 1110 8 E
0110 1 6 l
1100 0 C
0010 4 2 0100 7 4 8
/ O
1111 7 F 1111 9 F
1
0110 6
0011 4 0101 8 0 m
30 0 50 P 1101 D
0000 8 0000 0 9
0011 4 0101 8 1
31 1 51 Q 0110 6
0001 9 0001 1 1 n
1110 E
0
0011 5 0101 8
32 2 52 R
0010 0 0010 2 1
0110 6
1 o
1111 F
0011 5 0101 8 1
33 3 53 S
0011 1 0011 3
1
0111
0011 5 0101 8 1 70 p
34 4 54 T 0000
0100 2 0100 4 2
0011 5 0101 8 1
35 5 55 U 0111
0101 3 0101 5 1 71 q
0001
3
0011 5 0101 8
36 6 56 V
0110 4 0110 6 1
0111
1 72 r
0010
0011 5 0101 8 4
37 7 57 W
0111 5 0111 7
1
0111
0011 5 0101 8 1 73 s
38 8 58 X 0011
1000 6 1000 8 5
0011 5 0101 8 1
39 9 59 Y 0111
1001 7 1001 9 1 74 t
0100
6
0011 5 3 0101 9 5
: Z
1010 8 A 1010 0 A 1
0111
1 75 u
0011 5 3 0101 9 5 0101
; [ 7
1011 9 B 1011 1 B
1
0011 6 3 0101 9 5 0111
< \ 1 76 v
1100 0 C 1100 2 C 0110
8
0111 1 77 w
0111 1
0011 6 3 0101 9 5 9
= ]
1101 1 D 1101 3 D
1
0111
0011 6 3 0101 9 5 2 78 x
> ^ 1000
1110 2 E 1110 4 E 0
0011 6 3 0101 9 5 1
? _ 0111
1111 3 F 1111 5 F 2 79 y
1001
1
1
0111 7
2 z
1010 A
2
1
0111 7
2 {
1011 B
3
1
0111 7
2 |
1100 C
4
1
0111 7
2 }
1101 D
5
1
0111 7
2 ~
1110 E
6
Rasgos estructurales
Los dígitos del 0 al 9 se representan con sus valores prefijados con el valor 0011
en binario (esto significa que la conversión BCD-ASCII es una simple cuestión
de tomar cada unidad bcd y prefijarla con 0011).
Las cadenas de bits de las letras minúsculas y mayúsculas solo difieren en un bit,
simplificando de esta forma la conversión de uno a otro grupo.
ASCII
us
ISO646-US
ISO_646.irv:1991
iso-ir-6
IBM367
cp367
csASCII