Story Transcript
COMPUTACIÓN V – GUÍA ETS
GUÍA DE ETS PARA COMPUTACIÓN V AMBOS TURNOS SUPERVISORES: ING. JOSÉ LUÍS BRAVO LEÓN e ING. LUÍS URIETA PÉREZ
PROBLEMAS RESUELTOS 1)
Obtenga dos tarjetas de memoria, una de RAM y otra de PROM para interconectar a un microprocesador, para las siguientes condiciones: a) b)
Con circuitos integrados (CI) RAM de 16Kx4 obtener un módulo de 128Kx8. Con circuitos integrados PROM de 8Kx8 obtener una tarjeta de 128Kx8.
SOLUCIÓN a)
A continuación se presenta en bloques el circuito integrado disponible y el módulo a realizar: 14
4
17
16Kx4
8
128Kx8
Circuito Integrado
Tarjeta
Para determinar el número de circuitos integrados que requiere la tarjeta se usa la expresión:
# de IC =
DT DIC
=
128Kx8 16Kx4
= 16
Donde: DT = densidad de memoria de la tarjeta expresada en bits DIC = densidad de memoria del circuito integrado expresada en bits. •
Aplicando el algoritmo de expansión de la longitud de la palabra, se aumenta el número de bits de la palabra, en la forma:
128
= 8 , obteniéndose el arreglo:
16 14
4 LSB 14
16Kx4
8
16Kx8 4 MSB MÓDULO 1
16Kx4
•
Para expandir el número de localidades de memoria, se aplica el algoritmo de expansión del número de localidades:
# de módulos =
DT DM
=
128Kx8 16Kx8
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
=8
CV-1
COMPUTACIÓN V – GUÍA ETS
Donde: DM = densidad del módulo obtenido en la expansión de la longitud de la palabra. De lo anterior se obtiene el arreglo final 17
14
8
8
8
CS0 14
8
CS1 14
8
DECODIFICADOR 3x8
CS2
3
14 8
CS3 14
8
CS4 14
8
CS5 14
8
CS6 14
CS7
b)
El siguiente diagrama a bloque establece el enunciado del problema:
13
4
12Kx8
8
17
128Kx8
Circuito Integrado
Tarjeta
Para calcular el número de circuitos integrados de la tarjeta, se usa la expresión:
# de IC =
DT DIC
=
128Kx8 16Kx4
= 16
Debido a que la longitud de la palabra es compatible en la tarjeta y el circuito integrado, no se requiere el algoritmo de expansión de la palabra, obteniéndose el diagrama final siguiente:
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-2
COMPUTACIÓN V – GUÍA ETS
17
13
8
8
8Kx8 8
SC0 13
8Kx8
4
DECODIFICADOR 4x16
SC1
8
8Kx8
13
8
SC14 8Kx8
13
SC15 VALOR: 2.5 puntos
2.
Para el adaptador de periféricos en paralelo (8255): a) b) c)
Describa cómo realiza la función de entrada/salida el adaptador: Obtenga el diagrama lógico para formar una tarjeta de entrada/salida con 30 puertos paralelos. ¿Cómo programaría la tarjeta para que los primeros 15 puertos funcionen como entradas y los 15 restantes como salidas?
SOLUCIÓN a)
La función de entrada/salida se realiza programando en el registro de control como funcionarán los puertos A, B y C. Después, para leer la información de entrada se utiliza la función IN y para escribir en los puertos de salida se utiliza la instrucción OUT.
b)
Los diagramas a bloques del 8255 y la tarjeta son:
DB
P0
30 puertos
P P P
AB
Registro de con-
8255
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
P1
P29
Tarjeta
CV-3
COMPUTACIÓN V – GUÍA ETS
Se determina el número de integrados que requiere la tarjeta, con la siguiente expresión:
# de 8255 =
DT DIC
=
30 3
= 10
Donde: DT = densidad de puertos de la tarjeta DIC = densidad de puertos del circuito integrado Si se requieren 10 integrados 8255, entonces se necesitan 40 direcciones de entrada/salida, 3 para cada puerto, y una para el registro de control de cada circuito integrado. El número de líneas de está da por la expresión: 2 n = 40 ∴ n = 6 Con estos datos se obtiene el siguiente diagrama lógico: a0 IC0
a1 CS0
a2
entradas
a3 IC4
a4 CS4
DECODIFICADOR 4x16
a5
IC5 CS5
salidas
IC9 CS9 CS10
Posible expansión
CS15
Los registros de control, están ubicados en: Entradas: Salidas:
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
3, 7, B, F, 13 17, 1B, 1F, 23, 27
CV-4
COMPUTACIÓN V – GUÍA ETS
Mapa de entrada / salida:
a5 a4 a3 a 2 a1 a0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
←3
←7
ENTRADAS ←B
←F
← 13
← 17
← 1B
SALIDAS ← 1F
← 23
← 27
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-5
COMPUTACIÓN V – GUÍA ETS
a5 a4 a3 a 2 a1 a0 1 1 1 1 1 1 1 1 1
c)
1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1 1
1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1
La programación para los registros de control para entradas y salidas PTO: A
PTO: C
PTO. B
4 MSB
Entradas Salidas
D7 1 1 1
D6 0 0 0
D5 0 0 0
D4
D3
1 0
1 0
PTO. C 4 LSB
D2 0 0 0
D1
D0
1 0
1 0
Registros de control = 8BH = 80H
1 = INPUT = ENTRADA 0 = OUTPUT = SALIDA
Programación de la tarjeta:
;Programación de los 15 primeros puertos como entrada y los 15 ;restantes como salida ;entradas: Patrón = 9BH MOV OUT OUT OUT OUT
AL,9BH [3],AL [7],AL [0BH],AL [0FH,AL
;Salidas: Patrón = 80H MOV OUT OUT OUT OUT
3.
AL,80H [17H],AL [1BH],AL [23H],AL [27H].AL
Conecte las dos tarjetas de memoria al micro procesador 8088, la RAM en las primeras y la PROM en las últimas localidades del espacio de direccionamiento y la tarjeta de puertos en las primeras direcciones de entrada / salida del micro procesador.
SOLUCIÓN Se determina el número de tarjetas que pueden conectarse al espacio de direccionamiento del micro procesador, con ayuda del siguiente diagrama a bloques:
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-6
MICRO PROCESADOR
COMPUTACIÓN V – GUÍA ETS
tarjetas
DT = 128Kx8
DµP = 1Mx8
Sustituyendo en la expresión:
# de tarjetas =
D µP DT
=
2 20 * 8 2
17
*8
= 23 = 8
La solución se obtiene asignando la línea CS0 a la habilitación de la tarjeta RAM (primeras localidades de memoria) y la línea CS7 a la habilitación de la PROM (últimas localidades de memoria). El logigrama es: 17
DB
8
DB
RAM AB
3
DECODIFICADOR 3x8
CS0
8
PROM 17
CS7
¿????????????? 8 8
DB
ENTRADA/SALIDA AB 6
I/O
4.
En las localidades de entrada / salida 0, 1, 2 y 3 se tiene conectado un circuito integrado 8255.
a)
Programar el puerto A como entrada y los puertos B y C como salida.
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-7
COMPUTACIÓN V – GUÍA ETS
b)
c)
En el puerto B existen un par de exhibidores (display) numéricos de bajo costo ya preparados para desplegar datos BCD en el rango de 00 a 99. Capture 100 datos por el puerto de entrada, obtenga el valor promedio y despliéguelo en el puerto B. En el puerto C se tienen 8 leds (diodos emisores de luz) para indicar la salida. Haga un segmento de programa que cada segundo o cada tiempo x cambie el encendido y apagado de los leds de la siguiente forma: 0 0 0 0 0 0 1
0 0 0 0 0 1 0
0 0 0 0 0 0 0
0 0 0 0 1 0 0
0 0 0 1 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
SOLUCIÓN a) 4 MSB C B7 1
B6 0
B5 0
B4 1
Puerto A MOV OUT
AL,90H [PTOCONT],AL
b)
B3 0
B2 0
4 LSB C B1 0
B0
Puerto B
;hardware
En el siguiente diagrama de flujo, el puerto de salida B se designa por PBOUT:
100Dat.as
CX ← 100d AL ← 0 BX ← 0
FI
AL ← PAIN
PBOUT ←
BX ←
MOV AL BL
CX ← CX-1
BX ← BX-
CX = 0
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-8
COMPUTACIÓN V – GUÍA ETS
c)
5.
En el siguiente diagrama de flujo el puerto C se designa por PCOUT.
Se tienen dos tarjetas una de RAM y otra de PROM de 64Kx8 cada una y una tarjeta de entrada / salida de 1K puertos. Interconéctelas a un micro procesador 8088 de la siguiente forma: La tarjeta de RAM en las primeras localidades del espacio de direccionamiento y la de PROM en las últimas, la tarjeta de entrada / salida conéctela a partir de la localidad 0 de entrada / salida.
SOLUCIÓN El número de tarjetas de 64Kx8 que pueden conectarse al espacio de direccionamiento del micro procesador está dado por: No. de tarjetas =
D µP DT
=
2
20 16
x8
2 x8
= 16 tarjetas
Las primeras 16 líneas de direccionamiento se conectan al bus de dirección del micro procesador, las 8 líneas de datos al bus de datos del micro procesador y las 4 líneas mas significativas del bus de dirección se conectan a un decodificador 4 a 16. Las 16 salidas del decodificador controlan a 16 tarjetas de memoria, por lo que para ubicar al módulo de RAM en las primeras 64K localidades se conectan la línea m de habilitación CS0 a la línea de habilitación de la tarjeta de memoria. Para ubicar el módulo de PROM en las últimas localidades del espacio de direccionamiento del micro procesador se conectan la CS15 del decodificador a la entrada de habilitación de la tarjeta PROM Para conectar la tarjeta de 1K puertos de entrada / salida, se conectan sus líneas de dirección a las primeras 11 líneas de dirección del micro procesador y las 8 líneas de datos se conectan a las 8 líneas del bus de datos del micro procesador, como se muestra en el diagrama
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-9
COMPUTACIÓN V – GUÍA ETS
8 MICRO PROCESADOR 20
16 8 RAM 16 8
4
DECODIFICADOR 4 a 16
PROM CS0
CS0
8 10
I/O LSB
6.
Decodifique la dirección de los puertos de entrada y salida y ubíquelos dentro del mapa de puertos U? 33 22 19 21 18
MN READY CLK RESET INTR
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO
30 31 17 23
DEN DT/R IO/M HLDA HOLD NMI TEST
RD WR ALE INTA
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
2 5 6 9 12 15 16 19
OC G 74LS373
34
1 11 1 2
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
D0 D1 D2 D3 D4 D5 D6 D7
3 4 7 8 13 14 17 18
OC G 74LS373
5 1 2 3
4
G0
3 4
26 27 28
3 4 7 8 13 14 17 18
32 29 25 24
8088MIN 1 2 5 3 4
G1
1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
OC G 74LS373
SOLUCIÓN Las funciones de habilitación de puertos quedan determinadas por: PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-10
COMPUTACIÓN V – GUÍA ETS
G0 = ( A1 A2 A3)(A4 A5) M / IO
para el puerto 0
G1 = (A1 A2 A5) M / IO
para el puerto 1
Puesto que la señal de control M / IO se habilita en estado alto para la selección de puertos, las funciones se reducen a: G0 = ( A1 A2 A3)(A4 A5)
para el puerto 0
G1 = (A1 A2 A5)
para el puerto 1
El mapa de puertos resultante:
PTO 0 PTO 1
A7
A6
A5
A4
A3
A2
A1
A0
x x
x x
1 1
1 x
0 x
0 1
0 1
x x
Donde las x representan cualquier valor 0 o 1. Si consideramos que x = 0, las direcciones par PTO 0 y PTO 1 serian:
PTO 0 PTO 1
7.
A7
A6
A5
A4
A3
A2
A1
A0
0 0
0 0
1 1
1 0
0 0
0 1
0 1
0 0
30H 26H
Asigne las líneas de dirección adecuadas para que el decodificador, que se muestra a continuación, seleccione los puertos de E/S en las direcciones C0H, D0H, E0H y F0H para los puertos pto 0, pto 1, pto 2 y pto 3, respectivamente. Utilice la línea de control M / IO correctamente. U? 33
MN
22 19 READY 21 CLK RESET 18
INTR
U? AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO
30 31 HLDA 17 HOLD 23 NMI TEST
DEN DT/R IO/M
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
3 4 7 8 13 14 17 18
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
1 11 OC G 74LS373 U?A 2 3 A B 1
34 26 27 28
32 RD 29 WR 25 ALE 24 INTA
G
4 Y0 5 Y1 6 Y2 7 Y3
74LS139 U?A 1 3 2 74LS00
8088MIN
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-11
PTO PTO PTO PTO
0 1 2 3
COMPUTACIÓN V – GUÍA ETS
SOLUCIÓN Tabla de verdad del circuito integrado 74139: B
A
Y0
Y1
Y2
Y3
0 0 1 1
0 1 0 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
A7
A6
A5
A4
A3
A2
A1
A0
1 1 1 1
1 1 1 1
0 0 1 1
0 1 0 1
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Mapa de puertos:
PTO 0 PTO 1 PTO 2 PTO 3
C0H D0H E0H F0H
Puesto que las variables A7, A6, A3, A2, A1 y A0 tienen los mismos valores para las funciones PTO 0, PTO 1, PTO 2 y PTO 3, éstas no dependen de dichas variables, por lo que las funciones quedan: PTO 0 = A5 A4 PTO 1 = A5 A4 PTO 2 = A5 A4 PTO 3 = A5 A4
Las combinaciones anteriores corresponden a la tabla de verdad del circuito integrado 74139, por lo que las entradas A y B deben ir conectadas a las variables A4 y A5, respectivamente. La compuerta NAND (NO Y) requiere dos entradas en estado alto, la señal de control M / IO se activa en alto para direccionamiento de memoria, ésta junto con cualquier línea de dirección que tenga un valor de uno satisfacen la condición de habilitación de memoria, tal es el caso de las variables A6 y A7. El circuito resultante queda: U? 33 22 19 21 18
MN READY CLK RESET INTR
U? AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO
30 31 17 23
DEN DT/R IO/M HLDA HOLD NMI TEST
RD WR ALE INTA
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
A4 A5 A6
OC G 74LS373 U?A 2 3 1
34 26 27 28
A B G
Y0 Y1 Y2 Y3
4 5 6 7
PTO PTO PTO PTO
0 1 2 3
74LS139 U?A 1 3 2
32 29 25 24
74LS00
8088MIN
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-12
COMPUTACIÓN V – GUÍA ETS
8.
Utilizando únicamente las 16 líneas menos significativas del canal de direcciones, elabore el mapa de memoria y conecte apropiadamente los circuitos mostrados para formar un banco de 1KB de memoria RAM que se direccione a partir de la localidad 8000H. Conecte las señales de control ALE, DEN, DT/R , RD, WR U? 33 22 19 21 18
U?
MN
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6
READY CLK RESET INTR
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
5 6 7 4 3 2 1 17 16 15
OC G
8 10
74LS373
2 3 4 5 6 7 8 9
26 27 28 32 29 25 24
RD WR ALE INTA
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
D0 D1 D2 D3
14 13 12 11
CS WE 2114
U?
DEN DT/R IO/M HLDA HOLD NMI TEST
1 11
U?
D0 D1 D2 D3 D4 D5 D6 D7
34
SSO
30 31 17 23
3 4 7 8 13 14 17 18
U?
A1 A2 A3 A4 A5 A6 A7 A8
19 1
18 17 16 15 14 13 12 11
B1 B2 B3 B4 B5 B6 B7 B8
5 6 7 4 3 2 1 17 16 15
G DIR
8088MIN
8 10
74LS245
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
D0 D1 D2 D3
14 13 12 11
CS WE 2114
SOLUCIÓN Con el número de variables de direccionamiento se calcula la capacidad de los circuitos de memoria: n
No. de variables (A0 − A9) = 10
No. de localidade s = 2 = 2
10
= 1,024
Cada circuito contiene 1,024 localidades de 4 bits cada una (D0 – D3) por lo que conectándolas en paralelo tendremos un arreglo de 1,024 localidades de 8 bits = 1Kbyte cada una.
Mapa de memoria: DEC
HEXA
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
0 1
0000H 0001H
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 1
32767 32768 32769
7FFFH 8000H 8001H
0 1 1
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 1
33791 33792 32793
83FFH 8400H 8401H
1 1 1
0 0 0
0 0 0
0 0 0
0 0 0
0 1 1
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 1
65535
FFFFH
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
VACÍO
MEM 0
VACÍO
Las variables de direccionamiento (A0 – A9) se conectan punto a punto. La habilitación de los circuitos de memoria quedan en función de las variables de selección (A10 – A15) y de la señal de control M / IO de la siguiente forma:
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-13
COMPUTACIÓN V – GUÍA ETS
M0 = (A15 A14 A13 A12 A11 A10) M / IO
Debido a que el banco de memoria está formado por dos circuitos conectados en la misma dirección, no se requieren las variables de selección, por lo que la función M0 queda solamente en función de la señal M / IO . M0 = M / IO U? 33 22 19 21 18
MN READY CLK RESET INTR
U? AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO
30 31 17 23
DEN DT/R IO/M HLDA HOLD NMI TEST
RD WR ALE INTA
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
3 4 7 8 13 14 17 18 1 11
U?
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
5 6 7 4 3 2 1 17 16 15
OC G
8 10
74LS373
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
D0 D1 D2 D3
14 13 12 11
CS WE 2114
U? 34
2 3 4 5 6 7 8 9
26 27 28 32 29 25 24
19 1
8088MIN
A1 A2 A3 A4 A5 A6 A7 A8
U? B1 B2 B3 B4 B5 B6 B7 B8
G DIR 74LS245
18 17 16 15 14 13 12 11
5 6 7 4 3 2 1 17 16 15 8 10
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
D0 D1 D2 D3
14 13 12 11
CS WE 2114
Los circuitos de memoria no requieren la señal RD por lo que no se conecta.
9.
Desarrolle una rutina en lenguaje ensamblador que se encargue de leer datos en código ASCII del puerto de entrada PTO 0. Los datos numéricos impares recibidos por el puerto deberán ser almacenados en el área de memoria cuya dirección inicial es impares, los datos pares recibidos deberán ser almacenados en el área de memoria cuya dirección inicial es pares. Todos los datos que no sean numéricos deberán ser ignorados.
SOLUCIÓN Un esquema del problema planteado quedaría representado de la siguiente forma:
pares pares + 1 +2 +3
impares impares + 1 +2 +3
datos pares
CPU PTO 0 datos impares
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-14
COMPUTACIÓN V – GUÍA ETS
Algoritmo: Primero es necesario establecer un criterio para determinar si un dato leído en es un dato par o impar. Analicemos los datos numéricos codificados en ASCII: dato 0 1 2 3 4
ASCII 30H 31H 32H 33H 34H
BINARIO 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100
VALOR Par impar Par impar par
dato 5 6 7 8 9
ASCII 35H 36H 37H 38H 39H
BINARIO 0011 0101 0011 0110 0011 0111 0011 1000 0011 1001
VALOR impar Par impar Par impar
De la tabla se puede observar que el bit menos significativo de los datos pares es cero mientras que para los datos impares este bit tiene el valor de uno. La rutina a desarrollar deberá probar el bit menos significativo del dato leído desde el puerto PTO 0, si éste es cero deberá ser almacenado en el área de memoria que inicia en la dirección PAR mientras que si este bit es igual a uno deberá ser almacenado en el área de memoria que inicia en la dirección IMPAR. Se requerirán dos apuntadores de memoria, uno que direccione las localidades del área de memoria PAR y otro que apunte a las localidades de memoria IMPAR. Un diagrama de flujo propuesto sería el siguiente:
inicio
A
SI ← pares
BL ← AL
DI ← impares B AL ← PTO 0
SI
AL < 30H NO
SI
BL ← BL
00000001
BL = 0
NO
SI
[SI] ← AL
[DI] ← AL
SI ← SI + 1
DI ← DI + 1
AL > 39H NO
A B Instrucción AND
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-15
COMPUTACIÓN V – GUÍA ETS
El programa: Inicio:
Etq1:
impar:
10.
lea lea mov cmp jl cmp jg mov and jnz mov inc mov inc jmp
si,pares di, impares al,pto0 al,30h etq1 al,39h etq1 bl,al bl,01 impar [si],al si [di],al di etq1
;direcciona apuntadores en áreas de memoria ;lee dato de PTO 0 ;ignora dato no numérico
;copia dato ;prueba si es dato impar ;dato par, almacena en área PAR ;incrementa apuntador par :dato impar, almacena en área IMPAR ;incrementa apuntador impar
Desarrolle la rutina PP que se encargue de almacenar en una área de memoria cuya dirección inicial es TEXTO, una cadena de caracteres capturada desde el teclado y cuyo final lo determina un carácter enter (0DH). Posteriormente, la cadena de caracteres deberá ser desplegada en la pantalla. La rutina PP tendrá que emplear las subrutinas sub1 Y sub2 para la captura y despliegue de la cadena. sub1:
sub2: mov mov int ret
ah,0eh bh,0 10h
PP: mov int ret
ah,0 16h
SOLUCIÓN El diagrama propuesto para la rutina PP haciendo uso de las subrutinas sub1 y sub2, se muestra a continuación: PP SI ← tabla
SI ← tabla
sub2
al ← [SI]
[SI] ← al
sub1
al = 0dh
S
NO
SI ← SI + 1
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
al = 0dh
S
fin
NO
SI ← SI + 1
CV-16
COMPUTACIÓN V – GUÍA ETS
El programa PP: PP: leer:
lea call mov cmp je inc jmp
si,tabla sub2 al,[si] al,0dh etq1 si leer
etq1: ndato:
lea mov call cmp je inc jmp nop
si,tabla al,[si] sub1 al,0dh fin si ndato
fin:
Nota:
La etiqueta fin representa la instrucción o proceso siguiente al termino de la ejecución de la rutina PP.
PROBLEMAS PROPUESTOS 1.
Elabore el diagrama de flujo y el listado de una rutina que se encargue de leer del teclado y desplegar en la pantalla una cadena de caracteres convirtiendo los caracteres mayúsculas a minúsculas utilizando las interrupciones del BIOS correspondientes. La rutina debe ignorar todos aquellos caracteres que no sean alfabéticos.
2.
El programa que se muestra a continuación se encarga de transmitir al puerto de salida PTO_0 La cadena de caracteres que se encuentran almacenados en el área de memoria cuya dirección inicial es TEXTO, el final de la cadena esta definido por un carácter EOT. Después de transmitir la cadena de caracteres, el programa borra los datos almacenados en el área de memoria por medio de la subrutina CLEAR y llena nuevamente el área de memoria leyendo datos por medio de la rutina READ para transmitirlos nuevamente. INICIO: ETQ:
a)
b)
LEA MOV INC OUT CMP JNE CALL CALL JMP
SI,TEXTO AL,[SI] SI PTO_0,AL AL, EOT ETQ CLEAR READ INICIO
Diseñe la rutina CLEAR, la cual deberá encargarse de llenar con ceros el área de memoria de longitud variable cuya dirección inicial es TEXTO y el final esta definido por un carácter EOT. Diseñe la rutina read que se encargará de leer datos del puerto de entrada PTO-1 y los almacenará en el área de memoria cuya dirección inicial es TEXTO, sabiendo que el final de la lectura lo determina un carácter EOT.
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-17
COMPUTACIÓN V – GUÍA ETS
3.
Diseñe un rutina que se encargue de convertir a código ASCII el dato numérico de ocho bits almacenado en hexadecimal en la localidad CUENTA. El resultado deberá ser almacenado en el área de memoria buffer, cuya longitud es de dos bytes. Utilizando la interrupción correspondiente, elabore una rutina que se encargue de desplegar en la pantalla alineando a la derecha una cadena de caracteres que se encuentra almacenada en una área de memoria cuya dirección inicial es TEXTO y cuyo final lo determina un carácter 0DH (enter).
4.
Conecte apropiadamente el decodificador de memoria de tal forma que direccione un banco de 4 kbytes a partir de la localidad 6000H. Utilice únicamente las 16 líneas menos significativas del canal de direcciones. Conecte los puertos en tal forma que el puerto de entrada se direccione en la localidad F0H y el de salida quede en la dirección C0H. Utilice únicamente las líneas de control M’ / IO, RD’ y WR’ de manera conveniente según el caso. U?
33 22 19 21 18
U?
MN
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6
READY CLK RESET INTR
HLDA HOLD NMI TEST
2 5 6 9 12 15 16 19
U? 8 7 6 5 4 3 2 1 23 22 19
OC G
18 20 21
U? 2 3 4 5 6 7 8 9
A1 A2 A3 A4 A5 A6 A7 A8
19 1
32 29 25 24
RD WR ALE INTA
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
74LS373
26 27 28
DEN DT/R IO/M
D0 D1 D2 D3 D4 D5 D6 D7
1 11
34
SSO
30 31 17 23
3 4 7 8 13 14 17 18
B1 B2 B3 B4 B5 B6 B7 B8
18 17 16 15 14 13 12 11
8 7 6 5 4 3 2 1 23 22 19
G DIR 74LS245
8088MIN 18 20 21
U?A 2 3
U?A U?A 2 1
1 2 13
12
1
3
A B G
Y0 Y1 Y2 Y3
4 5 6 7
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
OC G 74LS373
CE OE VPP A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
2 5 6 9 12 15 16 19
U? Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
D0 D1 D2 D3 D4 D5 D6 D7 OC G
CE OE VPP
3 4 7 8 13 14 17 18 1 11
74LS373
2716
74LS139 74LS10 74LS02
DECODIFICADOR DE MEMORIA
U?B 14 13
U?A 1 2 13
12
15
A B G
Y0 Y1 Y2 Y3
12 11 10 9
74LS139 74LS10
DECODIFICADOR DE PUERTOS
5.
Asigne las líneas de dirección adecuadas para que el decodificador que se muestra a continuación seleccione los puertos de E/S en las direcciones C0H, D0H, E0H y F0h para los puertos Pto0, Pto1, Pto2 y Pto3 respectivamente.
Utilice la línea de control M’ / IO correctamente.
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-18
COMPUTACIÓN V – GUÍA ETS U? 33
U?
MN
22 19 21
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6
READY CLK RESET
18
INTR
SSO DEN DT/R IO/M
30 31 17 23
HLDA HOLD NMI TEST
RD WR ALE INTA
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
OC G 74LS373 U?A 2 3
A B
1
Y0 Y1 Y2 Y3
G
34
4 5 6 7
PTO PTO PTO PTO
0 1 2 3
74LS139
26 27 28
U?A 1 3 2
32 29 25 24
74LS00
8088MIN
6.
Diseñe un decodificador que direcciones los puertos de entrada en las direcciones C5h y 97h, los puertos de salida en las direcciones 85h y D6h. Conecte apropiadamente las señales de control RD’ y WR’. PTO pto 00
7.
RD
D0 D1 D2 D3 D4 D5 D6 D7
14 15 12 8 7 9 10 13
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
PTO pto 1 1 2 5 6 9 12 15 16 19
3 4 7 8 13 14 17 18 1 11
OC G pto 2
11 1
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G OC
D0 D1 D2 D3 D4 D5 D6 D7
3 4 7 8 13 14 17 18
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
OC G pto 0 PTO 3
PTO 2
2 5 6 9 12 15 16 19
D0 D1 D2 D3 D4 D5 D6 D7
2 5 6 9 12 15 16 19 11 1
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
D0 D1 D2 D3 D4 D5 D6 D7
3 4 7 8 13 14 17 18
G OC
21
22
WR
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
30 31 32 33 34 35 36 37 38 39 40 1 2 3 4 5
Diseñe un decodificador que direccione dos circuitos de memoria de la siguiente manera: • • •
La memoria RAM deberá direccionarse a partir de la localidad 8000H. La memoria ROM deberá direccionarse a partir de la localidad F000H. Conecte las señales de control RD’ y WR’ en las entradas correspondientes.
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-19
COMPUTACIÓN V – GUÍA ETS
RD
D0 D1 D2 D3 D4 D5 D6 D7
30 31 32 33 34 35 36 37 38 39 40 1 2 3 4 5
8 7 6 5 4 3 2 1 23 22 19 18 20 21
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
D0 D1 D2 D3 D4 D5 D6 D7
9 10 11 13 14 15 16 17
CE OE WE 6116
14 15 12 8 7 9 10 13
8 7 6 5 4 3 2 1 23 22 19 21
21
22
WR
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
18 20
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
CE OE/VPP 2732
Elabore el mapa y conecte apropiadamente los circuitos mostrados para formar dos bancos de memoria de 512 bytes cada uno, el primero direccionado a partir de la localidad B000H y el segundo a partir de C800H.
8.
Conecte las señales de control ALE, DEN’, DT/R’ , RD’, WR’ 33 22 19 21 18
MN READY CLK RESET INTR
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO
30 31 17 23
DEN DT/R IO/M HLDA HOLD NMI TEST
RD WR ALE INTA
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35 34 26 27 28
3 4 7 8 13 14 17 18 1 11
2 3 4 5 6 7 8 9 19 1
32 29 25 24
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
OC G
A1 A2 A3 A4 A5 A6 A7 A8 G DIR
5 6 7 4 3 2 1 17 16 8 10
B1 B2 B3 B4 B5 B6 B7 B8
D0 D1 D2 D3
14 13 12 11
5 6 7 4 3 2 1 17 16 8 10
CE WE
A0 A1 A2 A3 A4 A5 A6 A7 A8
D0 D1 D2 D3
14 13 12 11
CE WE
18 17 16 15 14 13 12 11 5 6 7 4 3 2 1 17 16
8088MIN 8 10
9.
A0 A1 A2 A3 A4 A5 A6 A7 A8
A0 A1 A2 A3 A4 A5 A6 A7 A8 CE WE
D0 D1 D2 D3
14 13 12 11
5 6 7 4 3 2 1 17 16 8 10
A0 A1 A2 A3 A4 A5 A6 A7 A8
D0 D1 D2 D3
14 13 12 11
CE WE
Desarrolle una subrutina que transfiera una cadena de 100 caracteres almacenados en memoria a partir de la dirección BUFFER a los puertos PTO A y PTO B en función de las siguientes características: • • •
El carácter deberá ser enviado al PTO A si los bits 3 o 4 están puestos a uno El carácter deberá ser enviado al PTO B si los bits 2 y 3 están puesto a cero. Si el carácter no cumple ninguna de las condiciones anteriores, se deberá continuar con el siguiente dato. Diagrama de flujo 1 punto Programa 2 puntos
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-20
COMPUTACIÓN V – GUÍA ETS
10.
Decodifique las direcciones de los circuitos de memoria y desarrolle una rutina que se encargue de copiar utilizando DIRECCIONAMIENTO INDEXADO CON BASE todos los datos grabados en la memoria MEM0 a la memoria MEM1. Decodificador Rutina
2 puntos 2 puntos MEM0
33 22 19 21 18
MN
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 A16/S3 A17/S4 A18/S5 A19/S6
READY CLK RESET INTR
SSO
30 31 17 23
DEN DT/R IO/M HLDA HOLD NMI TEST
RD WR ALE INTA
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39 38 37 36 35
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
8 7 6 5 4 3 2 1 23 22 19
OC G
18 20 21
74LS373
1
1 2 13
2
1 2 13
1 2 13
12
9 10 11 13 14 15 16 17
CE OE VPP
MEM1 8 7 6 5 4 3 2 1 23 22 19
12
32 29 25 24
8088MIN 1 2 13
O0 O1 O2 O3 O4 O5 O6 O7
2716 12
34 26 27 28
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
12
1 2 13
12
18 20 21
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
D0 D1 D2 D3 D4 D5 D6 D7
9 10 11 13 14 15 16 17
CE OE WE 6116
11.
Utilizando las 16 líneas de menor orden del canal de direcciones del µP 8088, diseñe un decodificador que permita ubicar cuatro circuitos de memoria, dos 2716 (2K x 8) y dos 2732 (4K x 8) al principio del mapa de memoria sin importar que existan reflejos de direccionamiento. Mapa de memoria Reducción Diagrama lógico
1 punto 1 punto 1 punto
12.
Obtenga el mapa de memoria del circuito que se muestra en la siguiente figura:
13.
Utilizando métodos de reducción, diseñe un decodificador para sustituir los cuatro circuitos de memoria de 2 K x 8 por 2 circuitos de 4 K x 8 de tal forma que el mapa de memoria no tenga cambio alguno.
14.
Obtenga el mapa de puertos del circuito mostrado a continuación:
15.
Utilizando direccionamiento indexado, desarrolle una rutina que lea datos del puerto PTO2 y los almacene en memoria de acuerdo a las siguientes condiciones: • • •
El carácter deberá ser enviado al área de memoria AREA1 si los bits 3 o 4 están puestos a uno El carácter deberá ser enviado al área de memoria ÁREA2 si los bits 2 y 3 están puesto a cero. Si el carácter no cumple ninguna de las condiciones anteriores, se deberá leer un nuevo dato
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
CV-21
COMPUTACIÓN V – GUÍA ETS
Considere que el AREA2 está localizada en una dirección 200h adelante de AREA1. 74LS373
34 33 22 21 19 18 17 24 30 31 23
A16/S3 A17/S4 A18/S5 A19/S6 SS0 MN/MX READY RESET CLK INTR NMI INTA
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15
HLDA HOLD
ALE DEN DT/R IO/M
TEST
WR RD
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 39
3 4 7 8 13 14 17 18 1 11
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
8 7 6 5 4 3 2 1 23 22 19
OC G
20 18 21 2 3
25 26 27 28
1
29 32
Y0 Y1 Y2 Y3
A B G
74LS139
3
38 37 36 35
1
2
1
8088 MIN
4 5 6 7
8 7 6 5 4 3 2 1 23 22 19 20 18
3 2
21
DECODIFICADOR DE MEMORIA
8 7 6 5 4 3 2 1 23 22 19 20 18
4 5 6 7
Y0 Y1 Y2 Y3
A B G
1
2 3 3
PTO0 PTO1 PTO2 PTO3
21 2
DECODIFICADOR DE PUERTOS
1
74LS139
8 7 6 5 4 3 2 1 23 22 19 20 18 21
PROFESORES DE LA SUPERVISIÓN DE COMPUTACIÓN V
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
MEM0
OE CE VPP A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
MEM1
OE CE VPP A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
MEM2
OE CE VPP A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
O0 O1 O2 O3 O4 O5 O6 O7
9 10 11 13 14 15 16 17
MEM3
OE CE VPP
CV-22