Sunteți pe pagina 1din 4

Universidad del Quindío

Facultad de Ciencias Básicas y Tecnologías


Programa Tecnología en Instrumentación Electrónica
Microcontroladores
Taller 1 – Sistemas de Numeración

1. Convertir a decimal los siguientes números:

a. 1011
𝑏. 0𝑥7𝐹
c. 0𝑥10
f. 135𝐴ℎ

2. Convertir a binario y a hexadecimal los siguientes números en base 10:

a. 36
b. 127
c. 1550

3. Convertir a hexadecimal el siguiente número binario: 11100011110,0011001

4. Realizar las siguientes operaciones:

a. 210 & 87
b. 44 ^20
c. ~(11001000)
d. 25 ≫ 3
e. 12 ≪ 4

5. Expresar en una sentencia de programación las siguientes operaciones: La línea de código debe
ser lo más pequeña posible. Recuerde usar operaciones de corrimiento así como operaciones
de enmascaramiento y/o concatenación.

a. 11100011 → 11000001 = 𝐴
b. 1011101 → 0111110 = 𝐵
c. 00001010 → 10011010 = 𝐶

6. Exprese en formato de coma flotante IEEE de 32 bits los siguientes números:

a. −5.375
b. 1/16
7. Exprese los siguientes números en formato IEEE de 32 bits en su equivalente en número real:

a. 0𝑥3𝐷340000
b. 0𝑥𝐶0868000

8. Sumar los siguientes pares de números:

11011101 1110010
a. 1100011 b. 1101101

9. Restar los siguientes pares de números. Si el número da negativo verificarlo usando el


complemento a la base.

01010000
11000101

10. Codificar los siguientes datos en código hamming: 10110 y 110010011110


11. Verificar si el dato recibido presenta error. Si es así mencione cual es el bit erróneo. El dato
recibido es: 1010001.

12. Agregar al siguiente dato mensaje: 10110111 su respetiva codificación CRC cuyo polinomio es:

𝐺 (𝑥 ) = 𝑥 5 + 𝑥 4 + 𝑥 1 + 1 Polinomio patrón

2𝑛 𝑀
Tenga en cuenta que: 𝑇 = donde T es la trama completa enviada, n cantidad de bits de
𝑃
comprobación, P patrón escogido de tamaño (n + 1) y M mensaje. Consultar como se codifica
un mensaje usando CRC.

13. Escriba la representación de cada variable en hexadecimal y binario. Si el valor no cabe en el


tipo de dato utilizado, mencionar cuál es el nuevo valor definido.

a. unsigned char num = 85;


b. int valor = -150;
c. char x = 250;

14. Escriba una función en lenguaje C que permita transformar un número entero en su equivalente
binario y hexadecimal según el siguiente prototipo:

void intToHex(unsigned int numEntero, char hex[]);

Probar el desarrollo de las funciones según el siguiente código de la función main

void main()
{
unsigned int numero;
char arrHex[5];

printf(“Ingrese el numero entero: ”);


scanf(“%d”, &numero);
intToHex(numero, arrHex); break;
printf(“El resultado es: %s”, arrHex);
getch();
}

15. Escriba una función que reciba un mensaje de máximo 16 bits, retorna el mensaje con la
codificación hamming. Utilice el siguiente prototipo:

void codificarHamming(char msg[], char msgHamming[]);

Realice un programa principal que muestre el desempeño de la función creada. Visualice el mensaje
solo y posterior el mensaje más la codificación.

16. Para ciertos procedimientos de comparación de patrones se desea verificar que tanto
se parece una secuencia de bits con otra, para lo cual se define una cantidad nominada la
“Distancia de Hamming" que consiste en un número que indica la cantidad de posiciones en las
cuales dos patrones de bits difieren. Por ejemplo, para 8 bits tenemos que los números
11011100 y 01011111 tienen una distancia de 3 (los bits 0, 1, y 7 son diferentes).
Escribir una función a la cual se le envían dos números de 8 bits y la función retorne la Distancia
de Hamming entre ellos.

El prototipo de la función es la siguiente:


int distanciaHamming(int x int y);

Implemente una función principal para verificar la función anterior.

17. Escriba una función principal que muestre en pantalla el valor del registro MCUCR cuando se
necesita configurar la interrupción 1 por flanco de bajada. No se preocupe en saber que es una
interrupción, solo debe centrar su atención en la modificación de los grupos de bits dentro de
una palabra de 8 bits.

don’t care y no se necesitan para la


activación de la interrupción externa
INT 1 INT 0

Utilice las siguientes tablas para configurar cada una de las interrupciones de forma individual
El prototipo de la función debe ser escrito de la siguiente forma:
void setInterrupt(unsigned char nInt, unsigned char type);

Para ello defina las constantes que corresponden al número de interrupción y el tipo de interrupción
basados en los siguientes nombres:
LOW
EXTINT0
nInt type CHANGE

FALLING
EXTINT1

RISING

Para verificar la función, escriba una función principal y agregue una función para visualizar el valor
binario que corresponde al valor final solicitado del registro MCUCR

S-ar putea să vă placă și