Laboratorio de microcomputadoras – 66.09

Anuncio
Laboratorio de microcomputadoras – 66.09
Guía 1: Familias Lógicas
1) Ejercicios del libro “Digital Design . Pinciples and Practices – Wakerly, John”
Problemas sugeridos:
3.1
3.67
3.11
3.91
3.23
3.94
3.25
3.26
3.36
3.53
3.56
2. Calcular los márgenes de ruido en 1 y en 0 para una línea del bus de address reforzada
con 74LS244 que debe manejar 2 cargas TTL y 10 cargas CMOS.
3. Dadas las hojas de datos de las familias TTL, TTL-LS y CMOS indicar los márgenes de
ruido
4. Defina esquemas de conexiones válidas entre las distintas familias.
5. Qué ocurre si se conecta la salida de una compuerta CMOS alimentada con 5 v a la
entrada de otra compuerta de la misma familia pero alimentada con 12v? Justifique.
6. Que ocurre si ahora se conectan al revés, es decir la salida de la CMOS @ 12 v a la
entrada de la CMOS @ 5 v. Justifique este caso también.
7. Definir claramente FAN IN, FAN OUT y Margen de Ruido
2) Calcular los valores máximos y mínimos para una R de pull up de un circuito que tiene 3
salidas OC correspondientes a 3 compuertas NAND TTL std conectadas a 1 entrada de una
compuerta NOR TTL-LS.
Laboratorio de microcomputadoras – 66.09
Guía 2: Representación de la información
Sistemas de numeración
Binario: base 2 ; Octal : base 8 ; Hexadecimal : base 16 ; Decimal : base 10.
Notación: (base, dígitos) ej : (2,8) base 2, con 8 dígitos
Ejercicios:
1) Pasar los siguientes números naturales expresados en sistema decimal a:
a) Binario: 2,8
b) octal : 8,4
c) hexadecimal : 16,3
22
1
15
96
125
5
85
300
2) Pasar los siguientes números expresados en sistema decimal a :
a) binario : 2,8
b) octal : 8,4
c) hexadecimal : 16,3
-24
1
15
-86
-125
5
85
-39
-129
3) Pasar a sistema decimal los siguientes números enteros
Base 2: 0010101010 1000111001011
10101111001
Base 8:
6542 6267 1524 6173 356
Base16: 123FE
F097 EE6AD
AA56532F
4) Cuál es el número máximo y mínimo representable en los siguientes sistemas de
numeración ?
Cuántos números se pueden representar ?
(2,6) con signo
(2,16) sin signo
(16,4) con signo
(8,4) sin signo
(2,k) sin signo/ con signo
(16,k) sin signo/con signo
Representación de caracteres
5) Dado el siguiente vuelco de memoria, decir que expresan en ASCII
4E554E434120454E54454E44454245204553544F
32303031
6) Expresar en ASCII el siguiente texto y decir cuantos bytes ocupan
La nueva materia Microprocesadores es muy interesante
QUIEN ESCONDIO LOS 23 DISCOS ?
7) Escribir los siguientes números en notación
Laboratorio de microcomputadoras – 66.09
a) Decimal empaquetado
b) Decimal desempaquetado
c) ASCII
- cuántos bytes ocupan ?
123
-245
87
98647
-87371
8) Cuántos números pueden almacenarse en 4 bytes si el formato es
a) BCD Empaquetado
b) BCD Desempaquetado
c) Binario sin signo
d) Binario con signo
Aritmética binaria :
9) Sumar los siguientes números expresados en sistema binario sin signo - Especificar
indicador de Carry ( Acarreo)
a) 110101010 + 001001001
b) 101010111 + 100000011
c) 101100011 + 111100001
d) 110001101 + 111100000
10) Repetir lo anterior pero para la resta - Especificar indicador de borrow. Hacer la resta,
no se pide sumar en C2.
11) Sumar los siguientes números pero considerándolos con signo en C2 .
a) 01100110 + 10011001
b) 11000101 + 00011110
c) 01101101 + 11001100
d) 11100011 + 10110001
12) Repetir lo anterior pero para la resta - Especificar indicador de borrow. Hacer la resta,
no se pide sumar en C2.
Laboratorio de microcomputadoras – 66.09
Guía 3: Memorias
1. Cómo puede utilizarse una memoria 2764 como memoria de 64Kb x 1. Cuál es su tiempo
de acceso?
2. Cómo puede utilizarse una memoria 2764 como memoria de 2Kb x 32? Cuál es su
tiempo de acceso?
3. Cómo puede utilizarse una memoria 27C64 como memoria de 64Kb x 1. Cuál es su
tiempo de acceso?
4. Cómo puede utilizarse una memoria 27C64 como memoria de 2Kb x 32? Cuál es su
tiempo de acceso?.
5.Cuántas líneas de direccionamiento se necesitan para acceder a una memoria de 8
Kbytes? Y para una de 8 Kbits? (bits de datos = 8)
6. Indicar en una tabla como la de la figura 1, las señales del C 8051 que se utilizan para
conectar un banco de memoria. Explicar su función y con qué terminal del chip de
memoria se conectan.
a)
b)
Para una EPROM
Para una RAM estática
Señal del C
Propósito
Pin del chip de memoria
Fig 1
7. Realizar el conexionado y generar los CS y las señales de OE para cubrir los siguientes
mapas de memoria sabiendo que pueden emplear tantos circuitos como considere
oportunos de los que aparecen en el siguiente esquema:
a) 64 Kb de ROM y 64 K de RAM externos sin imágenes
b) 32Kb de ROM externa en las direcciones más bajas del mapa de memoria de
programa y 32 Kb de RAM externa en las direcciones mas bajas de su mapa
empleando en ambos casos decodificación completa
c) Indicar si sería posible ampliar más de 64 Kb de memoria de programa. En
caso afirmativo justifique su respuesta.
Laboratorio de microcomputadoras – 66.09
Guía 4: Hardware básico y banco de memorias
A)
1. Hacer los siguientes ejercicios del capitulo 2 del libro de MacKenzie12 14 16 23 25
1 3 1 5 17 24 26
2. Cuál es duración de un ciclo de máquina cuando se opera un µC 8051 con un cristal de 4
MHz.
3. Cuántos cargas LS puede manejar el Port 0 del µP? Justificar su respuesta.
B) Banco de memorias
1) Un C 8051 tiene conectado un banco de memoria de las siguientes características
Tipo y tamaño
EPROM 8K x 8 bits
EPROM 8K x 8 bits
RAM estática 8K x 8 bits
Dirección de inicio
0000H
2000H
8000H
Representar el esquema eléctrico del circuito. Usar multiplexores.
2) Diseñar un banco de memoria RAM de 16 KB con memorias de 4 KB para el C 8051
que comience en la dirección $4000.
3) Diseñar un banco de memoria para el C 8051 que tenga las siguientes características:
Tipo
Tamaño
Inicio en
ROM
4 Kbytes
0000H
RAM
2 Kbytes
1000H
RAM
4 Kbytes
5000H
Laboratorio de microcomputadoras – 66.09
ROM
512 bytes
FC00h
a) Seleccionar un método para implementar la decodificación y desarrollarlo.
b) Dibujar el esquema eléctrico completo de la conexión al C.
5. Diseñar el banco de memoria de un uC 8051 de tal manera de conectar: 1 chip EPROM
de 16K x 8 bits (Mem. De Programa), 4 chips RAM de 1 K x 8 bits, 1 chip RAM 16K x 8
bits. 1 chip de I/O de 3 bytes x 8 bits Representar el esquema eléctrico del circuito. Usar
multiplexores. Indicar las direcciones de inicio y fin de cada chip
6. Implementar un banco de 2K de EPROM y cinco (si, digo: 5) chips de 16 K de RAM.
Indicar las direcciones de inicio y fin de cada chip.
5) Implementar un banco de memoria RAM 1 chip de 32K 3 chips de 1K 3 chips I/O de
128 Bytes usando multiplexores. Indicar las direcciones de inicio y fin de cada chip
C) Memoria serie
1)




el bus I2C
¿Cuantos dispositivos Slaves están permitidos, y Master?
¿Cuantas líneas de comunicaciones cuenta el bus I2C?
¿Como esta configurado el formato de recepción de datos?
¿Como esta configurado el formato de transferencia de datos
Realizar un diagrama en bloques para la recepción y transmisión de datos de acuerdo al
bus de I2C
2)
Diseñe un banco de memoria serie de 16Kbytes con circuitos integrados tipo 24FC32,
dibuje el circuito resultante
2-1) . Explique cómo se efectúa la lectura de una posición específica de memoria.
Laboratorio de microcomputadoras – 66.09
2) ¿Cuál es la capacidad máxima de un banco de memoria serie implementado con
integrados 24FC32?
Laboratorio de microcomputadoras – 66.09
Guía 5: Hardware básico
2. Cuál es duración de un ciclo de máquina cuando se opera un µC 8051 con un cristal de 4
MHz.
3. Cuántos cargas LS puede manejar el Port 0 del µP? Justificar su respuesta.
4. El terminal P2.2 esta conectado a la base de un transistor con Beta=100. Podrá el
transistor manejar un LED conectado a su colector? Y al emisor? Se quema el port?
Justifique su respuesta.
5. lndicar en una tabla como la de la figura 2, las señales del µC 8051 que se utilizan para
conectar un banco de memoria. Explicar su función y con qué terminal del chip de memoria
se conectan.
a) Para una EPROM (Memoria de programa)
b) Para una RAM estática
Señal del µC
Propósito
Pin del chip de Memoria
Figura 2
6. Qué señales del bus de control de µC 8051 se usan para seleccionar RAM y EPROM
(Memoria de programa) externas ? Cómo identifica el uC que se está accediendo a memoria
externa RAM o a Memoria de programa?
7. Implementar un banco de memoria con dos RAM estáticas de 32 Kb para que se puedan
conectar al uC, ocupando todo el espacio de memoria.
8. Implementar un banco de 4K con chips de RAM de I K y 8 K de ROM usando el µC
8051
9. Diseñar el banco de memoria de un uC 8051 de tal manera de conectar: 1 chip EPROM
de 16K x 8 bits (Mem. De Programa), 4 chips RAM de 1 K x 8 bits, 1 chip RAM 16K x 8
bits. 1 chip de I/O de 3 bytes x 8 bits Representar el esquema eléctrico del circuito. Usar
multiplexores. Indicar las direcciones de inicio y fin de cada chip
10. Implementar un banco de 2K de EPROM y cinco (si, digo: 5) chips de 16 K de RAM.
Indicar las direcciones de inicio y fin de cada chip.
11. Implementar un banco de memoria RAM 1 chip de 32K 3 chips de 1K 3 chips I/O de
128 Bytes usando multiplexores. Indicar las direcciones de inicio y fin de cada chip
12. Diseñar un banco de memoria RAM de 16 KB con memorias de 4 KB para el µC 8051
que comience en la dirección $4000 dado que las direcciones superiores ya están asignadas
a otras memorias.
Laboratorio de microcomputadoras – 66.09
Guía 5: Ensamblador básico.
1. Dar el código hexadecimal para las siguientes instrucciones, cant de ciclos, cant. de bytes
que ocupan. Explicar el propósito de cada byte. Si el cristal es de 4 Mhz, cuánto tarda en
ejecutarse cada instrucción?
INC
DEC
MOV
INC
A
R6
A,@R0
$E0
2. Modos de direccionamiento
2.1 Para las siguientes instrucciones dar el contenido del Acumulador después de
ejecutadas: (complete con aquellos datos que sean necesarios)
La posición de memoria interna DATA contiene el valor 127
MOV
MOV
MOV
MOV
MOV
MOV
A,#25
R0,#3
A,R0
A,@R0
A,DATA
DATA+5, DATA
2.2 Cuál es la diferencia entre MOV A, @R0 y MOV A,R0?
2.3 Para las instrucciones anteriores dar el código de operación de cada una. (Se puede usar
el ensamblador para calcularlo)
2.4 Cuál es la función de la instrucción MOVX y MOVC?
2.5 Asumiendo que el PSW contiene 0C0h y el acumulador tiene 50h, qué queda después
de ejecutar
RLC A?
2.6 Qué hace la siguiente instrucción: SETB 0D7h ?
3.lnstrucciones aritmético-lógicas
3.1 Escribir un programa que sume 2 números de 8 bits y coloque el resultado en lo
apuntado por el R1 del banco 3.
3.2 Escribir un programa que reste 2 números de 16 bits, considerándolos como enteros con
signo.
3.3. Escribir un programa que convierta un número decimal de 3 dígitos con signo
expresados en ASCII, a su valor binario
3.4. Id. pero el número está expresado en sistema hexadecimal.
3.5. Escribir un programa que cuente los caracteres que hay en una cadena de caracteres
terminada en \0.
4. Trabajo Práctico:
Laboratorio de microcomputadoras – 66.09
Ingresar los programas anteriores en la computadora, ensamblarlos y simularlos con el
AvSim. Consultar a los docentes
Guía 6: Assembler - Ejercicios de programación:
Nota: los programas deben estar comentados, completos, ensamblados y simulados.
1) Escribir un programa en assembler que convierta un número binario de 2 bytes a ASCII.
2) Escribir un programa que sume 2 números con signo de 16 bits.
3) Escribir un programa que multiplique 2 números sin signo de 8 bits.
4) Escribir el menor código para dividir por 2 un número de a) 16 bits y b) con signo 16
bits.
5) Escribir un programa en assembler que genere una onda cuadrada de 1 Mhz sobre el
terminal P0.2 con un cristal de 4 Mhz.
6) Escribir un programa que genere una onda de 4 usegs de pulso activo en alto cada 200
usegs. Asuma cristal de 12 Mhz.
7) Escribir un programa que implemente una compuerta AND, una NOR y una XOR de 3
entradas y 1 salida.
8) Para la rutina siguiente decir el contenido del acumulador depués de ejecutar la siguiente
rutina.
MOV A, #7Fh
MOV 50h, # 29h
MOV R0, # 50h
XCHD A, @R0
9) Dada una variable de tipo “string” definida en RAM externa (BUFFER) analizar cada
carácter ASCII, y convertir los caracteres en mayúscula a minúscula y viceversa.
10) Dado un array definido en memoria interna, de no más de 20 elementos de 8 bits,
reemplazar cada elemento por el correspondiente en una tabla definida en ROM externa.
Cada elemento del array es el puntero al elemento de la tabla. La tabla comienza en la
posición TABLA_EXT.
Laboratorio de microcomputadoras – 66.09
11) Un llave DIP (Switch) de 4 bits y uns display de 7 segmentos están conectados a un
8051 como se muestra en la figura. Escriba un programa en lenguaje ensamblador que lea
la llave y escriba en el display el número hexadecimal correspondiente.
12) Dadas tres variables a las que se accede vía el stack , se pide codificar una subrutina
que devuelva en una de las tres variables el valor en segundos del dato correspondiente a
horas y minutos almacenado en las otras dos.
11) Se tiene un botón NA (normalmente abierto) conectado al pin 2.2. Codificar un
programa en assembler que limpie de rebotes cuando se apreta el botón.
Guía 7 : Interrupciones, Interfaz serie y Timers.
Ejercicio 1.
Dados el estado de los registros IP e IE y la secuencia siguiente en que suceden las
interrupciones, ordenarlas en un cuadro según su prioridad.
a) IP = $0D (Interrupt Priority)
IE = $9F (Interrupt Enable)
Secuencia:
Simultáneamente : se recibe un dato por la puerta serie, el Timer 1 termina la cuenta y se
genera la interrupción Externa 1.
Mientras se está ejecutando la última rutina de interrupción correspondiente a los sucesos
anteriores, se produce la interrupción Externa 0, y 6 ciclos de máquina después se produce
Laboratorio de microcomputadoras – 66.09
la interrupción de Timer 0. Suponer que la ISR (interrupt service routine, rutina de
interrupción ) de la interrupción externa 0 dura mas de 6 ciclos de máquina. Cómo se van
atendiendo las interrupciones y cuáles van quedando pendientes según el esquema de
prioridad de procesador?
b) Idem inciso a) pero con IP = $16.
c)¿Que cambia si en vez de recibir un dato por el Serial se quiere Trasmitir ?
d) ¿Que pasa si IE = $1F ?con el viejo IP, ¿y si IE = $80 ? con el nuevo IP. Analice.
Ejercicio 2.
El siguiente programa genera una onda cuadrada en el pin P1.0.
Suponiendo un cristal de 12Mhz
responda :
a) ¿ De que frecuencia es la onda
cuadrada generada ?
b) ¿En que modo trabaja el Timer
8
0 ? Justifique por qué sostiene está
en ese modo y no en otro.
c) TF0 es el flag de Overflow del
Timer 0, y se pone en 1 cuando esto
ocurre, a la vez que se produce la interrupción. ¿Por qué no se pone en 0 por software, a
través de la instrucción CLR TF0, cuando se empieza a ejecutar la ISR ?
d) Analice el caso en el que se inviertan en orden las lineas 9 y 10. ¿Cambia algo ?.
=0000
0000 02 0030'
=000B
000B B2 90
000D 32
=0030
0030 75 89" 02
0033 75 8C" CE
0036 D2 8C
0038 75 A8" 82
003B 80 FE'
1
2
3
4
5
6
7
ORG 00H
LJMP MAIN
ORG 000BH
T0ISR CPL P1.0
RETI
ORG 0030H
MAIN MOV TMOD, #02H
MOV TH0, #-50
9
SETB TR0
10
MOV IE, #82H
11
SJMP $
12
END
Ejercicio 3.
A pesar de que el microcontrolador solo disponga de dos niveles de prioridad de
interrupción, puede simularse un tercer nivel, es decir interrupciones con prioridad 2. Para
lograrlo, las interrupciones que tendrán esta nueva prioridad deberán asignárseles prioridad
1 en el registro IP. Luego, las ISR de prioridad 1 que se suponen pueden ser interrumpidas
por las de prioridad 2 deberían tener el siguiente formato :
a) ¿Por qué se redefine IE ?
PUSH IE
b) ¿Para qué se pone la instrucción “CALL
MOV IE, #Mask
Label” ? ¿Qué efecto produce ?.
CALL Label
c) ¿Qué interrupciones se supone que deben estar
·······
habilitadas mientras ejecuta la ISR de prioridad 1 ?
······ (Ejecución de la
d) ¿ Por qué se coloca RET en lugar de RETI si de
ISR)
todas formas es una interrupción ?
·······
POP IE
Ejercicio 4.
RET
Supongamos que se está ejecutando una ISR mientras
LABEL
RETI
se produce una interrupción de igual prioridad. No se
ejecutará la nueva ISR hasta que por lo menos se haya ejecutado una instrucción del bloque
de programa interrumpido originariamente. Es decir, una vez que se ha ingresado a una
interrupción, no se puede volver a ingresar a menos que se haya ejecutado al menos una
instrucción del bloque interrumpido.
Laboratorio de microcomputadoras – 66.09
a) Teniendo en cuenta lo anterior analice la ISR de INT0 (Interrupción Externa 0),
suponiendo que termina con las siguientes instrucciones.
.....
JNB P3.2, $
JB
P3.2, $
RETI
Nota : P3.2 es el pin correspondiente a la #INT0. Tenga en cuenta
que la interrupción externa se habilita cuando se detecta un flanco
descendente en dicho pin.
Ejercicio 5.
Si se quisiera obtener una onda cuadrada de la mayor frecuencia posible usando un cristal
de 12 Mhz.
a) ¿ Se podrían utilizar los Timers ? ¿ Que problema acarrea ?.
b) Escriba el programa y analice el ciclo de trabajo de la onda cuadrada. ¿Podría obtenerse
un ciclo de trabajo diferente ?.
Ejercicio 6.
Diseñe un programa que obtenga una onda cuadrada de 500 hz. en cualquier pin del port 1
durante 10 segundos.
Ensámblelo, simule y pruébelo en el Kit del 8051 disponible, midiendo la onda resultante.
¿ Es de 500 hz ?
Nota : El kit tiene un cristal de 3.58 Mhz.
Ejercicio 7.
Sabiendo que un CI555 CMOS en modo monoestable se conecta de la forma indicada con
un 8051.
En modo monoestable el 555 genera un pulso de
ancho PW = R·C cuando se genera un flanco
ascendente en el pin de Trigger.
Si se quiere medir ese ancho de pulso :
a) ¿ Qué timer se utilizaría según la conexión
propuesta ?.
b) Indicar en qué modo tendría que estar el Timer y
en que estado los bits C/T , Gate y TR1/0.
c) Si el cristal es de 12 Mhz, ¿ qué representa el
valor final de la cuenta del timer ?.
d) Si R = 1k, hallar la expresión C = f (T), donde T es la cuenta del timer. Analizar.
e) Si se mostrase la cuenta del timer en BCD directamente en un display, ¿ Qué
representaría para el usuario dicho valor ?. (Suponer R = 1k).
f) ¿ Cuál es el rango de valores de C medibles con el mínimo error siendo R = 1k ?
¿Cómo haría para medir otro rango de valores ?.
Laboratorio de microcomputadoras – 66.09
Ejercicio 8.
Codificar una subrutina llamada OUTSTR que envíe una cadena terminada en 0 de
caracteres ASCII por el port serie. El puntero a la cadena dato viene por el stack y la
cadena se encuentra en memoria externa. Incluir la programación de todos los registros que
sean necesarios para el funcionamiento correcto del sistema.
Ejercicio 9.
Codificar una subrutina llamada INSTR que reciba una cadena terminada en 0 de caracteres
ASCII por el port serie. El puntero a la posición de almacenamiento viene por el stack y la
cadena debe almacenarse en memoria externa. Incluir la programación de todos los
registros.
Ejercicio 10.
Escribir un programa en assembler que genere una onda cuadrada de 1 Mhz sobre el
terminal P0.2 con un cristal de 4 Mhz usando el timer.
Descargar