You are on page 1of 11

EXAMEN RESUELTO 28/06/96

Sistemas Electrónicos Industriales Avanzados


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 410 3
P  VRMS  I RMS  cos   I RMS    22.72W
VRMS  cos  2200.8

I m  I RMS  2  32.14A
iT(t)

 

1  I I
 I m  sen t dt  m   cos t  0  m  10.23A

I TAV 
2 0 2 
I TAV  12A
ELEMENTO SELECCIONADO: TIRISTOR 
VRWM  600v

T2
3
1 2

1 2
N

2 1 MOTOR AC
3
T1

R
1 2
2

1N4007
1

VCC
RTX

2 1

1N4007
VCC

R1
80537
Q1
R2
PX Q2

Vcc  VBEQ1 5  0.6


R1    1K1
I BEQ1 4  10 3
VOUTPC  VBEQ2 5  0.6
R2    4K4
I OUTMAX 1  10 3
Vcc  VCESat 5 1
R TX    20
I CQ1 200  10 3
PR TX  R TX  I 2CQ  0.8w

Apartado 2)
EPROM: 0000H  1FFFH (Memoria de programa).
RAM: 8000H  FFFFH (Memoria de datos).
ICM7170: 4000H  4011H (Memoria de datos).
LCD: 4080H  4083H (Memoria de datos).
PASO POR CERO
DATOS (D0-D7)

DEL SENSOR
DATOS (D0-D7) ADR (0-15)
2764 MS62256
31 39 2 19 11 10 10 11
EA/VP P0.0 D1 Q1 ADR0/ADR7 O0 A0 A0 D0

TH1

TH2
38 3 18 12 9 9 12
19 P0.1 37 4 D2 Q2 17 13 O1 A1 8 8 A1 D1 13
X1 P0.2 36 5 D3 Q3 16 15 O2 A2 7 7 A2 D2 15
P0.3 35 6 D4 Q4 15 16 O3 A3 6 6 A3 D3 16
18 P0.4 34 7 D5 Q5 14 17 O4 A4 5 5 A4 D4 17
X2 P0.5 33 8 D6 Q6 13 18 O5 A5 4 4 A5 D5 18
P0.6 32 9 D7 Q7 12 19 O6 A6 3 3 A6 D6 19
9 P0.7 D8 Q8 O7 A7 25 25 A7 D7
RESET 21 11 A8 24 24 A8
P2.0 22 1 C A9 21 21 A9
12 P2.1 23 OC 1 A10 23 23 A10
INT0 P2.2 24 27 VPP A11 2 2 A11
74AC573
14 P2.3 25 22 PGM A12 26 A12
AD0 P2.4 26 20 OE 1 A13
P2.5 27 CE A14
1 P2.6 28 20
2 P1.0 P2.7 22 CE
P1.1 ADR8-ADR15 OE
3 17 27

2
4 P1.2 RD 16 WE
5 P1.3 WR 29
6 P1.4 PSEN 30
ADR8-ADR15 7 P1.5 ALE/P
8 P1.6 13
P1.7 INT1

1
8031
ADR6
2 19 ADR 15
4 P0 P=Q ADR5 ADR7
6 P1
8 P2
11 P3
13 P4
15 P5 15
17 P6 1 Y 0N 14
P7 2 A Y 1N 13
3 3 B Y 2N 12
5 Q0 VCC 6 C Y 3N 11
7 Q1 4 G1 Y 4N 10
9 Q2 5 G2AN Y 5N 9
12 Q3 G2BN Y 6N 7
14 Q4 Y 7N
16 Q5 74138
18 Q6
Q7 ICM7170
1
G CS RD
WR
74LS688

ADR0-ADR4
1
3
2

3
1
3
1
INT Datos (D0-D7)
2 2 Int source

1
ADR0

ADR1

3
2

D0 D7

LCD
6
Apartado 3)
3.1. – ADCON0 (xx0x0000)  Valor del registro de control del convertidor.

(Inicialización) ANL ADCON0,#11010000B ;Canal 0, conversión simple,


;inicio conversión interna.

(Rutina) ViAGND =0 v ViREF=2.5 v 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) FFh,F7h (Mínimo ángulo de disparo)
ANGULO DB FCH,18H,F8H,2FH,.....

(INICIALIZACION)
MOV TMOD,#10H ;TMOD (0001XXXX)
MOV TL1,#F0H ;D8F0h  10 ms
MOV TH1,#D8H
SETB TR1 ;Poner en marcha el timer.

(RUTINA DE SERVICIO)
MUESTREO:
PUSH PSW
PUSH ACC ;Apilar registros.
---
---
MOV TL1,#F0H ;Recarga del temporizador.
MOV TH1,#D8H
LCALL CONVIERTE ;Utiliza la rutina de conversión.
MOV A,DATO ;Divide el dato convertido por
MOV B,#25 ;25 para saber en que rango se
DIV AB ;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) xx011101


Reg. de interrupción  (08H) x0001000

(INICIALIZACION)
-------------------
MOV DPTR,#4010H
MOV A,#08H
MOVX @DPTR,A ;Configuración interrupción.
MOV DPTR,#4011H
MOV A,#1DH
MOVX @DPTR,A ;Configuración Reg. Control.
MOV RAML,#FFH ;Inicializa el puntero a la Ram
MOV RAMH,#7FH ;externa.
--------------------

(RUTINA)
RELOJ:
PUSH PSW ;Apila registros.
PUSH ACC
PUSH DPTR
MOV DPL,RAML ;Actualiza puntero.
MOV DPH,RAMH
INC DPTR ;Incrementa una posición.
MOV A,DATO
MOVX @DPTR,A ;Guarda dato convertido en Ram.
MOV RAML,DPL ;Almacena nuevo puntero.
MOV RAMH,DPH
LCALL CONVIERTE_DATO ;Rutina conversión del valor
MOV DPTR,#4080H ;del A/D a códigos del LCD.
MOV R5,#80H
MOV R6,PRIMER_NUMERO ;Primer_Numero lo devuelve la
;rutina Convierte_Dato.
LCALL RUTINA ;Rutina esta en la página 220 del
MOV R5,#81H ;libro.
MOV R6,#2EH ;Código del puntero decimal.
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 RELOJ
REFERENCIA APILAR REGISTRO

APILA REG.
INICIO DE RECARGAR
CONVERSION TEMPORIZADORES

ACTUALIZAR
PUNTERO
RAM
¿HA NO CONVIERTE
TERMINADO?
ALMACENA
SI ULTIMO DATO
CONVERTIDO
CALCULO DEL
GUARDA DATO RANGO (ENTRE LOS
10 POSIBLES)

VISUALIZA
RETI
OBTENCION DEL
INDICE
DESAPILA REG.

RETIA TABLAS
ACCESO
DE ANGULO DE
DISPARO

ALMACENA DATO
DEL NUEVO
ANGULO DE
DISPARO

DESAPILA REG.

RETI
PASO_0

APILA REG.

ACTIVA
TEMPORIZADOR
0

DESAPILA REG.

RETI

TEMP_0

IDEM PAG.48
DEL LIBRO

RETI

You might also like