PROBLEMAS DE MICROPROCESADORES

Anuncio
Boletín de problemas del tema 4
Problema 1.- Determine qué instrucciones permiten leer y escribir datos en la zona de registros de
entrada/salida.
Problema 2.- Se desea diseñar una subrutina que permita sumar 20 bytes (positivos) almacenados a
partir de la dirección $60 de la SRAM y almacenar el resultado en el registro R0( supóngase que no
existe desbordamiento).
Problema 3.- Repita el apartado anterior para el caso de que exista desbordamiento. (El resultado se
almacena en las dirección $80 y $81).
Problema 4.- Se desea diseñar un programa para el microcontrolador AT90S2313 que permita
multiplicar dos números almacenados en los registros r1 y r2 y almacenar el resultado correcto a
partir de la dirección de memoria $60 de la SRAM. Se requiere un diagrama de flujo y la definición
de las variables usadas.
Problema 5.- A partir de la dirección $60 se han almacenado, consecutivamente, 16 bytes de datos.
Se pide la realización de un programa que obtenga el número de bits a 1 lógico que se encuentran en
dichos 16 bytes, y lo almacene en el registro R16. Como paso previo a la realización del programa,
se debe realizar una subrutina que permita obtener el número de bits a 1 existentes en el registro R1,
y almacenar el resultado en el registro R2. El programa principal debe usar, obligatoriamente, dicha
subrutina.
Problema 6.- Configure el AT90S2313 para que genere interrupciones cada 5ms aproximadamente,
sabiendo que este microcontrolador dispone de un oscilador de cuarzo de 1Mhz.
Problema 7.- El sistema digital de la figura está construido con un microcontrolador AT90S2313,
dos registros de 8 bits (74573) y 2 visualizadores de siete segmentos. Se desea obtener un conjunto
de subrutinas que permitan la representación de cualquier número entre 0 y 99 en los displays de 7
segmentos. Además se pide definir las interconexiones entre el microcontrolador y los latches y
entre estos últimos y los displays de siete segmentos.
a
f
LATCH
[8]
74573
b
g
e
AT902313
c
d
h
a
LATCH
[8]
74573
f
b
g
e
c
d
Microprocesadores 19/12/06
h
1
Boletín de problemas del tema 4
Problema 8.- Repita el ejercicio anterior para las siguiente estructura en la que se ha eliminado los
latches. Además la alimentación de los displays dispone de unos transistores conectados, a través de
resistencias, con salidas del microcontrolador. Esto implica que cuando la salida del
microcontrolador está a 1, el transistor se activa permitiendo el flujo de corriente hacia el display
correspondiente, mientras que si la salida está a 0 el transistor se desactiva provocando el corte de
suministro al display, por lo que sus diodos se apagan.
VCC
VCC
a
a
f
1MHZ
b
f
g
AT902313
b
g
e
e
c
d
h
c
d
h
Problema 9.- Se desea diseñar un programa para el microcontrolador AT90S2313 que permita el
contaje del número de veces que se pulsa una tecla conectada al puerto PB0 (tecla pulsada = 0, tecla
sin pulsar =1), y muestre el valor de cuenta en un display de siete segmentos, tal como muestra la
siguiente figura. (Se entiende que sólo es posible mostrar del 0 al 9 y por tanto se supone que no se
generan más de esas pulsaciones). Se requiere el diagrama de flujo del programa, así como la
definición de las posiciones ocupadas por cada variable.
5v
PB0
1MHZ
a
AT902313
f
b
g
e
c
d
h
Problema 10.- Se desea diseñar un sistema que permita regular un cruce mediante semáforos tal y
como se representa en la siguiente figura
Microprocesadores 19/12/06
2
Boletín de problemas del tema 4
3
2
4
1
Los semáforos constan de luces de aviso a peatones, por lo que cada uno de ellos consta de 5 luces
diferentes. El semáforo 1 y 3 se comportan de idéntica forma, y lo mismo ocurre con el 2 y 4. Es
evidente que cuando los semáforos 1 y 3 permiten el tráfico por sus correspondientes vías, los 2 y 4
deben prohibirlo y a la inversa. El modo de funcionamiento de cada semáforo debe ser:
•
•
•
•
•
La luz roja se mantiene encendida durante 30 segundos
La luz verde durante 25 segundos
La luz ámbar durante 6 segundos
Cuando la luz verde se encuentra encendida, la bombilla roja que prohibe el paso de peatones
debe estar activada.
Cuando la luz roja se encuentra encendida, la bombilla verde del paso de peatones debe estar
activada, salvo en los 10 últimos segundos en el que esta debe parpadear con un periodo de 1
segundo.
Problema 11.- Se desea comunicar un sistema basado en el AT90S2313 con un PC a través de un
puerto serie usando un enlace full-dúplex a 9600bps, 8 bits de datos, 1 bit de stop y sin paridad.
Diseñe la rutina que permita configurar la UART para tal efecto suponiendo que la frecuencia de
reloj es de 4Mhz.
Problema 12.- Diseñe una rutina que permita transmitir un conjunto de N bytes almacenados a
partir de la dirección Buffer_tx de la memoria de datos.
Problema 13.- Repita el problema anterior siguiendo una configuración por interrupciones.
Problema 14.- Diseñe una subrutina que permita almacenar, a partir de la dirección de memoria
Buffer_rx, el conjunto de datos que se han recibido por la UART. El tamaño de la zona reservada a
almacenar los datos recibidos es de N bytes. La subrutina, irá depositando los datos recibidos en
posiciones consecutivas hasta el tope. Una vez alcanzado éste, se proseguirá almacenando datos a
partir de la dirección inicial. Supóngase que la rutina no debe quedarse esperando la recepción de un
dato, de forma que, cada vez que se invoque, si existe un dato éste se leerá y almacenará,
devolviendo el control al programa principal y, si no existe dato , simplemente, la rutina devuelve el
control al programa principal
Microprocesadores 19/12/06
3
Boletín de problemas del tema 4
Problema 15.- Repita el problema anterior siguiendo una configuración por interrupciones.
Problema 16.- Se desea diseñar una subrutina que permita configura la UART a 2400bps y en canal
full-dúplex. Se deben habilitar la generación de interrupciones por recepción y por búffer de
transmisión vacío. ¿La SDU podría contener un bit de paridad? En caso afirmativo haga una función
que permita calcularlo e introducirlo en la SDU y otra que se invoque cada vez que existe un dato
nuevo y permita determinar si hay, o no, error de paridad. ¿La SDU podría contener 2 bits de stop?.
En caso afirmativo, indique cómo. ¿Es posible que la SDU contenga un número de bits menor a 8?.
Supóngase que la frecuencia de reloj del Microcontrolador es de 4Mhz.
Problema 17.- Diseñe un programa que permita configurar al microcontrolador como un repetidor.
En concreto, éste recibirá, por la línea de recepción de la UART, un conjunto de caracteres que irá
almacenando en una cola. Cuando existan 10 elementos almacenados, estos se transferirán por la
línea de transmisión del puerto serie y así, sucesivamente. La comunicación serie trabaja a 2400bps
y el reloj del microcontrolador está a 4Mhz.
a) Supóngase que la recepción y transmisión se realiza sin el uso de interrupciones.
b) Supóngase ahora que, ambas, deben ser gestionadas por interrupciones.
Microprocesadores 19/12/06
4
Descargar