Ejercicios recomendados E / S EJERCICIO 4 Apartado A-1

Anuncio
Ejercicios recomendados
E/S
EJERCICIO 4
Apartado A-1)
Direcciones
Selección
ROM (16Kx8)
$000000-$003FFF
A23
REG_TEMP
$800000
A23.A1.UDS*
REG_CONTROL
$800001
A23.A1.LDS*
REG_ESTADO
$800001
A23.A1.LDS*
LUZ_ALARMA
$800002
A23.A1.UDS*
Ejercicios recomendados
E/S
EJERCICIO 4
Apartado A-1)
AS*
UDS*
A23
NAND
Direcciones
Selección
ROM (16Kx8)
$000000-$003FFF
A23
REG_TEMP
$800000
A23.A1.UDS*
REG_CONTROL
$800001
A23.A1.LDS*
REG_ESTADO
$800001
A23.A1.LDS*
LUZ_ALARMA
$800002
A23.A1.UDS*
ROM
8Kx8
SEL*
A13-A1
A12-A0
D15-D8
D7-D0
AS*
LDS*
A23
NAND
SEL*
A13-A1
A12-A0
D7-D0
D7-D0
ROM
8Kx8
Ejercicios recomendados
Apartado A-1)
E/S
EJERCICIO 4
Direcciones
Selección
ROM (16Kx8)
$000000-$003FFF
A23
REG_TEMP
$800000
A23.A1.UDS*
REG_CONTROL
$800001
A23.A1.LDS*
REG_ESTADO
$800001
A23.A1.LDS*
LUZ_ALARMA
$800002
A23.A1.UDS*
ALARMA*
AS*
A23
A1
UDS*
NAND
SAL*
REG_TEMP
N7-0
D15-D8
Ejercicios recomendados
Apartado A-1)
E/S
EJERCICIO 4
Direcciones
Selección
ROM (16Kx8)
$000000-$003FFF
A23
REG_TEMP
$800000
A23.A1.UDS*
REG_CONTROL
$800001
A23.A1.LDS*
REG_ESTADO
$800001
A23.A1.LDS*
LUZ_ALARMA
$800002
A23.A1.UDS*
AS*
A23
A1
LDS*
REG_CONTROL
NAND
SEL*
REG_ESTADO
R/W*
LEC/ESC*
DAT7-0
AVERIA*
AVERIA-RECONOCIDA*
D7-D0
Ejercicios recomendados
E/S
Apartado A-1)
EJERCICIO 4
Direcciones
Selección
ROM (16Kx8)
$000000-$003FFF
A23
REG_TEMP
$800000
A23.A1.UDS*
REG_CONTROL
$800001
A23.A1.LDS*
REG_ESTADO
$800001
A23.A1.LDS*
LUZ_ALARMA
$800002
A23.A1.UDS*
D8
AS*
UDS*
A23
A1
Alarma
NAND
SEL*
Encender ----> move.b #$01,$800002
Apagar ----> move.b #$00,$800002
Ejercicios recomendados
Apartado A-1)
E/S
EJERCICIO 4
reg_temp
reg_control
reg_estado
luz_alarma
encender
calor
frio
parar
equ
equ
equ
equ
equ
equ
equ
equ
$800000
$800001
$800001
$800002
$01
$40
$00
$80
inicio
cmp.b
blt
cmp.b
bgt
#50,reg_temp
calentar
#60,reg_temp
enfriar
comprobar_averia
btst
beq
#7,reg_estado
inicio
encender_alarma
move.b
bra
#encender,luz_alarma
encender_alarma
calentar
move.b
bra
#calor,reg_control
temperatura_ok
enfriar
move.b
#frio,reg_control
temperatura_ok
cmp.b
bne
move.b
bra
#55,reg_temp
temperatura_ok
#parar,reg_control
comprobar_averia
Ejercicios recomendados
E/S
EJERCICIO 4
Apartado A-2)
“Controlador
termostato”
Alarma
AVERIA*
encender_alarma
SEL*
stop
Ejercicios recomendados
E/S
Apartado B-1)
68000
IPL0*
EJERCICIO 4
AVERIA*
ALARMA*
IPL2*
IPL1*
IPL0*
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
ALARMA*
OR
IPL1*
AVERIA*
IPL2*
“1”
VPA*
FC0
FC1
FC2
NAND
Ejercicios recomendados
E/S
EJERCICIO 4
Apartado B-2)
Interrupción de nivel 1 25x4=100=$64
Interrupción de nivel 2 26x4=104=$68
A partir de la dirección $64 estará almacenada la dirección de comienzo de
la rutina de tratamiento de las interrupciones autovectorizadas de nivel 1
producidas por la señal “alarma”.
A partir de $68 estará la de las interrupciones de nivel 2 producidas por la
señal “avería”.
Ejercicios recomendados
E/S
EJERCICIO 4
Apartado B-2)
*** PROGRAMA PRINCIPAL
reg_temp
reg_control
luz_alarma
encender
calor
frio
parar
equ
equ
equ
equ
equ
equ
equ
$800000
$800001
$800002
$01
$40
$00
$80
inicio
bra
inicio
* Bucle sin fin
Ejercicios recomendados
E/S
EJERCICIO 4
Apartado B-2)
*** RUTINA DE TRATAMIENTO DE “ALARMA”
cmp.b
bgt
move.b
bra
enfriar
move.b
temperatura_ok cmp.b
bne
move.b
rte
#60,reg_temp
enfriar
* Si no salta es que hay que calentar
#calor,reg_control
temperatura_ok
#frio,reg_control
#55,reg_temp
temperatura_ok
#parar,reg_control
*** RUTINA DE TRATAMIENTO DE “AVERIA”
*Utilizamos el sistema del apartado A2
stop
Descargar