Está en la página 1de 2

Ejercicio práctico para el primer previo

La siguiente es la tabla de equivalencias entre los códigos de los primeros 16 números


enteros positivos y el cero (no negativos):
Decimal (D) Hexadecimal (H) Gray Binario 8421
0 0 0000 0000
1 1 0001 0001
2 2 0011 0010
3 3 0010 0011
4 4 0110 0100
5 5 0111 0101
6 6 0101 0110
7 7 0100 0111
8 8 1100 1000
9 9 1101 1001
10 A 1111 1010
11 B 1110 1011
12 C 1010 1100
13 D 1011 1101
14 E 1001 1110
15 F 1000 1111

Elabore un programa en ensamblador para el sistema de desarrollo del Laboratorio que lea
un número binario de ocho (8) bits en código gray de los dip switch de la tarjeta IO/01, lo
convierta en su equivalente binario 8421 y lo muestre en los ocho (8) leds de la tarjeta IO/01.
Para el diseño del programa tenga en cuenta las siguientes características:
1. Solo se permite la conversión de gray a binario para el primer número que capture el
programa desde los dip switch; ejemplo: leído el 1011, la salida deberá ser 1101.
2. A partir de éste número gray solo se permite cambiar un bit (un switch) del grupo de
dip switch, siempre y cuando,
3. El bit que cambia deberá representar en código gray el número adyacente ascendente
o descendente; es decir, si el número capturado en los dip switch representa el gray
del número 13D (1011), el cambio permitido solo será por la representación gray del
anterior 12D (1010), o por el posterior 14D (1001).
4. Una vez el programa detecte el cambio de un bit que cumpla la condición anterior,
ejecutará un algoritmo que convierta el nuevo número en su equivalente binario 8421;
para nuestro ejemplo 12D (1100) o 14D (1110).
5. Están restringidos los cambios en los dip switch que representen números adyacentes
no continuos de conteo; es decir, si el número capturado en los dip switch representa
el gray del número 13D (1011), no podrán existir a la entrada cambios como la
representación gray de los números 2D (0011) o el 10D (1111). Lo anterior puede
verse más fácilmente en el respectivo diagrama de Karnaugh

0 0 0 1 1 1 1 0
0 0 0 1 1 3 2 2 3
0 0000 0 0001 1 0011 3 0010 2
0 4 7 5 6 7 5 6 4
1 0100 4 0101 5 0111 7 0110 6
1 12 8 13 9 15 10 14 11
1 1100 C 1101 D 1111 F 1110 E
1 8 15 9 14 11 13 10 12
0 1000 8 1001 9 1011 B 1010 A

En donde cada cuadro del mapa contiene:

Número decimal Número decimal


equivalente del binario en equivalente del binario en
código 8421 código Gray
Código binario Representación
hexadecimal del binario

El color amarillo representa para el ejemplo el estado inicial de los dip switch; el color
verde, los estados siguientes adyacentes válidos y el color rojo los estados adyacentes
no válidos.
6. El programa deberá leer código binario Gray números desde 0D (00H) (00000000B)
hasta 255D (80H) (10000000B) y convertir en su equivalente binario 8421 desde 0D
(00H) (00000000B) hasta 255D (FFH) (11111111B) respectivamente.
7. Sugerencia: Verificar el bit válido que cambia y de acuerdo con el resultado anterior
actualizar el resultado posterior del código en binario 8421.
Ejercicio elaborado por el Profesor Sergio Iván Quintero Ayala para la Asignatura
Arquitectura de Computadores del Programa de Ingeniería Electrónica de la Universidad
Francisco de Paula Santander Cúcuta, NS

También podría gustarte