Вы находитесь на странице: 1из 5

LABORATORIO DE SISTEMAS MICROPROCESADOS

ESCUELA POLITÉCNICA NACIONAL


Campus Politécnico "J. Rubén Orellana R."
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Carrera de Ingeniería Electrónica y Control
Carrera de Ingeniería Electrónica y Telecomunicaciones
Carrera de Ingeniería Electrónica y Redes de Información
Carrera de Ingeniería Eléctrica
LABORATORIO DE SISTEMAS MICROPROCESADOS

PRÁCTICA Nº2
1. TEMA :
ALGORITMOS ADICIONALES

2. OBJETIVO:

Revisar algunos algoritmos que se emplearan en prácticas futuras.

3. INFORMACIÓN:

3.1 OPERACIONES DE 16 BITS

Dado que el microprocesador es de 8 bits, las operaciones como suma y resta de


16 o más bits deben realizarse de 8 bits en 8 bits tomando en consideración el carry que
puede generarse (o el Borrow). Revisar la nota de aplicación AVR202.

3.2 ALGORITMO DE MULTIPLICACIÓN EN 16 BITS

Se puede usar el algoritmo de multiplicación aprendido en la práctica No. 1, sin embargo


el microcontrolador a usar dispone de un multiplicador de hardware que puede
multiplicar dos números de 8 bits cada uno con o sin signo. Es posible usar este
multiplicador para realizar multiplicaciones de 16x16 según el siguiente esquema (Revisar
la nota de aplicación AVR201):

Dirección: Ladrón de Guevara E11-253 Teléfono: (02) 2976300 Ext.2209 Correo: coord.electronica.control@epn.edu.ec
Quito - Ecuador
LABORATORIO DE SISTEMAS MICROPROCESADOS

Fig. 1 Algoritmo de multiplicación

3.3 ALGORITMO DE DIVISIÓN EN 16 BITS

El microcontrolador a usar no dispone de instrucciones de división, por lo que se debe usar


el algoritmo de desplazamientos y restas aprendido en la Práctica 1.

3.4 ALGORITMO DE DIVISIÓN DE UN NÚMERO MENOR PARA UN NÚMERO MAYOR

Al realizar esta operación, el cociente resulta fraccionario, pero el algoritmo aprendido en


la Práctica 1 puede ser utilizado para realizar esta operación con modificaciones menores.

El algoritmo de la división explicado en la Práctica 1 iniciaba con 8 ceros en la


parte izquierda y a continuación los 8 bits del dividendo en la parte derecha, luego se
realizaba el proceso de 8 desplazamientos a la izquierda con sus respectivas restas,
finalmente los 8 bits más significativos (los de la izquierda) del resultado corresponden al
residuo y los 8 bits menos significativos (los de la derecha) corresponden al cociente. Este
algoritmo es válido para dividir un número menor entre uno mayor con las siguientes
modificaciones:

Iniciar con los 8 bits del dividendo en la parte izquierda y colocar los 8 ceros en
la parte derecha, a continuación realizar exactamente el mismo proceso de 8
desplazamientos y restas; finalmente los 8 bits más significativas del resultado
corresponden al residuo y los 8 bits menos significativos corresponden al cociente. Pero
el cociente debe ser interpretado de diferente manera: Asuma que el punto decimal
está antes del bit más significativo, es decir el bit más significativo tiene un valor de 2-1, el
siguiente 2-2, y así sucesivamente.

Dirección: Ladrón de Guevara E11-253 Teléfono: (02) 2976300 Ext.2209 Correo: coord.electronica.control@epn.edu.ec
Quito - Ecuador
LABORATORIO DE SISTEMAS MICROPROCESADOS

Ejemplo con 4 bits.

2/7
DIVIDENDO 2: 0 0 1 0 DIVIDENDO
DIVISOR 7: 0 1 1 1 0 0 1 0 0 0 0 0

COMPLEMENTO A 2 7*: 1 0 0 1 0 1 0 0 0 0 0 0 1
1 0 0 1
CARRY 0 1 1 0 1

1 0 0 0 0 0 0 0 2
1 0 0 1
CARRY 1 0 0 0 1 0 0 0 1

0 0 1 0 0 0 1 0 3
1 0 0 1

CARRY 0 1 0 1 1

0 1 0 0 0 1 0 0 4
1 0 0 1
CARRY 0 1 1 0 1

RESIDUO COCIENTE
0 1 0 0 0 1 0 0
2-1 2-2 2-3 2-4 2-1 2-2 2-3 2-4

0.25 0.25

3.5 REPRESENTACIÓN DE NÚMEROS FRACCIONARIOS

La representación de números fraccionarios en el microcontrolador a usar, no está


estandarizada, pues su Unidad Aritmética y Lógica trabaja con enteros. Hay algunas
maneras usuales de hacerlo, como por ejemplo:

 Llevar por separado (en registros independientes) la parte entera y la parte


fraccionaria, que sería útil si se usa el algoritmo de la división explicado en el último
párrafo.

 La forma estandarizada que usan muchos de los lenguajes (Basic, C, etc.) y con
la que trabajan las unidades de punto flotante (FPU) de muchos microprocesadores de
uso general (Standard IEEE 754). Se asignan espacios para el signo, el exponente y la
mantisa (cada uno por separado) en una secuencia de bits. Para realizar operaciones
usando esta representación se requiere de un conjunto bastante complejo de
algoritmos.

Dirección: Ladrón de Guevara E11-253 Teléfono: (02) 2976300 Ext.2209 Correo: coord.electronica.control@epn.edu.ec
Quito - Ecuador
LABORATORIO DE SISTEMAS MICROPROCESADOS

3.6 REPRESENTACIÓN DE NÚMEROS EN BCD

Las personas están familiarizadas con el sistema de numeración en base 10, al contrario
del microcontrolador que trabaja en binario. Para mostrar números en base 10 en displays
de 7 segmentos es necesaria una rutina en el microprocesador que convierta de binario a
BCD y luego de BCD a 7 segmentos.

Para transformar números enteros binarios a BCD se puede usar el algoritmo de divisiones
sucesivas para 10, y para los números fraccionarios binarios a BCD por el método de
multiplicaciones sucesivas por 10. Este método se puede aplicar si el microprocesador
dispone de la división entre sus instrucciones( que no es el caso del micrcontrolador que
usaremos).

Otro método consiste en restas sucesivas de múltiplos de 10, por ejemplo se resta
sucesivamente 1000 del número en binario y se lleva la cuenta de cuántas veces se lo
puede hacer antes de que me dé un valor negativo, luego se procede a restar 100
sucesivamente, luego 10, etc. Sin embargo este método tiene el problema que su tiempo
de ejecución es variable y depende del número a convertir. Este método es simple y puede
ser usado si no importa el tiempo variable de ejecución.

Hay una variación del algoritmo de dividir para 10, y s encuentra en la nota de aplicación
AVR204, basado en sumas y desplazamientos.

4. TRABAJO PREPARATORIO

Si bien esta es una sesión de trabajo tutorial, el estudiante debe traer preparados por escrito (A
MANO) lo que se pide en el párrafo siguiente según el día de la práctica.

 Realizar dos ejemplos de multiplicación con números de 16 bits, usando el algoritmo de la


Fig. 1 empleando notación hexadecimal. Comprobar sus resultados.

 Realizar la siguiente división (8 bits), usando el algoritmo de la Práctica 1 con los ajustes
mencionados en esta hoja guía. Comprobar sus resultados.

Lunes: 28/83
Miércoles: 44/101
Jueves: 47/60
Viernes: 85/ 92

 Consultar el formato de representación en punto flotante (Standard IEEE 754) para 32, 64 y 80
bits. Representar en formato IEEE752 de 32 bits los siguientes números , mostrando sus
cálculos:

Lunes 432,75

Dirección: Ladrón de Guevara E11-253 Teléfono: (02) 2976300 Ext.2209 Correo: coord.electronica.control@epn.edu.ec
Quito - Ecuador
LABORATORIO DE SISTEMAS MICROPROCESADOS

Miércoles 321,125
Jueves 236,625
Viernes 131,875

 Convertir los siguientes números que están en formato IEEE752 de 32 bits a un número en
base 10, mostrando sus cálculos (los números se han dividido en grupos de 4 bits solamente
para que sea más fácil su lectura):

Lunes 0100_0010_1111_1111_0100_0000_0000_0000
Miércoles 1011_1111_0010_0000_0000_0000_0000_0000
Jueves 0011_1111_1111_1000_0000_0000_0000_0000
Viernes 1100_0011_1111_1000_1111_0000_0000_0000

 Aplicar el método de conversión de binario a BCD, mediante el algoritmo basado en


desplazamientos de aplicación AVR204, para los siguientes números en binario (mostrar todo
el proceso)

Lunes 10111101
Miércoles 10010101
Jueves 10111011
Viernes 11110101

5. EQUIPO Y MATERIALES

Material de escritorio.

6. PROCEDIMIENTO

Esta práctica es una sesión tutorial sobre los temas mencionados.

7. INFORME:

El instructor indicará al final de la sesión los temas que serán incluidos en el informe.

8. REFERENCIAS:

Notas de aplicación de ATMEL AVR200, AVR201, AVR202, AVR204

Responsables.

P. Chico

Dirección: Ladrón de Guevara E11-253 Teléfono: (02) 2976300 Ext.2209 Correo: coord.electronica.control@epn.edu.ec
Quito - Ecuador

Вам также может понравиться