Sistemas Electrónicos

Anuncio
ETSIT
Escuela Técnica Superior de Ingenieros de Telecomunicación
Sistemas Electrónicos
Tercer Curso E.T.S.I.T.
Convocatoria ESPECIAL. Diciembre 2002
Datos Personales
Nombre:
Primer Apellido:
Segundo Apellido:
DNI y firma:
Calificación
Pregunta Puntuación Pregunta Puntuación
Nº. 1
Nº. 6
Nº. 2
Nº. 7
Nº. 3
Nº. 8
Nº. 4
Nº. 9
Nº. 5
Nº. 10
Revisado
Calificación Final:
Las Palmas de Gran Canaria a 2 de Diciembre de 2002
Convocatoria Especial.
Sistemas Electrónicos
Diciembre 2002
Pregunta 1. (1.5 Ptos.)
1.
2.
3.
4.
5.
Responder brevemente a las siguientes cuestiones:
0.3. Uso de la señal STRB/R/W* en el 68HC11 en cada uno de los modos de
funcinamiento. Indicar si es de entrada o de salida.
0.3. Dibujar el protocolo de comunicación por Simple Strobe de salida. Incluir en el
cronograma la señal de reloj interna del 68HC11.
0.3. Si se está ejecutando una rutina de servicio para una interrupción XIRQ, ¿se podría de
alguna manera atender a una interrupción del tipo I? Razonar brevemente la respuesta.
0.3. Podría usarse el Pulse Accumulator para generar una interrupción en tiempo real? En
caso afirmativo indicar cual sería la programación del registro de control del Pulse
Accumulator así como cada cuanto tiempo se produciría la interrupción.
0.3. Explicar brevemente los bits NF y FE en el registro SCSR. ¿Cuándo se producen?
Pregunta 2. (1.5 Ptos.)
Se dispone de la siguiente declaración de variables:
LONG
EQU
XX
; XX menor o igual a 128
DAT01
RMB
LONG
; Dato1 en BCD de LONG bytes
DAT02
RMB
LONG
; Dato2 en BCD de LONG bytes
RES
RMB
LONG
; Definición de la lista
Dar el código en ensamblador del 68HC11 para realizar su suma y depositarla en una zona
de memoria de LONG bytes etiquetada como RES (utilizar un bucle). No se permite la
definición ni reserva de más posiciones de memoria que las que se dan, así como el uso de la
pila.
Pregunta 3. (2.7 Ptos.)
Se pretende diseñar un sistema para medir la temperatura de un objeto utilizando un
sensor digital de temperaturas que opera en los rangos de 25 (valor $00 convertido) a 75 (valor
$FF convertido) grados. El sensor digital dispone de un interfaz serie asíncrono (9600 baudios,
8 bits de datos, 1 bit de STOP)con dos señales (TX y RX). El sensor funcina de la siguiente
manera:
- Al recibir el comando $A0 el sensor convierte la temperatura ambiente. Una vez
convertida la temperatura, el sensor envía por el puerto serie el comando $D0 y el valor
en binario correspondiente a la temperatura convertida. Al comando $D0 siempre le
sigue el valor de la temperatura convertida.
- En el momento en que la temperatura sea inferior a 25 grados, el sensor enviará de
forma continua (5ms) el comando $0F. Si la temperatura es superior a 75 grados,
enviará de forma continua (5ms) el comando $F0. En ambos casos, el sensor no
responderá al comando $A0.
Se pretende visualizar a través de 2 displays de 7 segmentos la temperatura ambiente de
una habitación, muestreándola cada segundo aproximadamente. En caso de que la
temperatura esté fuera de rango, se debe indicar el valor 25 ó 75 con el punto decimal del
display menos significativo encendido.
1. Esquema detallado del conexionado del sistema.
2. Programa de control del sistema.
Para la implementación del sistema, se dispone de:
MC68HC711E2:
256 bytes de memoria RAM a partir de la dirección $0000
2 K de memoria EPROM mapeados al final del mapa de memoria.
74LS47:
Decodificador BCD a 7 segmentos. Entradas: A,B,C,D
Salidas: a,b,c,d,e,f,g
2 Displays de 7 segmentos
Pregunta 4. (1.8 Ptos.)
Responder brevemente a las siguientes cuestiones acerca del MC68000:
1. 0.3. Suponer el siguiente modo de direccionamiento en el MC68000: d8( (An),Ri.X). Indicar
cual sería la dirección efectiva de este modo de direccionamiento. En el ejemplo:
MOVE.W -4((A2),D4.W),D3 y suponiendo A2=$00003456, D3=$01234567 y
1
Convocatoria Especial.
2.
3.
4.
5.
6.
Sistemas Electrónicos
Diciembre 2002
D4=$FFFF1200, indicar cual sería el valor de D3 (suponer e indicar los contenidos de las
posiciones de memoria que se utilicen).
0.3. Dar el formato de la instrucción CMP en caso de tener la siguiente sintaxis:
CMP.t (An)+,<adea>. Indicar qué campos habría que codificar y con qué tamaño. El código
de operación de esta instrucción consta de 4 bits (los más significativos). ¿Necesitaría
palabras de extensión? En caso afirmativo indicar en qué casos y cuantas.
0.3. Escribir una macro denominada CLEAR en la que se ensamble la instrucción CLR.L
D0 en caso en que el primer y segundo parámetro sean dos cadenas de caracteres
iguales, en caso contrario se debe ensamblar la instrucción CLR.W D0.
0.3. ¿Qué realiza la instrucción TAS?
0.3. Modificar el siguiente código para que su ejecución sea más rápida:
MOVE
#65.000,D2
L1
MOVE
D0,$56(A0,D1.W)
DBF
D2,L1
0.3. Diferencias en el código objeto de un programa al ser definido utilizando la directiva de
origen y la directiva de comienzo de sección (directiva SECTION).
Pregunta 5. (2.0 Ptos.)
Escribir un programa en ensamblador del 68000 en el que se defina una base de datos,
etiquetada como LISTAS, de 100 elementos. Cada elemento estará formado por cuatro
campos, definidos con el siguiente orden:
- Nombre:
20 caracteres ASCII
- Teléfono: 8 dígitos en BCD empaquetado
- Calle:
20 caracteres ASCII
- DNI:
8 dígitos BCD empaquetados
El programa principal dispondrá además de dos elementos definidos en memoria y
etiquetados como DNI y NOMBRE, Escribir una rutina en ensamblador del 68000, denominada
SEARCHDNI, que busque el DNI contenido en DNI en la lista y deposite el nombre
correspondiente en la zona etiquetada como NOMBRE. En caso de no encontrarse el DNI en la
lista, habrá de almacenar el valor $FF en toda la longitud del nombre.
Se pide:
1. Dar el tamaño de cada elemento de la tabla.
2. Escribir la rutina para realizar la búsqueda, así como escribir el código en ensamblador
correspondiente al programa principal. El paso de parámetros a la subrutina se realizará
por la pila.
3. Indicar qué símbolos aparecerían en la tabla de símbolos en el ensamblado del programa.
Pregunta 6. (0.5 Ptos.)
Se tiene la siguiente declaración de variables en un programa:
VALOR0
EQU
$2345
LONG0
EQU
XX
; Máximo valor de LONG0 es $FFFF
LISTA0
DS.W
LONG0
VALOR1
EQU
$123A
LONG1
EQU
XX
; Máximo valor de LONG1 es $FFFF
LISTA1
DS.W
LONG1
Se pide:
1. Escribir una macro, denominada FILL, que rellene una lista de longitud variable y definida
en memoria con un valor determinado.
2. Escribir las llamadas a la macro para rellenar las listas 0 y 1 con los valores VALOR0 y
VALOR1 respectivamente. Las llamadas deben contener al menos el nombre de la lista y el
nombre del valor con que se va a rellenar.
2
Convocatoria Especial.
Sistemas Electrónicos
Anexo
Esquema para la realización del sistema de medición de temperaturas.
3
Diciembre 2002
Descargar