Exámen del 28/06/96.

Anuncio
EXAMEN RESUELTO
Sistemas
Electrónicos
Avanzados
28/06/96
Industriales
Para el control de presión de un circuito oleohidráulico se utiliza una bomba
accionada por un motor de alterna y un sensor de presión eléctrico. El motor se acciona
con un regulador de alterna y la regulación se realizará manteniendo la presión constate
a un valor de 0.5 Kg/cm2 (la presión máxima del sistema es de 1 Kg/cm2).
Las características de los elementos son las siguientes:
Motor:
P=4 KW  P  VRMS  I RMS  COS
Factor de potencia(cos )=0.8
Vnominal=220 v
Velocidad nominal=3000 r.p.m.
Sensor:
Lineal
Rango de presión: 01 Kg/cm2
Rango de tensión de salida: 02.5 v
Si el circuito de control se implementa con un microcontrolador 80C537, se
pide:
1. Diseñar la etapa de potencia, seleccionando los dispositivos de potencia más
adecuados de entre los que se muestran en la tabla adjunta, y la etapa de disparo
teniendo en cuenta los valores mostrados en ella.
VRWM
IT RMS/IT AV
IGM
tGT
TRIAC 1
400 v
20 A
150 mA
70 ms
TRIAC 2
400 v
7A
200 mA
100 ms
TIRISTOR 1
400 v
9A
150 mA
20 ms
TIRISTOR 2
600 v
12 A
200 mA
20 ms
2. Implementar la etapa de control con las siguientes especificaciones:
- Memoria EPROM de 8 Kbytes situada en la posición 0000H y siguientes.
- Memoria RAM de 32 Kbytes situada en la posición 8000H y siguientes.
- Reloj en tiempo real (ICM7170) situado en la dirección 4000H y siguientes.
- Visualizador LCD situado en la dirección 4080H y siguientes.
El sistema debe almacenar en la RAM externa y visualizar en el display del LCD
el valor de la presión cada segundo (realizando la temporizacióncon el RTC), y
realizar el control de presión con un periodo de muestreo de 10 ms, (mediante
utilización del Timer 1). El algoritmo de control realizará las siguientes
acciones: si la presión aumenta en 0.1 Kg/cm2, el ángulo de disparo se
incrementa en 18º (eléctricos) y viceversa. El ángulo de disparo correspondiente
a 0.5 Kg/cm2 es de 90º.
3. Escribir el código fuente correspondiente a:
3.1. Inicialización del convertidor A/D y rutina de conversión (sin utilizar la
interrupción A/D) teniendo en cuenta que la resolución de la medida debe ser
menor de 10 mV.
3.2. Inicialización del temporizador de muestreo (Timer1) y rutina de servicio de la
interrupción asociada.
3.3. Inicialización del ICM7170 y rutina de servicio de la interrupción asociada
(Temporización cada segundo).
4. Realizar el flujograma del programa completo.
AC
M
AC
C
Apartado 1)
P  VRMS  I RMS  cos   I RMS 
P
4103

 22.72W
VRMS  cos  2200.8
I m  I RMS  2  3214
. A
iT(t)

I TAV 

I
I
1 

I m  sen t dt  m   cos t  0  m  10.23A

2 0
2

I TAV  12A

VRWM  600v
ELEMENTO SELECCIONADO: TIRISTOR
T2
1
3
2
1
2
3
2
1
N
MOTOR AC
T1
R
1
2
2
1N4007
1
VCC
RTX
2
1
1N4007
VCC
R1
80537
Q1
R2
PX
Q2
R1 
R2 
Vcc  VBEQ1
I BEQ1
5  0.6
 1K1
4  10 3

VOUTPC  VBEQ2
R TX 
I OUTMAX
Vcc  VCESat
I CQ1


5  0.6
 4K4
1  10 3
5 1
 20
200  10 3
PR TX  R TX  I 2CQ  0.8w
Apartado 2)
EPROM:
RAM:
ICM7170:
LCD:
0000H  1FFFH
8000H  FFFFH
4000H  4011H
4080H  4083H
(Memoria de programa).
(Memoria de datos).
(Memoria de datos).
(Memoria de datos).
ADR (0-15)
TH1
EA/VP
19
X1
18
X2
9
RESET
12
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
INT0
14
AD0
1
2
3
4
5
6
7
8
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RD
WR
PSEN
ALE/P
INT1
39
38
37
36
35
34
33
32
2
3
4
5
6
7
8
9
21
22
23
24
25
26
27
28
11
1
D1
D2
D3
D4
D5
D6
D7
D8
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
19
18
17
16
15
14
13
12
11
12
13
15
16
17
18
19
ADR0/ADR7
C
OC
1
27
22
20
74AC573
O0
O1
O2
O3
O4
O5
O6
O7
VPP
PGM
OE
CE
MS62256
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
10
9
8
7
6
5
4
3
25
24
21
23
2
22
27
ADR8-ADR15
17
16
29
30
10
9
8
7
6
5
4
3
25
24
21
23
2
26
1
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
D0
D1
D2
D3
D4
D5
D6
D7
CE
OE
WE
11
12
13
15
16
17
18
19
20
13
1
ADR8-ADR15
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
2
2764
31
TH2
DEL SENSOR
2
4
6
8
11
13
15
17
3
5
7
9
12
14
16
18
1
P0
P1
P2
P3
P4
P5
P6
P7
P=Q
ADR6
8031
19
ADR5
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
ADR 15
ADR7
VCC
1
2
3
6
4
5
A
B
C
G1
G2AN
G2BN
Y 0N
Y 1N
Y 2N
Y 3N
Y 4N
Y 5N
Y 6N
Y 7N
15
14
13
12
11
10
9
7
74138
ICM7170
G
CS
1
3
2
1
1
3
INT
Int source
3
D0
D7
LCD
6
2
ADR1
2
ADR0-ADR4
74LS688
ADR0
PASO POR CERO
DATOS (D0-D7)
DATOS (D0-D7)
1
3
2
RD
WR
Datos (D0-D7)
Apartado 3)
3.1. – ADCON0 (xx0x0000)  Valor del registro de control del convertidor.
(Inicialización)
(Rutina)
ANL
ViAGND =0 v
ADCON0,#11010000B
ViREF=2.5 v
;Canal 0, conversión simple,
;inicio conversión interna.
DAPR=10000000
CONVIERTE:
MOV DAPR,#80H
JB
ADCON0.4,$
;Test a BSY.
MOV DATO,ADDAT
;Guarda el valor convertido.
RET
3.2. – Cambios de presión cada 0.1 Kg/cm2  10 cambios.
- Posibles valores del A/D: 00  FFh  Saltos cada 25.5
- 180º  10 ms  18º
(TABLA)
ANGULO
FFh,F7h (Mínimo ángulo de disparo)
DB
FCH,18H,F8H,2FH,.....
(INICIALIZACION)
MOV
MOV
MOV
SETB
TMOD,#10H
TL1,#F0H
TH1,#D8H
TR1
(RUTINA DE SERVICIO)
MUESTREO:
PUSH
PSW
PUSH
ACC
----MOV
TL1,#F0H
MOV
TH1,#D8H
LCALL
CONVIERTE
MOV
A,DATO
MOV
B,#25
DIV
AB
;TMOD (0001XXXX)
;D8F0h  10 ms
;Poner en marcha el timer.
;Apilar registros.
;Recarga del temporizador.
;Utiliza la rutina de conversión.
;Divide el dato convertido por
;25 para saber en que rango se
;encuentra y leer el ángulo de
;disparo.
;En A se encuentra el ïndice de la tabla. Hay que multiplicarlo por 2.
MOV
B,#2
MUL
AB
;Para menor presión, menor
MOV
R0,A
;ángulo de disparo  Veff
MOV
DPTR,#ANGULO
;Se accede a la tabla de ángulos
MOVC
A,@A+DPTR
;y se toma el valor con el que se
MOV
CARGA_TH0,A
;recargará el TEMP0 que es el
INC
R0
;que se encarga del ángulo de
MOV
A,R0
;disparo.
MOVC
A,@A+DPTR
MOV
CARGA_TL0,A
-----POP
ACC
POP
PSW
RETI
3.3 – Reg. de control  (1DH)
Reg. de interrupción  (08H)
(INICIALIZACION)
------------------MOV
MOV
MOVX
MOV
MOV
MOVX
MOV
MOV
-------------------(RUTINA)
RELOJ:
PUSH
PUSH
PUSH
xx011101
x0001000
DPTR,#4010H
A,#08H
@DPTR,A
DPTR,#4011H
A,#1DH
@DPTR,A
RAML,#FFH
RAMH,#7FH
PSW
ACC
DPTR
;Configuración interrupción.
;Configuración Reg. Control.
;Inicializa el puntero a la Ram
;externa.
;Apila registros.
MOV
MOV
INC
MOV
MOVX
MOV
MOV
LCALL
MOV
MOV
MOV
DPL,RAML
DPH,RAMH
DPTR
A,DATO
@DPTR,A
RAML,DPL
RAMH,DPH
CONVIERTE_DATO
DPTR,#4080H
R5,#80H
R6,PRIMER_NUMERO
;Actualiza puntero.
;Incrementa una posición.
;Guarda dato convertido en Ram.
;Almacena nuevo puntero.
;Rutina conversión del valor
;del A/D a códigos del LCD.
;Primer_Numero lo devuelve la
;rutina Convierte_Dato.
;Rutina esta en la página 220 del
;libro.
;Código del puntero decimal.
LCALL
RUTINA
MOV
R5,#81H
MOV
R6,#2EH
LCALL
RUTINA
MOV
R5,#82H
MOV
R6,SEGUNDO_NUMERO;Segundo_número lo devuelve
LCALL
RUTINA
;la rutina Convierte_Dato.
----------------------POP
DPTR
POP
ACC
POP
PSW
RETI
Apartado 4)

Flujograma del programa:
PRESION
INICIALIZACION
REGISTROS
PRIORIDAD
INTERRUPCIONES
HABILITACION
INTERRUPCIONES
BUCLE SIN FIN
MUESTREO
CONVIERTE
TENSION DE
REFERENCIA
APILAR REGISTRO
INICIO DE
CONVERSION
RECARGAR
TEMPORIZADORES
¿HA
TERMINADO?
NO
CONVIERTE
SI
GUARDA DATO
RETI
CALCULO DEL
RANGO (ENTRE LOS
10 POSIBLES)
OBTENCION DEL
INDICE
ACCESO A TABLAS
DE ANGULO DE
DISPARO
ALMACENA DATO
DEL NUEVO
ANGULO DE
DISPARO
DESAPILA REG.
RETI
RELOJ
PASO_0
APILA REG.
APILA REG.
ACTUALIZAR
PUNTERO RAM
ACTIVA
TEMPORIZADOR 0
ALMACENA
ULTIMO DATO
CONVERTIDO
DESAPILA REG.
RETI
VISUALIZA
TEMP_0
DESAPILA REG.
RETI
IDEM PAG.48
DEL LIBRO
RETI
Descargar