Práctica 1 - Universitat de les Illes Balears

Anuncio
Enginyeria Tècnica Industrial
ESCOLA POLITÈCNICA SUPERIOR
UNIVERSITAT DE LES ILLES BALEARS
Asignatura:
Impartición:
Curso:
Profesores:
(esp. Electrònica Industrial)
B.O.E. 6-Març-2001
4683-Informática Industrial (9 créditos)
2º Curso-Anual
2006-2007
Javier Antich, Francesc Bonin y Joan Pons
MANEJO DEL
MICROCONTROLADOR 8051
FECHA DE ENTREGA: 10 DE ENERO DE 2007
(2P) Problema 1.
•
Objetivos: Contar tiempo sin el uso de timers.
•
Descripción:
a) Haciendo uso de la instrucción DJNZ, programar un fragmento de código cuya duración
requiera exactamente 100ms. Asumir un clock de 12Mhz.
b) Repetir el apartado a) suponiendo ahora una duración de 1s para el código y una frecuencia
de oscilación de 9,6Mhz. Implementar, posteriormente, un reloj (HH:MM:SS) en base al
fragmento de código resultante realizando sobre este último las modificaciones que sean
necesarias. Asegurar que el reloj ni se adelanta ni se atrasa.
(1P) Problema 2.
•
Objetivos: Operar a nivel de bit.
•
Descripción: Implementar la función lógica f = a ⋅ (b + c) + d ⋅ a + (c ⋅ e) donde a, b, c, d
y e representan los cinco bits menos significativos del puerto P1 y f el bit más significativo.
(
)(
)
(1P) Problema 3.
•
Objetivos: Entender la importancia de la prioridad de una interrupción.
•
Descripción: Configurar los timers 0 y 1 en el mismo modo de funcionamiento. Seguidamente,
ponerlos en marcha con una diferencia temporal de 10 μs. Las rutinas de servicio de interrupción
vinculadas a esos timers deben tener una duración de 20 μs. Observar detenidamente lo que sucede
tras el overflow de cada timer. Repetir el proceso utilizando diferentes esquemas de prioridades
modificando adecuadamente el registro IP.
Manejo del Microcontrolador 8051
Informática Industrial
(1P) Problema 4.
•
Objetivos: Comprobar la manipulación implícita de la pila que hacen algunas instrucciones.
•
Descripción: ¿Cuál es la principal diferencia entre una instrucción JMP y una CALL? Escribir un
programa que use un JMP y compararlo con otro que use la llamada CALL. Para ello, observar
el contenido de la pila antes y después de su ejecución, determinando qué valores se han guardado en
ella en cada caso. Propón un programa que mediante el uso de una de estas instrucciones haga crecer
la pila hasta su límite sin sobrepasarlo.
(1P) Problema 5.
•
Objetivos: Manejar la pila.
•
Descripción: Se pretende que tras la ejecución de la rutina de servicio de la interrupción externa 0,
el programa regrese a un punto diferente del Main de aquél donde había sido interrumpido. Suponer
que esa dirección de retorno se encuentra almacenada en los registros R0 (LSBs) y R1 (MSBs).
Comprobar que tras esa operación, el µC sigue generando/atendiendo la mencionada interrupción.
Adicionalmente, verificar que el tamaño de la pila no aumenta con el número de interrupciones.
(1P) Problema 6.
•
Objetivos: Trabajar con números mayores de 8 bits en operaciones con y sin signo.
•
Descripción: Realizar la multiplicación de dos números de 8 bits sin signo utilizando tantos bits
como sean necesarios para almacenar el resultado de la operación. Suponer, posteriormente, que
dichos números pueden representar también valores negativos.
(1P) Problema 7.
•
Objetivos: Uso de las instrucciones de salto corto (SJMP) y absoluto (AJMP).
•
Descripción: Determinar la máxima distancia de salto (hacia mayores y menores posiciones de
memoria) de una instrucción SJMP. ¿Cualquier salto realizable mediante un SJMP puede llevarse
también a cabo con una instrucción AJMP? Razona la respuesta ayudándote de ejemplos.
(1P) Problema 8.
•
Objetivos: Salto condicional al bit.
•
Descripción: Realizar un programa que realice la rotación de un bit a uno en el puerto P2 hacia
la izquierda si el estado del pin P1.0 es 1, y realice la rotación del bit a uno hacia la derecha si
el pin P1.0 está a 0. Para ello, utilizar las instrucciones JB/JNB.
(1P) Problema 9.
•
Objetivos: Acceso a la memoria RAM externa.
•
Descripción: Se pretende guardar en 8 posiciones de memoria consecutivas de la memoria RAM
externa, empezando por la posición 0001h, el resultado de sumar los valores contenidos en todas
las posiciones de memoria anteriores (de la 0000h a la 000xh – 1). Establecer como valor de
la posición de memoria 0000h un 1.
2
Manejo del Microcontrolador 8051
Informática Industrial
NOTA IMPORTANTE
Cada alumno deberá entregar un informe en donde se explique la solución dada a cada uno de
los anteriores problemas, y se presenten los programas resultantes comentados así como varios
resultados de simulación obtenidos con la herramienta Pinnacle que demuestren la validez de
dichas soluciones.
En la primera página del informe deberá constar el nombre de la asignatura, el título de
la práctica, el curso académico, el nombre del autor del informe (en negrita) y, finalmente, el
nombre del otro miembro del grupo de prácticas (texto normal).
La nota final de la práctica se calculará de la siguiente manera:
25 % – Informe
75 % – Solución a los problemas
No se aceptará ninguna práctica después del plazo de entrega establecido!!!
3
Descargar