Uploaded by RedVintageHood -

main-3

advertisement
EXAMEN PARCIAL 1
Roly Sandro Gutierrez Benito
5 de enero de 2024
Docente: Alex Jhon Quispe Mescco
1
1.
Pregunta
Implementar una calculadora, en base al microprocesador intel 8086, que realice las operaciones de suma
y resta utilizando un PPI en la direccion base de 0x90; utilice los puertos A, B y C como entradas y salidas
según le convenga. La visualización debe de realizarse sobre leds conectados a uno de los puertos del PPI y
las entradas para ingresar los numeros de 4 bits, asi como la seleccion de la operacion de 1 bit, deberá estar
conectada tambien a uno de los puertos del PPI.
1.1.
Diagrama circuital completo
A
B
C
D
E
F
G
H
I
J
0
0
1
1
ADR[0..19]
AD[0:.15]
2
2
U2
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
A[16..19]
AD[0..15]
1
11
U1
ADR0
ADR1
ADR2
ADR3
ADR4
ADR5
ADR6
ADR7
2
5
6
9
12
15
16
19
ADR8
ADR9
ADR10
ADR11
ADR12
ADR13
ADR14
ADR15
OE
LE
3
16
15
14
13
12
11
10
9
74HC373
U3
1
11
OE
74LS244
220
D[0..7]
D0
D1
D2
D3
D4
D5
D6
D7
OE
LE
74HC373
A[16..19]
U9
U4
A16
A17
A18
A19
5
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
ADR16
ADR17
ADR18
ADR19
ADR1
U8
ADR[0..19]
Rd
NOT
WR
ADR2
U17
NOT
OE
LE
ADR4
ADR3
ADR5
1
2
3
ADR7
ADR6
ADR0
6
4
5
A
B
C
74HC373
D[0..15]
AD[0..15]
6
U5
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
2
3
4
5
6
7
8
9
19
1
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
18
17
16
15
14
13
12
11
D0
D1
D2
D3
D4
D5
D6
D7
18
17
16
15
14
13
12
11
D8
D9
D10
D11
D12
D13
D14
D15
U18
E1
E2
E3
34
33
32
31
30
29
28
27
5
36
9
8
35
6
15
14
13
12
11
10
9
7
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
DSW2
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
RD
WR
A0
A1
RESET
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
CS
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
74HC138
in0
in1
in2
in3
in4
in5
in6
in7
4
3
2
1
40
39
38
37
18 out0
19 out1
20 out2
21 out3
22 out4
23 out5
24 out6
25 out7
1
2
3
4
5
6
7
8
DIPSW_8
16
15
14
13
12
11
10
9
4
in5
in4
M/IO
Rd
WR
in7
in6
18
16
14
12
RN4
R1
220
5
14
15
16
17
13
12
11
10
out1
out0
Y0
Y1
Y2
Y3
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
in1
in0
1
4
A0
A1
A2
A3
D0
D1
D2
D3
D4
D5
D6
D7
out3
out2
U7:A
2
4
6
8
8086
3
4
7
8
13
14
17
18
out4
AD8
AD9
AD10
AD11
AD12
AD13
AD14
AD15
in3
in2
25
34
27
26
32
29
28
out7
out6
out5
AD[0..15]
A[16..19]
ALE/QS0
BHE
DT/R/S1
DEN/S2
RD
WR/LOCK
M/IO/S0
2
5
6
9
12
15
16
19
1
2
3
4
5
6
7
8
RESET
READY
INTA/QS1
INTR
HOLD/GT1
HLDA/GT0
TEST
NMI
MN/MX
CLK
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
ON
21
22
24
18
31
30
23
17
33
19
D0
D1
D2
D3
D4
D5
D6
D7
OFF
3
3
4
7
8
13
14
17
18
8255A
6
CE
AB/BA
74HC245
U6
AD8
AD9
AD10
AD11
AD12
AD13
AD14
AD15
7
2
3
4
5
6
7
8
9
19
1
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
7
CE
AB/BA
74HC245
8
8
FILE NAME:
9
DESIGN TITLE:
partial_exam.pdsprj
partial_exam.pdsprj
DATE:
9
1/5/2024
PATH: Z:\home\roly\Documents\Proteus\PPI_8255\partial_exam.pdsprj
PAGE:
BY: @AUTHOR
BOARD: @BOARD
A
B
C
D
E
F
G
Figura 1: Diagrama del circuito en Proteus.
2
H
I
REV: @REV
1
of
1
TIME: 9:12:56 AM
J
1.2.
Explicación detallada del funcionamiento de todo el desarrollo del examen
Figura 2: Control de buses.
En la Figura (2) se puede una sección del todo el diagram del circuito mostrado en la Figura (1). En este
framento se encuentra todo el circuito para el control de buses: se está manipulando las 20 direcciones del
microprocesador 8086 y sus 16 bits para datos. En otras palabras, se tiene el bus de datos y direcciones. Ası́
como el control de escritura y/o lectura de datos.
Como se pide que el PPI se habilie en la dirección 0x90, entonces se tuvo que hacer una modificación a los 8
bits de entrada del bus de direcciones [ADR7 ..ADR0 ]. ADR1 y ADR2 serán negados para que puedan ir a A1 y
a A2 respectivamente. El bit ADR7 irá directamente al enable (E1 ) del decodificador y ADR4 estará conectado
al pin A del decodificador. Las demás conexiones serán realizadas como se puede observar en la Figura (3). De
esa forma, se logrará hacer que el PPI tenga como dirección base a 0x90. A continuación se muestra la conexión
del decodificador para la dirección requerida:
Figura 3: Decodificador del PPI para la dirección 0x90.
3
Una vez hecho el decodificador para el PPI, ahora se configuró el harware para que el puerto a y C del
PPI sean hardware de entrada, y el puerto B como salida. Para los puertos de entrada se prefirió hacer uso de
displays de 7 segmentos para una mejor visualización de los números de 4 bits a ingresar.
De la misma forma, para la salida. Cabe aclarar que solo por el puerta A se ingresan los 2 números de 4 bits, y
que por el puerto C se ingresa el valor del selector. Este selector será quien ordene al microprocesador para que
realice la operación de suma o resta. Como se pidió un selector de 1 bits, entonces de los 8 bits del puerto C,
solo se está usando el bit menos significativo (C0 ) y los demás estarán conectados a tierra. El bit de selección
consta de un switch en una configuración modo pull-up. Todo esto se puede observar en la Figura (4)
Figura 4: Acondicionamiento para el harware de entrada y salida del PPI.
1.3.
Presentación del código de programa debidamente comentado a colores
.model tiny
.stack 0x200
; Implementación de una calculadora de 4 bits (suma y resta)
; Para la solución, se hizo prácticamente el dise~
no de un alu
; con 1 bit de selección para la suma o resta. Si el selector
;tiene un valor de 0, se hará la suma. En caso contrario,
;(selector = 1) se hará la resta.
;modelo del código asembler
;segmento de memoria
.data
pa equ 0x96
pb equ 0x94
pc equ 0x92
reg equ 0x90
;1001
;1001
;1001
;1001
.code
main:
mov dx, reg
;registro para acceder al command register
0110
0100
0010
0000
puerto de entrada para ambos números de 4 bits
puerto de salida para el resultado
puerto de entrada para el selector de la operación
configuración de la ppi (dirección base)
4
mov al, 10011001b
out dx, al
jmp leer
selector:
mov dx, pc
in al, dx
cmp al, 0x0
je sumar
jne restar
;valor para configurar la ppi
;configuración de la ppi: PORTA, PORTC: entrada, PORTB: salida
;saltar para leer la información de los puertos de entrada
;leer la entrada del selector
;comparar con 0
;si es 0, entonces hará la suma
;si no es 0, entonces hará la resta
leer:
;leer el primer número de 4 bits
mov dx, pa
in al, dx
;leer los números de 4 bits
mov bl, al
and bl, 0x0f
;conservar los 4 bits menos significativos
;leer el segundo número de 4 bits
mov bh, al
and bh, 0xf0
;conservar los 4 bits más significativos
shr bh, 4
;hacer un desplazamiento hacia la derecha
jmp selector
;ir al selector para la operación
sumar:
add bl, bh
mov al, bl
jmp mostrar
;realizar la suma
;sumar los dos números de 4 bits
restar:
sub bl, bh
mov al, bl
jmp mostrar
;realizar la resta
;restar los dos números de 4 bits
mostrar:
mov dx, pb
out dx, al
jmp leer
end main
;mostrar el resultado de la operación por el puerto b
;saltar a esa referencia para mostrarlo por el puerto de salida (p
;saltar a esa referencia para mostrarlo por el puerto de salida (p
;mandar el valor del registro al (resultado de la operación) al pu
;nuevamente hacer la lectura de datos
end
5
1.4.
Funcionamiento correcto
Para poder observar el correcto funcionamiento, se harán cuatro pruebas para la suma, y también para la
resta. En el caso de la la suma, el selector debe estar en 0. Esto quiere decir que el switch estará en conectado a
tierra para generar un 0 en el bit menos significativo del puerto C, como se muestra en lo siguiente Figura (5):
Figura 5: Switch de entrada del selector de 1 bits
Ahora, se mostrarán las 4 pruebas que se realizaron para la suma:
Selector en 0
1ra pruba: 4 + 1 = 5
2da pruba: 3 + 5 = 8
3ra pruba: 7 + 6 = D(7 + 6 = 13)
4ta pruba: F + F = 1E(15 + 15 = 30)
(a) Suma de 4 y 3.
(b) Suma de 3 y 5
(c) Suma de 7 y 6
(d) Suma de 15 y 15 (F y F)
Figura 6: Add your own figures before compiling
6
Ahora, se mostrarán las 4 pruebas que se realizaron para la resta:
Selector en 1
1ra pruba: 3 − 2 = 1
2da pruba: 7 − 5 = 2
3ra pruba: F − 9 = 6(15 − 9 = 6)
4ta pruba: F − F = 0(15 − 15 = 0)
(a) Suma de 4 y 3.
(b) Suma de 3 y 5
(c) Suma de 7 y 6
(d) Suma de 15 y 15 (F y F)
Figura 7: Add your own figures before compiling
Nota: El sumador y restador que se implementó, es en hexadecimal, no en BCD, por eso es que en Figura
(6c),(6d), (7c) y (7d) se obtienen esos resultados.
7
Download