Memoria Reservada
para Interrupciones
Este trabajo consiste en el diseño de un circuito de lazo cerrado con aplicaciones industriales con especial énfasis en el ahorro de energía, para su implementación se utiliza al microcontrolador INTEL 8748 como dispositivo de retroalimentación, el cuál continuamente esta midiendo el desfasamiento entre la tensión y la corriente de cargas inductivas, si se sale de ciertos límites programados por el usuario se corrige inmediatamente el factor de potencia. El principio de funcionamiento utiliza básicamente la conexión y desconexión de bancos de capacitores conmutados por medio de dispositivos tiristores, el valor de la capacitancia a usar es calculada por el circuito electrónico de acuerdo a la potencia que está consumiendo el sistema, el microcontrolador 8748 toma la decisión de cuantos capacitores conectar ó desconectar según sea el valor del factor de potencia detectado en la carga inductiva.
This work consists in the design of a closed loop circuit with industrial applications with special emphasis in energy saving, for its implementation is used the chip INTEL 8748 as feedback device, the which continually is measuring the phase among the tension and the current in inductive charges, if is left of certain limits programmed by the user is amended immediately the power factor. The operation principle uses basically the connection and disconnection of banks of capacitors commuted by means of devices tiristores, the value of the capacitance to use is calculated by the electronic circuit according to the power that it is consuming the system, the chip 8748 takes the decision of how much capacitors to connect or to disconnect according to will be the value of the power factor detected in the inductive load.
Se desarrolló un programa en lenguaje ensamblador [1] que rastrea las entradas T0 y T1 del 8748. Midiendo el desfasamiento angular de estas terminales se mide el factor de potencia F.P. [2,3]
Las unidades utilizadas no son medidas en unidades de tiempo, sino en unidades que utiliza el timer interno del microcontrolador, (timer_counts), estas cuentas no equivalen precisamente a una unidad de tiempo, sino que dependen de la frecuencia del cristal que utiliza el diseño del circuito.
El sistema es programable ya que se le pueden indicar los límites mínimo y máximo del F.P., con los que debe actuar ya sea conectando o desconectando los bancos de capacitores, además para evitar disparos en falso se comprueba el caso de que se haya salido de estos límites, y permanece así por un cierto periodo de tiempo, previamente programado, hasta entonces toma la decisión de activar o desactivar un banco de capacitores [5], véase Figs. 1 y 2, este tiempo es el que se mide con unidades "timer_counts", en la Fig. 3 se muestra el diagrama esquemático del Corrector del Factor de Potencia.


Figura 1. Sensores y bancos de capacitores. Figura 2. Control de los bancos de capacitores.
Este programa controla el factor de potencia de un sistema, ya sea para las necesidades de un taller, de una industria o de una simple carga inductiva. Este código solamente funciona en los chips 8048AH, 8748H, 8049AH, y 8749H de INTEL [4].
MIN = 05H Equivale al mínimo desfasamiento permitido FP=0.985
MAX = 0EH Equivale al máximo desfasamiento permitido FP=0.866
LIM = 2BH Equivale a los 90 grados eléctricos
VECES = 3CH El número de veces que se verifica un evento para evitar ruidos o falsas lecturas.
2.2 Memoria Reservada para Interrupciones
goto: 0000 04 10 jmp 010h ;goto main
main: 0010 bf 00 mov e7, #00h ;clr p2
0012 ff mov a,r7 ;clr p2
0013 3a outl p2,a ;clr p2
main1: 0014 14 40 call 040h ;call cuenta
0016 42 mov a,t ;t>min then main2
0017 97 clr c ;t>min then main2
0018 a7 cpl c ;t>min then main2
0019 37 cpl a ;t>min then main2
001a 13 05 addc a,#05h ;t>min then main2
001c e6 20 jnc 20h ;t>min then main2
001e 14 a0 call 0a0h ;call capac
main2 : 0020 42 mov a.t ;t<max then main1
0021 37 cpl a ;t<max then main1
0022 03 0e add a,#0eh ;t<max then main1
0024 f6 14 jc 14h ;t<max then main1
0026 14 70 call 070h ;call induc
0028 04 14 jmp 014h ;jmp main1
Rastrea las ondas de tensión y corriente y determina el desfasamiento entre estas
cuenta: 0040 65 stop tcnt ;reset timer
0041 27 clr a ;reset timer
0042 62 mov t,a ;reset timer
cuen1: 0043 36 43 jto 43h ;espera señal de tensión
cuen2 : 0045 26 45 jnto 45h ;espera señal de tensión
0047 55 strt t ;arranca el timer
cuen3: 0048 26 40 jnto 40h ;elimina ruido
004a 42 mov a,t ;t >= 90 then cuen
004b 37 cpl a ;t >= 90 then cuen
004c 03 2b add a,#2bh ;t>= 90 then cuen
004e e6 52 jnc 52h ;t >= 90 then cuen
0050 46 48 jnt1 48h ;espera señal de corriente
cuen4 : 0052 65 stop tcnt ;detiene el timer
0053 42 mov a,t ;t< 90 then cuen
0054 37 cpl a ;t< 90 then cuen
0055 03 2b add a,#2bh ;t< 90 then cuen
0057 f6 5b jc 5bh ;t< 90 then cuen
0059 27 clr a ;clear timer
005a 62 mov t,a ;clear timer
cuen5: 005b 93 retr ;
Verifica que el sistema tenga un bajo F.P., durante unos cuantos segundos antes de conectar un banco de capacitores.
induc: 0070 ba 01 mov r2, #01h ;init contador
ind1: 0072 14 40 call 040h ;call cuenta en página 0
0074 42 mov a,t ;t<max then ind2
0075 37 cpl a ;t<max then ind2
0076 03 0e add a,#0eh ;t<max then ind2
0078 f6 89 jc 89h ;t<max then ind2
007a 1a inc r2 ;
007b 23 3c mov a,#03ch ;r2<veces then ind1
007d 97 clr c ;r2<veces then ind1
007e a7 cpl c ;r2<veces then ind1
007f 37 cpl a ;r2<veces then ind1
0080 7a addc a,r2 ;r2<veces then ind1
0081 e6 72 jnc 72h ;r2<veces then ind1
0083 ff mov a,r7 ;rotar p2
0084 97 clr c ;rotar p2
0085 a7 cpl c ;rotar p2
0086 f7 rlc a ;rotar p2
0087 af mov r7,a ;rotar p2
0088 3a outl p2,a ;rotar p2
ind2: 0089 93 retr ;
Verifica que el sistema tenga un alto F.P., durante unos cuantos segundos antes de desconectar un banco de capacitores.
capac: 00a0 ba 01 mov r2,#01h ;init contador
cap1: 00a2 14 40 call 040h :call cuenta en página 0
00a4 42 mov a,t ;t>min then cap2
00a5 97 clr c ;t>min then cap2
00a6 a7 cpl c ;t>min then cap2
00a7 37 cpl a ;t>min then cap2
00a8 13 05 addc a,#05h ;t>min then cap2
00aa e6 b9 jnc 0b9h ;t>min then cap2
00ac 1a inc r2 ;
00ad 23 3c mov a,#03ch ;r2<veces then cap1
00af 97 clr c ;r2<veces then cap1
00b0 a7 cpl c ;r2<veces then cap1
00b1 37 cpl a ;r2<veces then cap1
00b2 7a addc a,r2 ;r2<veces then cap1
00b3 e6 a2 jnc 0a2h ;r2<veces then cap1
00b5 ff mov a,r7 ;rotar p2
00b6 77 rr a ;rotar p2
00b7 af mov r7,a ;rotar p2
00b8 3a outl p2,a ;rotar p2
cap2: 00b9 93 retr ;

El trabajo que se presenta utiliza tres bancos de capacitores, contiene una rutina de programación que detecta un F.P. inductivo ó en su defecto un F.P capacitivo, se realizaron cálculos de los bancos de capacitores, de los sensores, de los timers_counts y se observó el efecto deseado en un cosenofímetro de laboratorio, el desarrollo del sistema corrector del factor de potencia, puede tener algunas modificaciones, en los casos en que se requiera variar parámetros tales como el número de bancos de capacitores utilizados, o los limites de control del factor de potencia.
[1] J. Terry Godfrey, Lenguaje Ensamblador para Microcomputadoras IBM, Prentice Hall, México1991.
[2] David E. Johnson, Johny R. Johnson, Análisis Básico de Circuitos Eléctricos, Prentice Hall, México1989.
[3] Joseph A. Edminister, Circuitos Eléctricos (Teoría y 50 Problemas Resueltos), Mac Graw Hill, México 1970.
[4] Intel Corporation, Embedded Microcontrollers and Processors Vols, 1 and 2, intel, 1993.
[5] Boylestad y Nashelsky, Teoría Electrónica de Circuitos 4a Edición, Prentice Hall
Diseñador HTML ( Narciso Gonzalez Felix )