ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
DEPARTAMENTO DE ELECTRÓNICA Y CONTROL
Medidor De Factor De Potencia
Para Ondas Distorsionadas
En Base Al Microcontrolador
0052AH-BASIC
TESISdirigida a obtener el título de
Ingeniero Eléctricoespecializado en Electrónica y Control
Realizada por;Julio Ernesto Palacio Fierro
Quito, EcuadorDiciembre. 1994
A todas aquellas personasque ponen un grano más de arena
en nombre del desarrollo tecnológicodel PAÍS
Deseo expresar mi agradecimientoa todas las personas que colaboraron
en la elaboración de este trabajo,en especial al ingeniero Bolívar Ledesmacuya asesoría contribuyó notablemente
a elevar la calidad del mismo
Certifico que esta tesisfue realizada en sutotalidad por el señorJulio E, Palacio Fierro
ING. BOmVAR LEDESMADIRECTOR DE TESIS
PREFACIO
Debido a la creciente utilización de elementos electrónicos en el
control de sistemas industriales, las señales de voltaje y corriente que
alimentan a estos sistemas tienen un alto contenido armónico, de manera que
los medidores analógicos de energía, potencia y factor de potencia presentan
lecturas incorrectas al no ser capaces de medir componentes de alta
frecuencia de las señales de la red. Es por esto gue debe pensarse en la
utilización de aparatos digitales que puedan medir de manera exacta y precisa
estos parámetros usando algoritmos matemáticos. Estos aparatos están
encaminados a reemplazar a los indicadores y registros actuales con el objeto
no solo de tener equipos más precisos, sino el de servir de elementos
primarios para la implementación posterior de un sistema de control del
factor de potencia y la distorsión armónica total en las redes de
alimentación de sistemas industriales.
Recientemente se diseñó un "Sistema De Desarrollo De Programas De
Control Basado En El Mlcrocontrolador INTEL 8052AH-BASIC" en el área de
Electrónica de Potencia. No podía dejarse de lado los trabajos realizados
anteriormente, por consiguiente, ésta constituye una de las aplicaciones
basadas en este sistema con el objeto de evaluarlo. No obstante, el código
realizado en ensamblador puede trasladarse a otro microcontrolador que tenga
el mismo set de instrucciones de manera que, creando las subrutinas de punto
flotante que se tomó del BASIC-52, se pueda tener un equipo de
características parecidas en un sistema basado en otro microcontrolador.
Esto es posible gracias a gue el programa tiene una estructura que separa las
operaciones matemáticas de punto flotante y las transferencias hacia y desde
la pila (STACK) del resto del programa.
Adicionalmente, este equipo evalúa el uso de las técnicas
matsTáticas conocidas para hallar el factor de pobencia y la composición
armónica de las señales de una red, evaluación que tiene una aplicación
inmediata con la disponibilidad de ' un aparato que permita facilitar el
análisis efectuados en prácticas realizadas en el laboratorio de Electrónica
de Potencia. En un futuro, este equipo mejorado podría ser aplicado en
sistemas industriales.
JULIO E. PALACIO
TABLA DE CONTENIDO
INTRODUCCIÓN 9
1.1. Importancia de la medición del factor de potencia. 9
1.2. Técnicas matemáticas para analizar una red monofásica 14
1.3. Descripción del sistema a diseñarse: especificaciones y alcance. 20
1.4. Descripción del sistema de desarrollo basado en el microcontroladorINTEL 8052AH-BASIC 21
DISEÑO DEL HARDWARE 25
2.1. Modularización del Hardware. . 25
2.2. Módulo de adquisición de datos. 26
2.3. Módulo de visualización de resulíados. 32
2.4. Módulo de comunicación 34
2.5. Módulos adicionales. 37
2.5.1. Conexión entre tarjetas . 38
2.5.2. Fuente de polarización. 38
2.5.3. Postes de identificación 40
2.5.4. Construcción de los circuitos impresos. 41
2.5.5. Diseño de la cubierta exterior. 41
DISEÑO DEL SOFTWARE 43
3.1. Modularización del Software 43
3.2. Rutinas.de Inicialización 48
3.2.1. Arranque del microcontrolador 48
3.2.2. Inicialización del LCD . 51
3.2.3. Disposición del mapa de memoria 54
3.3. Módulo de adquisición, de datos 643.4. Módulo de factor de potencia. 72
3.5. Módulo de análisis de armónicas 77
3.6. Módulo de visualización de resulíados y comunicación. . 89
3.7. Centro de llatnadas a rutinas. 105
PRUEBAS REALIZADAS AL SISTEMA DISEÑADO 108
4.1. Pruebas de operación del equipo. 108
4.2. Pruebas de precisión 115
CONCLUSIONES Y RECOMENDACIONES 166
5. l. Análisis del sistema. . 166
5.1.1. Análisis técnico 1665.1.2. Análisis de costos. '170
5.2. Conclusiones y recomendaciones 173
APÉNDICES 178
CAPITULO 1
INTRODUCCIÓN
1.1.Importancia de la medición del factor de poten-
cia.
Antes de conocer la importancia de la medición del factor de
potencia, es necesario saber que significado tiene este término.
Budeanu, en 1927, generalizó la ecuación de potencia de la
fuente en sistemas lineales con voltaje y corriente sinusoidales a circui-
tos con formas de onda periódicas no sinusoidales. El definió la potencia
reactiva cerno
cu
Q.B- £ Wn SÍtl(|)n71=1
donde se menciona a Un , el voltaje eficaz de la armónica n de la señal, a
In , la corriente eficaz de la misma y al ángulo de desfase entre ambas
armónicas.
Además, definió una nueva cantidad, la potencia de distorsión,
definida como
i_/>2_. 02*¿-B
en la que ésta es definida en función de la potencia aparente S, de la po-
tencia activa P y de la potencia reactiva QQ.
A pesar de las objeciones de Fryze, en 1931, las cuales se re-
lacionaban principalmente con la necesidad de realizar una descomposición
de armónicas de voltaje y corriente antes de que la potencia reactiva pueda
ser calculada, las definiciones de Budeanu han sido difundidas a través de
publicaciones y libros de texto académicos en ingeniería eléctrica^.
IMPORTANCIA DE LA MEDICIÓN DEL FACTOR DE POTENCIA
Pero, ¿qué significado tienen todas estas magnitudes?
Desde el punto de vista del factor de potencia cualquier siste-
ma eléctrico: con impedancias de carga lineales o no lineales y fuentes de
voltaje sinusoidales o no sinusoidales, contiene dos parámetros básicos: la
potencia activa, real o media P y la potencia aparente S, que es el produc-
to de los valores eficaces de voltaje y corriente.
Los parámetros S y P son medibles usando instrumentos estándar
que son ligeramente diferentes en naturaleza entre si. La potencia real P
es una cantidad física que satisface el Principio de Conservación de E-
nergía y es la potencia asociada con la suma de las potencias individuales
de los diferentes componentes del circuito. En cambio, la potencia apa-
rente no tiene intrísecamente una naturaleza física; aunque su dimensión se
manifiesta en volt-amperios, es solo una manera de definir la capacidad
máxima de transferencia de energía de un sistema. No existe algo como la
conservación de potencia aparente y la suma de las potencias reactiva y
aparente de los componentes de un circuito, en general, no corresponden a
los valores totales del sistema.
El objeto de la corrección del factor de potencia, definido
como la relación P/S cuyo valor óptimo es la unidad, es incrementar el va-
lor de la potencia real al valor de la potencia aparente o disminuir ésteo
ultimo valor al de la potencia real .
El desarrollo de aparatos de conmutación en base a semiconduc-
tores, los cuales son en la actualidad muy eficientes y de alta potencia, y
sus aplicaciones al control de grandes máquinas eléctricas y procesos in-
dustriales, ha impuesto algunos problemas en la producción y distribución
de energía eléctrica, particularmente en la medición del flujo de energía y
el uso óptimo de redes de transmisión. No solo es necesario conocer con
precisión la potencia activa que se consume bajo condiciones no sinusoi-
dales, sino que se debe determinar y controlar la corriente reactiva para
minimizar las pérdidas producidas en la red.
El control de la potencia reactiva y del voltaje juega un papel
muy importante en la seguridad de los modernos sistemas de potencia. Es
imperativo proveer al consumidor un nivel de voltaje constante y es indis-
pensable que las características del voltaje del sistema deban ser mante-
Página 10
IMPORTANCIA DE LA MEDICIÓN DEL FACTOR DE POTENCIA
nidas en un ancho de banda deseado en beneficio de la estabilidad del
sistema de potencia. El desafio actual está dirigido hacia la eliminación
de las violaciones de estas restricciones del sistema. Así, controlandoo
fuentes de potencia reactiva se logran los siguientes beneficios0:
*- Reducción de las pérdidas de potencia real en el sistema.
>~ Incremento en la seguridad del sistema, manteniendo la posibilidadde reservas de potencia reactiva para emergencias.
>- Reducción de las diferencias de voltaje entre los nodos del siste-ma, obteniendo una mejor operación del mismo.
Pero no solo la potencia reactiva presenta problemas en los
sistemas eléctricos. La distorsión presente en las líneas de transmisión
es otra causa adicional. La importancia de esta distorsión se incrementa
debido a tres factores principales:
>- El incremento de aplicaciones de electrónica de potencia que tie-nen una característica voltaje—corriente no lineal. Estas aplica-ciones aumentan la generación de armónicas en el sistema depotencia.
^ El incremento de aplicaciones de bancos de capacitores shunt parala corrección del factor de potencia y la regulación de voltaje.Estos bancos incrementan las condiciones para resonancia la cualaumenta los niveles de armónicas.
>~ El descenso de los márgenes de tolerancia de los equipos de maneraque éstos son más susceptibles a las armónicas de voltaje y cor-riente .
El efecto de la distorsión puede ser dividida en tres cate-
gorías generales4:
Stress del alelante debido a ejfectos de Bobrevoltaje
El sobrevoltaje puede ser esperado como el comienzo de la for-
mación de una corona, degradación del aislante y ruptura. Los capacitores
aparecen como los equipos de carga más sensitivos ya gue solo voltajes pico
en régimen estable limitados a valores menores al 120% del voltaje pico
indicado en placa, previenen la generación de una corona,
Adicionalmente, las armónicas han causado fallas en los compo-
nentes de filtros en línea usados por las líneas de potencia de sistemas
Página 11
IMPORTANCIA DE LA MEDICIÓN DEL FACTOR DE POTENCIA
portadores. Un estudio británico indica fallas en los cables de 33kV debi-
do a armónicas.
Efectos de calentamiento
El flujo de armónicos de corriente provoca el calentamiento
excesivo en todo equipo. Este calentamiento manifestado canto un incremento
de temperatura del equipo lleva a una reducción de la vida del aislante.
Cargas RL como lámparas incandescentes y resistencias para ca-
lentadores incrementan su temperatura significativamente ante la presencia
de distorsión del voltaje. La lámpara incandescente es la carga más sensi-
tiva a estos cambios, los cuales se traducen en un acortamiento de la vida
útil del bulbo. Esto no sucede con las lámparas de arco, como éstas nece-
sitan de un bal astro para mantener el punto de operación en una región se-
gura para todas las condiciones del voltaje de línea y como éste último
actúa como limitador de corriente, se necesitan de grandes factores de dis-
torsión para alterar el funcionamiento de la lámpara.
En los motores y generadores, las pérdidas por armónicas son
relativamente pequeñas e inclusive confundidas con pérdidas en los devana-
dos del estator o del rotor. Sin embargo, dado que la frecuencia del rotor
a cualquier armónica es igual a la del estator, se puede presentar un
torque oscilatorio que pueda causar fatiga en el rotor, sobre todo en tur-
binas de generadores.
En transformadores los efectos de las armónicas tienen dos
facetas: por un lado, las armónicas de corriente causan un incremento en
las pérdidas del cobre y en el flujo concatenado, por el otro, se presenta
stress en el aislante y una posible resonancia entre los devanados del
transformador y las capacitancias de línea. El efecto general se traduce
en un incremento en la temperatura del transformador. Debería notarse que
las pérdidas del transformador causadas por armónicas de voltaje o de cor-
riente dependen de la frecuencia, de manera que, las componentes de más
alta frecuencia causan mayor calentamiento que las de menor frecuencia.
Este aspecto del efecto de los armónicos en los transformadores no ha sido
tomado en cuenta correctamente en las normas de transformadores.
Página 12
IbíPORTANCXA DE LA MEDICIÓN DEL FACTOR DE POXENCXA
El efecto de las armónicas en un banco de capacitores causa
calentamiento adicional y pérdidas. Además, el capacitor por sí mismo
tiene una fuerte influencia en las armónicas del bus de voltaje, especial-
mente cuando existen condiciones de resonancia.
Disrupción
La disrupción se define como la operación anormal o falla del
equipo debido a distorsión del voltaje o de la corriente con efectos dis-
tintos a los térmicos o de aislamiento. Estos efectos se clasifican como
resultado de la operación del equipo bajo condiciones distorsionadas a di-
ferencia de la operación del equipo bajo formas de onda no distorsionadas.
Los efectos de la disrupción abarcan a un amplio rango de equi-
pos y generalmente no están bien entendidos en la actualidad. Sin embargo,
a continuación se trata de explicar algunos de ellos.
Un significante nivel de corrientes de armónicas provocan cam-
bios en la característica corriente-tiempo de los fusibles. Esto puede ser
particularmente distinguible durante fallas de baja magnitud.
También alteran la operación normal de los relés de protección.
La presencia excesiva de secuencia cero de la tercera armónica de corriente
causa falsos disparos. Según un estudio canadiense existen diversas fallas
en los distintos tipos de relés que varían de fabricante a fabricante, no
obstante, los niveles de armónicos requeridos para causar mal funcionamien-
to de los relés son mayores que los de otros equipos.
Cuando se usa conversores de energía o cargas electrónicas, la
distorsión externa influye en la eficiencia ya sea del conversor o de la
carga. La severidad de estos efectos se complica por el hecho de que los
conversores son también una fuente de distorsión. La disrupción afecta al
conversor al provocar falsos ángulos de disparo ocasionados por errores en
el sistema de control y fallas en los tíristores o transistores debido a
altos di/dt, dv/dt, sobrevoltaje o sobrecalentamiento. En la actualidad,
muy poca documentación evidencia la naturaleza exacta de la interacción
entre fuente de poder y carga de eshado sólido por lo que existe la necesi-
dad de un posterior estudio en esta área.
Página 13
2ECNICAS MATEMÁTICAS PARA ANALIZAR UNA. RED
Los instrumentos de medida también se ven afectados por los
armónicos de corriente, particularmente si existen condiciones de resonan-
cia en los circuitos. Los dispositivos de discos de inducción como medi-
dores de energía y relés de sobrecorriente son diseñados para medir solo la
fundamental por lo que la presencia de armónicos causa errores. Un estudio
canadiense indica gue un 20% de contenido de la quinta armónica puede pro-
ducir un error de entre un 10 y un 15% en un transductor de potencia de dos
elementos y 3 fases.
En un estudio realizado sobre la influencia de las armónicas en
medidores de energía se llegó a las siguientes conclusiones:
>~ El trazado de una curva de respuesta de frecuencia muestra erroresrelativamente grandes para las armónicas individuales de alta fre-cuencia .
>- A causa de la no linealidad del medidor, el registro de múltiplescomponentes es diferente a la suma de registros de las mismas com-ponentes individualmente.
>- Para consideraciones justas de tarifas, no solo lo magnitud sinotambién lo dirección del flujo de las armónicas es importantepuesto que el error está determinado por las direcciones relati-vas .
*" Con una onda sinusoidal de voltaje, el error registrado es causadopor la no linealidad de los circuitos magnéticos y es relativa-mente pequeña a menos que la tercera armónica de corriente seagrande.
>- En casos donde tanto el voltaje corno la corriente sean distorsio-nados, el error es relativamente grande incluso para un pequeñofactor de distorsión de voltaje.
Dados estos efectos de la potencia reactiva y de la distorsión
armónica total, es necesario el diseño de un aparato que mida el factor de
potencia y la distorsión armónica sin que presente un mayor error debido a
la presencia de armónicas de distintas frecuencias.
1.2.Técnicas matemáticas para analizar una red mo-
nofásica.
Para poder definir que técnicas se pueden usar para medir los
parámetros de una red monofásica, es necesario, además de conocer el sig-
Página 14
TÉCNICAS MATEMÁTICAS PARA ANALIZAR UNA RED
nificado de los términos que se van a medir, definir la potencia reactiva y
su relación con la aparente.
La potencia reactiva/ en sist&was sinusoidales, es una cantidad
aditiva la cual no solo representa la potencia transmitida no usada y la
medida en la cual la potencia del sistema no es consumida, sino que está
directamente relacionada con las características del equipo que mejorará el
factor de potencia hasta la unidad".
Incluso, la potencia reactiva aparece como si debido al fenóme-
no de acumulación de energía en campos eléctricos o magnéticos de los com-
ponentes reactivos de la carga, fuera una parte de la energía que es
transmitida hacia adelante y atrás entre la carga y la fuente. Sin embar-
go, en sístefnas no sinusoidales, incluso cuando la potencia reactiva es
nula, esta transmisión de energía puede existir. Esto lleva a la conclu-
sión qi-ie tanto la potencia reactiva corno la potencia de distorsión son
afectadas por dicha transmisión de energía y conl1eva erróneamente a que
ninguna de las dos potencias se relaciona distintamente a este fenómeno el
cual es responsable del incremento de la potencia aparente. Es por esta
razón que el modelo de Budeanu no es útil para mejorar el factor de poten-
cia, inclusive, la compensación de la potencia reactiva de Budeanu no afec-
ta a la potencia aparente de manera explícita ya que el cambio en los
valores de la potencia reactiva provoca cambios en la potencia de distor-
sión .
Las potencias reactiva y de distorsión de Budeanu no poseen los
atributos que puedan relacionar los fenómenos de potencia en circuitos de
formas de onda no sinusoidales. En la referencia [ ] se propone descompo-
ner la corriente en una componente activa, dos reactivas (inductiva y ca-
pacitiva) y una residual de manera que se pueda compensar directamente la
corriente reactiva capacitiva (o inductiva) con un elemento pasivo; sin
embargo, para realizar una más carpíeta compensación se necesita más que
elementos pasivos reactivos, es decir, no se puede compensar con un método
basado en la cancelación total o parcial de Q y D simultáneamente, de igual
manera, las técnicas de análisis de Fourier no pueden ser desechadas para
analizar el efecto de corrientes no sinusoidales en Sistemas de Potencia.
Los mismos autores de esta investigación afirman que se puede llegar a una
contradicción en ciertas condiciones en las que la compensación de una com-
ponente incrementa la compensación requerida de la otra. En todo caso es
Página 15
TÉCNICAS MATEMÁTICAS PARA ANALIZAR UNA RED
una alternativa válida al método de Fourier y fue utilizada anteriormente
en una tesis en 1984y.
El análisis presentado en la referencia [ ] muestra que a pe-
sar de la instrumentación más simple, el análisis en el dcminio del tiempo
no es tan útil como el del dominio de la frecuencia que incluso provee no
solo una interpretación distinta sino de varios métodos para mejorar el
factor de potencia. No obstante, este análisis requiere todavía de un ma-
yor estudio en lo que se refiere a mediciones de algunas cantidades.
Como conclusión, se puede decir que no obstante que el modelo
de Budeanu ha sido criticado desde un inicio, un análisis detallado no ha
sido efectuado en este sentido. Es más, por varias razones, ninguno de los
otros modelos ha ganado un reconocimiento general y el uso del modelo de
Budeanu ha llegado a ser el más ampliamente usado a pesar de sus inconve-
nientes .
Por todo esto, se aplicará el procedimiento matemático general
paira hallar el factor de potencia y la distorsión armónica total que se
basa en un conjunto de ecuaciones que se originan de las definiciones bási-
cas de valor eficaz y potencia de señales, por lo que partiendo de éstas la
forma de onda de voltaje y de corriente no interesa para conocer los prin-
cipales parámetros de la red, el orden para seguir este procedimiento es el
siguiente:
ftH-71
s
De estas fórmulas, v e ± son los valores instantáneos de vol-
taje y corriente, V e J son los valores eficaces correspondientes, P y S
son las potencias real y aparente mientras que fp y JHD son el factor de
potencia y la distorsión armónica total que caracterizan a la red. Cabe
destacarse que la distorsión armónica puede ser de voltaje o de corriente y
Página 16
TÉCNICAS MATEMÁTICAS PARA ANALIZAR UNA. RED
que correaran el valor eficaz F de la variable de interés con el correspon-
diente a su primera armónica F^.
Ahora, se debe tener una ecuación más conveniente para expresar
el cálculo del valor eficaz de una señal. La fórmula original del valor
eficaz es
asumiendo gue el número de muestras tomadas respecto a la frecuencia de la
fundamental de la señal que se quiere medir es suficiente como para reem-
plazar la integral por un sumatorio manteniendo una exactitud adecuada
yto+n-bt 2. A/,j/2... to v n/
T
como el tiempo de muéstreo es el mismo a lo largo de toda la muestra, éste
sale del sumatorio y, por otro lado, el periodo de la señal es n veces el
período de muestreo. Con estas consideraciones la fórmula quedaría
2
n.- A/
2V
con lo que se simplifica notablemente la fórmula al solo sumarse los va-
lores individuales al cuadrado y dividirse para el número de muestras tona-
das.
Esta fórmula puede aplicarse para hallar el voltaje eficaz, la
corriente eficaz y la potencia activa, cuya fórmula sería:
Una vez hallados el voltaje y la corriente eficaces, se puede
calcular la potencia aparente y, como ya se conoce la potencia activa, se
puede encontrar el factor de potencia.
Ahora, se debe realizar un análisis de armónicas; la Transí or-
nada De Fourier es la principal herramienta para obtener los espectros de
Página 17
TÉCNICAS MATEMÁTICAS PARA ANALIZAR UNA RED
'i
potencia y fase de una señal y, de esta forma, conocer la conposición
armónica de las señales de voltaje y corriente. La transformada de Fourier
tiene su fundamento en la expansión de una señal en Series de Fourier cuya
representación es:
x(() = Co-\- Ci sin [v\>( + 0] J + C2sin (2w( + e2J + ... + Cnsw(m\>(+ 6J + ...
-*- donde los coeficientes Cn y los ángulos de desfase Qn pueden ser calculados
de la siguiente forma:
2 fran - — \
El espectro de Fourier representa en un gráfico la magnitud y
la fase de las armónicas de la señal al número de armónica n.
Guando se requiere trabajar con datos discretos, es necesario
reemplazar las integrales por sumatorios y reconocer que los límites de los
sumatorios no son infinitos. Para ello, se considera que se debe recoger
las TV muestras en una duración finita de tiempo T (que por facilidad es el
período de la fundamental de la señal). Estas muestras deben ser igual-
mente espaciadas h segundos.
Como se tiene que x(t) y C'n representan dos ecuaciones comple-
jas (puesto que las funciones trigonométricas son funciones exponenciales
complejas) que dependen una de la otra, es posible, realizando una sustitu-
ción y aplicando relaciones de ortogonalidad para frecuencias complejas,
obtener formas simplificadas de estas ecuaciones de manera que las series
x¿ (valores discretos correspondientes a la función x(t)) y Xn (valores
correspondientes a los coeficientes C ) sean simétricas para valores posi-
tivos y negativos de N incluido el cero. Así se puede escribir:
Página 18
TÉCNICAS MATEMÁTICAS PARA ANALIZAR UNA RED
x/=EArrtexp(/^);z=0 -A
i,n ' O, 1, 2, ...,(N-1)
Estas ecuaciones representan la Transformada Discreta de Fou~
rier que se implementa en computadores digitales para trasladar series en
el tiempo a series equivalentes en frecuencia. Cabe indicar que N puntos
en serie en el dominio del tiempo se transformarán en N/2 puntos en el do-
minio de la frecuencia12 ya que como se dijo antes/ se obtienen N puntos
distribuidos simétricamente alrededor del valor cero de frecuencia (DC) .
Si se define W~ &xp(-j27i/N) , se puede obtener la secuencia
;=0
que implica el cálculo de una matriz compleja
•Como en este caso general se deben realizar N multiplicaciones
y sumas, ambas complejas, para grandes valores de N se ocupa demasiado
tiempo en cálculos largos. La Transformada Rápida de Fourier es un método
alternativo para obtener la Transformada Discreta basado en la factoriza-
ción de estas matrices en series con términos nulos que permiten eliminar
los productos repetidos logrando una gran reducción en el tiempo de cálcu-
lo. Una gran ventaja práctica se gana usando N como potencia de dos ya que
las transformaciones intermedias se reducen en una tercera parte^ . Deo
esta manera, el número de operaciones se reducen de N a
Poniendo un ejemplo, para hallar hasta la armónica #32 de una
señal se debe muestrear 64 datos del período de la misma. Con el método
general se debe realizar 4096 productos y sumas complejas, con la Transfor-
mada Rápida de Fourier el número de operaciones se reduce a 768.
Más adelante, se puede apreciar el algoritmo de la Transformada
Rápida de Fourier.
Una vez conocido el contenido armónico de voltaje y corriente
de la red, se puede hallar las respectivas distorsiones armónicas totales y
Página 19
DESCRIPCIÓN DEL SISTEMA: ESPECIFICACIONES Y ALCANCE
el factor de potencia de desplazamiento para conocer el comportamiento
reactivo de la red suponiendo que no existan armónicos.
1.3.Descripción del sistema a diseñarse: especifi-
caciones y alcance.
El equipo a diseñarse tiene como objetivo medir el factor de
potencia y la distorsión armónica total de una red monofásica sin importar
si las señales de voltaje y corriente son distorsionadas.
El equipo debe ser capaz de medir todos los parámetros que de-
finen el comportamiento de una red: valores eficaces de voltaje y co-
rriente, factor de potencia, potencia activa, potencia aparente, distorsión
armónica total de voltaje y corriente y una descripción del contenido
armónico de estas señales. Además, el equipo debe indicar de alguna forma
no solo el valor del factor de potencia, sino si existe predominancia in-
ductiva o capacitiva.
El equipo a diseñarse debe trabajar con una red monofásica de
120 V 60 Hz con picos de 250 V y detectar picos de corrientes de hasta 25
A, el equipo debe detectar la presencia de armónicas de hasta 960 Hz (16a.
armónica).
El sistema debe enviar los valores medidos vía serial para es-
tablecer comunicación con un computador u otros equipos.
Todos los datos a medirse deben poder ser mostrados en una pan-
talla alfanumérica de cristal líquido.
El sistema de desarrollo de programas de control en base al
microcontrolador INTEL 8052AH BASIC debe ser usado como unidad central del
medidor por lo que será necesario definir una etapa que realice la conver-
sión de la señal analógica condicionada a digital.
Para la adquisición de datos de corriente, el diseño debe ser
realizado para obtener información del probador de corriente de efecto Hall
usado en el laboratorio de Electrónica de Potencia.
Página 20
DESCRIPCIÓN DEL SISIEMA DE DESARROLLO BASADO EN EL B052AH-BASIC
OLos resultados obtenidos serán evaluados teóricamente, es de-
cir, con señales de voltaje y corriente de las que sea relativamente fácil
conocer los parámetros que caracterizan a la red. Este hecho se debe a que
no existe en laboratorios un instrumento patrón para medir todas estas mag-
nitudes .
1.4.Descripción del sistema de desarrollo basado en
el microcontrolador INTEL 8052AH-BASIC.
Este sistema fue diseñado en 1993 como tesis de ingeniería con
el objeto de ser utilizado en aplicaciones de control de procesos e instru-
mentación partiendo de la ventaja que presenta el microcontrolador
8052AH-BASIC al permitir la programación en BASIC, proveyendo así de un
lenguaje mucho más fácil de programar y entender que el ensamblador.
Si bien el uso del BASIC permite al usuario disponer de una
biblioteca amplia de funciones ya definidas, el 8052AH-BASIC permite pro-
gramar en ensamblador con el objeto de ganar velocidad en muchas tareas y,
desde éste, acceder fácilmente a rutinas BASIC.
. A continuación se presenta una pequeña descripción del sistema
de desarrollo cuya utilización es condición de diseño del medidor del fac-
tor de potencia objeto de esta tesis. Para mayor información del tema,
referirse a [14] y [lo].
En una tarjeta cuyas dimensiones son 16,8xlO,2cm, este sistema
tiene como unidad central de proceso al 8052AH-BASIC. Este elemento con-
trola el funcionamiento de todo el sistema usando para ello al intérprete
BASIC-52 ubicado en la ROM interna del microcontrolador. Entre las venta-
jas que dispone este elemento se puede mencionar la facilidad de uso del
BASIC respecto al ensamblador, la capacidad de programación de memorias
EPRCM, la versatilidad de radicación de los programas en RAM o en EPRCM, la
presencia de un conjunto completo de comandos, sentencias y operadores, el
uso de aritmética en punto flotante y BCD, la presencia de una biblioteca
de funciones accedidas fácilmente desde ensamblador, un reloj interno de
tiempo real y la facilidad de que los programas sean autoejecubables, es
decir, que no requieran que el microcontrolador esté conectado a la consola
para arrancar. La configuración física básica gue requiere el BASIC-52 es
Página 21
DESCRIPCIÓN DEL SISTEMA DE DESARROLLO BASADO EN EL 8052AH-BASIC
de por lo menos 1K de RAM externa, un interfaz serial RS-232 para co-
municarse con.la consola y un retenedor para generar a través del pórtico 2
del microcontrolador el byte menos significativo del bus de direcciones.
La tarjeta dispone de 4 zócalos para usarse con 4K de RAM (dos
CI 6116) y 16K (dos CI 2764) ó 24K (un 2764 y un 27128) de EPRCM. Externa-
mente puede ampliarse hasta 64K RAM y 56K EPROM. Toda la memoria dispo-
nible es extema al microcontrolador ya que casi toda la memoria interna
está ocupada y/o reservada por el BAS1C-52. La primeria memoria EPRCM 2764
constituye la EPROM1-ASSEMBLER, en ella residen los programas y rutinas de
usuario escritas en ensamblador y que pueden ser llamadas desde BASIC. El
segundo bloque de EPROM (ya sea el 2764 ó el 27128) constituye la
EPRCM2-BASIC, en ella se establecerán los programas de usuario escritos en
BASIC y algunos programas en ensamblador siempre y cuando estén al final de
los últimos BASIC; ésta memoria es susceptible de ser programada en la mis-
ma tarjeta sin importar que voltaje de programación requiera ya que eso es
designado manualmente a través de un dip-switch, este circuito integrado no
será usado en el diseño. Finalmente, la memoria RAM, formada por dos ele-
mentos 6116 para formar un total de 4K se utiliza como memoria de almacena-
miento temporal de variables y el lugar donde se puede editar cualquier
programa BASIC.
Existen 2 pórticos seriales, uno para comunicación serial con
el terminal y el otro para trabajar con una impresora serial, cada uno de
ellos con niveles de voltaje tanto TTL como RS-232, El modo de comunica-
ción con el terminal es UART con 1 bit de arranque, 8 bits de datos, 1 bit
de parada y sin chequeo de paridad. La velocidad de transmisión puede ser
cualquiera de 110 a 19200 bps. El circuito integrado usado es el ICL232
que realiza la conversión de voltajes TTL (O - 5V) a RS-232 (-10 - +10V) y
a la inversa con solo una fuente de alimentación de 5V.
Es posible la comunicación paralela a través de 3 puertos de 8
bits cada uno proporcionados por el PPI 8255A. Este es un componente de
entrada/salida de propósito general con cada uno de sus puertos configu-
rable por el usuario en tres modos de operación: en el modo O se forman dos
grupos de 12 con conjuntos de 4 pines para ser de entrada o salida, en el
modo 1 cada grupo tiene 8 líneas de entrada o salida y 3 de control, en el
modo 2 se tiene un bus de entrada/salida bidireccional. Este tipo de co-
municación no es utilizada en este diseño.
Página 22
DESCRIPCIÓN DEL SISIEHtfA. DE DESARROLLO BASADO EN EL 8052AH-BASIC
El circuito de RESET se basa en el circuito supervisor de
fuente de poder TL7705 cuya ventaja principal sobre una principal red RC
radica en que genera la señal de reset cuando el voltaje de polarización
baja a 4.6V de manera que no se pierdan datos de memoria interna. El reset
interno se logra aplastando el pulsador S2 pero existe una opción, que será
usada, de reset externo que debe ingresarse por el conector H8 y que se
puede usar manipulando el jumper JP3.
La tarjeta dispone de diferentes señales en algunos conectores:
los pórticos de comunicación paralela en los conectores Hl, H2 y H3, líneas
de direccionamiento en H4, funciones especiales en H5, comunicación serial
TTL y RS-232 en H6, polarización en H7, bus es de direcciones, datos y con-
trol y otras funciones especiales del pórtico 1 del microcontrolador en el
conector H8, conector DB9 (en el presente diseño no está incluida esta op-
ción) para comunicación serial RS-232. Los detalles de la ubicación de los
conectores se; encuentra en los anexos.
La temperatura de operación es de 0-50°C con una humedad rela-
tiva de 10-90% no condensada.
Página 23
PAGINA DE REFERENCIAS
1 Czarnecki, Leslek, What Is Wrong Wi£h The Budenau Concept Of ReactiveAnd Distorsión Power And Why It Should Be Abandoned, IEEE Transac-tions on Instrumentation and Measurement, Vol. IM-36, No. 3, Sep-tiembre 1987, p.834.
2 Kusters, N y Moore, R. , On The Definí ti on Of Reactive Power Under Non-Sinusoidal Conditions, Discusión por parte de W. Shepherd, IEEETransactions on Power Apparatus and Systems, Vol. PAS-99, No. 5,Septiembre-Octubre 1980, p. 1851.
3 Cheng, S., Malik, O. , Hope, G. , An Expert Systan For Voltage And Reac-tive Power Control Of A Power S stari, IEEE Transactions on PowerSystems, Vol. 3, No.4, Noviembre 1988, p, 1454.
4 IEEE Load Characteristics Task Forcé, Effects of Harmonios Task Forcéand Working Group on Power System Harmónica, The _Effects Of PowerSystem Harmonios On Power S.ystem Eguipnient And Loads, IEEE Trans-actions on Power Apparatus and Systems, Vol. PAS-104, No. 9, Sep-tiembre 1985, pp. 2555-2560.
c0 Baghzouz, "í. y Owen, T., Harmonic Analysis Of Induction Wattthour Meter
Performance, IEEE Transactions on Power Apparatus and Systems,Vol. PAS-104, No. 2, Febrero 1985, pp. 399-405.
" Czarnecki, Leslek, Consideratipn On The Reactive Power In Nonsinusoida1Sitúations, IEEE Transaction on Instrumentation and Measurement,Vol. IM-34, No.3, Septiembre 1985, p.399.
7 ídem 1, p. 835,
8 ídem 2, pp. 1845-1854.
Carrera, Marco, Medidor De Potencia Para Sistemas Eléctricos Con FormasDe Onda Compleías, Tesis de grado, EPN, Quito, 1984.
° ídem 6, Consideration, pp. 399-404.
11 ídem 1, The Budeanu Concept, p.837.
Williams, Charles, Digital Methods for Signa! Analysis, Wesley & SonPress, London, 1987, p.101.
-1-3 ídem Williams, p.106.
Qntaneda Gavidia, Marión, Sistema De Desarrollo De Programas De ControlBasado En El J<icrocontrolador INTEL 8052AH-BA5IC, Tesis de grado,EPN, Quito, 1993.
15 INTEL Corporation, MCS B.ASIC-52 User's Manual, INTEL Corp. LiteratureDistribution, Santa Clara, California, 1986.
Página 24
CAPITULO 2
DISEÑO DEL HARDWARE
2.1.Modularización del Hardware.
El diseño del hardware no reviste de gran complicación ya que
la parte principal del equipo radica en el sistema de desarrollo descrito
en el apartado 1.4. No queda pues, más que diseñar los elementos de entra-
da y salida por lo que el objetivo del hardware a diseñarse es permitir al
microcontrolador 8052AH-BASIC interrelacionarse con el medio, es decir,
proveerle de elementos de entrada para medir voltaje y corriente y de ele-
mentos de salida para comunicarse con un operador humano o con otros equi-
pos digitales.
^ Por lo tanto el hardware debe cumplir con las siguientes carac-
terísticas:
>• Medir señales de voJtaje nominal 120V con picos de hasta 250V y de^ corrientes pico de 25A.
> Mostrar los datos en una pantalla de cristal líquido. Los datos amostrarse son potencia activa, potencia aparente, factor de poten-cia, factor de potencia de desplazamiento, valor eficaz de vol-taje, distorsión armónica total de voltaje y los valores de susarmónicos hasta 960 ÍIz, lo mismo para corriente.
> Transmitir los mismos datos vía serial para comunicarse con uncomputador u otro equipo digital. No se requiere de un conveniocomplejo de transmisión-recepción de datos. Para evitar la inter-ferencia de ruido creado por las líneas de alimentación con las detransmisión de datos, se creará una etapa aisladora de ruido.
Dadas estas características, el hardware a diseñarse puede di-
vidirse en los siguientes módulos, a los cuales, debe agregarse una fuente
que alimente a todo el sistema.
MODULO DE ADQUISICIÓN DE DATOS
FIGURA 2.1.- MODÜI.ARKACION DEL HA.RDWARE
2 . 2 , Módulo de adquisición de datos.
Este módulo tiene la misión de tomar muestras de voltaje y co-
rriente y enviarlas al microcontrolador para ser procesadas. Independien-
temente de si toma muestras de voltaje o corriente, este módulo tiene tres
etapas :
Elemento Ben&or
El elemento sensor recoge las señales de voltaje o corriente,
según corresponda, y las reduce a un voltaje de máximo ±2, 5V para ser
leídos por la siguiente etapa.
El elemento sensor de voltaje es una red de resistencias reduc-
toras de voltaje.
Esta red de resistencias debe soportar en su extremo Vin un
voltaje pico de 250 V y para que el consumo de potencia sea mínimo, se asu-
Página 26
MODULO DE ADQUISICIÓN DE DATOS
mira que la potencia consumida con un
voltaje eficaz de 250 V sea menor a 250
rrW (Para poder usar resistencias de
1/4W). Entonces el valor de la resisten-
cia de entrada total debe ser:
7? —ítt~F? Í250K)2
in — {£"jv* •>P " Q.25W
por lo que, para asegurar un menor consu-
mo de potencia y una alta resistencia de
entrada, se asumirá que
FIGURA 2.2.- SENSOR DE VOLTAJE
/?.8 = U/Q
Para hallar los demás valores se debe tomar en cuenta que la corriente que
circule por toda la red de resistencias es la misma, entonces,
2,57
10
247, 5( 9 -t-^io) = 2500 0
para lograr estos valores, se puede asumir que R$ sea una resistencia va-
riable de
Una vez establecidos los parámetros de la red de resistencias,
se puede calcular su potencia nominal.
i nom —
1207
Rin 1,010 x
Página 27
MODULO DE ADQUISICIÓN DE DAIOS
El elemento sensor de corriente es la punta de corriente de
efecto Hall usado en laboratorio de Electrónica de Potencia: el probador de
corriente AC/DC Y8100 de Fluke que tiene las siguientes características:
> RANGOS: 20 A ac ó de, 200 A ad ó de
>- SALIDA: 2 V a fondo de escala
>• PRECISIÓN: DC a 200 Hz: 2% del rango, 200 Hz a 1 kHz: 3% de lalectura si es menor a 100 A y 6% de la lectura se es mayor a 100 A
>- CICLO DE CALIBRACIÓN: 1 año.
>- RESPUESTA DE FRECUENCIA: de a 1 kHz
> CARGA RECOMENDADA: > 3 Kohms
> RANGO DE TEMPERATURA: 15°C a 35°C para precisión indicada, -JLO°C a50°C con mayor precisión.
>- VOLTAJE DE TRABAJO: 600 Vdc ó 480 Vac, 42 Vdc ó 30 Vac si la sali-da está cortocircuitada a tierra.
>- No tiene una potencia externa de consumo ya que trabaja con 4 pi-las AA.
>~ Debe evitarse una operación prolongada de más de 200 A ó de más de1 kHz. Para mayores detalJ.es referirse a [ ]
Acondicionador
Esta etapa recoge el voltaje del elemento sensor y lo transfor-
ma a una señal de O a 5 V de manera que un convertidor analógico digital
pueda leer la-señal para enviarla al CPU.
Como los elementos sensores no alteran en módulo ni fase a las
señales de voltaje y corriente, ambos acondicionadores (para voltaje y cor-
riente) deben ser los mismos.
De acuerdo a la figura de la página siguiente, la resistencia
de entrada del acondicionador RI debe ser mucho mayor a la suma de las re-
sistencias Rg y R2Q °*e manera que se pueda mantener la independencia de
módulos, por lo que un buen valor para Rl es
Rl= 200¿Q
Página 28
MODULO DE ADQUISICIÓN DE DAIOS
La configuración del acondicionador es de un amplificador in
versor cuya función de transferencia corresponde a la siguiente fórmula:
donde V¿n y ^ref son los voltajes de entrada del elemento sensor y de re-
ferencia (2.5V). Esta configuración ya ha sido utilizada anteriormente en
el Laboratorio de Electrónica de Potencia y sirve solo para AC (el capaci-
tor en serie elimina la componente continua, su valor de 10 uF, elimina
distorsión de las señales cuadradas o triangulares). Vale la pena decir
gue si se eliminara el capacitor la función de transferencia cambiaría por
lo que si se requiere hacer un acondicionador gue no discrimine la conti-
nua, debería usarse otra configuración.
La razón de discriminarse la continua es que como condición de
esta tesis sé debía utilizar la punta de corriente ya mencionada que en
ocasiones introduce un indeseable voltaje offset.
Un convertidor analógico digital de 8 bits tiene una resolución
de 19.6 mV cuando la entrada es de O a 5V. Entonces se requiere que los
errores causados por el voltaje y la corriente de entrada offset sean me-
nores a este valor. Estas características se cumplen con amplificadores
Página 29
MODULO DE ADQUISICIÓN DE DAIOS
1 7operacionales con entrada FET por lo cual se decidió usar el LF353 , que
es un doble amplificador operacional de bajo voltaje de entrada offset
(10mV@25°C) y baja corriente de entrada offset (100pñ@25°C) . Entre sus
características sobresalientes tiene un gran producto ganancia ancho de
banda (4 MHz) y una rápida respuesta en el tiempo (2 us) . Este circuito es
de bajo costo y requiere de poca corriente de polarización (6.5mñ. máximo)
para mantener su gran ganancia de ancho de banda y rápido slew
rate(13V/us) . Este amplificador es recomendable para aplicaciones como
integradores de alta velocidad, convertidores analógicos digitales rápidos
y circuitos de muestreo y retención (sample and hold) . El rango de tempera-
tura de trabajo es de O - 70°C.
El voltaje de referencia 2 . 5V se consigue ubicando como DI al
diodo de referencia 2.5V LM336-"* el cual sirve como una referencia de pre-
cisión de 2.5V. Este circuito integrado trabaja como un zener de bajo coe-
ficiente de temperatura e impedancia dinámica de 0,2 ohmios. Además este
diodo posee un tercer terminal que permite a justar la referencia de voltaje
y el coeficiente de temperatura. La corriente de operación varia de 300uA
a 10 mñ. Para conseguir su operación es necesario aumentarle una resisten-
cia Rzl de manera que circule por el diodo una corriente de Imft:
s? V —R4 = *" ^ = 5,5/cQ « 4.7¿Q
ItnA
Dado que no se ajusta la referencia el voltaje obtenido no es
2.5V pero el offset existente en el LF353 hace que el menor valor Vref se
compense, de manera que al hacer pruebas se encontró que el valor final en
el conversor analógico-digital era el correcto.
Convertidor Analógico Digital
El convertidor analógico digital usado es el ADC0804LCN-^ de 8
bits de aproximación sucesiva. Este convertidor es compatible con los de-
rivados del microprocesador 8080 por lo que es de fácil conexión con micro-
control adores. Las entradas de voltaje son diferenciales y deben estar
comprendidas en el rango de O a 5V. Para aplicaciones de máxima flexibili-
dad, se ha diseñado la capacidad de acomodar una referencia de 5VDC, 2,5VDC
o cualquier otro voltaje a través del pin VREF/2 de manera que se pueda
cambiar el rango de voltaje del convertidor. Es posible tener conversión
continua uniendo la entrada WR con la salida INTR y poniendo la entrada CS
Página 30
MODULO DE ADQUISICIÓN DE DATOS
a tierra, el nodo WR-INTR deberla tener un cero lógico forzado al encendido
del circuito ¡para garantizar su operación. El tiempo de conversión del
convertidor varía entre 66 y 73 veces el inverso de la denominada frecuen-
cia de reloj, fcLK' t?ue se define en un cuadro que relaciona el capacitor
y la resistencia de reloj con la frecuencia resultante.
De todas formas el menor error se biene cuando la frecuencia de
reloj es de 640kHz (tiempo de conversión entre 100 y 115 us). El error
total de este convertidor es de 1 LSB. El rango de temperatura de opera-o
cion esta entre O y 70 C.
El siguiente circuito corresponde a esta etapa:
FIO1WA 2.4.- CONVERTIDORES AW/VUDGICO.mGnr/VT,ES
En este diagrama, se aprecia cerno Rl y Cl (R2 y C2 en el con-
vertidor de corriente) influyen en la frecuencia de reloj (con estos va-
lores se acerca a la frecuencia óptima) la que da un tiempo de conversión
suficiente ya, que si se tema 32 muestras de la fundamental (una muestra
cada 0.52ms) se harían cuatro o cinco conversiones antes de tomar una mues-
tra. Los transistores Ql y Q2 dan el impulso inicial al nodo WR-INTR los
Página 31
MODULO DE VTSUALIZACION DE RESULTADOS
cuales son manejados por R3, R4 y C3; con sus valores correspondientes se
da un impulso inicial de 10 ms.
2.3.Módulo de visualización de resultados.
Para la visualización de resultados se decidió usar la pantalla
de cristal liquido L201200JOOO de Seiko. Entre las principales carac-
terísticas optoeléctricas del L2012 se tiene:
>• 2 líneas x 20 caracteres en un equipo delgado, liviano y de bajoconsumo (10 mW).
>- Usa el fluido STJSf (Super Twisted Nematic Fluid) para obtener unalto contraste (mínimo 5, típico 9 a un ángulo de visión de 25grados) y ancho ángulo de visión (mínimo 70 grados dependiendo delcontraste).
>- La configuración de pines del L2012 es la siguiente:
PIN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
NOMBRE
V»
V«>
Vu:
RS
R/W
E
DBO
DB1
DB2
DB3
DB4
DBS
DB6
DB7
FUNCIÓN
GMD
Polarización 5V
Manejo de cristal líquido
Selector de registrosLee bur a /Escritura
Habilitación
Línea del búa de datos
Línea de), bus da datos
Línea del bus de datos
Línea del bus da datos
Línea del bus de datos
Línea del bus de datos
Línea del bus de datos
Línea del bus de datos
La conexión a mícroprocesadores de 4 u 8 bits es directa. Paraconectarse a un microcontrolador de 8 bits las líneas DBx son usa-das como bus de datos, E es la línea de habilitación del bus dedatos y se utiliza como se indicará más adelante en los diagramasde tiempo, R/V7 en alto permite leer del módulo al microcontroladory en bajo permite escribir datos del miorocontrolador al módulo,RS en alto indica entrada de datos y en bajo indica entrada decódigo de instrucciones, VDD=+5V, VgS=Tierra y V^c es un voltajede ajuste del contraste.
Posee el controlador HD44780 en la misma tarjeta de manera que sedispone de un versátil sel: de funciones y una buena capacidad dealmacenamiento de datos (00 caracteres en buffer).
Otras características del L2012 y su set de funciones se indica enlos anexos.
Página 32
FIGURA 2.5. - ACOPLADOR A LCD
Para acoplar el módulo de cristal líquido al resto del equipo,
se debe agregar el circuito mostrado en la figura 2.5. En el apéndice I,
al analizaír otras características del LCD se explica, basado en los diagra-
mas de tiempo del microcontrolador y del LCD, el porgué de este acoplador.
En este circuito se puede apreciar que. la referencia de pines
de H6 con el LCD no es la misma, esto se debe a gue la nureración de pines
en el LCD es respecto a la pantalla mientras que solo se puede conectar un
conector al lado opuesto.
La inversión de la línea de selección CS1B para obtener E es
necesaria puesto que la selección generada por la tarjeta del microcontro-
lador es negativa mientras que la requerida por la pantalla es positiva.
Con el objeto de seleccionar la visualización de distintos
ítems se usará un interruptor de 6 posiciones para visualizar:
> Potencias activa y aparente, factor de potencia y factor de poten-cia de desplazamiento.
> Voltaje y corriente eficaces, valores de distorsión armónica totaltanto ea voltaje como en corriente
Página 33
MODULO DE VXSUALI3ACION DE RESULTADOS
>• Valores de primeras ocho armónicas de voltaje (módulo y fase).
>• Valores de últimas ocho armónicas de voltaje (módulo y fase),
>- Valores de primeras ocho armónicas de corriente (módulo y fase) .
>- Valores de últimas ocho armónicas de corriente (módulo y fase) .
2.4.Módulo de comunicación.
Este módulo es muy importante ya que permitirá la comunicación
del medidor de factor de potencia con otros dispositivos que permitan lle-
var a cabo una automatización de procesos. Esta automatización toma la
idea de un sistema de inteligencia dispersa la cual permite a los denomina-
dos DCC (siglas en inglés de dispositivo de control computarizado) realizar
tareas locales de control de tiempo críticos. Estos DCC deben tener un
gran nivel de autonomía y su eficiencia en el proceso depende en gran ma-
nera de un adecuado sistema de comunicaciones con el resto del sistema. Es
por esto que un protocol o de comunicaciones estándar es preferibl e paraOQ
evitar incompatibilidades del sistema* .
Hay algunos protocolos que cumpliendo con las normas IEEE,
ANSÍ, ISO o EIA sirven a este propósito. Dadas las facilidades gue presen-
ta el sistema de desarrollo basado en el 8052AH-BASIC, se adoptarán las
normas EIA RS232C. Además, este protocolo ve limitadas sus comunicaciones
a una distancia aproximada de 15 metros, la cual podría ser más que sufi-
ciente para un controlador de factor de potencia en una industria. En caso
de requerir mayor distancia, se puede usar las normas RS422A que permite91una relación de 1,2 km para ser usado hasta lOOKbits por segundo* .
Como se ha indicado anteriormente, casi toda la tarea de co-
municación la efectúa el sistema de desarrollo basado en el microcontrola-
dor, por lo que el diseño adicional es sumamente sencillo.
Interfaz serial optoacoplado
Por un lado, se debe aislar las señales de transmisión y recep-
ción de la comunicación serial. Para ello debe usarse optoacopladores que
permitan realizar esta tarea de manera óptima. El dispositivo usado para
aislar la señal es el 6N136 el cual es un optoacoplador con un LED de VOOnm
Página 34
MODULO DE COMUNICACIONES
de GaAsP y un fotodetector de alta velocidad compatible con señales TTL,
tiene un aislamiento de hasta 2,5kV y disipa una potencia de hasta lOOmW.
Por el lado de entrada tiene un LED que soporta una corriente de 25 mZV
máximo (recomendado 16m7V), una calda de voltaje de 1.7V máximo y un voltaje
inverso máximo de 5 V. La etapa de salida soporta máximo un voltaje de
polarización de 15V, una corriente de colector cíe 8 mñ. y puede transferir
máximo IMbit por segundo. El tiempo de propagación de una señal es de 800
ns22
VCCo
1>i,Rí®2
J.G5K ' i—•,
\¿
— ¡A
USO
FTGURA 2.*.- INTWUTAZ: SERIAL OPTOACOPI-ADO
El circuito usado para aislar las líneas de comunicación es el
de la figura 2.6. donde se aprecia dos grupos de elementos, el uno, alrede-
dor del optoacoplador U6, se encarga de las señales que se transmiten del
rracrocontrolador al computador; el segundo, alrededor de U7, recibe las
señales del computador.
El microcontrolador envía a T1IN una señal TTL para comunicarse con el com-
putador, R7 se constituye en un limitador para manejar el transistor Q3 que
con 5V (1L) permite que el LED de U6 envíe una señal luminosa al fotodiodo
y con OV (OL) lo evita; en la realidad, dada la característica voltaje-
corriente del microcontrolador, éste no puede mantener el nivel alto de
voltaje pero de todas formas envía la corriente suficiente como para acti-
var a Q3. R8 define las características de corriente que pasarán por el
Página 35
MODULO DE COMUNICACIÓN
LED y por el transistor. Al otro lado, el fotodiodo satura al transistor
de U6 con 1L, devolviendo la señal RTS (nivel negativo) a RD del computa-
dor; mientras que con OL, corta al transistor enviando el nivel positivo de
DTR a RD. La resistencia R9 sirve como pull-up.
Como contrapartida cuando TD es 1L (nivel negativo), se habilita al LED de
U7, mientras que con OL (nivel positivo), se lo inhibe; de todas formas, es
necesario ubicar a DI como opuesto al LED con el objeto de protegerlo ya
que solo soporta voltajes inversos de nivel TTL. En el lado del microcon-
trolador, con 1L el transistor de U7 se satura poniendo a la entrada del
inversor U5A OV, éste se encargará de enviar 5V a R10ÜT del microcontrola-
dor; con OL, el transistor se corta, con lo que de manera similar, R10UT
tendrá OV.
Un capacitor C8 de luF (que no aparece en la figura), es útil como filtro
de ruido para ,el inversor U5.
Pórtico serial
Otro aspecto de la comunicación es la especificación del enlace
físico que portará las señales del medidor de factor de potencia a otra
etapa. Para ello debe quedar claro el papel que el equipo desempeña en la
comunicación.
Según la norma RS-232, el terminal o computadora es conocido
como equipo terminal de datos (DTE) y el modem o equipo de comunicaciones
se conoce como equipo de comunicación de datos (DCE). El DTE mantiene un
enlace vía serial ya sea con otro DTE, ya sea con un DCE, el cual se
constituye en una interfaz para enviar los datos por radio, cable, fibra
óptica o cualquier otro medio. La norma especifica que en un cable usado
para conectar un DTE con un DCE, cada línea debe estar conectada al mismo
número de pin en los conectores de cada extremo, así, el pin 2 del DTE debe
ir conectado con el pin 2 del DCE, el pin 3 con el pin 3 y así sucesiva-
mente. Con conectores de 25 pines, la línea 2 se denomina línea de trans-
misión de datos y la línea 3, línea de recepción de datos. Esta
designación de transmisión y recepción es siempre referida a la perspectiva
del DTE, lo cual indica que un DTE, por ejemplo un computador, transmite
datos a través de la línea de transmisión (2) y el DCE, por ejemplo un mo-
dem, recibe esos datos por la misma línea 2; a la inversa, el modem envía
Página 36
MÓDULOS ADICIONALES
los datos a través de la línea de recepción (3) por la que el ccxnputador
los recibe. Si la conexión es realizada entre dos DTE, se utiliza una con-
figuración de cable denominada nuil moáesn la cual asegura que ambos equiposOQ
transmitan y reciban a través de las líneas correctas . El conector del
pórtico serial DB9 tiene la siguiente configuración y equivalencia en DB25:
t>IM^.::^:^^r::-: -HOMBREA: >..;>'¿-. .-"? v"V ABRfiV. EQlV DB35 ENTRADA /SAL I DA
12
3
4
5
6
7
8
9
Detector de portadora de datos
Recepción
Transmisión
Terminal de datos listo
Tierra de señal
Recepción de datos listo
: Requerimiento de envío
Claro para enviar
Indicador de timbre
DCD
RD
SD
DTR
AB
DSR
RTS
CTS
RI
8
3
2
20
7
6
4
5
21
entrada
salida
entrada
salida
entrada
salida
entrada
entrada
Si en cambio, se requiere de un nuil modem :
PIN DB25
3
2
4
5
6/8
20
7
LINEA
RD-SD
SD-RD
RTS- CTS
CTS- RTS
DSR/DCD-DTR
DTR-DSR/DCD
SG--SG
PIN DD25
2
3
5
4
20
6/8
7
Las pruebas iniciales serán realizadas directamente con un com-
putador y si el equipo se usa como elemento primario para un control,
este último es un DTE; además, al ser este aparato un elemento primario
/transmisor, puede ser considerado
CCÍTÍO un DCE, así que el enlace
físico a usarse es el descrito para
DTE-DCE temando en cuenta que el
medidor de factor de potencia es un
DCE. Un conector IDS de 10 pines
conectado a un pórtico DB25 es el
elegido para la tarjeta.
Í7G. 2.7.- CONECTORIDS rARAFORTJCO SERIAL
2.5.Módulos adicionales.
A parte de los módulos descritos deben existir etapas muy im-
portantes que se constituyen por sí solas en módulos adicionales.
Página 37
MÓDULOS ADICIONALES
2.5.1.Conexión entre tarj etas
Una vez que se ha diseñado los diferentes módulos del equipo,
cabe preguntarse como se los distribuirá. Por un lado, se tiene un circui-
to impreso ya diseñado en el Sistema De Desarrollo Basado en el
8052AH-BASIC, por otro, existe el criterio de separar de alguna manera los
circuitos analógicos de los digitales. De acuerdo a ésto resulta más sen-
cillo la construcción de tres circuitos impresos, el primero conteniendo el
8052AH-BASIC, el segundo con los circuitos digitales (convertidores
analógico digitales, acopladores del LCD, comunicación serial y un pulsador
de RESET externo) y el tercero con los circuitos analógicos (sensores,
transductores y fuentes de polarización).
Cabe agregar un circuito impreso adicional que contiene dos
elementos importantes (y no mencionados todavía) que van localizados en el
panel frontal del equipo: un LED rojo que indica cuando el equipo está en-
cendido y un interruptor de 6 posiciones (que torran como base Pl del
80527\H-BASIC) y que sirve como selector de pantalla según se explica más
adelante.
La comunicación de señales entre estos 4 impresos debe ser efi-
caz y cómoda por lo que deben utilizar conectores que permitan transmitir o
cortar la comunicación de manera fácil y efectiva. Ni la distribución de
pines de los conectores ni los detalles del cuarto circuito impreso se tra-
tarán en este capítulo.
2.5.2.Fuente de polarización.
Se han agregado algunos elementos y han sido retirados otros de
lo que constituyó el proyecto inicial del Sistema de Desarrollo basado en
el 80527\H~BñSIC, adicionalmente se requiere de otra provisión distinta de
voltajes, así que se vuelve necesario rediseñar la fuente de polarización.
Por un lado, la mayoría de elementos trabajan con niveles TTL, por otro,
solo los transductores necesitan un voltaje mayor positivo y un voltaje
negativo (este hecho es natural ya gue las salidas de éstos deben trabajar
con un rango de O a 5V, entonces, el rango de polarización de los amplifi-
cadores operacionales debe ser mayor). Es por esto que se requieren 3 vol-
tajes, uno de nivel TTL (+5V), otro positivo algo mayor (se adoptará +8V) y
Página 39
MÓDULOS ADICIONALES
un nivel negativo (de preferencia menor a -2V). Dado que los niveles de
+8V y negativo son requeridos solo para los amplificadores operacionales,
se utilizará el primero de ellos también para polarizar arreglos de elemen-
tos que no importe si su voltaje es +5V ó +8V.
De acuerdo a estos hechos se puede hacer la siguiente lista de
consumos de corriente en mA:
ELEMENTO TARJETA
8D52AH-BASIC
RAM 6116 (2)
J3PROM 276*1
74L.S373
7-1LS139
74LS138
74LS08
TL7705
8 OB TOTAL
ADC0804 (2)
74S32
74SOO
74HC14
U6-6N136U7-6M136
C3-R3-R4
R5-R6
BUBTOTAL
LF353
LM33 6
LM323T
LM78M08C
LM555BDBTOTAL
; LED ROJO
80 B TOTAL
DIBPLAY 1.2013
OX)TAL
No,
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
a
3
3
3
3
3
3
4
4
I (+5v) I ( + B v > I ( - )
175
125
90
40
11
10
9
10
470
5
98
88
0
33
0
2
6
2 2 4 8
4 4
2
20
8
12
20 16 4
20
20
2
736 36 4
Dadas las corrientes superiores y dando unos mayores márgenes
de seguridad/ los circuitos de polarización positiva son sumamente fáciles
de diseñar en función del LM323T y del LM78M08C, el de polarización negati-
va es un inversor de polaridad basado en la multiplicación de voltaje usan-
do un LM555 y dependiendo del voltaje de salida puede proporcionar una
Página 39
MÓDULOS ADICIONALES
corriente de hasta 20mA, una mayor descripción de este circuito puede ha-o c
liarse en la referencia [ ].
El transformador es de 120VAC/12VAC/2A.
V-f-0-
RU.
L13
•*•hIEA
^'
}ER 2
A - k <F1N
JL_KF1W
D5
1 1»"r
| s ,S¿100
S
bneo
1 2
s^wao
_a5VT00
C3220C3U '-
i+•-.a
vi c
E
LMLMTer
f
1
13BC_
3
1
-1
1* C4
E. J.LJ
,
1» es
ÉJ.LJ
rusÍ0K
2 .01UTJ5
LMSSS
10U
D81M4001
07
O VCC
OV-t-
C8aau VCC = 5V
V+-+8V
V- * -8V
FTOURA,2.8.-H/ENTEDE POLARIZACIÓN
2.5 .3 .Postes de identificación.
Con el objeto de chequear fácilmente la existencia de fallas,
existen 8 postes dobles de identificación de señales analógicas en la tar-
jeta correspondiente. Estos 8 postes permiten tomar muestras de las
señales sin necesidad de medir en posiciones difíciles.
Las señales disponibles en los postes son: VCC y V+ en el poste
1, V- y Vref en el poste 2, tierra en el poste 3, la señal adecuada al con-
vertidor de voltaje ADCv en el poste 4, el voltaje de entrada proveniente
de la red Vin en el poste 5, el voltaje luego del sensor de voltaje Vinl en
Página 40
bODULOS ADICIONALES
el poste 6, la señal adecuada al convertidor de corriente ADCi en el poste
7 y el voltaje proveniente del probador de corriente lin en el poste 8.
Más adelante se indica la ubicación de los postes de identifi-
cación en la tarjeta 3.
2.5.4.Construcción de los circuitos impresos.
Para el diseño del circuito impreso se trabajó con los progra-
mas OrCAD de OrCflD Systems Corporation y Tango de ACCEL Technologies.
Cabe indicar que las tarjetas 3 y 4 fueron realizadas de un
solo lado y la tarjeta 2 de doble lado por existir mayor complejidad. La
tarjeta 1 fue ya diseñada con anterioridad ya que se constituye en el Sis-
tema de Desarrollo basado en 8052AH~BñSIC.
Los pasos a seguirse fueron básicamente los indicados en lan £-.
referencia [ ]
2.5.5.Diseño de la cubierta exterior.
La, cubierta exterior usada es de plástico ABS de larga duración
con los paneles frontal y posterior de acrílico. Las dimensiones son 10 x
7.6 x 3.1 pulgadas. La disposición de los elementos en ambos paneles fue
realizado tomando en cuenta el criterio de mantener visualmente las dife-
rentes etapas funcionales del equipo separadas de manera que el manejo del
equipo no implique complejidad.
Una descripción completa de los elementos ubicados en la cu-
bierta exterior se encuentra en el apéndice I.
Página 41
PAGINA DE REFERENCIA
16 FLUKE, Y8100 DC/AC Current Probé Instruction Manual , John Fluke MFG Co. ,Everett, Washington, 1983,
-*-' National Semiconductor Corporation, Linear Databook, National Semicon-ductor Corp., Santa Clara, California, 1982, pp. 3-42 - 3-50.
18 ídem, pp. 2-30 - 2-35.
19 ídem, pp. 8-28 - 8-59.
20 Witte, R. , Schumacher, P. , A Serial Corrrnunications Interface ForMicroprocessor-Based Power Distribution Apparatus, IEEE Transac-tions on Power Apparatus and Systems, Vol.PAS-104, No. 1, Enero1985, p. 46.
21 ídem, p.48.
22 Quality Technologies, HGPL-2503, HCPL-4502, 6N136, 6N135 DATA SHEETS.
9"*••* Boling, Douglas, Putting Serial-Port Technology In Perspectiva, Part 1,
Lab Notes, PC Magazine, Vol. 11, No. 9, Mayo 12 1992, pp. 392-393.
24 Glover, Thomas y Young, Millie, Pocket Pe Reference, 2a. ed. , SequoiaPublishing, Littleton, Colorado, 1993, pp. 40-41.
25 Graf, Rudolf y Sheets, William, Encyclopedia of Electronic Circuíts,Vol. 4.,TAB Boolcs, Blue Ridge Sumit, Pennsylvania, 1992, p.397.
26 Ontaneda Gavidia, Marión, Sistema de Desarrollo de programas de ControlBasado en el microcontrolador INTEL 8052AH-BASIC, Tesis de Grado,EPN, Quito, 1993.
Página 42
CAPITULO 3.
DISEÑO DEL SOFTWARE
3.1.Modularización del Software,
Antes de realizar el diseño del software se debe definir cual
es el objetivo del mismo y se debe tener en claro que es lo que se desea
que haga el programa a diseñarse.
En el apartado 1.2 se describieron las técnicas matemáticas que
se usan para analizar una red monofásica a partir de un voltaje y una co-
rriente conocidas, un programa que realice algoritmos matemáticos es más
robusto y sencillo que un circuito analógico que realice la misma función.
Por otro lado, la transmisión de datos digital es más exacta y, adicional-
mente, la visualización de datos digital es más confiable que la analógica.
De ésto se deduce que el objetivo _del software a diseñarse es leer Jos va-
lores de voltaje y corriente instantáneos, realizar las operaciones ma-
temáticas necesarias para hallar los parámetros que muestran el
comportamiento de una red y transmitir esos parámetros a un controlador o
simplemente enviarlos a un indicador.
i Qué características debe tener el software a diseñarse ?
La lectura de datos de un conversor analógico digital es sura-
mente sencilla, basta tomar el valor que indica el conversor y leer en una
tabla la equivalencia del valor indicado por el conversor con el valor real
de voltaje medido. Pero no debe olvidarse que el BñSIC-52 es demasiado len-
to (una muestra aproximadamente cada 5 ms) para cumplir con el objetivo del
sis teína a diseñarse. Tanto la lectura de dispositivos de entrada, el ma-
nejo de memorias RflM, asi como escrituras a pórticos para salida de la in-
formación a pantallas/ es sumamente lenta, estas operaciones "realizadas en
lenguaje Assembler toma un tiernpo que está en el orden de los microsegun-
dos, mientras que en BASIC-52 está en el orden de los milisegundos"27.
Como es necesario tomar muestras aproximadamente cada 0.26 ms, se debe ob-
tener todos los datos con rutinas en ensamblador/ leer los valores de las
tablas de equivalencia y almacenar los resultados en memoria RAM.
El software a desarrollarse debe incluir operaciones matemáti-
cas sencillas como sumas, multiplicaciones, divisiones, la relativamente
compleja radicación y el desarrollo de integrales (que no es más que un
sumatorio como se indicó más arriba). Estas operaciones deben mantener una
buena precisión en todo momento, por ésto, es conveniente que los números
tengan un formato de punto flotante en lugar de trabajar con cifras ente-
ras. Para ello es más sencillo el trabajo con el BASIC-52 pues provee un
buen set de instrucciones para relizar operaciones en punto flotante.
Otro proceso que debe estar englobado en el algoritmo a desa-
rrollar es la. comunicación del microprocesador con los elementos de salida
(pantallas de cristal líquido y terminal por vía serial), este proceso debe
hacerse en lenguaje ensamblador dada la sencillez de la transmisión de da-
tos y la rapidez relativa a la misma transmisión en BASIC.
Se debe recalcar lo expresado irás arriba: el manejo de memorias
(lectura y escritura) es muy lenta en BASIO52, como una gran parte de las
operaciones matemáticas necesarias se efectúan en base a números en punto
flotante almacenados en memoria, se debe tratar de que casi todo el progra-
ma sea realizado en ensamblador. Es más, lo más conveniente es realizar el
programa en ensamblador e invocar a rutinas BñSIC-52 cuando se requiera.
Dados estos hechos, se puede caracterizar al software a di-
señarse por lo siguiente:
*- El software debe tener tres partes generales: una de adquisiciónde datos, una de operaciones matemáticas (compuesto de dos módu-los : cálculo del factor de potencia y cálculo de la distorsiónarmónica total) y una de visualización de datos y comunicación.
*- E.l. lenguaje ideal para el programa es el ensamblador desde el cualse invocará a las rutinas BASIC-52 para realizar operaciones enpunto flotante. Dado que estas rutinas asumen que existen uno odos valores en la pila de argumentos, se requiere el uso de ruti-nas que transfieran datos entre memoria y la pila mencionada.
Página 44
>~ Para cumplir con el principio de medularidad, el diseño del pro-grama debe ser tal que si se trabaja con un mi ero con Uro lado r queusa el set de instrucciones de la familia MCS-51, simplemente seaumenten al programa las rutinas de operaciones de punto flotanteque en este caso, provee el BASJC-52,.
Para poder cumplir con estas especificaciones se ha modulariza-
do el software de la siguiente manera:
fREMIDA El RESEI, INlClMI
HtCROCOHlROlADOR, HfHO
EXIERHAÍ DlSPUf.
El PROCESO SI
BASA CH UNlAíoiHNHiio
v m
"\- _^ í DUCIALEEACIOM i
Rl* V J 1L I
í r 1
/
ADQUIOTCIOHIJE / ut ios APG OE 1I>ATOS / ^* YOIIWE rCORRl íNU i
^CALCinX) MCTOR jr C^llíüU P, S, Tf,
Dr.rormciA \|11t y |m,
JUAHAUSISUF. rf MHICAtAlR.WSrORrttoAAMMOmCAS t" RWI^pí fOURl(R
1/ / MUESlRA EH tCf f/ ™"n.TADOB / 4» UMISMIIEVIASERIAI
1
1
I HGURA3.1.-FLUJOGRAMAGENKRAJL 1
Si bien se han definido los módulos que componen el software
del sistema y dada su importancia, se puede hablar de un módulo más, el
formado por las rutinas B7VSIC-52 gue se requieren en el programa.
¿ Qué rutinas se requieren en el programa ? Existen opera-
ciones matemáticas sobre un número en la pila de argumento (ATAN para el
arco tangente de un número en pila, COSENO para el coseno, ENTERO para ob-
tener un valor entero, SJG3VO para obtener el signo y SQR para sacar la raíz
cuadrada), o sobre dos números en la pila ( COCIENTE, PRODUCTO, RESTA Y
SUMA), se requiere además poder enviar un número de punto flotante de memo-
ria a la pila de argumento y de la pila a memoria ( ÍUSIHCTC y FRCMSTACK) y
enviar datos vía serial (CARSER para un carácter ubicado en R5 del banco O,
CRLF para mandar un retorno de carro y paso a siguiente línea y TOSER para
Página 45
MODULARIZACION DEL SOFTWARE
transmitir el último número de punto flotante en pila de argumentos por el
pórtico serial). Seguidamente se presenta las rutinas en mención:
.**+** SUBRUTINAS GENERALES *****
ABSOL:2E4C2E4E2E50
2E512E532E55
2E562E592E5A2 ESC2 ESE
2E5F2E612E63
2E642EG62E68
2E692E6B2E6D
2EGE2E702E72
2E732E762E772E7A2E7C2E7D2E7F2E812E822E842E872 ESA
2E8B2 ESC2E6F2E902E922E942E972E982E9A2E9C2E9E2E9F2EAO2EA22EA52F.A62EA82EA92EAB2EAE2EBO2EB2
7418F10922
7422F10922
53DOE7FD7480F10922
740AFIO 922
741CF10922
7407F10922
7419F10922
75F006A453DOE72582F9E5FO3583FB740312003043D01822
A375FOS484600EE5FO75FOOA842410DIGO7483FO22E5FO75FOOA84600CC445FO75FOOODIGO7482FO
MOVACALLRET
ATAN :MOVACA1.LRET
CARSER:ANLMOVMOVACALLRET
COCIENTE:MOVACALLRET
COSENO:MOVACALLRET
CRLF:MOVACALLRET
ENTERO :MOVACALLRET
FROMSTACK:MOVMULANLADDMOVHOVADDCMOVMOVLCALLORLRET
1I2BCD:
INCHOVDIVOZMOVMOVDIVADDACALLMOVHOVXRET
HBCD2 : MOVMOVDIVozSWAPORLMOVACALLMOVMOVX
A,*18HRUTINA
A,*22HRUTINA
PSW,*OE7HR5,AA, #8011RUTINA
A, «BARRUTINA
A, ttlCHRUTINA
A,«07HRUTINA
A, l]9f!RUTINA
B.B06ABPSW.flOE?!!A,DPLRl/AA,BA,DPHR3,AA, «0330HPSW, K18H
DPTRB,H100ABHDCD2A,BB, «10ABA,*10HNPFA,«83HeOPTR^A
A,BB, *10ABHBCD1AA,BB, POOHNPFA, «821-1QDPTR,A
;SACA VALOR ABSOLUTO DE ULTIMO NUMERO STACK
;SACA ARCO TANGENTE DE ULTIMO NUMERO DE STACK
;TRANSMITE CARÁCTER EN ACUMULADOR A PORT. SER./TRABAJA CON BANCO CERO DE REGISTROS/CARÁCTER A R5
;DIVIDE PENÚLTIMO NUMERO DE STACK PARA ULTIMO
;SACA COSENO DE ULTIMO NUMERO DE STACK
;ENVÍA CR-LF A PÓRTICO SERIAL
,-OBTIENE EL VALOR ENTERO DE UN NPF
;SACA UN NUMERO DE PUNTO FLOTANTE DE STACK
/TRABAJA CON BANCO CERO DE REGISTROS
;INVOCA A SUBRUTINA BASIC QUE 6ACA DATO DE;STACK A DIRECCIÓN R3:Rl;TRABAJA CON BANCO TRES DE REGISTROS
;COHVIERTE UN HEXADECIMAL (EN ACC) EN NPF;(PAQUETE BCD) Y ALMACENA EN «DPTR/APUNTA A 2 DÍGITOS MAS SIGNIFICATIVOS
;DI.VIDE NUMERO EN HEXADECIMAL PARA 100;SALTA SI EL NUMERO MENOR QUE 100
;DIVIDE RESULTANTE PARA 10i PONE EN PRIMER DÍGITO DE ACC EL 1;CARGA DÍGITOS Y SIGNO DE NPF;3 ES EL EXPONENTE DEL NPF
;HPF ES MENOR QUE 100;ASI QUE SE LO DIVIDIRÁ PARA 10
;SALTA SI NPF MENOR QUE 10;PONE DÍGITO EN LUGAR MAS SIGNIFIC.;Y CARGA B E» LUGAR MENOS SINGIFIC./SEGUNDO PAQUETE BCD ES CERO/CARGA DÍGITOS Y SIGNO;2 ES EL EXPONENTE D.EL NPF
Página 46
MODULARIZACION DEL SOFTWARE
2EB32EB42EB62EB72EBA2EBC2EBE2EBF2 ECO2EG12EC22EC42 ECS2EC62EC72EC82EC92ECA2ECB2ECC2ECD2ECE
2ECF2 EDI2ED3
2ED42ED62ED8
2ED92EDC2EDE2EEO2EE32 EES2EE72EE92EEC2EEE2EFO2EF32EF52EF72EF92EFB2EFD2EFF2F022F042F062F08
2F092FOC2FOF2F122 VI 42F162F192F1B2F1C2F1F2F21
2F222F242F2G
2F272F292F2B
2F2C2F2E2F30
22E5FOC4V5FOOODIGOV481FO22FOA3H5FQC4FOA3E4FOA3FOA3FOA322
7488F10922
7484F10922
9008357464D18B9008357401F136D1CF9008477401F1369008417401F136D15FF12C7419F1099008357401F136D15F22
53DOE712003043D018COEOE590B52003DOEO22122623DOEO32
741AF10922
741FF10922
7482F10922
RETHBCÜ1 : MOV
SWAPMOVACALLMOVMOVXRET
NPF: MOVXINCMOVSVfAPMOVXINCCLRMOVXINCMOVXi ncMOVXINCRET
PRODUC:MOVACALLRET
RESTA ;MOVACALLRET
REDON2 :MOVMOVACALLMOVMOVACALLACALLMOVMOVACALLMOVMOVACALL"ACALLACALLMOVACALLMOVMOVACALLACALLRET
RUTINA:
ANLLCALLORLPUSH
CAMDISsCJNEPOPRET
ACTUD: LCALLPOPRET
SIGNO:MOVACALLRET
SQR:MOVACALbRET
SUMA:MOVACALLRET
A,BAB,*00NPFA, tteiH6DPTR,A
@ DPTR, ADPTRA,BA0DPTR,ADPTRA0DPTR,ADPTR0DPTR,ADPTR0DPTR,ADPTR
A, H88HRUTINA
A,*84HRUTINA
DPTR, «difA, HOOH2BCDD P T R , f l d i fA, K O ITOSTACKPRODUCDPTR,*k2A, #01TOSTACKDPTR, tklA , * 01TOSTACK.COCIENTESUMAA,»19HRUTINADPTR, ftdifA, 101TOSTACKCOCIENTE
PSW,«OE7H30HPSH,*18HACCMOV A,P1A, 2 O l í , ACTUDACC
ACTOISACC
A,*1AHRUTINA
A, I1FIIRUTINA
A , « 8 2 HRUTINA
;NPF ES MENOR QUE 10
;CARGA EN tDPTR DÍGITOS MAS SIGNIFICAD.
/PREPARA EN ACUMULADOR SIGUIENTES DÍGITOS;Y CÁRGALOS EN IDPTR
;LOS SIGUIENTES 4 DÍGITOS SON CERO
;EN SIGNO, CERO PARA INDICAR POSITIVO
;MULTIPLICA ÚLTIMOS DOS NÚMEROS DE STACK
;RESTA PENÚLTIMO HUMERO MENOS ULTIMO
;APROXIMA NPF EN STACK A 2 DECIMALES;SE PONDRÁ EN REGISTRO dif;100 COMO NPF EN PAQUETE BCD
;LLEVA VALOR DE 100 A STACK
/MULTIPLICA NPF EN STACK POR 100
/ENVÍA K2 Y Kl A STACK
;Y LOS DIVIDE PARA OBTENER;K2/K1=0.5 Y SÚMALO A NPF PARA;REDONDEAR AL SEGUNDO DECIMAL;OBTIENE EL ENTERO
100 NUEVAMENTE A STACK
/VUELVE A DIVIDIR PARA 100
;EFECTÚA LLAMADAS A RUTINAS BASIC Y/CHEQUEA SI HAY CAMBIOS EN DISPLAY
/HASTA AQUÍ LLAMADA A BASIC, EL PROCESO/SIGUIENTE DEBE SER TRANSPARENTE
/REALIZA LA COMPARACIÓN ENTRE Pl/Y 20H, SAL SI SON IGUALES
;ACTUALIZA DISPLAY
/SACA SIGNO DE ULTIMO NUMERO DE STACK
/SACA RAI7, CUADRADA DE ULTIMO NUMERO DE STACK
;SUMA ÚLTIMOS DOS NÚMEROS DE STACK
Página 47
TOSER:2F31 74902F33 F1092F35 22
2P36 V5FOOS2F39 A42F3A 53DOE72F3D 25822F3F F82F40 E5FO2F42 35832 F 4 4 FA2F45 74022F47 1200302K4A -13D0182F4D 22
MOVACALLRET
TOGTACK:MOVHULANLADDMOVMOVADDCMOVMOVLCALLORLRET
A,#90HRUTINA
B, t06ABPSW, «OE7I!A,DPLR O , AA,BA,DPHR2,AA, «0?.30HPSW, H18H
;ENVÍA NPP EN STACK A PÓRTICO SERIAL
/ENVÍA UN NUMERO DE PUNTO FLOTANTE A STACK
,-TRABAJA CON BANCO CERO DE REGISTROS
/INVOCA A SUBRUTINA BASIC QUE PONE EN;STACK A DIRECCIÓN R2:RO;TRABAJA CON BANCO TRES DE REGISTROS
Básicamente, las rutinas BASIC se ejecutan asignando su valor
correspondiente al acumulador, determinando el trabajo con el banco O de
registros, llamando a la dirección 30H y regresando al banco 3 (como co-
rresponde cuando se trabaja con rutinas en ensamblador). Estos 3 últimos
pasos lo hace la rutina RUTINA, que además chequea si existen cambios en el
selector conectado a Pl que indica la pantalla del LCD que debe ser mostra-
da.
Las rutinas H2BCD y REDON2 se encargan de convertir 1 número
hexadecimal en BCD para pasarlo al LCD y de redondear un número en punto
flotante a 2 cifras. Estas por sí solas no constituyen rutinas BASIC pero
dado que se usan en diferentes partes del programa, se 1 es dio el mismo
tratamiento que éstas últimas para invocarlas como un comando dentro del
programa.
3.2.Rutinas de Inicialización
Esta rutina se encarga de poner al microcontrolador a punto
para su operación, para ello debe iniciar la operación del microcontrola-
dor, iniciar la operación del LCD y ordenar el mapa de memoria RAM. Cada
una de estas tres etapas se trata a continuación.
3.2.1.Arranque del microcontrolador.
El BASIC-52 provee una alternativa de arranque que transfiere
el control inicial del microcontrolador a un programa en ensamblador. Para
ello es importante ubicar en la localidad de memoria de programa externa
Página 48
RUTINAS DE INICIALIZACION
2001H el byte OAAH, el cual indica que el inicio de la rutina de arranque
se debe transferir a la localidad 2090H.
9REn la referencia [ ] se explica de manera detallada la manera
de hacer este arranque y se da un programa modelo. El diagrama de flujo y
la rutina creada se basan en ésta.
BASIC muíGIMUOSCOH, IMOtl, TCON fItCOM
IHlGlMlZAGONcfEHCOHO
PE PILAS
PUHIEROSPE HAHEJO
01
1HDICAQUEHOHATPROGIUUA CU RAM
REALIZA CÁLCULOS CON. VALOR DEL CRISTM.I CHVIARKNSA/E
CON X[Al=i2MHr H A C ECÁLCULOS REQUERIDOS
HGURA 3.7.- FLTJJOGRAMA DE ARRANQUE DKTMTC-ROCONTROLADOR
Los cálculos con el valor del cristal (para calibrar los teirpo-
rizadores internos) y la transmisión del mensaje vía serial no requiere de
un procesamiento mayor, ya que exiten rutinas BASIC que realizan estas
operaciones y que se aplican tal como aparecen en el programa a conti-
nuación.
2001
2001 AA
ORG 2001H
DB OAAH ; INDICA A BASIC QUE EL, RESET ES EXTERNO
2090
2090 78FF2092 E42093 F62094 D8FD2096 7S814D
ORG 2090H ; LOCALI7.ACION DE BASIC PARA RESET
; BASIC ASIGNO SCOtl, TMOD, TCON Y T7.CON
,**-*** IHICIALIZAGION DE MEMORIA *****
MOVCLR
HESETl:
MOV
RO, IOFFIIAMOV 0RO,ARO,RESET1SP,«4DH
;PRIMERO ENCERA MEMORIA INTERNAíCOH EL ACUMULADOR = CERO
;Y RO COMO PUNTERO
;PUNTERO DE PILA INTERNA Y
Página 49
RUTINAS DE XNICIALIZACION
2099 753E4D209C 7B07209E 79FF20AO 90FFFF2ÜA3 A320A4 E420A5 FU20A6 EB20A7 B583F920AA E920AB B582F5
20AE 90010A2ÜB1 740F20B3 FO20B4 A320B5 74FF20B7 FO20B8 90010420BB 740F20BD FO20BE A320BF 74FF20C1 FO20C2 90010820C5 740220C7 FO20C8 A320C9 740620CB FO20CC 90010620GF 740F20D1 FO20D2 A32ÜD3 74FF20D5 FO
20D6 7509FE20D9 7511FE20DC 90020020DF 740120E1 FO
20E2 8006
20E4 00 00 0020E7 00 00 1220EA 9020E420ED E50920EF C320FO 940620F2 F50920F4 F620F5 75A00120F8 790620FA E420FB 9320FC F220FD A320FE 1820FF D9F92101 74582103 120030
2106 7513022109 751400
210C 75CBFF210F 75CAD8
2112 7B322114 79802116 D2342118 7406211A 120030
MOV 3EM,*4DH ; PORTADOR DEL MISMO INICIALIZ/iDOSMOV R3,*07H ;07FFH BYTES DE MEHORIA INTERNAMOV R1,*OFFH ;A SER INICIALIZADOS EH ESTE PASOMOV DPTR,»OFFFFH /INICIALIZA DPTR DESDE CERO
RESET2 : INC DPTRCLR A ,-EMCERA USAtIDO ACUMULADORMOVX 9DPTR,A ;A LOCALIDAD APUNTADA POR DPTRMOV A,R3CONE A,DPH/RESET2 ; SIGUE HASTA QUE DPTR SEAMOV A,R1 ; IGUAL, A R3 :R1CJNE A,DPL,RESET2
. ***** INICIALIZACION DE PUNTEROS *****
MOV DPTR, H10AH rPRIMERO MTOPMOV A,flOFH ;QUE SERA IMICIALIZADO CONMOVX «DPTR.A ;EL VALOR OFFFII EQUIVALENTESINC DPTR ;A LAS RAM U4 Y U5MOV A,*OFFHMOVX 9DPTR,AMOV DPTR,*104H ; AHORA VARTOP=MEMTOPMOV A,*OFH ;QUE SERA INICIALJZADO CONMOVX ODPTR.A ; EL VALOR OFFFII E INDICAINC DPTR ;QUE NO HAY ESPACIO RESER-MOV A,ttOFFH ;VADO PARA STRINGSMOVX 6DPTR,AMOV DPTR,»108H / DIMUSE=518 ( 306h ) = LONGITUDMOV A,»0?.H ;DEL PROGRAMA EH RAM (0) +HOVX 8DPTR,A .-DIRECCIÓN INICIO PROGRAMA-INC DPTR ;CION EN RAM (532) + LONGITUDMOV A,*06H ;DE NUMERO PUNTO FLOTANTE (6)MOVX 0DPTR,AMOV DPTR,»:106H ; FINALMENTE VARUSE=VARTOPMOV A,tOFH ;QUE SERA INICIALIZADO CONHOVX 0DPTR,A ; EL VALOR OFFFH E INDICA QUEINC DPTR ;NO HAY VARIABLES EH RAMMOV A, tOFFHMOVX 0DPTR,A
,.**** PREPARACIÓN DE PILAS Y ÁREA DE PROGRAMA *****
MOV 9H,»OFEH ; INICIALIZA PILA DE ARGUMENTOSMOV 11H,*OFEH jINICIALIZA PILA DE CONTROLMOV DPTR,*512 ;APUNTA EL INICIO DEL ÁREA DEMOV A,»01H ;DE PROGRAMA PARA PONER EOFMOVX 9DPTR,A
;***** CÁLCULOS CON VALOR DE CRISTAL *****
SOHP RESET3
XTAL: DB OOH,OOH,OOH /PUNTO FLOTANTE DE CRISTALDB OOHÍOOH,12H ;12 MHz.
RESET3: MOV DPTR, • XTAL ; ENVÍA VALOR DE CRISTAL AMOV A, 9 ;PILA DE ARGUMENTOSCLR CSUBB A, 16 /INDICA QUE VA UN HPF A PILAMOV 9 , AMOV RO,A /GUARDA ESTE VALOR EN ROMOV P2,*l ;P2 INDICA LA PAGINA DE LA PILAMOV Rl,*6 ;EL NUMERO DE BYTES A TRANSFERIR
RESET4: CLR A /TRANSFIERE EL VALOR DE ROM AMOVC A,9A-tDPTR /LA PILA DE ARGUMENTOS EN AMOVX 0RO,AINC DPTRDEC RODJNZ R1,RESET4 /TRANSFIERE TODOS LOS DÍGITOSMOV A,I58H /LLAMA A RUTINA BASIC DE CALCULOLCALL 30H ; DE VALOR DEL CRISTAL
;***** INDICA DONDE EMPIEZA PROGRAMA USUARIO *****
MOV 13H,tO;íH /INDICA A BASIC QUE COMIENZOMOV 14H,«OOH /DE PROGRAMA ESTA EN 512 (200H)
/***** IHICIALIZACIOH PÓRTICO SERIAL *•**»*
MOV RCAP2H,«OFFH ;EN RCAP3 SE PONE OFFD8H PARAMOV RCAP2L,flOD8H ;9GOO bpg CON 12 MHz
.*+*** EHVIA MENSAJE A CONSOLA *****
MOV R3,«32H /DIRECCIÓN DEL MENSAJE ENMOV R1,«80H /R3:R1SETB 52 /IMPRIME MENSAJE DE ROMMOV A, t6 ;A CONSOLA INVOCANDO ALCALL 3 OH /RUTINA BASIC
Página 50
RUTINAS DE INICIALIKACION
2110211F2122212421262128212A212D212F
74071200307B3279AOD234740G1200307407120030
1ÍOVLCALLMOVMOVSETBMOVLCALLMOVLCALL
A, «73 OHR3,#3?.HR1,«OAOH52A, #G3011A,*730H
; ENVÍA UN CR LF
/DIRECCIÓN DEL MENSAJE EN; R3 ; Rl; MENSAJE ESTA EN ROM
,- LLAMA A RUTINA BASIC; ENVÍA UN CR LF
3280 ORG 3280H
;****+MENSAJE DE INICIALIZACION SERIAL
3280 20 4D 45 DB 20H , 4DH, 45H , 44H, 49H , 4 411, 4FH, 52H , 2OH3283 44 49 44 4F 52 203289 44 45 20 DB 44H,45H,20H,66H,70H328C 66 70328E 22 DB 22M
32AO
33AO 30 45 53 DB32A3 50 45 52 45 2032A8 31 35 20 DB32AB 53 45 47 2E32AF 22 DB
ORG 32AOH
2011, 45H , 53 H, 50H, 45H ,5211,45(1, 2 OH
31H,35H,20H,53H,45H,47H,2EH
22H
íMEDIDOR
;DE fp
/TERMINA MENSAJE
;ESPERE
;15 SEG.
/TERMINA MENSAJE
Debido a que la base de la presente aplicación es el programa
en ensamblador, se puede terminar la rutina de esta forma, si se deseara
continuar .al modo linea de comando, se puede aplicar las siguientes
instrucciones luego de la secuencia de RESET.
CLR ALOMP 3OH
Finalmente, cabe destacar que un mensaje transmitido desde RCM
hacia la consola o impresora serial finaliza cuando BASIC-52 encuentra el
código 22H.
3.2.2.Inicialización del LCD.
Cada vez que el módulo LCD es encendido, un procedimiento de
inicialización debe ser ejecutado. Este proceso consiste en enviar una
secuencia de códigos del microcontrolador para dar información sobre el bus
de datos, para indicar si se desea cursor, para limpiar la pantalla y poner
el módulo en un modo de autoincremento.
El código inicial (30H, 34H ó 38H) es enviado dos o más veces
para asegurar que el módulo recibe datos de 4 u 8 bits. Todas las secuen-
cias son realizadas bajo la condición de que el selector de registros (RS)
tenga un nivel bajo (para ello se envían datos a la dirección 1AOOII) y lec-
tura/escritura (R/W) también esté en bajo.
Página 51
RUTINAS DE INICIALIZACION
El mensaje que se envía posteriormente para indicar que el LCD
ha sido inicializado se efectúa con la condición de que exista una señal de
alto en RS (dirección 1A01H) y R/W en bajo.
rOAfOSDE 8 BUS, ICPDE 1 LINEAS, CARAC.-f
SU
aicEMDUxT)3Z 3 I3ms
AUIOIHCREMENIO
ENCIíHPEPAHlAUASIHCURSOR Hl PARPADEO
UMPIAPANIMIA —
PRlHER PICHODE DDRAW
INDICA FIH DEIHICIAtlíAClOH
SECUENCIADE RESÉ I
40 <r POR C A C ACARACIER }'
FIGURA 3.3.-FLUJOORAMA DKmiCIAUZACION DKL
En la figura 3.3 se muestra a continuación es la secuencia de
inicialización de módulos de formato de carácter 5x7 como el L2012 sugerida
por el fabricante.
Por cada código crue se envié es necesario esperar un tiempo
determinado para que se ejecute la instrucción antes de enviar el código
siguiente. Si bien los tientos de ejecución asumidos en el programa son
los recomendados por el fabricante y no se tuvo problema alguno al correr
el programa, la mejor forma de saber si se puede enviar otra instrucción es
chequeando la bandera de ocupado. Esto se logra con RS en bajo y R/W en
alto, es decir, leyendo la dirección 17\OOH; si el bit más significativo del
valor leído es 1, el módulo está trabajando internamente y no se aceptarán
instrucciones hasta que el bit mencionado sea 0.
A continuación se muestra la rutina de inicialización del LCD:
Página 52
RUTINAS DE INICIALIZACION
INDISP: ,-INICIALIZACIOH DISPLAY
214F 43D0182152 79962154 78322156 D8FE2158 D9FA215A 7438215C 901AOO215F FO2160 79322162 783 22164 D8FE2166 D9FA2168 FO2169 A93C216B D9FE216D FO216E A91E2170 D9FE2172 FO2173 A91E2175 D9FE2177 74062179 FO217A 791E217C D9FE217E 740C2180 FO2181 791E2183 D9FE2185 74012187 FO2188 A914218A 7832218C D8FE218E D9FA
ORLHOV
PAUSA1 ;DJNZDJNZHOVMOVHOVXMOV
PAUSA?. :DJNZDJNZMOVXMOVDJN2MOVXMOVDJNZMOVXMOVDJNZMOVMOVXMOVDJNZMOVMOVXMOVDJMZMOVMOVXMOV
PAUSA3 :DJNZDJNZ
PSW,*18HRl,«150MOV R0,t50R0,£R1,PAU6A1A, «3GHDPTR,*discom9DPTR,ARl,«50MOV RO,I50RO,SRl , PAUSA20DPTR,ARl,60R1,S3DPTR,ARl,30Rl,$0DPTR,ARl,30Rl,$A,» 061 1@DPTR,AR1,I30Rl,$A,flOCH0DPTR,ARl,«30Rl,$A,t01H@DPTR(ARl/20MOV RO,I50R0,$Rl , PAUSAS
,-TRABAJA COH BANCO 3 DE REGISTROS; REALIZA UtlA ESPERA DE 15 ms
;PARA GARANTIZAR RESET DEL DISPLAY
; INICIA SECUENCIA DE RESET DEL DISPLAY/(ESTA ES LA DIRECCIÓN DE COMANDOS)/ENVIANDO 4 VECES EL VALOR 3 8! I/CON ESTADOS DE ESPERA INTERCALADOS
; ( PRIMERO UNO DE 5ms Y LUEGO TRES; DE 60us)/DE MANERA QUE EL/EL DISPLAY RECIBA EL COMANDO/DE ESTABLECIMIENTO DE FUNCIÓN/LONGITUD DE BYTE 8 BITS, DISPLAY DE;2 LINEAS, FORMATO 5x7 PUNTOS
/COMANDO DE MODO DE E NTRADA : EN INGRESO;DE DATOS, LA PANTALLA NO SE DESPLAZA Y/LA POSICIÓN DEL CURSOR SE INCREMENTA
/COMANDO DE CONTROL DE DISPLAY: ENCIENDE/EL DISPLAY, DESACTIVA EL CURSOR.
/COMANDO DE LIMPIAR PANTALLA
/ESPERA DE 2ug PARA COMANDO ANTERIOR
/MENSAJE DE RESET
2190 74802192 FO2193 791E2195 D9FE2197 78002199 903280219C ES219D 93219E B4220221A1 21AE21A3 901A0121A6 FO21A7 0821A8 791E21AA D9FE21AC 219921AE 901AOO21B1 74CO21B3 FO21B4 791E21B6 D9FE21B8 780021BA 9032AO21BD ES21BE 9321BF B4220221C2 21CF21CM 901A0121 C7 FO21C8 0821C9 791E21CB D9FE21CD 21BA21CF E59021.D1 F52021D3 53DOE721D6 22
MOVMOVXMOVDJNZ,MOV
HEÑÍ: MOVHOVMOVGCJNEAJMP
MENA: MOV -MOVXINCMOVDJNZAJMP
MEN2 : MOVMOVMOVXMOVDJN?,MOV
MEN3 : MOVMOVMOVCCOMEAJMP
MENB : MOVMOVXINCMOVDONZAJMP
MEN4 : MOVMOVANLRET
A,»80H9DPTR,ARl,«30Rl,$RO, 100DPTR,*3280HA,ROA,0A-)DPTRA,*22H,MKNAMEH2DPTR, Idisdat0DPTR,ARORl,t30Rl,$MEtaDPTR,*dlgcomA, IOCOH0DPTO.ARl, 130R1,SRO, 100DPTR, t32AOHA,ROA , QA-l-DPTRA, H22H,MENBMEN4DPTR, IdisdabBDPTU^ARORl, 130Rl,$MEM3A, Pl2011, APSW, ÍOE7H
/UBICA ESCRITURA A PRIMER BYTE DEL DD RAM/PARA ESCRIBIR MENSAJE DE RESET
I PUNTERO DE LETRAS DE MENSAJE/DIRECCIÓN INICIAL DE MENSAJE EN ROM/CARGA CARÁCTER RO/EN ACUMULADOR
;ESTA LA DIRECCIÓN DE DATOS DE DISPLAY/Y PASA DATO A DISPLAY;LEE SIGUIENTE CARÁCTER
/UBICA ESCRITURA A PRIMER BYTE 2DA. LINEA,-PARA ESCRIBIR MENSAJE DE RESET
/PUNTERO DE LETRAS DE MENSAJE/DIRECCIÓN INICIAL DE MENSAJE EN ROM/CARGA CARÁCTER RO/EN ACUMULADOR
/ESTA LA DIRECCIÓN DE DATOS DE DISPLAY/Y PASA DATO A DISPLAY;LEE SIGUIENTE CARÁCTER
/COPIA VALOR DE Pl A/BYTE INTERNO 2 OH/VUELVE A BANCO 0
El mensaje a transmitirse al LCD y que indica que la rutina de
inicialización de éste ha sido corrida se encuentra a partir de las di-
recciones 3280H y 32AOH y se constituye el mismo mensaje que se transmitió
Página 53
RUTINAS DE OFICIALIZACIÓN
vía serial con el mismo propósito. Nótese que la manera de ubicar el fin
del mensaje es detectando el carácter 22H que es el mismo criterio de la
rutina BASIC de transmisión serial de mensaje en RCM.
3.2.3.Disposición del mapa de memoria.
Se mencionó que una gran parte de operaciones se realiza con
números en punto flotante almacenados en memoria, entonces, antes de i-
niciar el diseño del programa, hay que establecer donde se encontrarán al-
macenados estos valores en la memoria de la tarjeta. Para ello, se debe
considerar tres aspectos:
>• Cuanto espacio se requiere.
>• Cuanto espacio está disponible en la tarjeta.
>• Como se distribuirá la memoria de manera que no interfiera con elfuncionamiento de la tarjeta.
Memoria requerida
Constantes son aquellas cantidades que no varían mientras se
ejecuta el programa, éstas normalmente se encuentran tabuladas en memoria
EPRCM. Las variables, en cambio, cambian su valor a través del tiempo y se
encuentran almacenadas en memoria RñM. Dado que las rutinas BASIC-52 de
transferencia pila de argumentos - memoria solo operan con memoria RAM al-
gunas constantes deben ser llevadas allí, por consiguiente, para el cálculo
de memoria requerida serán tomadas en cuenta como variables.
Entonces, lo primero que debe hacerse es definir con que va-
riables se va a trabajar. Para saber cuanto espacio se requiere, se debe
multiplicar el número de variables por 6 ya que el MCS BASIC-52 almacena
todos los números punto flotante en un formato normalizado BCD que ocupa 6
localidades de memoria, en el apéndice II, se explica cual es el formato al
hablar de almacenamiento en RAM externa.
La etapa de adquisición de datos almacena 32 datos de voltaje v
y 32 datos de corriente i, ésto es 384 bytes.
La etapa de cálculo del factor de potencia toma estos valores y
obtiene el valor eficaz del voltaje vrms, de la corriente ZZTTIS, la potencia
Página 54
RUTINAS DE INICXALIZACION
real P, la potencia aparente S y el factor de potencia fp. Son 30 bytes
más.
El análisis de armónicas requiere de 32 datos reales rx y 32
imaginarios ix para analizar la señal, 32 para ordenar los valores de po-
tencia de la señal pora, 32 para los valores de fase ford, 32 para indicar
los armónicos de voltaje varm y corriente iarm, 32 para las respectivas
fases vfas e ¿fas, 2 para la distorsión armónica tobal de voltaje thdv y de
corriente thdi y 1 para el factor de potencia de desplazamiento fpd. Las
constantes inherentes a la transformada rápida de Fourier son 16 reales rar<TK>y 16 imaginarias ir de W . Son en total 1362 bytes.
Otras constantes que se utilizan son kl=32 (numero de muestras
tomadas), k2=16 (número de W )y pí2=pi/2. Para cálculos utilizados en
diversos módulos, se requiere de dos acumuladores svm y di£. Son 30 bytes
más.
Como el LCD requiere de estados de espera, es conveniente tener
un "Display RAM", es decir, un área de RAM que tenga todos los datos que
podrían ir al LCD de manera que cuando el microcontrolador haga cálculos,
actualice solo está sección de memoria y solo cuando se requiera actualizar
el LCD, se transfiera información entre memoria y el LCD. Para esto se
requiere 240 bytes.
Todo esto da un total de 2046 bytes de memoria RAM.
Adicionalmente, es necesario asignar una localidad de memoria
al conversor analógico digital que rrd.de voltaje y otra para el que mide
corriente. De ser preferible cada conversor debe tener su propia línea CS
(Chip Selector). Se debe obrar de manera similar para la pantalla de vi-
sualización de resultados (LCD).
Espacio disponible
Debe recordarse que la memoria que se puede utilizar con el
8052AH-BASIC es básicamente externa. La memoria RAM interna es usada en su
mayor parte por el BASIC-52 por lo que para el manejo de variables se usará
solo RAM externa. Solo la localidad interna 20H se usará como registro del
Página 55
RUTINAS DE INICIALIZACION
selector de pantalla del LCD, ésta y la localidad 21H, además del banco 3
de registros, son las únicas localidades internas permitidas al usuario.
La tarjeta del 8052AH-BASIC tiene particionada la memoria enOQ
una configuración de memoria/hardware modo RAM/EPRCM¿:7 buscando algunas
características como programación de EPRQM's, manejo de interrupciones
desde ensamblador, extensión del conjunto de comandos/sentencias, operaciónorv
de reset en lenguaje ensamblador y realización de algunas pruebas0 . El
mapa de memoria queda establecido de la siguiente manera:
ELEMENTO
U4-RAM1
U5-RAM2
UG-8255
114-6,7,6
U2-EPROM1
U2-EPROM1
H4-2
U3-EPROM2
H4-3
H4-4
114-5
CAPAC.
2K.
2K
O.SK
1.5K
8K
8K.
2K
8K
8K
8K
8K
DIRECCIÓN
OOOOh-OlFEh
01FFh-07FFh
OSOOh-OFFFh
1800h-19FFh
lAOOh-lFFFh
2001H
2002h
2Ó03h-202Fh
2030h-203Fh
2040h-2047h
2048h-2049h
2050h-2059h
20GOh-2069h
2070h-2087h
2088h-2099h
2090h-209Fh
2100h-21FFh
3200h-3FFFh
dOOOh-SFFFh
6000h-7FFFh
8000h-9FFFh
AOOOh-BFFFh
COOOh-DFFFh
EOOOb-FFFFh
DESCRIPCIÓN
RESERVADO BASIC-52
RAM LIBRE
RAM LIBRE
INTERFAZ 8255
DISPONIBLE
SI AAh, USA RESET PARA ASSEMBLER
SI 5Ah, EXTENSIÓN COMANDOS/SENTENCIAS.
MANEJO DE INTERRUPCIONES
RUTINAS DE MANEJO DE CONSOLA
TRAMPA INT. EXT. 1 0 MANEJO CONSOLA
MANEJO MANUAL COMANDOS/SENTENCIAS.
TRAMPA DE LA INT. PÓRTICO SERIAL
RESERVADO MANEJO DE CONSOLA
RESERVADO EXTENSIÓN COMANDOS/SENTENCIAS.
TRAMPA DE LA INT. EXT. 1
RESET PARA ASSEMBLER
LLAMA RUTINAS ASSEMBLER DE USUARIO
EPROM LIDRE
SOLAPADO 2000h-3FFFh POR JP6 : 2 y 3
DISPONIBLE
PROGRAMAS BASIC
DISPONIBLE
DISPONIBLE
DISPONIBLE
La memoria RAM disponible es de 3585 bytes ubicadas entre OlFFh
y OFFPh. Por otro lado, las líneas de selección de chip disponibles para
manejar los dispositivos de entrada y salida son CS1B (desde lAOOh 512 by-
tes), CS2B (ICOOh 512 bytes), CS3B (lEOOh 512 bytes), CS3 (GOOOh 2K), CS5
(AOOOh 8K), CS6 (COOOh 8K) y CS7 (EOOOh 8K).
Distribución de variables en memoria
Se requiere de 2046 bytes de memoria RAM y se dispone de 3585,
esto da un sobrante de 1539 bytes. Cabe la pregunta ¿ es necesario tener
memoria disponible ?. Si se considera que se debe hacer pruebas para la
Página 56
RUTINAS DE INICIALI2ACION
etapa de diseño o modificación del programa, es necesario tener memoria
disponible para hacer pegúenos programas y manejar unas pocas variables.
El BASIC-52 ubica las variables desde la última localidad de
memoria disponible hacia las anteriores por lo que se debe reservar un es-
pacio al final de RAM para el uso de variables BASIC (30 son más que sufi-
cientes para un programa de prueba) y dejar el resto de la memoria
disponible al comienzo para el programa de prueba en si (casi 1.3 Kbytes
restantes).
De esta manera, el mapa de memoria RAM gueda establecido así:
DIR.JNIG.
OlFFh
017011
OBOOh
0806H
080Ch
0812h
0818h
081Eh
0824h
082AH
0830H
083 6h
083Ch
0842h
0848h
065 Oh
0910h
09DOh
OA3 Olí
OA90H
OBSOh
OClOh
OCDOn
QD90h
ODFOh
OESOh
OEBOh
OFIOh
NEMONICO
dspcam
power
3
fp
epdvrms
irms
thdithdv
sum
di£
pi2
klk2V
i
rar
ir
rx
ix
pord
£ord
varm
iacm
v£as
i fas
FUNCIÓN
libre procirama de prueba
tnbio de Dieplay RAM
potencia real
poCencia aparente
factor de potencia
factor de potencia de desplazan*.
valor rms de voltaje
vaJor rms de corriente
distorsión armónica total corr.
distorsión armónica total voltaje
acumulndor
ocumulador
pi2=pi/?.
kl
k2
datos de voltaje
datos de corriente
real H^-
imaginario Vf**
real de variab. análisis armónicas
imaginario de variab. anal. arm.
módulo de armónicas
fase de armónicas
armónicas de voltaje
armónícao de corriente
fase de armónicas de voltaje
fase de armónicas de corriente
libre variables BAGIC
SO. VARIABLES
240 bytes
1
1
1
1
1
1
1
1
1
1
1
1
1
32
32
16
16
32
32
32
32
16
16
16
16
30 BASIC
NUMERO BYTK9
1297
240
6
6
6
6
6
6
6
6
6
6
6
6
6
192
192
96
96
192
192
192
192
96
96
96
96
240
No está demás decir que si al realizar un programa de prueba,
se utiliza más memoria que la requerida ya sea en el programa o en las
variables BASIC, los resultados a obtenerse son impredecibles.
Página 57
RUTINAS DE INICIALIZACION
Los convertidores analógico digitales de voltaje y de corriente
se pueden ubicar en las direcciones lEOOh (línea de selección CS3B)y ICOOh
(CS2B) y la pantalla de visualización de datos en IñOOh (CS1B).
Es preciso también ubicar el área reservada, el área de
constantes y el área de programa en la EPROM. En primer lugar, el juroper 6
se pondrá entre las posiciones 2 y 3 para solapar las direcciones
2000h-3FFFh y ^OOh-SFFFh de manera que el manejo de interrupciones, la
opción de reset y la programación en ensamblador se encuentren fisicamente
en el mismo chip (U2-EPROM1). En segundo lugar, se requiere espacio para
las tablas de constantes correspondientes a rar (96 bytes), ir (96 bytes),
pi2(6 bytes), kl (6 bytes), k2 (6 bytes), una tabla de valores k (32 bytes)
para ordenar las armónicas y las tablas de valores de equivalencia del con-
versor de voltaje conwolt (1536 bytes) y corriente convcorr (1536 bytes).
En tercer lugar, se tratará en lo posible de mantener al programa en en-
samblador dentro de la misma página de 11 bits. Así, la meimoria EPRCM se
verá dividida de la siguiente forma:
DIRKCC. INIC.
2001h
200Bh
2090h
2800h
3000h
3100h
320011
3306h
320Cb
3280b
32AOh
3300h
3380h
33EOh
3-ÍOOh
3AOOh
FONCIOH
OAAh para RESET externo
Atención inf.ecr. timar 0
Página 1 del programa
Página 2 del programa
ROM para Display RAM
Direccionee Display RAH
pi2
kl
YaHensaje 1 inicializac.
Mensaje 2 inicializac.
VTKv reales
H^imaginarios
K
Conwolt
Convcorr
TOTAL
NOMERO DE BYTE8
1
3
1589
1698
233
142
6
6
e14
15
96
96
32
1536
1536
7009
Con el objeto de modalarizar, todos los punteros se cargarán
con constantes de manera que si se desea cambiar la estructura misma del
programa y los datos, solo se tenga que cambiar al inicio del programa.
Para iniciar el programa ensamblador, el listado requerido de constantes
quedaría de la siguiente forma:
LISTADO DE CONSTANTES
Página 58
RUTINAS DE INICIALIZACION
084132050847320B083B31FF
; Las direcciones que apuntan las siguientes constantes son las; anteriores oí primer dígito de las valorea a usarse.
leí EQU 0841H ;kl=NUMERO DE MUESTRAS TOMADASklrom EQU 3205H ;DATO Kl EN ROMk2 EQU 0847H ;fc2=NUMERO DE FRECUENCIAS OBTENIDASk2rom EQU 320BH ;DATO K2 EN ROMpÍ2 EQU 083BH ;pÍ2=pi/2pÍ2rom EQU 31FFH ;DATO PI/2 EN ROM
00280020001.00005000100010001OOFE0006
/ Las siguientes etiquetas tienen asignado los valores a; continuación que indican el número de variables con las,- que se trabaja en determinados procesos
dspnurnmunumrnummulogpi2numklnumk2nurntrebtrel
EQUEQUEQUEQUEQUEQUEQUEQUEQU
4032165111OFEII006H
; NUMERO DE BYTES DE DISPLAY RAM; NUMERO DE MUESTRAS TOMADAS; NUMERO DE W|N<K>;LOG(MUNUM)/LOG(2) PARA 64=6, PARA 32=5
;MSB DE RECARGA TIMER O PARA TOMAR MUESTRAS,-LSB DE RECARGA TIMER O PARA TOMAR MUESTRAS
-**•** + LISTADO DE DIRECCIONES DE ENTRADA Y SALIDA *****
Laa direcciones que apuntan las siguientes etiquetas sondirecciones de localidades externas.
ICO O1EOO1AOO1A01
39FF33FF0835070F2FFF30FFOCCFOD2F080B0811090FODEFOEAFOA2F081D337FOB4F33DF07FFOCOFOC6F09CF32FFOA8F0805082F08230829084FOD8FOE4F0817
adci EQUadcv EQUdiscom EQUdisdat EQU
; Las direcciones/ las anteriores
ccorr EQUcvolt EQUdif EQUdspram EQUdsprom EQUdrpos EQUford EQUfpon EQUfp EQUfpd EQUi EQUlarm EQUi fas EQUir EQUinris EQUirroni EQUix EQUnx EQUpower EQUpord EQUppos EQUrar EQUrarrom EQUrx EQUs EQUsum EQUthdi EQUthdv EQUv EQUvnrm EQUvfne EQUvrms EQU
1COOH1EOOH1AOOHIAOIH
que apuntan
/DIRECCIÓN ADC CORRIENTE; DIRECCIÓN ADC VOLTAJE; DIRECCIÓN COMANDOS DE DISPLAY,-DIRECCION DATOS DE DISPLAY
las siguientes etiquetas sonal primer dato de las tablas a usarse.
39FFH33FFH0835H070FH2FFFH30FFHOCCFHOD2F1I080BH0811H090FHODEFHOEAFHOA2FH081DH337FHOB4FH33DFM07FFHOCOFHOC6FH09CFH32FFHOA8FH0805H082FH0823H0829H084FUOD8FHOE4FH0817H
, TABLA DE CONVERSIÓN DE CORRIENTE EN ROM/TABLA DE CONVERSIÓN DE VOLTAJE EN ROM/REGISTRO TEMPORAL EN FFT; DISPLAY RAM; TABLA INICIAL DISPLAY RAM EN ROM/TABLA DE CAMBIOS EN DISPLAY RAM; TABLA DE FASE FFT ORDENADA; POSITIVOS DE FASE;DATO DE FACTOR DE POTENCIA/DATO DE FACTOR DE POTENCIA DE DESP/TABLA DE MUESTRAS DE CORRIENTE/MODULO DE ARMÓNICAS DE CORRIENTE/FASE DE ARMÓNICAS DE CORRIENTE;TABLA DE wA<k> IMAGINARIOS;DATO DE CORRIENTE EFICAZ/TABLA IR EN ROM,-TABLA DE VARIABLE FFT IMAGINARIA/TABLA A USARSE EN ROM/DATO DE POTENCIA REAL; TABLA DE POTENCIA FFT ORDENADA/POSITIVOS DE ANTERIOR/TABLA DE wft<k> REALES/TABLA RAR EN ROM/TABLA DE VARIABLE FFT REAL/DATO DE POTENCIA APARENTE/REGISTRO TEMPORAL EN FFT/DATO DE DISTORSIÓN ARMÓNICA TOTAL I/DATO DE DISTORSIÓN ARMÓNICA TOTAL V; TABLA DE MUESTRAS DE VOLTAJE/MODULO DE ARMÓNICAS DE VOLTAJE/FASE DE ARMÓNICAS DE VOLTAJE;DATO DE VOLTAJE EFICAZ
Para un adecuado manejo de las rutinas BASIC, se hace necesario
copiar las constantes rar, ir, pi2, kl y k2 de EPRCM a RAM, además de defi-
nir el Display RAM. El paso de las constantes a RAM es fundamental, ya que
la copia de números de punto flotante en memoria a la pila de argumento es
Página 59
RUTINAS DTE INIC1ALIZACIOH
realizada por el BASIC cuando estos números se encuentran en RAM. La ruti-
na MAPA, mostrada en la figura 3.4, realiza estas funciones:
REQUISITOS: RfJ.R5:TH,DPTR
RO<-#VA1.0RCS A COPIARR5:R,1-c-DIRECCIÓN IHICIALHAHDPTR-í-DIRECCltmiRlCUL ROM
DSPRAM, DSPTWK)
ROMRAM(K2Hi;M.
FIGURA 3.4.- FLXJJOGRAMA
DE, RUTINA MAtA
MAPA
RUTINA QUE CONFIGURA EL MAPA DE MEMORIA RAM
,' ENTRADAS :
/9ALIDAS:
dapromir romklrornk2rompi2romrarrofndspramIrklk2pi2ror
dj reccióndireccióndireccióndireccióndireccióndireccióndireccióndireccióndireccióndireccióndireccióndirección
í nlcioinicioinicioinicioinicioinicioinicioinicioinicioinicioinicioinicio
0710II-OVFFI!OB3CII-0841M0842H-0847HOS-IBH-OBADII09DOH-OA3FHOA30IÍ-OABFH
de bobla de display ram en romde tabla WA<K> imoginarios en romdel valor de kl en romdol valor de k2 en romdsl valor de pi/2 en romde tabla W^<K> reales en romde diaplay ramde tabla H"<K> imaginarios en ramdel valor de kl en ramdel valor de k3 en ramdel valor do pi/2 en ramde tabla HA<K> reales en ram
ubicación da dioplay ramubicación valor de pi/2 en ramubicación vnlor de kl en ramubicación vnlor do k2 en ramubicación tabla Wrt<K> reales en rnmubicación tabla WA<K> imaginarios en rnm
Página 60
RUTINAS DE INICIALIZACION
,- PROCESO .-
,- Almaceno tablas originarias de rom en localidades de/ de memoria RAM . Para ello invoca a la eubrutina ROMRAM .
/CONSTANTES USADAS:
; dspnum cantidad de bytes de disply ram; klnum cantidad de valoreo de kl/ k2num cantidad de valores de K2; pi2num cantidad de valores de pi /2
rnum cantidad de valorea de
/VARIABLES CREADAS:
; RO indica cantidad de valoreo a copiares en ROMRAM/ R5:R4 dirección inicial de tabla de valoree en RAM; DPTR dirección inicial de tabla de valores en ROM
,-GUBRUTIHAS USADAS
/ ROMRAM
/REGISTROS ALTERADOS
DPTR, A, RO, Rl, R2, R3 , R4 , R5
21D7 43D01821DA 782821DC 90Ü70F21DF A321EO AC8221E2 AD8321E4 902FFF21E7 A321E8 513E21EA 781021EC 9009CF21EF A321FO AC8221F2 AD8321F4 9032FF21F7 A321F8 513E21FA 781021FC DOOA2F21FF A32200 AC822202 AD832204 90337F2207 A32208 513E220A 7801220C 90083B220F A32210 AC822212 AD832214 9031FF2217 A32218 513E221A 7801221C 900841221F A32220 AC822222 AD832224 9032052227 A32228 S13E222A 7801222C 900847222F A32230 AC822232 AD832234 90330B2237 A32238 513E223A 53DOE7223D 22
MAPA: ORLMOVMOVINCMOVMOVMOVINCACALLMOVMOVINCMOVMOVMOVINCACALLMOVMOVINCMOVMOV 'MOVINCACALLMOVMOVINCMOVMOVMOVINCACALLMOVMOVINCMOVMOVMOVINC.ACAbbMOVMOVINCMOVMOVMOVINCACALLAHLRET
PSW, I1Í3HRO, «dspnumDPTR, idspramDPTRR4,DPLR5 , DPHDPTR, «dspromDPTRROMRAMRO , ftrnumDPTR,«rarDPTRR4,DPLR5,DPHDPTR, ffrarromDPTRROMRAMRO, *rnumDPTR, * irDPTRR4,DPLR5.DPI!DPTR, tirromDPTRROMRAMRO, *pi2numDPTR,*pi2DPTRR4 , DPLR5,DPHDPTR, *pi2 romDPTRROMRAMRO, 1 klnumDPTR, dklDPTRR4 , DPLR5 , DPHDPTR,íklromDPTRROMRAMRO, *k2numDPTR,«k2DPTRR4,DPLR5,DPHDPTR, tk2 romDPTRROMRAMPStf,IOE7H
;UTILI7.A BANCO 3 DE REGISTROS/CARGA EN RO CANTIDAD DE VALORES A COPIAR
;DIRECCIÓN INICIAL EN DPTR;CARGA DIRECCIÓN INICIAL DE TABLA DE/VALORES DE DISPLAY RAM EN R5:R4/ÍDEM DE ROM EN DPTR
/COPIA DE ROM A RAM/CARGA EN RO CANTIDAD DE VALORES A COPIAR
;DIRECCIÓN INICIAL EN DPTR;CARGA DIRECCIÓN INICIAL DE TABLA DE/VALORES rnr DE RAM EN R5:R4/ÍDEM DE ROM Eli DPTR
/COPIA DE ROM A RAM/CARGA EN RO CANTIDAD DE VALORES A COPIAR
/DIRECCIÓN INICIAL EN DPTR;CARGA DIRECCIÓN INICIAL DE TABLA DE/VALORES ir DE RAM EN R5:R4;IDEM DE ROM EN DPTR
/DIRECCIÓN INICIAL EN DPTR;CARGA DIRECCIÓN INICIAL DE TABLA DE,-VALORES PÍ2 DE RAM EN R5:R4/ÍDEM DE ROM EN DPTR
;COPIA DE ROM A RAM;CARGA EN RO CANTIDAD DE VALORES A COPIAR
¡DIRECCIÓN INICIAL EN DPTR/CARGA DIRECCIÓN INICIAL DE TABLA DE/VALORES kl DE RAM EN R5:R4/ÍDEM DE ROM EN DPTR
/COPIA DE ROM A RAM/CARGA EN RO CANTIDAD DE VALORES A COPIAR
;DIRECCIÓN INICIAL EN DPTR/CARGA DIRECCIÓN INICIAL DE TABLA DE/VALORES kl DE RAM EN R5:R4;IDEM DE ROM EN DPTR
/COPIA DE ROM A RAM;TRABAJA CON BANCO CERO DE REGISTROS
UBRUTINAS DE MAPA
*** ROMRAM ****
Página 61
RUTINAS DE INICIALIZACION
;ENTRADAS:
RO . cantidad de valoree en punbo flotanteR5:R4 dirección primer valor del primer dato en RAMDPTR dirección primer valor del primer dallo en ROM
;GALIDAS:
Direcciones R5:R4 - R5:(R4+RO-1) en RAM ocupadas condatos de ROM.
;PROCESO:
; Carga DPTR en R3:R3, por 6 ocasiones (equivalentes a; 6 dígltoB por número en punto flotante) se copia la/ dirección en ROM apuntada por DPTFÍ al acumulador, se/ carga en DPTR la dirección R5:R4 y se carga valor del/ acumulador en eaa dirección, se incrementan lae direcciones; R3:R?. y R5:R4, y se copia R3:R2 en DPTR. Se repite/ hasta que ya no falten más números (R0=0)
;CONSTAN17ES USADAS:
; ninguna
;VARIABLES CREADAS:
; A registro del valor de tabla a copiarse/ RO número de datos a procesarse/ Rl contador de iteraciones para NPF
R3:R2 puntero de tabla de valores en ROM;; R5:R4 puntero de tabla de valores en RAM; DPTR puntero para mover valores desde y hacia el acumulador
,-GUBRUTINAS USADAS
; ninguna
/REGISTROS ALTERADOS
; DPTR, A, RO, Rl, R2, R3, R4, R5
223E22402242
2244224522462248224A224B224C224D224F2250225122522254225522572359225B225D
AB83AA827906
E4938D838C82FOOAEA7001OBOCEC7001OD8B838A82D9E9D8E522
ROMRAM :MOVMOV
ROM1 : MOV
ROM2 : CLRMOVCMOVHOVMOVXINCMOVONZINC
ROM3 : INCMOVJHZINC
ROM 4: MOVMOVDJHZDGNZRET
R3 , DPHR3,DPLR1,*OG
AA,0A+DPTRDPH,R5DPL.R40DPTR,AR2A,R2ROM3R3R4A,R4ROM 4R5DPH,R3DPL,R2R1,ROM2RO , ROM!
;COPIA RO*G LOCALIDADES DE R3 :R2 A I;COPIA DPTR A R3:R2
rCÜEMTA 6 ITERACIONES POR NUMERO EN PUNTO/FLOTANTE (NPF)
;CARGA LOCALIDAD R3:R2 DE ROM A ACC.*
/AJ.MACENA ACC. EN LOCALIDAD R5:R4 DE RAM
/INCREMENTA PUNTERO; DIRECCIÓN EN ROM;R3:R2
; INCREMENTA PUNTERO; DIRECCIÓN EN RAM;R5:R4
; REPITE G VECES EL PROCESO,-Y CONTINUA CON LOS DEMÁS NÚMEROS
3000 ORG 3000H
; TARLA DE CONSTRUCCIÓN DE DIEPLAY RAM
; Datos generales de red
3000 20 50 3D db2 0 h í 5 0 h , 3 D h , 3 0 h ( 2 C l ] , 3 0 h , 3 0 l i , 6 B b í 5 7 h , 2 0 h / 2 0 h ( 6 6 h , 7 0 h / 3 D l i , 3 0 h / 3 0 h , 2 5 1 i / 2 0 h , 2 0 h , 2 0 h
3003 30 2C 30 30 6B 57 20 20 G6 70300D 3D 30 30 25 20 20 20
/ " P = 0 , O Ü k W Ep=00%
Página 62
RUTINAS DE IMICIALIZACION
3014 20 53 3D db2Qh,53h ,3Dh,30h ,2Cni ,30h ,30h ,6Bh,56h ,41h ,20h ,66h ,64h ,3Dh,30h ,30h ,25h ,20h ,2Bh,20h3017 JO 2C 30 30 GB 56 41 20 66 643021 3D 30 30 25 20 2B 20
;• S=0,OOkVA fd=00% + "
3028 56 3D 30 db56h ,3Dh,30h ,30h ,30h ,56h ,20h ,20h ,31h ,3Ah,30h ,30h ,30h ,56h ,20h ,44h ,3Dh,30h ,30h ,25h
302 B 30 30 56 20 20 31 3A. 30 30 303035 56 20 44 30 30 30 25
; - V = O O O V l í O O O V D=OOV
303C 49 3D 30 db49h,3D!l ,30h ,30h,2Ch,30h f 41h , 201], 31h , 3Ab, 30h, 30h , 3Ch, 30b , 20h, 4 4h , 3Dh , 30h , 30h , 35h303F 30 2C 30 41 20 31 3A 30 30 2C3049 30 20 44 3D 30 30 25
; " I=00 ,OA 1:00,0 D=OOÍ"
; Datos de armónicas de voltaje
3050 20 32 3A db20h ,32h ,3Ah,30h ,30h ,30h ,2Bh,30h ,30h ,30h ,20h ,33h ,3Ah ( 30h ,30h ,30h ,2Bh,30h ,30h ,30h3053 30 30 30 2B 30 30 30 20 33 3A305D 30 30 30 2B 30 30 30
;• 2:ÜOOt-000 3:000+000'
3064 20 34 3A db2 Ob,3 4h ,3Ah,3 Oh,3 Oh,3 Oh,2Bh,3 Oh,3 Oh,3 Oh ,2 Oh,35h,3Ah,3 Oh,3 Oh,3 Oh ,2Bh ,3 Oh,3 Oh,3 Oh3067 30 30 30 2B 30 30 30 20 35 3A3071 30 30 30 2B 30 30 30
;' 4:000 + 000 5:000)-000"
3078 20 36 3A db2 Oh , 3 6h , 3 Ah , 3 Oh , 3 Oh , 3 Oh , 2 Bh , 3 Oh, 3 Oh, 3 Oh, 2 Oh , 3 7h , 3 Ah, 3 Oh , 3 Oh , 3 Oh , 2 Bh , 3 Oh , 3 Oh , 3 Oh
307B 30 30 30 2B 30 30 30 20 37 3A3085 30 30 30 2B 30 30 30
;' 6:000+000 7:000+000'
308C 20 38 3A db20h ,38h ,3Ah ,30h ,30h ,30h ( 3Bh ,3Oh ,3Oh ,3Oh ,2Oh ,39h ,3Ah ,3Oh ,3Oh ,3 O h , 2 B h , 3 O h , 3 Oh,30h308F 30 30 30 2B 30 30 30 20 39 3A3099 30 30 30 2B 30 30 30
/• 8:000+000 9:000+000"
; Datos de armónicas de corriente
30AO 20 32 3A db20h ,32h ,3Ah,30h ,30h ,2Bh ,30h ,30h ,30h ,20h ,33h í 3Ah / 30h ,30h ,2Bh ,30h ,30h ,30h ,20h f 2Oh
30A3 30 30 2B 30 30 30 20 33 3A 3030AD 30 2B 30 30 30 20 20
; ' 2:00 + 000 3:00 + 000
30B4 20 34 3A db2 Oh,3 4h,3Ah,3 Oh,3 Oh,2Bh,3 Olí ,3 Oh ,3 Oh ,2 Oh,35h,3Ah,3 Ob,3 O h , 2 Bh,3 Oh,3 O b , 3 O h , 2 O h , 2 O h30B7 30 30 2B 30 30 30 20 35 3A 303QC1 30 2B 30 30 30 20 20
7 " 4:00+000 5:00+000 "
30C8 20 36 3A db2 0 h , 3 6 h , 3 A h , 3 0 h , 3 0 h , 2 B h , 3 0 b , 3 0 h , 3 0 h f 2 0 h , 3 7 h , 3 A h , 3 0 h , 3 0 h , 2 B h , 3 0 h , 3 0 h , 3 Q h , 2 0 h , 2 0 h
30CB 30 30 3B 30 30 30 20 37 3A 3030D5 30 2B 30 30 30 20 20
7" 6:00+000 7:00-1-000 "
30DC 20 38 3A db20h ,38h ,3Ah ,30h ,30h ,2Bh ,30h ,30h ,30h ,2Qh ,39b ,3Ah ,30b ,30h ,2Bh ,30h ,30h ,30h ,20h , ; !Oh30DF 30 30 2B 30 30 30 20 39 3A 3030E9 30 2B 30 30 30 20 20
;• 8:00+000 9:00+000 '
Página 63
RUTINAS DE INICIALIZACION
3200 ORG 3200H
,-VALOEt DE PI/2
3200 15 70 79 DB 15h,70h,79b,63h,OOh,81h 7PI/2=1.57079633203 63 00 81
/VALOR DE Kl
3206 32 00 00 DB 32h,OOh,OOh,OOh,OOh,82h ;K1=323209 00 00 82
;VALOR DE K2
320C 16 00 00 DB 16h, OOh, OOh , OOh , OOh , 8?.h ;K2=16320F 00 00 83
3.3.Módulo de adquisición de datos.
El diseño de este módulo es bastante sencillo, solo se debe
leer un dato del convertidor analógíco-digital de voltaje, almacenarlo,
hacer 1 o correspondiente con el de corriente, 1 eer en una tabla la equi-
val encía entre los datos leídos y los valores de voltaje y corriente co-
rrespondientes: a ellos y, finalmente, almacenar estos valores en los
espacios de memoria v e i.
Cabe indicar que para realizar la rutina deben satisfacerse
algunas inquietudes: ¿Cuál será el tiempo de muestreo? ¿Cómo se calculará
el mismo? ¿Deben tomarse simultáneamente las muestras de voltaje y co-
rriente? ¿Se debe leer una muestra de los convertidores analógicos digi-
tales e inmediatamente convertirlos a BCD o esperar al final de la lectura?
Como se indicó anteriormente, se desea temar 32 muestras de
voltaje y 32 de corriente en la fundamental de la señal. Dado que la fre-
cuencia de esta última es 60 Hz, el tiendo de muestreo debe ser de 520 us
(el terrporizador de 16 bits debe cargarse con el valor OFDFSh para generar
una interrupción en este tiempo deseado). Existen algunas formas de regu-
lar el tiempo de muestreo, sin embargo, la más conveniente es con el uso de
los temporizadores internos del microcontrolador. En el 8052AH-BASIC,
existen tres temporizadores internos: el TIMERO que es utilizado como reloj
de tiempo real en BASIC, el TIMER1 que implementa los tiempos para el soft-
ware del pórtico serial, la capacidad de programar EPRCM's y para la gene-
ración de FWM y finalmente, el TIMER2 que genera el baud rate para el
pórtico serial. De estos tres temporizadores, el que tiene menos interés
en el medidor de factor de potencia (que debe transmitir las magnitudes
Página 64
MODULO DE ADQUISICIÓN DE DATOS
medidas por el pórtico serial) es el priirero, por consiguiente éste será
usado para generar la base de tiempo de rrruestreo.
Dado que es sumamente inportante el tener la información de
voltaje y corriente en tiempo real para calcular la potencia (ésta depende
de los desfases entre armónicos de voltaje y de corriente) y el factor de
potencia, las muestras de voltaje y corriente deben ser tomadas casi sin
retraso entre las dos con el objeto de que no exista un ángulo de desfase
equivocado entre ambas.
No debe olvidarse que los convertidores analógicos digitales
entregan un valor de 8 bits correspondientes a la señal analógica que reci-
ben y como los procesos matemáticos en el 8052AH-BASIC se realizan con
números en punto flotante (NPF) en paquetes BCD, debe realizarse una con-
versión de las señales leídas. La manera más rápida de hacer la conversión
es leyendo una tabla de datos, sacrificando memoria RCM, de manera que a
cada valor de 8 bits, le corresponda un NPF en paquete BCD. Esta manera es
también la más efectiva para realizar correcciones que mejoren la precisión
de la medición. Si las lecturas se desvían mucho de los valores reales,
basta con hacer una corrección en la tabla. Otra manera de mejorar la pre-
cisión, es realizando algunas lecturas de los ADC y sacar el promedio de
las mismas. Para no trabajar con multiplicaciones ni divisiones, se puede
leer 16 muestras de cada señal de manera que los 8 bits más significativos
de la suma (un número de 24 bits) corresponde al promedio deseado.
El proceso puede ser mucho más rápido si se torran las muestras
y se realiza la conversión antes de que expire el tiempo de muestreo, sin
embargo, en las pruebas realizadas con la rutina de conversión se notó que
una conversión dura 206 us, 412 us para la conversión de un dato de voltaje
y uno de corriente, por lo que quedan 108 us para promediar los datos que
no son suficientes ni para tomar 4 muestras de cada magnitud. Dado que
para mejorar la precisión se requiere un número mayor de muestras y que el
tiempo adicional de conversión total es menor a 15 ms, es preferible reali-
zar primero las lecturas y posteriormente, realizar la conversión.
Finalmente, para manejar efectivamente el temporizador, es ne-
cesario conocer el uso de las interrupciones en el BñSIC 52. Cuando el
usuario quiere manejar interrupciones, el microcontrolador le asigna los
respectivos vectores de atención en memoria externa (400Bh para el TIMERO,
Página 65
MODULO DE ADQUISICIÓN DE DATOS
también 200Bh con la opción presente de memoria solapada). Cuando se
atiende a una interrupción, el registro PSW es enviado a la pila interna
por BASIC, sin embargo, este registro debe ser recuperado por el usuario
antes de regresar de la interrupción3-1-. De igual forma, no se debe tener
activadas las atenciones a interrupciones cuando se trabaje con rutinasoo
BASIC invocadas desde ensamblador .
Por lo dicho anteriormente, existen 3 etapas del módulo de ad-
quisición de datos: Inicialización del TIMER O, atención de la interrupción
(donde se realizará el muestreo) y procesamiento de los datos recogidos.
Estas tres etapas se pueden apreciar en la figura 3.5.
^
cEM F.UIlfA! PEMWUíJLCtf lH
Vc_^— *"*
E S T E R A POR ~fc*vj
S^>(3>—
Erf K B l A I>E_JXt ( W E R Í I O H ~ '
"*«-^UBMBDKBMB
miao "}¿
COHD.miC.T1HERO
4.
ACTIVA IHTTIMZRO
4-Mo. MUÉS It íAbTOMADAS « 0
•••ARRANCATIHERO
•$Ha. MUESTRAS
ü- SIDETIEHEI1/ÍE.K.U
iLEE MUESTRA
y,
DUSCA VALOR.y
Á
1MMMMERBHM
f~T*)VALMACENA
iJ.KE MUESTRA
I
j.
BUSCA VALOR
% 1 r>- 1 1
/•*•
ALMACENAVALOR I
4-
451
lüi
<
rLQ*m«a
— »
LOCMIWPIS _\H *¿
MIOW
>>l k /
Mtmiti) t O H (ti
itncio IHTEIUL)
4POPF5W
4COHD. ENIC.
TIHERO
4IHCNo. DEHUF3TRAS
4SUMIDO
$/ MUESTREA /
y, i /4.
SOMHV 1SUM3+I |
JL^ M.HAY 16 \? /
\*^4
DEÍÜHl VSUM2
4
— -^
10
_^*s•MMÉ\A 3.3.-
RUTINA TJCCTURA
200B
200B Ü2286C
ORG 300DH
LJMP TMR
INTMRO: jINICIALIZACIOH TIHERO
2140 438901 ORL 17100,10111 ;USO DE 'PHOD PARA TIMER O2143 5389F1 AML XMOD,«OF1H ;COMO TIMER 16 BITS2146 C28C CLR TRO ; DETIENE TIMER O
Página 66
MODULO DE ADQUISICIÓN DE DATOS
2Í40 758CFE214B 758A06214E 22
MOVMOVRET
THO,ItrebTLO,ttrel
/CARGA EL. VALOR INICIAL DE;TIMER PARA INTERRUPCIÓN
LECTUR
LEE DATOG DEL ADC Y ALMACENA EN MEMORIA
;ENTRADAS:
/ adc 1/ adcv/ ccorr; CVolt
; i/ v
dirección de conversor analógico digital do corrientedirección de conversar analógico digital de voltajedirección inicio de tabla de conversión valores de corrientedirección inicio de tobla de conversión valores de voltajedirección inicio de tabla, de muestras de corrientedirección inicio de tabla de muestras de voltaje
;SALIDAS:
0850H-090FH0910H-09CFH
ubicación de muestras de voltaje en BCDubicación de muestras de corriente en BCD
PROCESO:
; Toma 32 muestras de voltaje y 32 muestras de corriente de los; respectivos ADC, para el]o tratadja con el timer O del 8052.; Debe recordarse que debe recuperarse PSW del stock al regresar; cíe interruptores; Cada muestra debe obtenerse del promedio de 16 lecturas con el; objeto de mejorar la precisión de los ADC.; Como cada muestra, es un valor de B bits, se obtiene la dirección
de BU equivalencia en BCD en las tablas apuntadas por ccorr y/ cvolt.; Finalmente, se carga la equivalencia BCD en memoria RAM usando
para ello la rutina ROMRAM.
;CONSTANTES USADAS:
trehtrel
MSB recarga del timer O como refcirencia dol tiempo de muestreoLSB recarga del timer O como referencia del tiempo de muestreo
;VARIABLES CREADAS:
; A variable de propósito general; B variable de multiplicación
RO número de lecturas de ADC maestreadas, numero de datos a; trasladarse en ROMRAM
Rl contador iterativo de número de muestras para sacar lalectura muestreada y para copiar datos en ROMRAM
; R3:R2 valoreo acumulados de voltaje para promedio, dirección; respaldo de DPTR en ROMRAM; R5:R4 valores acumulados de corriente para promedio, dirección/ inicial de tabla de valores en RAM en ROMRAM; R6 contador de número de lecturas muestreadas con valores/ BCD en RAM; DPTR dirección inicial de tabla de valores en ROM en ROMRAM
/SUBRUTÍNAS USADAS
; CONVN, VALTB, ROMRAM, TMR, VALTB, VTMRO
/REGISTROS ALTERADOS
DPTR, A, B, RO, Rl, R2, R3, R4, R5, R6
2808380E28102812281428162819281B281D
43D018D2AFD2A97800D28CB820FDC28CC2A97E20
281F EE2820 14
LECTUR:SETBSETBMOVSETBCJtlECLRCbRMOV
TABLA: MOVDEC
ORL PSW,I18H /BANCO 3 DE REGISTROSEAETOR0,»00TRORO,tmunum,$TROETOR6,tmunum
A,R6A
/HABILITA INTERRUPCIONES/HABILITA INT. DE TIMER O/DEBE HABER munum MUESTRAS;ARRANCA TIMER O/ESPERA LAS mUnum INTERRUPC./DETIENE EL TIMER O,-DESHABILITA INTERR. TIMER O;HAY munum VALORES
Página 67
MODULO DE ADQUISICIÓN DE DATOS
28212824282528272829282B282E28302833283428362838283B283C283D28402841284328452847284A284C284F28502852285428572858285B285E
90084FA311C4AC82A08390084F115F9033FFA311C4780112223EEE1490090FA311C4AC82AD8390090F115F9039FFA311C4780112223E1EBEOOC453DOE723
MOV DPTR,*v ;UBICA EN DPTR, DIRECCIÓN RAMJNC DPTR ;DE PRIMER VALOR DEACALL VALTB ;TABLA DE MUESTRAS VOLTAJEMOV R4,DPL ,-Y COPIA A PAR DE REGISTROSMOV R5,DPH /R5:R4MOV DPTR.lv ;CARGA A DPTR DIRECCIÓN vACALL CONVN ;ENCUENTRA LA MUESTRA PROMEDIOMOV DPTR,*cvolt ;UBICA EN DPTR DIRECCIÓN ROMINC DPTR ;DE PRIMER VALOR EQUIVALENTEACALL VALTB ; DE MUESTRAS DE VOLTAJEMOV R0,*01 ;SOLO UNA MUESTRALCALL ROHRAM ,-TRANSFIERE VALOR REAL A RAMMOV A,R6DEC AMOV DPTR,«i ;UBICA EN DPTR, DIRECCIÓN RAMINC DPTR ;DE PRIMER VALOR DEACALL VALTB ;TABLA DE MUESTRAS CORRIENTEMOV R4.DPL ;Y COPIA A PAR DE REGISTROSMOV R5/DPH ;R5:R4MOV DPTR,«i ;CARGA A DPTR DIRECCIÓN iACALL CONVN /ENCUENTRA LA MUESTRA PROMEDIOHOV DPTR,ICCOrr ;UBICA EN DPTR DIRECCIÓN ROMINC DPTR ,-DE PRIMER VALOR EQUIVALENTEACALL VALTB ;DE MUESTRAS DE CORRIENTEMOV R0,t01 ;SOLO 1 MUESTRALCALL ROMRAM ;TRANSFIERE VALOR REAL A RAMDEC RG /UNA MUESTRA MENOSCJME R6,«00,TABLA ;HASTA QUE SE ACABE»ANL PSW, IOE7H ;BANCO 6 PARA REGRESARRET
SUBRUTIMAS DE LECTUR
/ENTRADAS;
/ RGDPTR
;SALIDAS:
A
;PROCESO:
CONVN
nCimero del dato de 1 byte que se quiere conocerdirección inicial del primer dato de la tabla de búsqueda
valor del dato de 1 byte correspondiente a índice R6
; Se agrega R6 a DPTR y el contenido de la dirección resultante; se almacena en el acumulador.
;CONSTANTES USADAS:
; ninguna
/VARIABLES CREADAS:
; A variable de propósito general
/GUDRUTINAS USADAS
/ ninguna
;REGISTROS ALTERADOS
; DPTR, A, R6
285F E5823861 2E2862 FS822864 74002866 35832868 F583286A EO286B 22
CONVN: MOVADDMOVMOVADDCMOVMOVXRET
A.DPLA,R6DPL,AA, »00A.DPHDPH,AA,@DPTR
/ENCUENTRA A PARTIR DE DPTR;Y R6, LA/DIRECCIÓN CORRESPONDIENTE A;MUESTRA PROMEDIO TOMADA/ESTA DIRECCIÓN SE ALMACENA;EH DPTR,-Y SE CARGA EL CONTENIDO EN A
?ENTRADAS:
/ ndci dirección de converger analógico digital de corriente
Página 68
MODULO DE ADQUISICIÓN DE DATOS
; adcv dirección de conversor analógico digital de voltaje7 i dirección inicio de tobla de muestras de corriente
v dirección inicio de tabla de muestras de voltaje
;SALIDAS:
0850H-086FH0910H-093FH
ubicación de lecturas de muestras de voltajeubicación de lecturas de muestras de corriente
;PROCESO:
Debe recuperarse PSW del stack.Incrementa el contador de lecturas muestreadas.Lee 16 muestras de voltaje y 16 muestras de corriente de los ADC.Acumula muestras en R3 :R2 y R5:R4 respectivamente.Se obtiene el promedio de las 16 lecturas y se almacena en tablas RAM
;CONSTANTES USADAS:
; ninguna
;VARIABLES CREADAS:
,- A variable de propósito general; RO número de lecturas de ADC maestreadas; Rl contador iterativo de número de muestras para sacar la; lectura muestreada/ R3:R?, valores acumulados de voltaje para promedio; R5:R4 valores acumulados de corriente para promedio/ DPTR variable general
/GUBRUTIMAS USADAS
; VTMR
;REGISTROS ALTERADOS
DPTR, A, RO, Rl, R2, R3, R4, R5
286C28GF.287028722873287528772879287B
287D2880288128822883288528862887288A2888288C288D288F2890289128932894289628972898289A289D289F28AO28A228A428A638A828AA28AB28AC28AE28AF28BO28B228B528B7
DODO11D3D28C0879107AOO7BOO7COO7DOO
901EOOEO2AFA74003BF8901COOEO2CFC74003DFDD9EAEA791BD7C4COEO90084FE58228F58274003583F583DOEOFOEC791DD7C4COEO90090FE58228
TMR:
THR1:
POPACALLSETBINCMOVMOVMOVMOVMOV
MOV-MOVXADDMOVMOVADDCMOVMOVMOVXADDMOVMOVADDCMOVDJNZMOVMOVXCHDSWAPPUSHMOVMOVADDMOVMOVADDCMOVPOPHOVXMOVMOVXCHDSWAPPUSHMOVMOVADD
PSWVTHROTRORORl,tl6R2,tOOR3,IOOR4,«00R5, 100
DPTR, tadcvA,6DPTRA,R2R2,AA, 100A,R3R3,ADPTR,*adciA,QDPTRA,R4R4,AA, «00A,R5R5,AR1,TMR1A,R2R1,«3BHA,0R1AACCDPTR,»vA,DPLA,RODPL , AA,*00A,DPHDPH,AACC0DPTR.AA,R4Rl,flDHA,0R1AACCDPTU,*ÍA, DPLA,RO
;COND. NECESARIA INTERRUPCIÓN,CONDICIONES INIC, TIMER O/ARRANCA TIMER O;SE TOMARA OTRA MUESTRA MAS;TOMARA 16 VALORES EN7R3:R2 PARA VOLTAJE;Y/R5:R4 PARA CORRIENTEíPARA LUEGO SACAR EL PROMEDIO
/LEE PRIMERO EL VALOR DE/VOLTAJE DEL ADC/LSB DE SUMATORIO A ACUMULADOR/Y COPIADO A R2;COPIA CERO A ACUMULADOR SIN;ALTERAR CARRY PARA SUMARLO Y;COPIARLO A MSB DE EUMATORIO;LEE AHORA EL VALOR DE/CORRIENTE DEL ADC;LSB DE SUMATORIO A ACUMULADOR;Y COPIADO A R4;COPIA CERO A ACUMULADOR SIH/ALTERAR CARRY PARA SUMARLO Y/COPIARLO A MSB DE SUHATORIO; REPITE IIAS7'A TOMAR 16 VALORES7 LSB DE SUMATORIO A ACUMULADOR7CARGA Rl CON DIRECCIÓN DE R37PARA CAMBIAR PRIMER DÍGITO,E INTERCAMBIAR DÍGITOS EN A,-GUARDA VALOR PROMEDIO7CARGA A DPTR DIRECCIÓN/INICIAL DE LOCALIDADES DE/VOLTAJE UBICANDO LUEGO/DIRECCIÓN CORRESPONDIENTE A/MUESTRA PROMEDIO TOMADAjESTA DIRECCIÓN SE ALMACENA;EN DPTR/RECUPERA VALOR PROMEDIO;Y LO ALMACENA EN MEMORIA;L6D DE SUMATORIO A ACUMULADOR;CARGA Rl CON DIRECCIÓN DE R5/PARA CAMBIAR PRIMER DÍGITO/E INTERCAMBIAR DÍGITOS EN A/GUARDA VALOR PROMEDIO/CARGA A DPTR DIRECCIÓN/INICIAL DE LOCALIDADES DE/CORRIENTE UBICANDO LUEGO
Página 69
MODULO DE ADQUISICIÓN DE DATOS
28B8 F58228BA 740028BC 358328BE F58328CO DOEO28C2 FO28C3 32
MOV DPb/A ;DIRECCIÓN CORRESPONDIENTE AMOV A,flOO /MUESTRA PROMEDIO TOMADAADDC A,DPH ;ESTA DIRECCIÓN SE ALMACENAMOV DPH,A ;EM DPTRPOP ACC ;RECUPERA VALOR PROMEDIOHOVX 9DPTR,A ;Y LO ALMACENA EN MEMORIARETÍ /REGRESA A ESPERA DE INTERR.
/ENTRADAS:
ADPTR
VALTB
número del dato cuyn dirección so quiere conocerdirección inicio! del primer doto de la tabla de búsqueda
,SALIDAS:
; DPTR dirección del dato de 1 bybe correspondiente o índice R6
;PROCESO:
; Se multiplica A por 6 y se agrega el valor n DPTR
/CONSTANTES USADAS:
; ninguna
/VARIABLES CREADAS:
/ B variable de multiplicación
/GUBRUTINAG USADAS
/ ninguna
/REGISTROS ALTERADOS
; DPTR, A, B
2BC4 75F00628C7 A428C8 258228CA F58228CC E5FO28CE 358328DO F58328D2 22
VALTB: MOVMULADDMOVMOVADDCMOVRET
B, 106ABA,nPLDPL,AA,BA,DPHDPH,A
28D3 C26C28Ü5 V38CFE28D8 758A0628DB 22
;ENTRADAS:
brehtrel
VTMRO
MSB recarga del timer O como referencia del tiempo de muestreoLSB recarga del timer O como referencia del tiempo de muesbreo
/SALIDAS:
TIMER O detenido
;PROCESO:
/ Se detiene al TIMER O y BQ le carga con el valor treh:tral
/CONSTANTES USADAS:
; ninguna
;VARIABLES CREADAS:
/ ninguna
/SUBRUTINAS USADAS
/ ninguna
; REGISTROS" ALTERADOS
; ninguno
VTMRO: CLRMOVMOVRET
TRO /DETIENE TIMER OTHO,ltreh /CARGA EL VALOR INICIAL DETLO,*brel /TIMER PARA INTERRUPCIÓN
Página 70
MODULO DE ADQUISICIÓN DE DATOS
La tabla de conversión de datos es sumamente extensa, SKbytes
de datos en punto flotante para los distintos 256 valores del convertidor
de voltaje y otro tanto para el de corriente. Por motivos de espacio no se
incluirá aquí toda la tabla, pero si un extracto que indique el comienzo,
el punto medio y el fin de cada tabla:
3400 ORG 3400H
,-TABLA DE VALORES DE VOLTAJE
; TABLA DE CONVERSIÓN
3400 25 00 00 db 25h, Oh, Oh, Oh,01h,83h3403 00 01 833406 24 80 39 db 24h, 80h, 39h, 20h,01h,83h3409 20 01 83
; valor adc ( O ) - -250
; valor adc ( 1 ) = -248.0332
36F4 29 41 17 db 29h, 41h, 17h, 65h,01h,81h36F7 65 01 8136FA. 98 03 92 db 98h, 03h, 92h, 15h,01h,80h36FD 15 01 813700 98 03 92 dta 98h, 03h( 92h, 15h,00h,80h3703 15 00 813706 29 41 17 db 29h, 41h, 17h, 65h,00h,81h3709 65 00 81
; valor ndc ( 126 ) = -3,941177
; valor adc ( 127 ) = -.9803922
; valor adc ( 128 ) = .9803922
; valor adc ( 129 } = 2.941177
39F4 24 80 39 db 24h, 80h, 39h, 20h/00h,83h39F7 20 00 8339FA 25 00 00 db 25h, Oh, Oh, Oh,00h,83h39FD 00 00 83
3AOO
3AOO 25 00 003A03 00 01 823A06 24 80 393A09 20 01 82
ORG 3AOOH
;TABLA DE VALOREE DE CORRIENTE
; TABLA DE CONVERSIÓN
db 25h, Oh, Oh, Oh,01h,82h
db 24h, 80h, 39h, 20h,01h,82h
; valor adc ( 254 ) = 248.0392
; valor adc ( 255 ) = 250
; valor adc ( O ) -25
; valor fldc ( 1 ) = -24.80392
db 29h, 41h, I7h, 65h,01h,80b
db 90h, 3h, 92h, 15h,01h,7Fh
3CF4 29 41 173CF7 65 01 803CFA 98 03 923CFD 15 01 7F3DOO 98 03 92 db 98h, 3h, 92h, 15h,OOh,7Fh3D03 15 00 7F3D06 29 41 173D09 65 00 80
db 29h, 41h, 17h, 65h,00h,80h
,- valor adc ( 126 )
; valor adc ( 127 ) =
; valor adc ( 128 } =
i valor adc ( 129 )
= -.3941177
-9.803922E-02
9.BQ3922E-02
= .2941177
3FF4 24 80 39 db 24h , 80h, 39h, 20h ,00h ,82h3FF7 20 00 823FFA 25 00 00 db 25h, Oh, Oh, Oh ,00h ,82h3FFD 00 00 82
; valor adc ( 254 ) = 24.80392
valor adc ( 255 J = 25
0000 EHD
Página 71
MODULO DE ADQUISICIÓN DE DATOS
De estas tablas se puede concluir que solo por la resolución
del convertidor de voltaje hay un error de 1.96 V y por la del de corriente
hay de 196 m?Y.
3.4.Módulo de factor de potencia.
Este módulo se encarga de operar sobre los valores de voltaje y
corriente obtenidos en el módulo anterior usando para ello las expresiones
matemáticas de sumatorios y división indicadas en el capítulo 1, para de
esta manera, tener como resultados los valores eficaces de voltaje9 9
(sudatorio de v ) y corriente (sumatorio de i ), la potencia real
(sumatorio de v*i), la potencia aparente (vrms*irms) y el factor de poten-
cia (p/s).
fVALORES V, I
APILA
4-
MULTIPLICA2 Ho*. DE PILA
-&
S1G01EHTKV, I A PILA
4.
MULTIPLICA2 Hoi. DE PILA
4-SUMA
3 Hoi. DEPILA
¿' ¿TODAS LAS
MUESTRAS?
4, siDIVIDE PARAHo. MUESTRAS
4.JL EKVIAAMEMORU9 MAKTEN. KM PU.¿
)J
k<
• <
^ VRUÍ
¥VALORES V, I
APILA
4MULTIPLICA2 HOJ. DE PtLA
JJ
SIGUIENTESV( 1 APILA
4.MULTIPLICA2 Hw. DE PILA
i. SDMA
2Hoí .DEPILA
4-¿TODAS LAS
MUESTRAS?
4,51
KAJZCUAD.YDIVPARAHo.MUESTR
4,
EHVIA AMEMORlJMAHTKH.EH PU/
s*
'<
.<D
VALORES V, 1A PILA
4-MULTIPLICA
4?SIGU1EKTES
V, 1 A P I L A
4
MULTIPLICA2 No*. DE PILA
*SUMA
2 H o í . D K P I L A
4-
:
¿TODAS LASMUESTRAS?
4,51
RAIZCUAD.TDIVPARA No. MUESTR
4-
EHVU A MEMORJMAHTEK. EHPIL^
>J:
'-Kz
YMULTIPLICA2 HOT. DE PILA
4.
EHVIA A MEMORIAMAHTEH.EWPtLA
4-DIVIDE 2
Hoi.DEPILA
4
VALOR. PE PILAA MEMORIA
4- vx- ' ' ^» P
3
Rut
)
I
rr
iJFIGURA *.f.¿ FLUJOGRAMA DE LA |
RUTINA FACTOR DK POTENCIA
El desarrollo de este módulo es sumamente sencillo ya que se
requiere solo enviar números existentes en localidades RAM a la pila de
Página 72
MODULO DE FACTOR DE POTENCIA
argumentos e invocar rutinas BASIC que efectúen operaciones matemáticas.
Una vez realizadas éstas, los resultados deben almacenarse en memoria.
FACTOR
RUTINA QUE CALCULA EL FACTOR DE POTENCIA
ENTRADAS:
V
ipowerBfpvrmsirms
dirección iniciodirección iniciodirección iniciodirección iniciodirección iniciodirección iniciodirección inicio
;GALIDAS:
0800H-0805H0806H-OF97H080CH-0811H0818H-OB1DH081EH-0823H
de tabla mueebrae de voltajede tabla mueabras de corrientedel valor potencia realdel valor potencia aparentedel valor factor de potenciadel valor eficaz de voltajedel valor eficaz de corriente
ubicación valor de potencia realubicación valor de pobencia aparenteubicación valor de factor de potenciaubicación valor eficaz de voltajeubicación valor eficaz de corriente
r PROCESO .-
; 1 Lee valor individual de voltaje v y valor individual; de corriente i. Multiplica v*i y acumula en Bumatorio,; luego divide para número de muestras y almacena; en power y en sback.; 2 Procede de igual manera solo con v para almacenar en/ vrms y en stack.; 3 Igual gue el anterior pero BO.IO con i, almacena, en irmP; y en Btack./ 4 Multiplica dos últimos números del gtack, almacena en; stack y en e (s=vrms*irms)./ 5 Divide dos últimos números del sback, almacena en fp
(fp=p/8).
ICONSTANTES USADAS:
/ kl dirección de constante kl en formato de npf
;VARIABLES CREADAS:
; R puntero de posición de valor en tabla de datos; A puntero de tabla para manejo de stack; DPTR dirección inicial de tabla para manejo de eback
jSUBRUTIHAS UTILIZADAS:
/ VI, V2, 12, SUMA, COCIENTE, FROHSTACK, PRODUG, REDON2, SQR, TOSTACK
;REGISTROS ALTERADOS
/ DPTR, A, UG, B
FACTOR:
28DC 43D01828DF 782028E1 317028E3 18
2BE4 317028E6 D18028E8 D8FA
ORLMOVACAl.tiDEC
FACTOR!:
PSW,K18HRO,«munumviRO
ACALL VIACALL SUMADJHZ RO,FACTOR1
;BANCO 3 DE REGISTROS;CARGA Rü CON munum MUESTRAS OBTENIDASrMULTIPLICA vM POSICIÓN munum;UN DATO MEMOS QUE TRABAJAR
/MULTIPLICA v*i POSICIÓN RO;SUMA A RESULTADO ANIT^RIOR;Y REPITE PARA LAS DEMÁS POSICIONES
Página 73
MODULO DE FACTOR DE POTENCIA
2 SEA28ED28EF28F128F328F528F828FA28FC28FF2901290329052907
2908290A290C290E29112913291529172919291B291E29202922292529272929292B292D
292E29302932293429372939293B293D293F2941294429462948294B294D
294F29512953295629582 95 A295D295F
9008417401D18AB1B3D12D9007FF7401B1C79007FF7401D18A7820317F18
317FD180D8FA9008417401D18AB1B3D1VBD12D9008177401B1G79008177401D18A782031.8E18
318 ED180D8FA9008417401D18AB1B3D17BD12D90081D7401B1C790081D7401D18A
DI 2 3D12D9008057401B1C79008057401D18A
2961 B1B32963 D12D2965 90080B2966 7401296A B1C7296C 53DOE7296F 22
MOVMOVACALLACALLACALLMOVMOVACALLMOVMOVACALLMOVACALLDEC
FACTOR?. :
ACALLACALLDJNZMOVMOV.ACALLACALLACALLACALLMOVMOVACALLMOVMOVACAbbMOVACALLDEC
FACTOR3 ;
ACALLACALLDJNZMOVMOVACALLACALLACALLACALLMOVMOVACALLMOVMOVACALL
FACTOR 4:
ACALLACALLMOVMOVACALLMOVMOVACALL
FACTOR5 :
ACALLACALLMOVMOVACALLANLRET
DPTR,mA, «01TO STACKCOCIENTEREDON2DPTR, «powerA, «01FROM STACKDPTR, 1 powerA, «01TO STACKRO, tmuriumV2RO
V2SUMARO , FACTOR3DPTR, IklA, «01TOSTACKCOCIENTE6QRREDON2DPTR, «vrmsA, «01FROM STACKDPTR, IvrmsA, «01TOSTACKRO, tmunum12RO
12SUMARO,FACTOR3DPTR,*klA, «01TOSTACKCOCIENTESQRREDON2DPTR, «irmsA, 101FROM STACKDPTR, «irmsA, 101TOSTACK
PRODUCREDON2DPTR,«BA, «01FROMSTACKDPTR,«BA, «01TO ETACK
COCIENTEREDON2DPTR, «fpA, «01FROMSTACKPSW,«OE7H
;CARGA VALOR CORRESPONDIENTE;DE NUMERO DE MUESTRAS;A STACK/Y DIVIDE BUMATORIA v*i PARA ESE VALOR/APROXIMA AL SEGUNDO DECIMAL/ALHACENA VALOR DE POTENCIA;A LOCALIDAD DE MEMORIA power
;CARGA VALOR DE POTENCIA;NUEVAMENTE;EN STACK;l!AY munum MUESTRAS OBTENIDAS;MULTIPLICA v*v POSICIÓN munum;UN DATO MENOS QUE TRABAJAR
/MULTIPLICA v*v POSICIÓN RO/SUMA A RESULTADO ANTERIOR/Y REPITE PARA LAS DEMÁS POSICIONES/CARGA VALOR CORRESPONDIENTE;DE NUMERO DE MUESTRAS;A STACK/DIVIDE SUMATOIUA v*v PARA ESE VALOR/SACA RAÍZ CUADRADA AL RESULTADO/APROXIMA AL SEGUNDO DECIMAL/Y ALMACENA VALOR DE VOLTAJE RMS;A LOCALIDAD DE MEMORIA vrros
,CARGA VALOR DE VOLTAJE RMS;NUEVAMENTE/EN STACK/HAY munum MUESTRAS OBTENIDAS,-MULTIPLICA i* i POSICIÓN munum;UN DATO MENOS QUE TRABAJAR
/MULTIPLICA i*i POSICIÓN RO/SUMA A RESULTADO ANTERIOR/Y REPITE PARA LAS DEMÁS POSICIONES;CARGA VALOR CORRESPONDIENTE/DE NUMERO DE MUESTRAS/ A STACK/DIVIDE SUMATORIA i*i PARA ESE VALOR;SACA RAÍZ CUADRADA AL RESULTADO;APOXIMA AL SEGUNDO DECIMAL;Y ALMACENA VALOR DE CORRIENTE RMS/A LOCALIDAD DE MEMORIA irms
/CARGA VALOR DE CORRIENTE RMS/NUEVAMENTE;EN STACK
/REALIZA PRODUCTO vrmB*irm0/APROXIMA AL SEGUNDO DECIMAL/ALMACENA RESULTADO DE/POTENCIA APARENTE EN/LOCALIDAD DE MEMORIA B;Y MANTIENE RESULTADO EN/ETACK
/DIVIDE p/s/APROXIMA AI, SEGUNDO DECIMAL/Y ALMACENA RESULTADO DE/FACTOR DE POTENCIA EN/LOCALIDAD DE MEMORIA £p/TRABAJA CON BANCO CERO DE REGISTROS
SUBRUTINAS DE FACTOR
* - - » » • * * y j * * * * *
; ENTRADAS :
Página 74
MODULO DE FACTOR DE POTENCIA
RO
/SALIDAS:
puntero de bablndirección inicio de tabla muestras de voltajedirección inicio de tabla muestras de corriente
; Producto v(RO)*i(RO) a etack
;PROCESO:
Carga v(RO) a stack por medio de la subrutina tostack,carga i(RO) a stnck de la misma forma, realiza elproducto invocando a la subrutinn produc (que realizaproducto de las dos últimas posiciones del stack yconserva el resultado en la última posición del stack)
/CONSTANTES USADAS:
; ninguna
/VARIABLES CREADAS:
; A puntero de tabla de valores a enviarse a stack; DPTR dirección inicial de tabla de valores a enviarse a stack
/SUBRUTINAS USADAS
; PRODUC, TOSTACK
;REGISTROS ALTERADOS
DPTR, A
2970 900Q4F2973 E82974 D18A297G 90090F2979 E8297A D18A297C D123297E 22
Vis MOVMOVACALLMOVMOVACALLACALLRET
DPTR,IvA,ROTOSTACKDPTR,tiA,ROTOSTACKPRODUC
jCARGA VALOR DE VOLTAJE;POSICIÓN RO;A STACK;CARGA VALOR DE CORRIENTE;POSICIÓN RO;A STACK;MULTIPLICA AMBOS VALORES
;ENTRADAS:
; RO
V2
puntero de tabladirección inicio de tabla muestras de voltaje
,SALIDAS;
/ Producto v(RO)*v(RO) a stack
;PROCESO:
; Carga v(RO) a stack por medio de la subrutina tostack/ 2 veces, realiza el producto invocando a la eubrutina produc
/CONSTANTES USADAS.-
; ninguna
/VARIABLES CREADAS:
; A puntero de tobln. de valoree o enviarse a otack/ DPTR dirección inicial de tabla a enviarse a stack
/GUBRUTINAS USADAS
PRODUC, TOSTACK
;REGISTROS ALTERADOS
DPTR, A
297F 90084F2982 E82983 D18A2985 90084F2968 E82989 D18A
V2: MOVMOVACALLMOVMOVACALL
DPTR,IvA,ROTOSTACKDPTR,*vA,ROTOSTACK
;CARGA VALOR DE VOLTAJE7 POSICIÓN RO;A STACK/CARGA VALOR DE VOLTAJE/POSICIÓN RO/A ETACK
Página 75
298B D123298D 22
ACALLRET
PRODUC ;MULTIPLICA AMBOS VALORES
;ENTRADAS:
298E 90090F
RO punbero de tablai dirección inicio de tabla muesbrng de corriente
/SALIDAS:
/ Producto i(RO)*i(RO) a stack
;PROCESO:
; Carga i(RO) a stack por medio de ln subrubino tosbackj 2 veces, realiza el producto invocando a la subrutina/ produc
/CONSTANTES USADAS:
; ninguna
;VARIABLES CREADAS:
,- A puntero de tabla de valores o enviarse a stack; DPTR dirección inicial de tabla a enviarse a stock
¡SUBRUTIHAS USADAS
; PRODUC, TOSTACK
;REGISTROS ALTERADOS
; DPTR, A
12: MOV DPTR,«i ;CARGA VALOR DE CORRIENTE
IHICIC» J
fAEXI5IE
RAMRAMVALORES r A n
1ENCERA í*
1ALGORITMO
rrr
*
COPIA DER A H A R A M
e 1REQUISITO DE CALCULA
DISTORSIÓN
FASEEHTKE-PI Y +PI
TASE rUKDAMCHTAL r, iPORHo.DI ARMOHICA
CALCULADICTO RSIOH
SE DESPICArilHDAMEHIAlDE YOUWI
RAMRAMVALORES i A n
4-ENCERA i»
1
ALGORITMOrrr
ó
/¿SI HITO COH TODÁSV LAS ARMOHÍCAS?
H M I A
ANfiUlOSEN CRArO
MODUIOSIH*
7.- FLUJOGR AMA DE J.ALISIS DE ARMÓNICAS
Página 76
MODULO DE FACTOR DE POTENCIA
2991 E82992 D18A2994 90090F2997 E82998 D18A399A D123299C 22
MOVACALLMOVMOVACALLACALLRET
A,ROTOSTACKDPTR,*iA,ROTOSTACKPRODUC
,- POSICIÓN RO;A STACK;CARGA VALOR DE CORRIENTE/POSICIÓN RO;A STACK/MULTIPLICA AMBOS VALORES
3 * 5.Módulo de análisis de armónicas.
Para el diseño de este módulo se analizó la teoría y el progra-
ma en Fortran para hacer análisis de armónicas usando la Transformada Rápi-f\'-(
da De Fourier de la referencia [ ]. Para ello se modularizó en lo posible
al programa trasladándolo a QBASIC para luego optimizarlo en procedimientos
y tablas de datos para tener una versión en ensamblador. El programa en
QBASIC se encuentra en los anexos y los comentarios de la subrutina FFT
tienden a comparar el programa en ensamblador con el programa en QBASIC.
Una vez obtenida la subrutina FFT, se elaboró la rutina Armoni
para mover los valores de voltaje y corriente de manera que se pueda usar
la subrutina FFT en ellos y de esta manera obtener la distorsión armónica
total de voltaje, la de corriente y el factor de potencia de desplazamien-
to. Este último se presenta como un número con signo, el signo se obtiene
de la diferencia de la fase del voltaje menos la fase de la corriente, ésto
implica que si la fase de la corriente es mayor que la de voltaje
(corriente adelantada respecto al voltaje) el siojio negativo del factor de
potencia de desplazamiento indica predominancia capacitiva, caso contrario,
(corriente atrasada respecto al voltaje) indica predominancia inductiva.
Todo esto bajo el supuesto que el desfase sea máximo de 90°.
A continuación se presenta el programa desarrollado a partir
del flujograma de la figura 3.7.
ARMÓNi
RUTINA QUE REALIZA EL ANÁLISIS DE ARMÓNICAS
;ENTRADAS;
Vvarmiarmbhdvthdifpd
dirección inicio de tabla muestras de corrientedirección inicio de tabla muestras de voltajedirección inicio de tabla armónicas de voltajedirección inicio de tabla armónicas de corrientedirección inicio distorsión armónica total volt,dirección inicio del valor thd de corrientedirección Inicio factor de potencia de desplazan.
Página 77
MODULO DE ANÁLISIS DE ARMÓNICAS
;SALIDAS:
OD90H-ODEFHOESOH-OEAFhODFOH-OE4FHOEBOH-OFOFh082AH-082FH0824H-0829H0812H-0817H
ubicaciónubicaciónubicaciónubicaciónubicaciónubicaciónubicación
tabla de armónicas de voltaje (módulos)tabla de armónicas de voltaje. (Cases)tabla de armónicas de corriente (módulos)tabla de armónicos de corriente (Fases)dist. armónica total voltajevalor thd de corrientefactor de potencia de desplazara.
;PROCESO:
; 1 Mueve valores de voltaje v a variable real FFT rx/ Encera valores de variable imaginaria FFT ix/ 7\plica algoritmo de FFT en subrutina FFT; Copia datos de potencia ordenada FFT a armónicos de voltaje; Encuentra distorsión armónica total de voltaje thdv/ 2 Procede de igual manera pero con variables de corriente; 3 Resta fases de armónicos de voltaje y corriente menos el; el de primero de voltaje. Fases entro -pi y pi/ 4 Calcula factor de potencia de desplazamiento/ 5 Convierte fases en radianes a grados
6 Módulos como porcentajes de fundamental
/REGISTROS TEMPORALES
; sum dif
;CONSTANTES USADAS:
; ninguna
¿VARIABLES CREADAS:
; RO cantidad de npC a copiarse o procesarse/ R3:R3 dirección inicial tabla fuente de copia; A puntero de tabla paro manejo de etack/ DPTR dirección inicial de tabla blanco de copia o proceso
ISUBRUTIHAS UTILIZADAS
; RAMRAH, CERO, FFT, DISTOR, FROMSTACK, COSENO, COCIENTEPRODUC, RESTA, REDOH2, SIGNO, 6QR, SUMA, TOSTACK
/REGISTROS ALTERADOS
DPTR, A, RO, Rl, R2, R3, R4, R5, R6, R7, B
;BANCO 3 DE REGISTROS
;I1AY UN TOTAL DE munum MUESTRAS;CARGA VALOR DE PRIMER DÍGITO DE PRIMER;VALOR DE TABLA DE DATOS DE VOLTAJE;CARGA EN R2 LSB;CARGA EN R3 MSB/CARGA VALOR DE PRIMER DÍGITO DE PRIMERíVALOR DE TABLA DE VARIABLE REAL FFT/COPIA TABLA v A TABLA rx/EN RO CANTIDAD DE MUESTRAS Y EN DPTR/UBICA TABLA;DE VARIABLE IMAGINARIA FFT;PARA ENCERARLA/APLICA EL ALGORITMO FFT/SE VA A COPIAR rnum VALORES/DE FASE DE ARMÓNICAS POSITIVAS/LOCALIZADAS A PARTIR DE;R3 ¡FÍ2;A TABWV APUNTADA POR/DIRECCIÓN vfaíj
/COPIA TABLA DE FASE ORDENADA A vías/SE VA A COPIAR rnum VALORES/DE ARMÓNICAS POSITIVAS/LOCALIZADAS A PARTIR DE/ R3 : R3;A TABLA APUNTADA POR/DIRECCIÓN varm
;COPIA TABLA DE POTENCIA ORDENADA A varm;CARGA INICIO DE TABLA DE ARM. DE VOLTAJE
/CALCULA DISTORSIÓN ARMÓNICA TOTAL/CARGA DIRECCIÓN VALOR DIST. ARMÓN. TOTAL V./APUNTA PRIMER DATO DE TABLA
399D
29AO29A229A529A629A829AA29AD29AE29BO29B329B529BG29B829BA29BC29BF29CO29C229C429C729C829CA29CC29CF29DO29D229D429D729D829DA29DD29DF29E129E4
43D018
782090084FA3AA82AB83900A8FA3915C7820900B4FA3917B918978'LO900D2FA3ftW32AB83900E4FA3915C7810900C6FA3AA82AB83900D8FA3915C900D8F7810D10C9008297401
ARMÓN I:ORL
.-*+»**
ARMOM1 :MOVMOVINCMOVMOVMOVINCACALLMOVMOVINCACALLACALLMOVMOVINCHOVMOVMOVINCACALLMOVMOVINCMOVMOVMOVINCACALLMOVMOVACALLMOVMOV
PSH,«18H
APLICA ALG(
RO , tmunumDPTR, »vDPTRR2 , DPLR3 , DPHDPTR, »rxDPTRRAMRAMRO, K munumDPTR.ÜxDPTRCEROFFTRO, «rnumDPTR, tfposDPTRR3 , DPijR3 , DPHDPTR, tvfasDPTRRAM RAMRO , • rnumDPTR, tpposDPTRR2,DPLR3 , DPHDPTR,«varmDPTRRAMRAMDPTR, fvnrmRO , • rnumDISTORDPTR, • thdvA, 101
Página 78
MODULO DE ANÁLISIS DE ARMÓNICAS
29E6 D173 ACALL
29E829EA29ED29EE29FO29F229F529F629F829FA29FD29FE2AOO2A022A042A072A082AOA2AOC2AOF2A102M22 Al 42A172A182A1A2A1C2A1F2A202A222A2S2A272A292A2C2A2E
3A302A322A352A362A382A3B2A3D2A3F2A422A432A452A482A4A2A4C2A4E2A502A512A542A562A592 ASA2A5C2A5F2A612AS32A662A682A6A2A6C2A6E2A6F2A722A74
2A7G2A792A7B2A7D2A802A822A842A872A892A8B2A8D
782090090FA3AA82AB83900A8FA3915C7820900B4FA3917B91897810900D2FA3AA82AB83900EAFA3915C7810900C6FA3AA82AB83900DEFA3915C900DEF7810D10C9008237401D173
7810900EAFE8F136900E4F7401F13690082FE8D18B90082F7401F13GD1CFD1D4E8900EAFD173900E4FE8F136900E4F7401F13G90082F7401F136D1CFD1D4E8900E4FD17308BG
90082F7404D18B90082F7401F1369008387401F136D1GF.90082F
.*-****ARMOH2 :
MOVMOVINCMOVMOVMOVINCACALLMOVMOVIHCACALLACALLMOVMOVINCMOVMOVMOVINCACALLMOVMOVINCMOVMOVMOVIHCACALLMOVMOVACALLMOVMOVACALL
FASES: MOVFASE1 : MOV
MOVACALLHOVMOVACALLMOVMOVACALLMOVMOVACALLACALLACALLMOVMOVACALLMOVMOVACALLMOVMOVACALLMOVMOVACALLACALLACALLMOVHOVACALLDONZ
. ****-*MOVMOVACALLMOVMOVACALLMOVMOVACALLACALLMOV
APLICA FFT A CORRIENTE *****
R0,«munum /HAY UN TOTAL DE munum MUESTRASDPTR.ti ;CARGA VALOR DE PRIMER DÍGITO DE PRIMERDPTR ; VALOR DE TABLA DE DATOS DE CORRIENTER2,DPLR3 , DPHDPTR,*rxDPTRRAM RAMRO , tmunumDPTR, tixDPTRCEROFFTRO, IrnumDPTR, ff posDPTRR2 , DPLR3 , DPHDPTR, tifasDPTRRAMRAMRO, trnumDPTR, IpposDPTRR2 , DPLR3 , DPHDPTR, tiarmDPTRRAMRAMDPTR,liai^iRO, trnumDISTORDPTR,lthdiA, tQlFROMSTACK
FASE DE VOLTAJERO , trnumDPTR, tifasA,ROTOSTACKDPTR,tvfauA, tiTOSTACKDPTR,lf5UmA,ROH2BCDDPTR, tsumA, tiTOSTACKPRODUCRESTAA.RODPTR, tifasFROMSTACKDPTR, tvfaRA,ROTOSTACKDPTR,tv0aBA, tiTOSTACKDPTR, tBiimA, tiTOSTACKPRODUCRESTAA,RODPTR, tvfnoFROMSTACKRO,FASE1
CHEQUEO VALORESDPTR, tsumA, «4H2BCDDPTR, IsumA, 11TOSTACKDPTR,lpi2A, 11TOSTACKPRODUCDPTR, tsum
,- CARGA EN R2 LSB/CARGA EN R3 MSB; CARGA VALOR DE PRIMER DÍGITO DE PRIMER;VALOR DE TABLA DE VARIABLE REAL FFT/COPIA TABLA i A TABLA rx;EN RO CANTIDAD DE MUESTRAS Y EN DPTR/UBICA TABLA;DE VARIABLE IMAGINARIA FFT,-PARA ENCERARLA/APLICA EL ALGORITMO FFT; SE VA A COPIAR rnum VALORES;DE FASE DE ARMÓNICAS P09ITIVAS/LOCALIZADAS A PARTIR DE;R3:R2/A TABLA APUNTADA POR/DIRECCIÓN ifae
, COPIA TABLA DE FASE ORDENADA A ifas; SE VA A COPIAR rnum VALORES;DE ARMÓNICAS POSITIVAS/LOCALIZADAS A PARTIR DE;R3:R2/A TABLA APUNTADA POR/DIRECCIÓN iarm
/COPIA TABLA DE POTENCIA ORDENADA A iarm/CARGA INICIO DE TABLA DE ARM . CORRIENTE
/CALCULA DISTORSIÓN ARMÓNICA TOTAL/CARGA DIRECCIÓN VALOR DIST. ARMÓN. TOTAL I./APUNTA PRIMER DATO DE TABLA/CARGA EN ESA DIRECCIÓN EL ULTIMO VALOR STACK
COMO REFERENCIA DE FASES *****; SE VA A TRABAJAR CON rnum FASES/DIRECCIÓN DE FASE DE CORRIENTE/ENVÍA VALOR DE FASE A STACK
/ENVÍA VALOR DE FASE DE/FUNDAMENTAL DE VOLTAJE A STACK
/NUMERO DE ARMÓNICA A sum/CONVIERTE NUMERO DE ARMÓNICA EN/NPF BCD Y ALMACENA EN Bum/CARGA NUMERO DE ARMÓNICA EN STACK
/MULTIPLICA FASE(l)* «ARMÓNICA/RESTA FASE (ARM) - RESULTADO ANT./ENVÍA EL RESULTADO DE LA RESTA/A DIRECCIÓN DE FASE CORRESPONDIENTE
/DIRECCIÓN FASE DE ARMÓNICAS,- ENVÍA VALOR DE FASE A STACK
/ENVÍA VALOR DE FASE DE/FUNDAMENTAL A STACK/ENVÍA NUMERO DE ARMÓNICA A STACK
/MULTIPLICA FASE(l) * t ARM; RESTA FASE (ARM) - RESUL.T- ANT./ENVÍA RESULTADO A DIRECCIÓN;DE FASE CORRESPONDIENTE
/CONTINUA CON TODAS LAS ARMÓNICAS
DE ÁNGULOS *****/ENVÍA NUMERO 4 A eum
/Y A STACK
/ENVÍA PI/2 A STACK
/MULTIPLICA 4 * PI/2/ENVÍA RESULTADO (2*PI) A sum
Página 79
MODULO DE ANÁLISIS DE ARMÓNICAS
2A90 74012A92 D1732A94 78102A96 900E4F2A99 E82A9A F1362A9C 71AB2A9E 900E4F2AA1 E82AA2 D1732AA4 900EAF2AA7 E82AA8 F1362AAA 71AB2AAC 900EAF2AAF E82ABÜ D1732AB2 D8E2
2AB4 900E4F2AB7 74012AB9 F1362ABB 900EAF2ABE 74012ACO F1362AC2 D1D42AC4 20E0202AC7 20E21D2ACA 90082F2ACD 74012ACF D1732AD1 90082F2AD4 74012AD6 F1362AD8 D1642ADA 90082F2ADD 74012ADF F1362AE1 F1222AE3 D1CF2AE5 80022AE7 Dl£42AE9 D1D92AEB 9008112AEE 74012AFO D173
2AF2 90082F2AF5 745A2AF7 D18B2AF9 78102AFB 900E4F2AFE E82AFF F1362B01 90082F2B04 74012B06 F1362B08 D1CF2BOA 90083B2BOD 74012BOF F1362B11 D15F2B13 D1D92B15 900E4F2B18 E82B19 D1732B1B 900EAF2D1E E82B1F F1362B21 90082F2B24 74012B26 F1362B28 D1CF2B2A 9008382B2D 74012B2F F1362B31 D15F2B33 D1D92B35 900EAF2B38 E82B39 D1732B3B D8BE
MOVACALLMOV
FASE2 : MOVMOVACALLACALLMOVMOVACALL
FASE3 : MOVMOVACALLACALLMOVMOVACALL
FASE4 : DONZ
j ** * * *MOVMOVACALLMOVMOVACALLACALLJBJBMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLACALLACALI,EJMP
FPD1 : ACALLFPD2: ACALL
MOVMOVACALL
. ***.**.
MOVMOVACALLMOV
GRADO: MOVMOVACALLMOVMOVACALLACALLMOVHOVACALLACALLACALLMOVMOVACALLMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLACALLACALLMOVMOVACALLDJNZ
A , f lFROMSTACKRO, »rnumDPTR, »v£aaA ( R OTO STACKFAPIDPTR,*vfosA , R OFROMSTACKDPTR, ti CasA , R OTO STACKFAPIDPTR, tifosA , R OFROM STACKRO , FASE2
CALCULA FPDDPTR,*vfoeA, 11TO STACKDPTR, UfasA,(l lTO STACKRESTAACC.O.FPD1ACC.2.FPD1DPTR^sumA, 101FROM STACKDPTR, IsumA, «01TO STACKCOSENODPTR, IsumA, 101TO STACKSIGNOPRODUCFPD2COSENOREDON3DPTR, *fpdA,t01FROM STACK
ÁNGULOS ENDPTR,tsumA, 190 -H3BCDRO, «rnumDPTR, «vEasA , R OTO STACKDPTR,t3umA, -11TOSTACKPRODUCDPTR, «pÍ2A, »1TOSTACKCOCIENTEREDOH2DPTR,lvfd9A , R OFROMSTACKDPTR, tifasA , R OTOSTACKDPTR,*BUmA, 11TOSTACKPRODUCDPTR,tpi2A, 11TOSTACKCOCIENTEREDOH2DPTR,l i fasA,ROFROMSTACKRO, GRADO
;PARA CUEQUEAR QUE NO EXISTAN,ÁNGULOS > 2*PI;RO LLEVA LA CUENTA DE ÁNGULOS;CHEQUEA PRIMERO FASES DE V.
;DEJA ÁNGULO ENTRE -PI Y PI;ÁNGULO EQUIVALENTE7Y CÁRGALO EN VALOR DE FASE;CORRESPONDIENTE;CHEQUEA AHORA FASES DE I-
/DEJA ANGUNLO ENTRE -PI Y PI/ÁNGULO EQUIVALENTE/Y CÁRGALO EN VALOR DE FASE
,-CHEQUEA TODAS ARMÓNICAS
/CARGA EN STACK/EL VALOR DE FASE DEL; PRIMER ARMÓNICO DE VOLTAJE
;Y FASE DE PRIMER ARMÓNICO DE CORRIENTE;RESTA FASE VOLTAJE - FASE CORRIENTE/SALTA A FPD1 61 RESTA ES CERO, ES DECIR,7 SI fpdcli SI NO LO ES;ALMACENA RESULTADO EN 6UM
/OBTIENE COSENO DE RESTA DE FASES
/OBTIENE SIGNO/DE RESTA DE FASES/MULTIPLICA AMBOS/SALTA A FPD2/OBTIENE COSENO DE RESTA DE FASES;APROXIMA A SEGUNDO DECIMAL;CARGA VALOR OBTENIDO CORRESP,/FACTOR DE POTENCIA DE DESPLAZAH./DE STACK A L0CALIZACION fpd
GRADOS *•-***;A eum EL NUMERO 90 DECIMAL
;SE TRABAJARA CON rnum FASES;EMPEZANDO POR FASES DE VQLTAOE;ENVÍA FASE A STACK
/ENVÍA 90 A STACK
/MULTIPLICA FASE x 90/ENVÍA PI/?. A STACK
/PARA DIVIDIR RESULTADO ANTERIORíENTRE PI/2 PARA OBTENER FASE/APROXIMA A 2 DECIMALES/EN GRADOS, A ESTE RESULTADO, GUARDA;EH DIRECCIÓN DE FASE CORRESPOND.
/AHORA CON FASES DE CORRIENTE;ENVÍA FASE A STACK
;MULTIPLICA FASE X 90;ENVÍA PI/2 A STACK
/PARA DIVIDIR RESULTADO ANTERIOR;ENTRE PI/3 PARA OBTENER FASE EN GRADOS/APROXIMA A 2 DECIMALES/A ESTE RESULTADO, GUARDA/EN DIRECCIÓN DE FASE CORRESPOND.
2B3D 900835MÓDULOS COMO PORCENTAJES *****MOV DPTR,ldIE /ALMACENA EN di E
Página 80
B40 7-154B42 D18BB44 7810B46 18B47 900D8FB4A E8B4B 04B4C F136
.B4E 900D8FÍB51 7401ÍB53 F1361B55 D15F1B57 20E115ÍB5A 20E313ÍB5D 900835.B60 7401.B62 F136BG4 D1CF
-BS6 900D8FB69 E8B6A 04
,B6B D173B6D 8007B6F 90082FB72 7401B74 D173B76 900DEFB79 E8B7A 04B7B F136B7D 900DEF
ÍB80 7401ÍB82 F136ÍB84 D15FÍB86 20E115ÍB89 20E312,B8C 900835ÍB8F 7401ÍB91 F1361B93 D1CF1B95 900DEFÍB98 E8-B99 04.B9A D173.B9C 8007!B9E 90082F
I H I C I A l H t H KFASE ESJAE H P K A "*
R E D U C EFASE A- z i r í 1
iir
FASE E H Í R E• n r i r -
Q U E D A EH F
HOV A, 1100ACALL H2BCDMOV R0 ( *rnumDEC RO
MOD% : MOV DPTR, Ivnrr»MOV A , R OINC AACALL TOSTACKMOV DPTR,lvarmMOV A , « lACALL TOSTACKACALL COCIENTEJB ACC. l ,MODft2JB ACC.3,HOD%3MOV DPTR,«di£MOV A , « lACALL TOSTACKACALL PRODUCMOV DPTR,lvarroMOV A , R OINC AACALL FROMSTACKSOMP HODÍ3
HODS2: MOV DPTR, IsumMOV A, tiACALL FROHSTACK
HODS3: HOV DPTR,liannMOV A , ROINC AACALL TOSTACKMOV DPTR, f ia rmMOV A , f lACALL TOSTACKACALL COCIENTEJB ACC.1,MOD«4OB A C C . 3 , M O D % 4HOV DPTR,ldi£MOV A, 11ACALL TOSTACKACALL PROÜUCMOV DPTR,liarmMOV A , R OINC AACALb FROMSTACKSJMP MOD«5
MODÍ4; MOV DPTR.tSiom
1H
*±( FAP1 ^ O P•^^—-j— IH
A LM ACEITA KN K3, tM
C1AIHEH1EIR D I R E C C I Ó N —C I A I O E P E S I I H O ,
i R z D I R , I H I C . PíE H I f r R O M P Í
' 1 ' HPf A COPI/LRSt
VALOR OfX SI
i NO
.!™J-,^_ ." <Kr-*fIHT(2+JT*d¡f)
* '< ^v MQ
/la
"7* ir
W-SGHCtWriT PAPILAAPILA
^ ( PXCT73A)
U
lA R U T I H A C E R O E3 i XACIAHtHI t I C U M A MfP I R O NO R E Q U I E R E DE D I R E C C I Ó N f U E N U , NOU PASO (*| SINO QUE Al I H I C I O & E H C í R A El
;100 CONVERTIDO EN BCD
;RO LLEVA LA CUENTA DE ARMÓNICAS
; CARGA ARMÓNICO RO-H EN STACK
; CARGA ARMÓNICO «1 EN STACK
í SALTA SI EXISTE OVERFLOW, SALTA SI DIVISIÓN/CERO/CARGA 100 EN STACK;Y MULTIPLICA PARA EXPRESAR COMO %
; CARGA ARMÓNICO RO-1 1 EN STACK
j GUARDA RESULTADO EH varm
; ALMACENA EN eum RESULTADO OBSOLETO
(CARGA ARMÓNICO RO+1 EN STACK
;CARGA ARMÓNICO H EN STACK
; SALTA SI EXISTE OVERFLOW/SALTA SI DIVISIÓN/CERO; CARGA 100 EN STACK;Y MULTIPLICA PARA EXPRESAR COMO %
; CARGA ARMÓNICO RO+1 EN STACK
;GÜAHDA RESULTADO EN íorm
; ALMACENA EN eum RESULTADO OBSOLETO
^tAMRAM)
wtí A ion»i ., POR Nrr i —
Rt --6 ^-J
i
*$£$ **i
QDISTOR)
~ARGA ARMÓNICOT ELEVAD
:ARGA ARMOHICCY ELEVA *2
i
JUMA
L(FJ;RH)-:-A I / " ; ESTA H TODOS ^
1HC JtSJM noV-OS ARMOKICOSÍ^J.
< vnrc RI X¿RI-OÍ /
/ DCCRD \E
^CU H U l ADOR
l aRAÍZ
CUADRADA
1
DI7TOZ PARAFUNDAMENTAL
^"REGRT.SÁ)
| OGURA 3.S. - FLUJOCRANfA »K |BUriNAS DE ARMÓN!
Página 81
2BA1 74012BA3 01732BA5 D8AO2BA7 53DOE72BAA 22
MOV A, IIACALL FROMSTACK
MOD«5: DJMZ RO,MOD8AHL PSW,IOE7HRET
MODULO DE ANÁLISIS DE ARMÓNICAS
;TRABAOA COH BANCO CERO DE REGISTROS
La rutina Armoni realiza el análisis de armónicas, pero para
hacerlo, llama a 5 subrutinas: FAPI, que adecúa las fases obtenidas a va-
lores entre -pi y pi; RAMRAM que copia el contenido de ciertas localidades
de RAM a otras distintas también de RAM; CERO, que encera a las variables
ix como requisito para aplicar la transformada rápida de Fourier; DISTOR
que con los datos de los módulos calcula la distorsión armónica total de
una señal y FFT que se constituye en la subrutina que aplica la transforma-
da rápida de Fourier. De todos ellos, solo FFT se realizó en base a un
programa ya existente tal como se indicó anteriormente, asi que no tiene su
diagrama de flujo correspondiente. La rutina CERO es exactamente igual a
RAMRAM solo que carece de dirección fuente de copia ya que lo que hace es
encerar posiciones de memoria indicadas por una dirección destino. Los
flujogramas de FAPI, RAMRAM y DISTOR están en la figura 3.8.
SUBRUTINAS DE ARMÓN I
***** pj\ j *****
;ENTRADAS:
PILA Ultimo número de pila de argumentos es Caseno adecuada entre -pi y pi
;SAL IDAS:
PILA
;PROCESO:
Ultimo número de pila de argumentos es faseentre -pi y pi
; Envía 2*pi a pila y divide fase para ente valor,,- y almacena en dif, analiza si resultado es menor a 1,; BÍ no lo es, resta la fase original menos el valor entero,- de división por 2*pi para obtener ángulo entre +/- 2*pi.; Almacena fase deseado en dif; S.1 valor absoluto de fase es mayor a pi, entonces nueva; fase es igual a fase - (signo de faee'pi) para obtener; fase entre -pi y pi.
/CONSTANTES USADAS:
sumPÍ2
Valor de ?.*pi en npfValor de pi/2 en npf
/VARIARLES CREADAS:
; A Variable general; fpd Variable de propósito general; dif Acumulador de valores npf; DPTR Puntero paro mover valores desde y bncia el acumulador
/SUBRUTINAS USADAS
ABSOL, COCIENTE, ENTERO, FROMSTACK, PRODUC, RESTA, SUMA, TOSTACK
/REGISTROS ALTERADOS
; DPTR, A
Página 82
MODULO DE ANÁLISIS DE ARMÓNICAS
2BAB 90082F2BAE 74012BBO F1362BB2 D15F2BB4 9008352BB7 7-1012BB9 D1732BBB 9008352BBE A32BBF A32BCO A32BC1 A32BC2 A32BG3 A32BC4 EO2BC5 C32BC6 94812BC8 50122BCA 9008352BCD 74012BCF F1362BD1 90082F2BD4 74012BD6 F1362BD8 D1CF2BDA 801B2BDC 9008352BDF 74012BE1 F1362BE3 9008352BEG 74012BE8 F13G2BEA D1GE2BEC D1D42BEE 90082F2BF1 74012BF3 F1362BF5 D1CF2BF7 9008352BFA 74012BFC D1732BFE 90083B2C01 74012C03 F1362C05 90083B2C08 74012COA F1362COC F12C2COE 9008352C11 74012C13 F1362C15 D14C2C17 D1D42C19 9008112C1C 74012C1E D1732C20 9008112C23 7F052C25 A32C26 DFFD2C28 EO2C29 54012C2B 60272C2D 9008112C30 74012C32 F1363C34 F1222C36 9008352C39 74012C3B F136
2C3D F1222C3F D1CF2C41 90082F2C44 74012C4G F1363C48 D1CF2C4A 9008352C4D 74012C4F F1362C51 F12C2C53 222C54 9008352C57 74012C59 F1362C5B 22
FAPI: MOVMOVACALLACALLMOVMOVACALLMOVINCIHCINCIHCIHCINCMOVXCLRSUBBONCMOVMOVACALLMOVMOVACALLACALLSJMP
FAPIA: MOVMOVACALLMOVMOVACALLACALLACALLMOVMOVACALLACALL
FAPIB: MOVMOVACALLMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLACALLACALLMOVMOVACALLMOVMOV
FASGN: INCDONZMOVXAMLJZMOVMOVACALLACALLMOVMOVACALLACALLACALLMOVHOVACALLACALLMOVMOVACALLACALLRET
FAPOS: MOVMOVACALLRET
DPTR, IsumA,*lTOSTACKCOCIENTEDPTR, «difA, 11FROMSTACKDPTR, «difDPTRDPTRDPTRDPTRDPTRDPTRA,6DPTRCA, I81HFAPIADPTR, «difA,*lTOSTACKDPTR,*0umA, «01TOSTACKPRODUCFAPIBDPTR, »difA, tiTOSTACKDPTR, «difA,*lTOSTACKENTERORESTADPTR, «surtíA, 101TOSTACKPRODUCDPTR, IdifA,*01FROMSTACKDPTR, Ipi2A,«lTOSTACKDPTR,tpÍ2A, 11TOSTACKSUMADPTR, «difA, 101TOSTACKABSOLRESTADPTR, «fpdA,«lFROMBTACKDPTR, «fpdR7,«5DPTRR7 , FASGNA,3DPTRA, KOIFAPOSDPTR, «fpdA(llTOSTACKSIGNODPTR, tdifA,»lTOSTACKSIGNOPRODUCDPTR, tsumA, 11TOSTACKPRODUCDPTR,«difA, 11TOSTACKSUMA
DVTR, IcUfA, 11TOSTACK
;DIVIDE FASE / (2 * PI)
;RESULTADO A dif;APUNTA A EXPONENTE;DE dif
;EXPONENTE A ACUMULADOR
; RESTA MENOS 8111;SI EXP.<81H, SIGUE
/RETORNA dif A STACK;ENVÍA eum (2*PI) A STACK
/MULTIPLICA PARA ENCONTRAR7 NUMERO ORIGINAL Y SIGUE
,-RESULTADO A STACK
;2 VECES Y OBTIENE/VALOR ENTERO DE ULTIMO/RESTA PARA OBTENER DECIMAL/ENVÍA sum (2*PI) A STACK
/MULTIPLICA PARA ENCONTRAR/ALMACENA AJ1GULO ENTRE7-2PI Y 2PI EN di£
/ENVÍA PI/2 A STACK
;ENVJA PI/2 A ETACK;POR SEGUNDA OCASIÓN
;OBTIENE PI EN STACK/ÁNGULO A STACK
;SACA VALOR ABSOLUTO;RESTA PI-ABS(ÁNGULO)/ENVÍA RESULTADO A?FPD
/UBICA PUNTERO EN LOCALIZflCION/DE MEMORIA CORRESPONDIENTE AL/SIGNO DE fpd
;TRAE SIGNO DE fpd AL ACUMULADOR/AISLA EL BIT DEL SIGNO/SALTA SI 8Um ES POSITIVO/VALOR DE DIFERENCIA DE PI-ANG/A STACK
/SACA SIGNO (SIEMPRE -1)/PROCEDE DE MANERA SIMILAR CON/ÁNGULO EN DIF PARA INVERTIR/SU SIGNO/LO QUE SE OBTIENE/MULTIPLICANDO -1*SGN(ÁNGULO)/AHORA ESTE SIGNO ASIGNA A;2PI (QUE ESTA EN BUm)
/TRAE ÁNGULO A STACK;QUE SUMADO A -(/- 2PI;DA EL ÁNGULO REQUERIDO;YA PUEDE REGRESAR
/VALOR RESULTADO A STACK/REGRESA
Página 83
MODULO DE ANÁLISIS DE ARMÓNICAS
;ENTRADAS i
; ROR3:R2DPTR
RAMRAM
cantidad de valores en punbo flotanbedirección primer valor del primer dato entradadirección primer dato de salida
;SALIDAS:
; Direcciones 0DPTR - 6DPTR-I RO-1 ocupadas con nuevos datos
;PROCESO:
; Carga DPTR en R5:R4, ee carga en DPTTÍ R3:R2,; por 6 ocasiones (equivalentes a 6 dígitos por número/ en punto flotante) se copia la dirección en ram apuntada/ por DPTR al acumulador, se carga en DPTR la dirección R5:R4/ y se almacena valor del acumulador en esa dirección,/ se incrementan Jas direcciones R3.-R2 y R5:R4.I Se repite hasta que ya no falten más números (R0=0)
/CONSTANTES USADAS:
/ ninguna
;VARIABLES CREADAS:
/ A registro del valor de tabla a copiarse; RO número de datos a procesarse/ Rl contador de iteraciones para npf/ R3:R2 puntero de tabla de valores de entrada/ R5;R4 puntero de tabla de valoren de salida/ DPTR puntero para mover valores desde y hacia el acumulador
/6UBRUTINAS USADAS
j ninguna
lREGISTROS ALTERADOS
, DPTR, A, RO, Rl, R2, R3, R4, R5
RAMRAM:
2C5C2C5E2C60
2C622C642C662C672C692C6B2C6C2C6D2C6E2C702C712C722C732C752C762C782C7A
AD83AC827906
8B838A82EO8D838C82FOOAEA7001OBOCEC7001.ODD9EAD8E622
MOVMOV
RAM1 : MOV
RAM 2 : MOVMOVHOVXMOVMOVMOVXINCMOVONZIMC
RAM3 : INCMOVJNZINC
RAM 4: DONZDJNZRET
R5 , DPHR4,DPLRl,*06
DPH , R3DPL,R2A,9DPTRDPH,R5DPL,R40DPTR,AR2A,R2RAM3R3R4A,R4RAM 4R5R1.RAM2ROyRAMl
7COPIA R0*6 LOCALIDADES DE R3:R2 A R5:R4
/COPIA DPTR A R5;R4
/CUENTA 6 ITERACIONES POR NUMERO EN PUNTO/FLOTANTE (NPF)
/CARGA LOCALIDAD R3:R2 DE RAM A ACC.
/ALMACENA ACC. EN LOCALIDAD R5:R4 DE RAM
/INCREMENTA PUNTERO/DIRECCIÓN ENTRADA/R3:R2
/INCREMENTA PUNTERO/DIRECCIÓN DE SALIDA
,REPITE 6 VECES EL PROCESO/Y CONTINUA CON LOS DEMÁS HUMEROS
CERO
cantidad de npf=0dirección primer valor del primer dato entrada
/ENTRADAS;
/ RODPTR
/SALIDAS;
/ ninguna
í PROCESO:
/ Por 6 ocasiones (equivalentes a 6 dígitos por número/ en punto flotante) se copia a la dirección en ram apuntada/ por DPTR un cero.
Página 84
MODULO DE ANÁLISIS DE ARMÓNICAS
; Se repite hasta que ya no falten más números (R0=0)
;CONSTANTES USADAS:
; ninguna
/VARTABLEG CREADAS:
; A cero; RO número de datos a procesarse/ Rl contndor iteraciones paro npfi DPTR puntero para mover valores desde y hacia el acumulador
/SUBRUTINAS USADAS
/ ninguno.
;REGISTROS ALTERADOS
; DPTR, A, RO, Rl
2C7B
2C7D2C7F2C802C812C832C85
7906
7400FOA3D9FAD8F622
CERO:CER01.- MOV
CÉR02 : MOVMOVXINCDJHZDJNZRET
7
; ENTRADAS :
; RO; DPTR
Rl,#06
A, «000DPTR,ADPTRR1,CERO2RO , CER01
**-***
cantidaddirecció
;ENCERA ÍX/CUENTA 6 ITERACIONES POR NUMERO EN PUNTO;FLOTANTE (NPF)
;CARGA UN CERO A BDPTR DE RAM
;REPITE 6 VECES Eb PROCESO;Y CONTINUA CON LOE DEMÁS NÚMEROS
DISTOR
dirección primer valor del primer dato entrada
; GAL IDAS:
; Distorsión armónica total de la señal procesada en stock
j PROCESO :
; Decrementa en 1 a DPTR, cargo el primer dato a etack,; carga el segundo dato y lo eleva al cuadrado, carga los/ demás datos elevándolos al cuadrado y sumándolos 5] anterior/ 8aca la raíz cuadrada de la sumatoria y divide este; resultado para el primer dato (ya almacenado)
; CONSTANTES USADAS:
/ ninguna
/VARIABLES CREADAS:
DPTRARlR2
indica dirección inicial de tablapuntero de datos en tablanúmero de datos procesadoscontador que eleva valor al cuadrado
USADAS
; COCIENTE, PRODUC, SQR, SUMA, TOSTACK,
; REGISTROS ALTERADOS
DPTR, A, Rl, R2
2EOC 79032EOE C0832E10 C0832E12 7A032E14 D0822E16 D0833E18 C0832E1A C0822E1C E92E1D F1363E1F DAF32E21 D1CF2E23 7A022E35 093E2G D0832E28 D083
D1STOR:PUSHPUfíHMOV
DIS1: POPPOPPUSHPUfíHMOVACALLDJI12ACALL
DIS2: MOVINC
DIS3; POPPOP
MOVDPHDPLR 2 , » 0 2DPLDPHDPIIDPLA,R1TOCTACKR2,DIS1PRODUCR 2 , I 0 2RlDPLDPH
ni,102;SUBRUTJNAS EN BASIC ALTERAN DPTR; POR LO QUE SE N ALMACENADAS EN GTACK
¡RECUPERA DPTR LUEGO DE SUBRUT1NA BASIC
,-CARGA A STACK SEGUNDA ARMÓNICA
;3 VECES;PARA ELEVAR LA CUADRADO
/RECUPERA DPTR LUEGO DE SUBRUTINA BASIC
Página 65
MODULO DE AÍÍALISJ.S DE ARMÓNICAS
2E2A2E2C2E2E2E2F2E312E332E352E372E382E392E3A2E3C2E3E2E402 E 4 22E442E-152E472E492E4B
C083C082E9F136DAF3D1CFF12CC3E99870E7F127D083D0837901E9F136D15FD1D922
PUSHPUSHMOVACALLDJHZACALLACALLCLRMOVSXJBBJtIZACALLPOPPOPMOVMOVACALLACALLACALLRET
DPHDPLA,R1TOSTACKR2,DIS3PRODUCSUMACA,R1A,RODIS2SQRDPLDPHRl,»01A,R1TOSTACKCOCIENTEREDON2
/CARGA A STACK ARMÓNICA # Rl
;2 VECES,-MULTIPLICA PARA ELEVAR AL CUADRADO;SUHA AL RESULTADO ANTERIOR
;HASTA QUE SE LEAN TODAS LAS ARMÓNICAS;SACA RAÍZ CUADRADA DE SUKATORIO
,CARGA A STACK,PRIMERA ARMÓNICA DE SEflAL/DIVIDE SUHATORIO PARA PRIMERA ARMÓNICA/APROXIMA A 2 DECIMALES
FFT
;ENTRADAS:
; rx dirección inicio dabos onda a eer tratada; ix dirección inicio cero/ pord dirección inicio datos de pobencia ordenados; £ord dirección inicio daboo de fase ordenados
/SALIDAS:
/ OBOOH-OC7FII/ OC80H-ODFFH
ubicación dabon de potencia ordenadosubicación datos de fase ordenados
;PROCESO:
/ 1 Aplica algoritmo de transformada rápida de Fourier; 2 Da notación de armónicos como módulo y fase/ 3 Ordena armónicos
/REGISTROS TEMPORALES:
/ Bum dif
/CONSTANTES USADAS:
/ nx valoree de <K> ordenodos; rar valoreo de WA<K> realeo/ ic valores de WA<K> imaginarios/ pi2 valor de pi/2/ k2 k2 número de valores WA<k>
VARIABLES USADAS;
; A variable de propósito general; puntero babla para manejo del oback (TjATlOK, FFT?.,/ RO índice lafco ascendente (maneja vectores rr e ii.')/ número de datos a procesarse en FFT2, FFT3/ Rl índice que maneja vecbores rx e ix/ R2 índice que maneja vectores rx e ix; R3 variable iberativa que maneja R?. y R6; R4 variable iterativa que maneja RO/ R5 índ-íce lazo deacendente; R6 índice lazo descendenbe; DPTR dirección inicial bablas a manejarse con stack
/ SUBRUTINAS USADAS:
; LA7.0K, MODULO, FASE, ATAN, COCIENTE, FROMSTACK, PRODUC,RESTA, 9QR, SUMA, TOSTACK.
REGISTROS ALTERADOS:
DPTR, A, B, RO, Rl, R2, R3, R4, R5, R6, R7
FFT3)
2C86 -Í3D018 ORL PSW, *18H /PARA PROBAR MODULO INDEPENDIENTEMENTE2C89 7B10 FFT: MOV R3, * rnum /R3<-K2C8B 7C01 MOV R4,t01 ;R4<-NGRUPO2C8D 7D05 MOV R5,lmulog /LAZO DESCENDENTE R5<-KITER
Página 86
MODULO DE ANÁLISIS DE MÍMONICAS
2C8F 7AOQ2C91 78012C93 EA2C94 F92C95 EB2C96 FE2C97 092C98 91E52C9A DEFB2C9C C32C9D E82C9E 082C9F 9C2CAO 70F12CA2 C32CA3 EC2CA4 332 CAS FC2CA6 C32CA7 EB2CA8 132CA9 FB2CAA DDE32CAC 78202CAE B1872CBO B1BA2CB2 900B4F2CB5 E82CB6 D1732CB8 900A8F2CBB E82CBC D1732CBE D8EE2CCO 78202CC2 900A8F2CC5 E82CC6 F13G2CC8 9033DF2CCB E82CCC 932CCD 900COF2CDO DI 7 32CD2 900B4F2CD5 E82CD6 F1362CD8 9033DF2CDB E82CDC 932CDD 900CCF2CEO D1732CE2 D8DE2CE4 22
KITER: MOVMOV
KHGRUP:MOVMOVMOV
KNSY; IÍ1CACALLDJNZCLRMOVINCSUBEJNZCLRMOVRLC
. MOVCLRMOVRRCMOVDJNZ
FFT2 : MOVPOT: ACALL
ACALLMOVMOVACALLMOVMOVACALLDJHZ
FFT3 : MOVORDEN: MOV
MOVACALLMOVMOVMOVCMOVACALLMOVMOVACALbMOVMOV
: MOVCMOVACALbDJNZRET
R2,*00R0,«01MOV A,R2R1,AA,R3R6,ARlLAZOKR6,KHSYCA,ROROA,R4KNGRUPCA,R4AR4,ACA,R3AR3,AR5 , KITKRRO, dmunumMODULOFASEDPTR,*ixA, ROFROMSTACKDPTR(*rxA,ROFROMSTACKRO , POTRO, ImunumDPTR, IrxA;ROTOETACKDPTR, tnxA,ROA,0A-(DPTRDPTR, «pordFROMSTACKDPTR,fixA,ROTOSTACKDPTR,«nxA,ROA,@A^DPTRDPTR,lfordFROMSTACKRO , ORDEN
/LAZO ASC
;IAZO DES
/APLICA f; CIERRA E
; CIERRA I
/NGRUPO=t
,K^K/2
; CIERRA I
; HALLA MC/HALLA FJ
; VALOR DI
,-POTENCIJ
; VALOR DI;MSB DE I/LSB DE I;1TUVE VA1
;ALMACEHJ
/VALOR DJjMSB DE I;LSB DE (;TRAE VAJ
; ALMACEHi
;.***** SUBRUTINAS UTILIZADAS POR FFT
2CE5 E92CE6 2B2CE7 FA2CE8 9009CF2CEB E83CEC F1362CEE 900B4F2CF1 EA2CF2 F1362CF4 D1CF2CFG 90GA2F3CF9 E82CFA F1362CFC 900A6P2GFF E A2DOO F1362D02 D1CF2D04 F12C2DOS 90082F2D09 74012DOB D1732DOD 9009CF2D10 E82D11 F1362D13 900A8F2D1G EA2D17 F1362D19 D1CF2D1B 900A2F2D1E E82D1F F136
JüAZOK: MOVADDMOVMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLMOVMOVACALI,ACALLACALLMOVMOVACALLMOVHOVACALLMOVMOVACALLACALLMOVMOVACALL
A,R1A,R3R2,ADPTR, IrarA,ROTOSTACKDPTR.ÜXA,R2TOGTACKPRODUCDPTR ,f irA,ROTOSTACKDPTR , » rxA,R2TOSTACKPRODUCSUMADPTR, »eumA, 101FROMSTACKOPTO,! ira rA,ROTOSTACKDPTR,lrxA,R2TOSTACKPRODUCDPTR, «irA,ROTOSTACK
/DIRECCK7 KHGRUP 3; ENVÍA RJ
; ENVÍA i:jMULTIPL.
j ENVÍA 11
; ENVÍA R;;MULTIPL;SUMA DO!;EACA EU1/Y ALMAC);8ÜM DE 1
; ENVÍA R,
; ENVÍA R:,-MULTIPL
;EHVIA 11
/APLICA ALGORITMO A CADA ITERACIÓN
/LSB DE DIRECCIÓN DE NX A ACUMULADORVALOR DE NX A ACUMULADOR
/ALMACENA VALOR DE POTENCIA ORDENADO
;LSB DE DIRECCIÓN DK NX A ACUMULADOR
Página 87
MODULO DE ANÁLISIS DE ARMÓNICAS
2D21 900B4F2D24 EA2D25 F1362D27 D1CF2D29 D1D42D2B 9008352D2E 74012D30 D1732D32 900A8F2D35 E92D36 F1362D38 9008352D3B 74012D3D F1362D3F D1D42D41 900A8F2 D 4 4 EA2D45 D1732D47 900B4F2D4A E92D4.B F1362D4D 90082F2D50 74012D52 F1362D54 D1D42D5G 900B4F2D59 EA2D5A D1732D5C 900A8F2D5F E92D60 F13G2D62 9008352D65 74012D67 F1362D69 F12C2D6B 900A8F2D6E E92D6F D1732D71 900B4F2D74 E92D75 F1362D77 90082F2D7A 74012D7C F1362D7E F12C2D80 900B4F2D83 E92D84 D1732D86 22
2DS7 79022D89 900A8F2D8C E82D8D F1362D8F D9F82D91 D1CF2D93 79022D95 900B4F2D98 E82D99 F1362D9B D9F82D9D D1CF2D9F F12C2DA1 F1272DA3 9008472DA6 74012 DAS F1362DAA 9008412DAD 74012DAF F1362DB1 D1CF2DB3 F1272DB5 D15F2DB7 D1D92DB9 22
2DBA 900B4F2DBD E82DBE F1362DCO 900A8F2DC3 E82DC4 F1362DC6 D15F2DC8 20E1322DCB 20E32F2DCE D151
MOVMOVACALLACALLACALLMOVHOVACALLMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLMOVMOVACALLMOVMOVACALLACALLHOVMOVACALLMOVMOVACALLMOVMOVACALLACALLMOVMOVACALLRET
MODULO:IPOT: MOV
MOVACALLDJNZACALLMOV
IPOT1: MOVMOVACALLDJNZACALLACALLACALLMOVMOVACALLMOVMOVACALLACALLACALLACALLACALLRET
FASE : MOVMOVACALLMOVMOVACALLACALLOBOBACALL
DPTR, lixA,R2TOSTACKPRODUCRESTADPTR,tdifA, «01FROMSTACKDPTR, IrxA,R1TOSTACKDPTR, IdifA, 101TOSTACKRESTADPTR, IrxA , R 2FROMSTACKDPTR, lixA,R1TOSTACKDPTR,*sumA, «01TOSTACKRESTADPTR, lixA , R 2FROMSTACKDPTR, IrxA,R1TOSTACKDPTR, IdifA, 101TOSTACKSUMADPTR,*rxA,R1FROMSTACKDPTR , 1 ixA,R1TO STACKDPTR,lsumA, 101TOSTACKSUMADPTR, lixA,R1FROMSTACK
MOV R1,I02DPTR, 1 exA , R OTOSTACKRl.IPOTPRODUCR 1 , B 0 2DPTU,«txA , R OTOSTACKR1,IPOT1PRODUCSUMASQRDPTR, Ik2A, «01TOSTACKDPTR,lklA, «01TOSTACKPRODUCSQRCOCIENTEREDOH2
DPTR, UxA , R OTOSTACKDPTR, IrxA , R OTOSTACKCOCIENTEACC.1.1NFINACC.3,INFINATAN
/ENVÍA IX(R2) A STACK/MULTIPLICA DOS ÚLTIMOS VALORES/RESTA DOS PRODUCTOS ANTERIORES/SACA RESTA PARCIAL DE STACK/Y ALMACENA EN LOCALIZACION/DIF DE MEMORIA
; ENVÍA RX(R1) A STACK
/ENVÍA DIF A STACK/RESTA PARA HALLAR RX(R2)
/ALMACENA RESULTADO EN MEMORIA
/ENVÍA IX(Rl) A STACK
/SUM A STACK/HALLA IX(R2)
/ALMACENA RESULTADO EN MEMORIA
/ENVÍA RX(R1) A STACK
/ENVÍA DIF A STACK/RESTA PARA HALLAR RX(R1)
/ALMACENA RESULTADO EN MEMORIA
/ENVÍA IX(Rl) A STACK
/SUM A STACK/HALLA IX(Rl)
/ALHACENA RESULTADO EH MEMORIA
/ENVÍA RX(RO) A STACK/DOS VECES/MULTIPLICA PARA HALLAR R X ( R O ) ^ 2
/ENVÍA I X ( R O ) A STACK/DOG VECES/MULTIPLICA PARA HALLAR RX(RO)*2/SUMA ELEMENTOS COMPLEJOS/Y SACA RAÍZ CUADRADA = POTENCIA/CARGA A STACK/VALOR DE k2
/CARGA A STACKíVALOR DE kl
/PRODUCTO kl*k2/SACADO LA RAÍZ CUADRADA/Y DIVIDIDO DE POTENCIA DA RMS/APROXIMA A SEGUNDO DECIMAL
/ENVÍA IX (RO) A STACK
/ENVÍA RX(RO) A STACK/HALLA IX(RO)/RX(RO)/SALTA SI EXISTE OVERFLOW/SALTA SI DIVISIÓN PARA CERO/SACA EL ARCO TANGENTE DE LA DIVISIÓN
Página G8
MODULO DE VISUALIJ5ACION DE RESULTADOS Y COMUNICACIÓN
2DDO 900A8F2DD3 ES2DD4 F1362DD6 90082F2DD9 74012DDB D1732DDD 90082F2DEO 7F052DE2 A32DE3 DFFD2 DES EO2DE6 54012DE8 60122DEA 90083B20ED 74012DEF F1362DF1 90083B2DF4 74012DF6 F1362DF8 F12C2DFA F12C2DFC 222DFD 90083F2EOO 74012E02 D1732E04 90083B2E07 74012E09 F1362EOB 22
MOVMOVACALLÍ1OVMOVACALLMOVMOV
RXSGN: INCixmzMOVXANLJZMOVMOVACALLMOVMOVACALLACALLACALL
RXPOS.- RETINFIN-- MOV
MOVACALLMOVMOVACA1.LRET
DPTR,*rxA,ROTOSTACKDPTR, *HUmA,«lFROMSTACKDPTR,*BUmR7,*5DP1-RR7, RXSGNA,QDPTRA,t01RXPOSDPTR,tpi2A, tOlTOSTACKDPTR,*pÍ2A,f01TOSTACKSUMASUMA
DPTR, laijrnA, 101FROMSTACKDPTR,*pí2A.I01HTOSTACK
/ENVÍA rx(RO) A STACK
;Y LUEGO A eum
7UBICA PUNTERO EN LOCALIZACION;DE MEMORIA CORRESPONDIENTE AL/SIGNO DE Bum
;TRAE SIGNO DE RUTH AL ACUMULADORíAISLA EL BIT DEL SIGNO,-SALTA SI sum ES POSITIVO,-COMO rx ES NEGATIVO, ENTONCES/CARGA 2 VECES PI/2
/PARA QUE EL ÁNGULO SEA SUMADO A;PI RADIANES
jSACA DE STACK RESULTADOifíO VALIDO
/ P I / 2 A STACK
3.6.Módulo de visualización de resultados y comuni-
cación.
Una vez que los resultados ya se encuentran en memoria es nece-
sario transmitirlos al LCD y al pórtico serial.
La transmisión al pórtico serial no es complicada puesto que se
tiene a disposición la rutina BASIC que transmite números de punto flotante
que se encuentran en la última posición de la pila de argumento. Entonces,
lo que se debe hacer es poner los números en punto flotante de cada uno de
los resultados en memoria en la pila de argumento y llamar a la rutina BA-
SIC correspondiente. El programa emplea 3 rutinas, TOSER que envía un
número de punto flotante que se encuentra en la última posición de la pila
de argumentos al pórtico serial, CARSER que envía un carácter ASCII cuyo
valor está ubicado en el acumulador y CRLF que envía un conjunto CR-LF
(retorno de carro y alimentación de línea). Estas tres rutinas ya fueron
indicadas en este mismo capítulo.
En cuanto a la visualización en el LCD, la tarea ya no es tan
sencilla puesto que el usuario debe poder cambiar la pantalla visualizada
en el momento que desee, mientras que, datos actualizados se tendrá única-
mente al final de todo el proceso de cálculo (lo que tana alrededor de 17
segundos). Por otro lado, la transferencia de números de punto flotante de
memoria al LCD como caracteres BCD no es tan directa como en el caso de la
Página 89
MODULO DE VISUALI2ACION DE RESULTADOS Y COMUNICACIÓN
comunicación serial, así que tomará algún tiempo hacer operaciones cada vez
que se requiera tener datos actualizados.
Barajando algunas opciones, se decidió crear un área de memoria
denominada "Display RAM" que es una réplica exacta de los caracteres de las
6 diferentes pantallas factibles de ser seleccionadas con el selector.
Cada vez que se termine con el proceso de cálculo entero, se actualizará el
Display RAM y refresca el LCD. Por otro lado, se debe monitorear constan-
temente al selector para saber si el usuario desea ver otra pantalla en el
LCD; como no se puede tener una interrupción activada todo el tiempo (ya
gue se pueden presentar conflictos al invocar rutinas BASIC), se prefirió
cada cierto tiempo hacer un corto chequeo de las posiciones del selector.
Para ello, cada vez gue se regrese de invocar una rutina BASIC, se compara
el valor del pórtico de 8 bits Pl del 8052, al cual está conectado el se-
lector, con la localidad interna 20H gue posee el último valor conocido del
selector, entonces, si coinciden los 2 valores, se continua con el progra-
ma, si no coinciden, se envían nuevos valores al LCD y se actualiza 20H.
De acuerdo a ésto, este módulo tiene tres partes: transmisión.
serial de los resultados, actualización del "Display RAM" y actualización
del LCD.
Para la actualización del Display RAM, se llama a las rutinas
COPIAO, COPIA1, COPIA2 Y SIG. Estas buscan la posición relativa en el Dis-
play RAM del nuevo dato y envían a ésta el valor ASCII de un carácter, 2
caracteres, 3 caracteres o un signo. Los valores son tomados del registro
de propósito general sun y comparado el número en punto flotante con un
exponente de referencia, de manera que en el LCD siempre aparecerá un
número entero, acompañado de ceros a la izquierda si el exponente no es
igual al de referencia, y con signos de interrogación en todo el campo del
número (???) si se trata de un número más grande de lo previsto o ceros
(000) si el niñero es muy pequeño para representarlo. Adicionalmente, y
como se acaba de mencionar, hay una tabla de direcciones relativas de ca-
racteres en el Display RAM que se utiliza para actualizar solo los carac-
teres numéricos en esta área de memoria ya que no se necesita cambiar todo
el fonrato de la misma.
Página 90
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
No debe perderse de vista que si bien en el LCD solo se mos-
trarán 2 o 3 caracteres de un determinado valor, los datos enviados por el
pórtico serial, son los datos obtenidos en las rutinas anteriores.
RESULT
EXPRESA RESULTADOS EN LCD Y VIA SERIAL
/ENTRADAS:
; fp dirección inicio factor de potencia; fpd dirección inicio factor de potencia de desplazam.; iarm dirección inicio de tabla armónicas de corriente; i fas dirección inicio de tabla de fases de corrientes; irms dirección inicio de corriente rms; power dirección inicio de potencia real y primer set de,- datos a transmitir7 B dirección inicio de potencia aparente; thdi dirección inicio del valor tbd de corriente; tbdv dirección inicio distorsión armónica total volt,; varm dirección inicio de tabla armónicas de voltaje y; segundo set de datos a trasmitir; vías dirección inicio de tabla da fases de voltajes7 vrmB dirección inicio de voltaje rms
,-SAL IDAS:
; 0710H-07FFH display ram actualizado
/PROCESO:
7 1 Envía resultados vía serialEnvía 8QOh-82Fh (P, S, fp, fpd, vrms, inns, thdi y thdv)
/ ésto es, 8 npf desde la localidad indicada por power.7 Envía OD90h~OFOFh (módulos y fases de armónicas); para ello envía módulo y fase de voltaje, módulo y fase/ de corriente de cada armónica (16 en total).,- Entre dato y dato debe enviar una coma ( , ) .; Al final envía un carácter de fin de bloque (definido aguí/ como OFFh) y un CR-LF.; Simplemente envía sin esperar confirmación7 2 Actualiza display ram; En R6 se apunta la tabla de direcciones relativas Display RAM; Para P, fp, S, fpd, vrms, vi, tbdv, irma, il y thdi ae; copian sus valores a sum, se indican como exponentes de
referencia 84b, 80b, 84h, 80h, 83h, 83h,80b, 82h, 82h y 8Oh; y copia 3, 2, 3, 2 con signo, 3, 3, 2, 3, 3 y 2 caracteres.; Para armónicas de voltaje utiliza:; R4 número de armónicas procesadas (1 corresp. a fundamamental); R5 armónicas distintas de cero (R5=l)7 Si la armónico os menor n 1*, paso a otra.; Copia número de armónica con COPIAD (2, 3, ,.., 9, A, , G)
Copia módulo a sum, indica exponente de ref. 83h y COPIA27 Copia signo do fase a R4 y llama a SIG
Copia fase de igual formaIncrementa R5, si es igual a 8 (todos espacios llenos) procesaarmónicas de corriente
; Incrementa R-l, si R4 igual n número de armónicas posiblesí procesa armónicas de corriente7 Si no es igual, llena de espacios antes de proceder.7 Para armónicas de corriente utiliza procedimiento parecido.
/REGISTROS TEMPORALES
i sum dif
/CONSTANTES USADAS:
,- n inguna
7VARIABLES CREADAS:
; RO cantidad de npf a copiarse o procesarsei R3:R2 dirección inicial tabla fuente de copia; A puntero do tnbla pnra manojo do stock
Página 91
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
; DPTR dirección inicial de tabla blanco de copia o proceso
;SUBRUTINAS UTILIZADAS
CARSER, CRLF, TOCOM, TOSTACK/ COPIA1, COPIA2, RAMRAM, SIG
/REGISTROS ALTERADOS
; DPTR(' A, RO, Rl, R2, R3, R 4 , R5, B
BASIC LUYAa mimoHPF M NÚA SERIAL
FIGTJRA 3.9. - TLUJOGRAMA DE RU-
TINA JDE COMUNICACIÓN BERTA.U.
RESULT:235E 43D018 ORL
SERIAL22612263226422652268226B226E22702273227622782279227A227D22802283228522882289228C22 8 P2292229422972298229B229E22A1
780008ES9007FF122F36122F31742C122E56B808ED780008E8900D8F122F36122F31742C122E56E8900E4F123F36122F31742C122E56E8900DEF122F36122F31742C
SER1:MOVINCMOVMOVLCALLLCALL.MOVLCAbbCJNEMOVIHCMOVMOVLCALLJjCALLMOVLCALLMOVMOVLCALTjLCALbMOVLCALLMOVMOVLCAbLLCALLMOV
PSH,«18H
RO,«OOHROA,RODP7H,«powerTOETACKTOSERA, i 2CUCARSERRO,I08,SER1RO,*OOHROA.RODPTR,Ivo rmTOSTACKTOSERA,«2CHCARSERA,RODPTR,*v£a0TOSTACKTOSERA,I2CMCARSERA,RODP1H,«inrmTOSTACKTOSERA,H2CH
;ENVÍA DATOS A COMPUTADOR;NUMERO DE RESULTADOS ENVIADOS/INCREMENTA EN UNO NUMERO DE ENVÍOS
;CARGA DIRECCIÓN INICIAL RESULTADOS/ENVÍA RESULTADO A STACK;Y LUEGO A PÓRTICO SERIAL;ENVÍA '," A PÓRTICOí CARSER ENVÍA UN CARÁCTER A 'PÓRTICO;REPITE CON LOS DEMÁS RESULTADOS;HUMERO DE ARMÓNICAS DE v E ijINCREMENTA EN UNO NUMERO DE ENVÍOS
;CARGA DIRECCIÓN INICIAL MODULO v;ENVÍA RESULTADO A STACK;Y LUEGO A PÓRTICO SERIAL;ENVÍA "," A PÓRTICO;CARSER ENVÍA UN CARÁCTER A PÓRTICO
;CARGA DIRECCIÓN INICIAL FASE V/ENVÍA RESULTADO A STACK;Y LUEGO A PÓRTICO SERIAL/ENVÍA '," A PÓRTICO;CARSER ENVÍA UN CARÁCTER A PÓRTICO
;CARGA DIRECCIÓN INICIAL MODULO í;ENVÍA RESULTADO A STACK;Y LUEGO A PÓRTICO SERIAL/ENVÍA ",• A PÓRTICO
Página 92
MODULO DE VTSUALIZACION DE RESULTADOS Y COMUNICACIÓN
22A322A622A722AA22AD22BO22B222B522B822BA22BD
122E56E8900EAF122F36122F31742C122E56B810CO74FF122E56122E69
LCALL CARSER ;CARSER EKVIA UN CARÁCTER A PÓRTICOMOV A , R OMOV DPTR,tifas /CARGA DIRECCIÓN INICIAL FASE iLCALL TOSTACK ;ENVÍA RESULTADO A STACKLCALL TOSER ;Y LUEGO A PÓRTICO SERIALMOV A , I 2 C H ;ENVÍA ' , " A PÓRTICOLCALL CARSER ;CARSER ENVÍA UN CARÁCTER A PÓRTICOOJNE RO,*16,SER2 ;REPITE CON LAS DEMÁS ARMÓNICASMOV A,IOFFH /TRANSMITE CARÁCTER DE FIN DELCALL CARSER ^TRANSMISIÓN DE BLOQUELCALL CRLF ?ENVÍA CR-LF A PÓRTICO
COPIA t
RAMRAMVTOTI A aum
1RÜ-3-B3H
iCOPIA 2
iRAMRAMVBim A 9 un
iRD<- S3H
1COPIA 2
\MthJr A nú»
J,
ROO- gQH
iCOPIA 1
iRAMRAMimt* A *um
1
JÍO<^ 82H
1COPIA 2
RAMRAMÍ«m A. ium
1
R0<> ?2H
1COPIA 3
1RAMRAMIhdí A sum
1
.|
[ COPIA 1
HGURA3.10.-FLUJOGRAMADK ACTUA1I-
ZACIONDEDISPLAYRAM (PARTE í)
LCD:22CO 7EOO
22C222C422C722C822CA22CC22CF22DO22D322DS
22D7220922DC22ÜD22DF22E122E422E522E822 EA
78019007FFA3AB83AA8290082FA3122C5C7884D165
780190080BA3AB83AA8290082FA3122C5C7880B103
MOV
MOVMOVINCMOVMOVMOVINCLCALLMOVACALL
. **•»*•*
22EC 7801
MOVMOVINCMOVMOVMOVINCLCALLMOVACALL
MOV
R6,*00
VALOR DE POTENCIA REAL
/ACTUALIZA DISPLAY RAM CON CALCÓLOS;0 DATOS COPIADOS A DISPLAY RAM
R0,«01DPTR,«powsrDPTRR3.DPHR2,DPLDPTR,leumDPTRRAMRAMRO,I84HCOP1A2
/SE VA A COPIAR UH NPF;COPIA DIRECCIÓN DE VALOR DE POTENCIA;REAL A R3¡R2
íY A DPTR LA DEL REGISTRO TEMPORAL eum
/COPIA NPF A sum;4 ES EL EXPONENTE DE REFERENCIAíACTUALIZA DISPLAY RAM CORRESPONDIENTE
VALOR DE FACTOR DE POTENCIA
R0,«01DPl-R/lfpDPTRR3,DPHR2.DPL
DPTRRAMRAMRO,«BOHCOPIA1
;SE VA A COPIAR UN NPF/COPIA DIRECCIÓN DE FACTOR DE POTENCIA;REAL A R3:R2
/Y A DPTR LA DEL REGISTRO TEMPORAL eum
/COPIA NPF A eum;0 ES EL EXPONENTE DE REFERENCIA/ACTUALIZA DISPLAY RAM CORRESPONDIENTE
VALOR DE POTENCIA APARENTE *****
R0,«01 /BE VA A COPIAR Üll NPF
Página 93
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
22EE22F122F222F422F622F922 FA22FD22FF
900805A3AB83AAG290082FA3122CSC7884B165
23012303230623072309230B230E230F231223142316
2318231A231D231E23202322232523262329232B
232D232F2332233323352337233A233B233 E2340
2342234423472348234A234C234F235023532355
23572359235C235D235F2361236423652368236A
236C236E23712372237423762379237A237D
7801900811A3AB83AA8290082FA3122C5C7880B103B1.FB
7801900817A3AB83AA8290082FA3122C5G7883B165
7801900D8FA3AB83AA8290082FA3122C5C7883B165
7801900829A3AB83AA8290082FA3122C5C7880B103
78019Ü081DA3AB83AA8390082FA3122C5C7882B165
7801900DEFA3AB83AA8290082FA3122C5C7882
, * * * *- *
MOV DPTR, «8INC DPTRHOV R3.DPHMOV R2 , DPLHOV DPTR,t8UmINC DPTRLCALL RAMRAMHOV RQ,*84HACALL COPIA2
FACTOR DE
HOV RO,Í01MOV DPTR,*fpdINC DPTRMOV R3 , DPHMOV R2 , DPLMOV DPTR,loumINC DPTRLCALb RAMRAMMOV RO,B80HACALL COPIA!ACALL SIG
; COPIA DIRECCIÓN DE VALOR DE POTENCIA/APARENTE A R3 :R2
;Y A DPTR LA DEL REGISTRO TEMPORAL sum
; COPIA NPF A Bum;4 ES EL EXPONENI'E DE REFERENCIAjACTÜAltIZA DISPLAV RAM CORRESPONDIENTE
POTENCIA DE DESPLAZAMIENTO *****
;SE VA A COPIAR UN NPF; COPIA DIRECCIÓN DE FACTOR DE POTENCIA;DE DESPLAZAMIENTO A R3 :R2
;Y A DPTR LA DEL REGISTRO TEMPORAL Blun
íCOPIA NPF A Bum;0 ES EL EXPONENTE DE REFERENCIAíACTUALIZA DISPIjAY RAM CORRESPONDIENTE; ACTUALIZA SIGNO EN DISPLAY RAM
VOLTAJE RMS *****
MOV R0,*01MOV DPTR,flvrmsINC DPTRMOV R3,DPHMOV R2 , DPLMOV DPTR.tBumINC DPTRLCALL. RAMRAHMOV RO,*83MACALL COPIA2
;SE VA A COPIAR UN NPF; COPIA DIRECCIÓN DE VOLTAJE RMS;A R3 :R?.
;Y A DPTR LA DEL REGISTRO TEMPORAL sum
/COPIA NPF A sum;3 ES EL EXPONENTE DE REFERENCIA;ACTUALIZA DI6PLAY RAM CORRESPONDIENTE
VOLTAJE FUNDAMENTAL *****
MOV R0,«01MOV DPTR,*varmINC DPTRMOV R3 , DPHMOV R2 , DPLMOV DPTR,«sumINC DPTR.LCALL RAMRAMMOV RO,t83HACALL COPIA2
DIS1X)RSION
MOV R0,t01MOV DPTR,lthdvIHC OPTOMOV R3 , DPHMOV R?. , DPLMOV DPTR,lBUmINC DPTRLCALb RAMRAMMOV RO,I80MACALL COPIA1
CORRIENTE
MOV RO,I01MOV DPTR,* icmsINC DPTRMOV R3,DPHHOV R2 , UPLMOV DPTR, »aumINC DPTRLCALL RAMRAMMOV RO,»82HACALL COPIA2
CORRIENTE
MOV R0,«01MOV DPTR.UarmINC DPTRMOV R3 , DPHMOV R2 , DPLMOV DPTR^BUmIHC DPTRLCALL RAMRAHMOV RO,«83H
; SE VA A COPIAR UN NPF;COPIA DIRECCIÓN DE VOLTAJE FUHDAMENT.;A R3 :R2
;Y A DPTR LA DEL REGISTRO TEMPORAL 9Um
; COPIA NPF A eum;3 ES EL EXPONENTE DE REFERENCIAíACTUALI7,A DISPLAY RAM CORRESPONDIENTE
VOLTAJE *****
;SE VA A COPIAR UN NPF;COPIA DIRECCIÓN DE DISTORSIÓN ARMÓNICA; TOTAL DE VOLTAJE A R3 :R2
;Y A DPTR LA DEL REGISTRO TEMPORAL Bum
/COPIA NPF A sum;0 ES EL EXPONENTE DE REFERENCIA/ACTUALIZA DISPLAY RAM CORRESPONDIENTE
RMS *****
; SE VA A COPIAR UN NPF;COPIA DIRECCIÓN DE VALOR DE CORRIENTE/RMS A R3:R2
;Y A DPTR LA DEL. REGISTRO TEMPORAL oum
; COPIA NPF A BUm;2 ES EL EX PONENTE DE REFERENCIA/ACTUALIZA DISPLAY RAM CORRESPONDIENTE
FUNDAMENTAL *****
;SE VA A COPIAR UN NPF; COPIA DIRECCIÓN L)E VALOR DE CORRIENTE; FUNDAMENTAL A R3 ;R2
/Y A DPTR LA DEL REGISTRO TEMPORAL eum
/COPIA NPF A sum/2 ES EL EXPONENTE DE REFERENCIA
Página 94
MODULO DE VTSUALIZACION DE RESULTADOS Z COMUNICACIÓN
237F mes /ACTUALIZA DISPL.AY RAM CORRESPONDIENTE
238]238:238Í238'238'238238238239'239
L 7801900823
í A31 AB33? AA823 90082F2 A37 122C5Cí V8801 B103
<ri
C
/-*<tfHQSt
IOMAH( H C U E H I AwnoHic/ii _CW H09IUQ> !«
,****•* DISTORSIÓN CORRIENTE *****
MOV R0,*01 /SE VA A COPIAR UN NPFMOV DPTR,*bhdí /COPIA DIRECCIÓN DE DISTORSIÓN ARMÓNICAIHC DPTR /TOTAL DE CORRIENTE A R3 -R2MOV R 3 , D P HMOV R2 , DPLMOV DPTR,lsUm / Y A DPTR LA DEL REGISTRO TEMPORAL HUmINC DPTRLCALL RAMRAM /COPIA NPF A BUmMOV R O , » 8 0 H / O ES EL EXPONENTE DE REFERENCIAACALL COPIA1 /ACTUALIZA DISPLAY RAM CORRESPONDIENTE
9R1 <^ 1R5<- 0
¿^<-EXTCIHOITE« ARMOIirCA
i
9
¿ A < ? I K ? y^J)JllO
A <- R4COtíVtCRTE.\M ASCII
1raio-A
i, COPIA Q
1
ÍR3JÍ7) MODUARMOH1CA R
é
,J-04
RAÍ^iRAMMOD. A cura
iRO<?-83H |
1COPIA 2
0*-K(e")v.
1 0 1
1 x-/(R3:RTi FASEARMOIIICA R4
1RAMRAM
PASEA nira
1310 |
1\H
1COFJA2 TA
/
9IHCR5
(4 HO
10 C R4 ]
x
A
HOSIft^SOlOa JKMOHIÚJ*
NO/ V^t-O^R'l-.* ARMÓN. •$
>k"Ñ0\v I H C C l R K l t f J l í
W con A i
Isi
55^?"— iCOTIA 0
iDECR7¿R3-0?
131IHGEÜ
¿'.
s
«cV.
coru ESPACIOS" " t H P W l M U
>SI E S R U I I H A P Í
V Y O U W E P K A A/ C O R R I E H I t , 5 l
tí D E C O R R l E M I l" F 1 H M U A R U I I W A
I7GTJRA3ai. -JI^J.TOGRAMA-DE ACTIJAU-
ZA.CION DE DISFLAY R/VM (PARTE 2)
23962398239A23 9D239E239F23A223A323A523A723A923AB23AD23AE23AF23B1
7C017DOO900D8FEC0475F006A42582FS82E5FO3583F583EOC39481•107B
23B3 EC23B4 C323B5 940923B7 500623B9 EC23BA 0423BB 243023BD 61C1
REW:
HOVMOVMOVMOVIHCMOVMÜLADDMOVMOVADDCMOVMOVXCLRSUBBJC
MOVCLRSUBBJNCMOVINCADDAOMP
R4,*01HR5,tOOH .DPTR,»vacmA(R4AB, 106ABA, DPLDPL, AA,BA,DPHDPII,AA.flDPTTÍCA, «8111SIGV
/CONTADOR DE ARMÓNICOS REVISADOS,-CONTADOR DE ARMÓNICOS DISTINTOS DE CERO/SE REVISARA LA ARMÓNICA R4,-PARA ELLO ENCUENTRA SU DIRECCIÓN EXACTA
/CARGA EN ACUMULADOR EXPONENTE DE ARMÓNICA
/RESTA EXPONENTE - (1)/SALTA SI EXPONENTE ES MENOR A O
HUMERO DE ARMÓNICO
A,R4CA,»9REVV1A,R4AA, #3011REW2
;CARGA « ARMÓNICO PARA HACER RESTA/HUMERO DE ARMÓNICOS PROCESADOS - 9 Y.-DETERMINAR SI EL QUE SIGUE ES MAYOR A 9;SALTA SI MAS DE 8 ARMÓNICOS PROCESADOS/CARGA NUMERO DE ARMÓNICO EN PROCESO/A ACUMULADOR/CONVIERTE NUMERO EN ASCII/CONTINUA EN REVV2
Página 95
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
23 BF 244123C1 F823C2 91EC
23C4 780123C6 900D8F23C9 EC23CA 75F00623CD A423CE 258223DO F58223D2 E5FO23D4 358323D6 F58323 D8 A323D9 AB8323DB AA8223DD 90082F23EO A323E1 EC23 E2 COEO23E4 ED23 E5 COEO23E7 122C5C23EA DOEO23EC FD23ED DOEO23 EF FC23FO 788323F2 B165
23F4 780123F6 900E4F23F9 EC23FA 75F00623FD A423FE 25822400 F5822402 E5FO2404 35832406 F5832408 A32409 AB83240B AA82240D 90082F2410 A32411 EC2412 COEO2414 ED2415 COEO2417 122C5C241A DOEO241C FD241D DOEO241F FC2420 B1FB2422 78832424 B165
2426 OD2427 BD08042-12A 813E242C 619A242E OC242F BC10FA
2432 78202434 7A082436 91EC2438 DAFC243A OD243B BD08F6
243E 7C012440 7DOO2442 900DEF2445 EC2446 04
REW1 : ADDREW2 : MOV
ACALL
. «-****
MOVMOVMOVMOVMULADDMOVMOVADDCMOVINCMOVMOVMOVINCMOVPUGHMOVPUSHLCALLPOPMOVPOPMOVMOVACALL
. * i--**- *
MOVMOVMOVMOVMULADDMOVMOVADDCMOVINCMOVMOVMOVIHCMOVPUSHMOVPUSHLCALLPOPMOVPOPMOVACALLMOVACALL
INCCJNEAJMP
REVV3 : AJMPSIGV: INC
CJNE
. »»**•*
SIGV1 : MOVSIGV2 : MOVSIGV3 : ACALL
DJHZIHCCJHE
. **--***
ACTI : MOVMOV
REVI: MOVMOVINC
A,*41HRO,ACOPIAO
/CONVIERTE NUMERO EN ASCII (A " G); COPIA NUMERO DE ARMÓNICO A RO; COPIA VALOR ASCII EN RO EN DISPLAY
MODULO DE ARMÓNICO *****
R0,«lDPTR,» va rmA,RdB,«06ARA, DPLDPL, AA,BA, DPHDPH, ADPTRR3 , DPHR2 , DPLDPTR, «surtíDPTRA,R4ACCA,R5ACCRAMRAMACCR5,AACCR4,ARO,I83HCOPIA2
,-SE COPIARA 1 NPF/CORRESPONDIENTE A LA ARMÓNICA R4;PARA ELLO ENCUENTRA SU DIRECCIÓN EXACTA
/EN R3:R2 DIRECCIÓN DE MSB DE ARMÓNICA
/RAMRAM CAMBIA R4 Y R5/POR LO QUE SE DEBEN CONSERVAR ESTOS,- VA LORES/COPIA ARMÓNICA A Bum
/3 ES EL EXPONENTE DE REFERENCIA; COPIA VALORES A DISPLAY RAM
FASE DE ARMÓNICO *****
RQ,«1DPTR,*v£a0A,R4B,IQ6ABA, DPL.DPL, AA,BA, DPHDPH, ADPTRR3 , DPHR2,DPLDPTR,»sumDPTRA,R4>ACCA,R5ACCRAMRAMACCR5, AACCR4,ASIGRO,«83HCOPIA2
R5R5, 18, SIGVACTIREWR4R4,*rnuin,REVV3
;SE COPIARA 1 NPFCORRESPONDIENTE A LA FASE R4/PARA ELLO ENCUENTRA SU DIRECCIÓN EXACTA
/EN R3:R2 DIRECCIÓN DE MSB DE FASE
/RAMRAM CAMBIA R4 Y R5;POR LO QUE SE DEBEN CONSERVAR ESTOS; VALORES/COPIA ARMÓNICA A sum
/PROCESA SIGNO DE FASE;3 ES EL EXPONENTE DE REFERENCIA/COPIA VALORES A DISPLAY RAM
;SOLO HAY 8 ESPACIOS PARA ARMÓNICOS; SI HAY MAS ESPACIO CHEQUEA ARMÓNICOS;SI NO, SALTA A ARMÓNICOS DE CORRIENTE/APOYO A CJNE x,x,REW3/CHEQUEA SI HAY MAS ARMÓNICOS/REPITE SI LOS HAY
ESPACIOS EN DEMÁS SITIOS *****
RO,I20HR2, f 8COPIAOR2 , SIGV3R5R5,«8,SIGV3
;A RO CÓDIGO ASCII DE ESPACIO;SE PONDRÁN 8 ESPACIOS POR LUGAR/DE ARMÓNICO NO USADO
/CONTINUA CON LOS DEMÁS ARMÓNICOS
ARMÓNICOS DE CORRIENTE *****
R4,I01HR5,iOOIID PTR , t la rmA,R4A
/CONTADOR DE ARMÓNICOS REVISADOS/CONTADOR DE ARMÓNICOS DISTINTOS DE CERO;SE REVISARA LA ARMÓNICA R4/PARA ELLO ENCUENTRA SU DIRECCIÓN EXACTA
Página 96
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
2447244A244B244D244F245124532455245624572459
75F006A42582F582E5FO3583F583EOC39481407B
245B245C2450245F2461246224G3246524672469246A
ECC394095006EC04243081692441F891 EC
246C246E24712472247524762478247A247C247E248024812483248524882489248A248C248D248F24922494249524972498249A
7801900DEFEC75F006A42582FS82E5FO3583F583A3AB83AA8290082FA3ECCOEOEDCOEO122C5CDOEOFDDOEOFC7882B103
249C249E2 4 Al24A224A524A624A824AA24AC24AE2 4 DO24B124B324B524B824B924BA24BC24BD24BF24C224C42405
7801900EAFEC75F006A42503F582E5FO3583F583A3AB83AA8290082FA3ECCOEOEDCOEO122C5CÜÜEOFDDOEO
24C7 FC24C8 B1FB24CA 788324CC D165
24CE OD
. * * **
REVI1REVI?.
. -tr t * V
MOVMU LADDMOVHOVADDCHOVHOVXCLRSUBEJC
t
HOVCLRSUBEJNCHOVINCADDAJHP
: ADD: MOV
ACALL
MOVMOVMOVMOVMULADDMOVHOVADDCMOVINCMOVMOVMOVINCHOVPU6HHOVPUEHLCALLPOPMOVPOPMOVMOVACALL
B , * Q GABA,DPLDPL,AA , BA,DPHDPH,AA,0DPTRCA, I81HSIGI
NUMERO DE
A , R 4CA,*9REVI1A , R 4AA,I30HREVI2A,* 4 11!R O , ACOPIAO
MODULO DE
RO , « 1
,-CAF
/ R E Í;SAI
ARMÓNICO
;CAf;HUÍ,-DE^;SA1I CAÍ,A i;COt/COI;COI;CO1;CO1
ARMÓN ICO
;SEDPTR.Hiarm ;COIA , R 4B, 106ABA , D P LDPL,AA , BA , D P HDPH , ADPTRR 3 , D P I IR 2 , D P LDPTR ,1811111DPTRA , R 4ACCA,R5ACCRAM RAMACCR5,AACCR 4 , ARO, t82HCOPIA1
;PAI
/ E N
;RA1;PO!/VA;CO
;2 :;CO
FASE DE ARMÓNICO
MOVHOVHOVMOVMULADDMOVMOVADDCMOVINCMOVMOVMOVINCMOVPUSHHOVPUSHLCALLPOPMOVPOP
MOVACALLMOVACALL
R0,* l ;SEDPTR, t i f a s ;CO!A , R 4B , » 0 6AEA , D P LDPL,AA , BA, DPHDPH, ADPTRR3,DPHR2,DPLDPTR, igumDPTRA , R 4ACCA,R5ACCRAHRAHACCR5,AACC
R 4 , AS1GRO, I83HCOPIA2
;PAI
/EN
,-RAI;POI;VA:;CO
/ P R <;3 ;;CO
,-CARGA EN ACUMULADOR EXPONENTE DE ARMÓNICA
/RESTA EXPONENTE - (1);SALTA SI EXPONENTE ES MENOR A O
H ARMÓNICO PARA HACER RESTA;HUMERO DE ARMÓNICOS PROCESADOS - 9 Y,-DETERMINAR SI EL QUE SIGUE ES MAYOR A 9;SALTA SI MAS DE 8 ARMÓNICOS PROCESADOSI CARGA NUMERO DE ARMÓNICO EN PROCESO;A ACUMULADOR/CONVIERTE NUMERO EN ASCII/CONTINUA EN REVJ2/CONVIERTE NUMERO EN ASCII (A * G)/COPIA NUMERO DE ARMÓNICO A RO;COPIA VALOR ASCII EN RO EN DISPLAY
'IARA 1 NPF/CORRESPONDIENTE A LA ARMÓNICA R4/PARA ELLO ENCUENTRA SU DIRECCIÓN EXACTA
;EN R3rR2 DIRECCIÓN DE MSB DE ARMÓNICA
;RAMRAM CAMBIA R4 Y R5;POR LO QUE SE DEBEN CONSERVAR ESTOS;VALORES/COPIA ARMÓNICA A 0um
,-2 ES EL EXPONENTE DE REFERENCIA;COPIA VALORES A DISPLAY RAM
'I ARA 1 NPF/CORRESPONDIENTE A LA FASE R4/PARA ELLO ENCUENTRA SU DIRECCIÓN EXACTA
INC R5
/EN R3:R2 DIRECCIÓN DE MSB DE FASE
,-RAMRAM CAMBIA R4 Y R5;POR LO QUE SE DEBEN CONSERVAR ESTOS/VALORES/COPIA ARMÓNICA A BUm
/PROCESA SIGNO DE FASE/3 ES EL EXPONENTE DE REFERENCIA/COPIA VALORES A DISPLAY RAM
;SOLO HAY 8 ESPACIOS PARA ARMONICOG
Página 97
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
24CF BD080424D2 8ZE624D4 814324D6 OC24D7 BC10FA
REVI3 :SIGIí
COMEAOHPAOMPINCCJNE
R5,»8,SIGIACFINREVIR4R4 , Innum, R
24DA24DC24DE34EO24E324E3
24E624E824EB
78207A0791 ECDAFCODBD08F6
D32353DOE722
SIGIÍ:SIGI2 :SIGI3:
ACPIN:
MOVMOVACALLDONZINCCJNE
ACALLANLRET
RO,H2011R2, 17COPIADR2 ,81013R5R5, I8,SIGI2
ACIÜISPSW, IOE7H
;SALTA SI HAY MAS ESPACIO;SI NO, SALTA A ARMÓNICOS DE CORRIENTE;APOYO A CJHE I,t,REVI3/CHEQUEA SI HAY MAS ARMÓNICOS
ESPACIOS EN DEMÁS SITIOS
;A RO CÓDIGO ASCII DE ESPACIO;SE PONDRÁN 7 ESPACIOS POR LUGAR;DE ARMÓNICO NO USADO
/CONTINUA CON LOS DEMÁS ARMÓNICOS
¡ACTUALIZA DISPLAY:FIHALIZA ACTUALIZACIÓN
R Í E S DIRECCIÓN
SOHL05- Í PI&I10SHAniG
PE SUM,
RAM, A ES E lEXPO-HENU PE REFEREN,C I A t B E I R E M .
BO-EXPOH /euml
DPTR<MDPTRH:RlA<-RQ
(DPTR) <= A
B<-00 : AoIXD,
Rl<-CdrpoílRtí)QPTR<-dsprwa+RI
XES ASU IURNOr
FIGURA 3.12. - FLUJOGRAMA DF>SURRUTINAB OF, RKSUT^T
COPIAO
,ENTRADAS:
drpos dirección inicio tabla de posiciones relativas de display romdspram dirección inicio do dinplay rnmRO valor ASCII o copiarse n displtvy ramR6 número de armónicas mostradas en diaplay
/SALIDAS:
; ninguna
/PROCESO:
Página 98
MODULO DE VISUALISACION DE RESULTADOS Y COMUNICACIÓN
Copia valor ASCII en RO en la posición R6 permitida en disploy rampara ello utiliza R6 como puntero para hallar la posición relativo
; del nuevo dato en display ram (que se encuentra en la tabla de/ apuntada por drpos) y con este valor (almacenado en Rl) Be apunta.; al área de display rom.; Al comienzo de la subrutina ee debe incrementar el valor
ae R6.
;REGISTROS TEMPORALES
,- ninguno
/CONSTANTES USADAS:
; ninguna
;VARHABLES CREADAS:
/ Rl dirección relativa de dato en display ram/ A variable de propósito general
DPTR puntero de tablas
/GUBRUTINAS UTILIZADAS
; ninguna
/REGISTROS ALTERADOS
DPTR, A, Rl, RG
24EC24ED24FO2-iFl24F224F324F624F824F92-tFB2-1 FC24FE250025012502
OE9030FFEE93F990070FES 8 229F582E43583F583E8FO23
COPtAOsMOVMOVnoveMOVMOVMOVADDMOVCLRADDCMOVMOVMOVXUET
IHC R6DPTR,«drposA,RGA,t)A+DPTRR1,ADPTR,ndspromA,DPLA,R1DPL,AAA,DPIIDPII/AA,RO0DPTR,A
/.INCREMENTA PUNTERO PARA LOCALIZAR/POSICIÓN A COPIARSE EN DISPLAY RAM
/CARGA EN ACUMULADOR DIRECCIÓN REL./EN Rl DIRECCIÓN RELATIVA;APUNTA A INICIO DE DISPLAY RAM/Y AUMENTA POSICIÓN RELATIVA/Rl AL PUNTERO PARA GUARDAR NUEVAMENTE
/VALOR A PONER EN DISPLAY RAM EN ACUMULADOR
COPIA1
ENTRADAS:
drpos dirección inicio tabla de posiciones relativas de display ramdspram dirección inicio de display ram
npf a procesarseexpononte de referencia para comparación de npfnúmero de armónicas mostradas en display
SALIDAS:
ninguna
/PROCESO:
/ Copia valor de dos dígitos del número en punto flotante en sum '; a display ram. Para ello compara inicáalmente el va]or del; exponente del npf; con el valor de referencia indicado en RO./ Si el exponente ríe referencia es menor n3 exponente del npf,/ pone en acumulador OFFh (que como dígitos y sumados 3Oh para; convertirían en ASCII aparecerán en diopJay como ??). Si los/ exponentes son iguales, los 2 dígitos más significativos del; npf pasan al acumulador. Si ]a diferencia entre amboe es 1,/ claro está, siendo el exponente de referencia mayor al del npf,
el dígito más significativo de] acumulador es cero y el menos; significativo es el de mayor significancia del npf. Si la; diferencia entro ambos es mayor, ee encera el acumulador.; Quedan don dígitos en el acumulador Buaceptiblos de oer conver-; tidoG a ASCII y enviados al display ram con una manera similar/ a la de copiaO.
,-nEGISTROS TEMPORALES
; ninguno
Página 99
MODULO DE VISUALISACION DE RESULTADOS Y COMUHICACION
.•CONSTANTES UGADAS:
; ninguna
,-VARIABLES CREADAS:
Rl dirección relativa de dato en dieplay ram/ A variable de propósito general, almacena dígitos a enviarse.; B exponenbe del npf/ DPTR puntero de tablas
/GUBRUTINAS UTILIZADAS
/ ninguna
/REGISTROS ALTERADOS
/ DPTR, A, RO, Rl, R6, B
3503250425072508350925QA250D250F251025122513251525182519251A251B251D251F25212523252425272528252A252B252 E252F253125322534253525362539253B253C253 E253F254125432544254625472549254A254B254E254F2550255125542556
25572559255A255C255E255F256135632564
OE9030FFEE93F990082F7A06A3DAFDEOF5FO90082FA3C3E895FO500474FFA135E8B5F003EOA13514B5F006EO54FOC4A135E4F890070FE58229F582E43583F583E854FOC42430FOOE9030FFEE93F990070FE58329F582E43583F583E8540F2430FO22
COPIA1:MOVMOVMOVCMOVMOVMOV
PINC1: INCDJNZMOVXMOVMOVINCCL.RMOVSUBBJNCMOVAÜMP
PINC3: MOVCJNEMOVXAJMP
P IHC3 : DECCJÍ1EMOVXANLSWAPAJMP
PINC4: CLRPINC5: MOV
MOVMOVADDMOVCLRADDCMOVMOVANLEWAPADDMOVXINCMOVMOVMOVCMOVMOVMOVADDMOVCLRADDCMOVMOVANLADDHOVXRET
INC R6DPTR,»drpOBA,R6A,0A+DPTRR1,ADPTR, «sumR2,t06DPTRR2 , PIHC3A, 0DPTRB,ADPTR,lBUmDPTRCA,ROA,BPiucaA,IOFFHPINC5A,ROA,B,PINC3A,6DPTRPINC5AA,B,PINC4A,0DPTRA, IOFOHAPINC5ARO,ADPTR,»dspramA,DPLA,R1DPL,AAA,DPHDPH,AA,ROA,fOFOHAA, I30H»DPTR,AR6DPTR(«drpoaA(RGA,0A^DPTRR1,ADPTR, «dspramA.DPLA,R1DPL,AAA,DPHDPH,AA,ROA,«OFHA, 13 OHSDPTOíA
/INCREMENTA PUNTERO PARA LOCALIZAR;POSICIOH A COPIARSE EN DIGPLAY RAM
;CARGA EN ACUMULADOR DIRECCIÓN REL.;EN Rl DIRECCIÓN REl-ATIVA;CARGA LA DIRECCIÓN DE SUM A DPTR
;Y LA INCREMENTA 6 VECES PARA APUNTAR;AL EXPONENTE;Y CARGA EL EXPONENTE AL ACUMULADOR;Y POSTERIORMENTE A REGISTRO B/CARGA EN PUNTERO DIRECCIÓN DE DÍGITO;MAS SIGNIFICATIVO DE NPF
/RESTA REFERENCIA - EXPONENTE;SALTA SI REFERENCIA >= A EXPONENTE/'??' A ACUMULADOR INDICA OVERFLOW/SALTA A PINC5 PARA ACTUALIZAR 3 DATOS;CARGA REFERENCIA A ACUMULADOR7 SALTA SI EXPOUENTE ES MENOR A REFERENCIA?Y ALMACENA MSB EN ACUMULADOR
/DISMINUYE EN 1 EL VALOR DE LA REFERENCIA/SALTA 61 EXPONENTE MENOR A REFERENCIA-1/DOS DÍGITOS MAS SIGNIFICATIVOS A ACUMULADOR/ELIMINA DÍGITO MENOS SIGNIFICATIVO Y/EXPRESA DÍGITOS O y Al
í'OO' A ACUMULADOR INDICA UMDERFLOW;CARGA EN RO VALOR A PONER EN DISPLAY RAM/APUMTA A INICIO DE DISPLAY RAM/Y AUMENTA POSICIÓN RELATIVA/Rl AL PUNTERO PARA GUARDAR
/VALOR A PONER EN DISPLAY RAM A ACUMULADOR/PRIMERO TRABAJA CON DÍGITO MAS SIGNIFICATIVO
/CONVIERTE DÍGITO A ASCII
/INCREMENTA PUNTERO PARA LOCALIZAR;POSICIÓN A COPIARSE EN DISPLAY RAM
/CARGA EN ACUMULADOR DIRECCIÓN REL,/EN Rl DIRECCIÓN RELATIVA/APUNTA A INICIO DE DISPLAY RAM;Y AUMENTA POSICIÓN RELATIVA/Rl AL PUNTERO PARA GUARDAR NUEVAMENTE
/VALOR A PONER EN DISPLAY RAM EN ACUMULADOR/TRABAJA AHORA CON DÍGITO MENOS SIGNIFICATIVO/CONVIERTE A ASCII
COPIA2
;ENTRADAS:
Página 100
MODULO DE VISUALIKACION DE RESULTADOS Y COMUNICACIÓN
dcpos dirección inicio tabla de posiciones relativas de display ramdspram dirección inicio de display rameurn npf a procesarseRO exponente de referencia para comparación de npfR6 número de armónicas mostradas en display
;SALIDAS:
; ninguna
;PROCESO:
Copia valor de tres dígitos del número en punto flotante en suma display ram. El proceso es similar al de copia 1 pero en lugarde almacenar loe doe dígitos en el acumulador ee almacenan IOB dosmás significativos en el registro B y el tercero en al mássignificativo del acumulador.Es obvio que en lugar de que existan tres comparaciones, como enel caso anterior, deben existir cuatro.
/REGISTROS TEMPORALES
,• ninguno
/CONSTANTES USADAS:
; ninguna
/VARIABLES CREADAS:
; Rl dirección relativa de dato en display ram; A variable de propósito general, almacena dígitos a enviarse.; B exponente del npf, almacena dígitos a enviarse/ DPTR puntero de tablas
SUBRUTINAS UTILIZADAS
; ninguna
{REGISTROS ALTERADOS
; DPTR, A, RO, Rl, R6, B
2565 OE2566 9030FF2569 EE256A 93256B F9256C 90082F256F 7A062571 A32572 DAFD2574 EO2575 F5FO2577 90082F257A A3257B C3357C E82570 95FO257F 50072581 74FF2583 75FOPP2566 A1AE2588 E82589 B5F007258C EO258D F5FO258F A.32590 EO2591 A1AE2593 142594 B5FOOA2597 EO2598 54FO259A G4259B F5FO259D EO259E C4259F A1AE25A1 1425A2 B5F00635A5 75FOOO25A8 EO25A9 A1AE25AB E4
COPIA2 :MOVMOVMOVCMOVMOVMOV
PIHC6: INCDJNZMOVXMOVMOVINCCLRMOV6UBBJNCMOVMOVAJMP
PINC7: MOVCJNEMOVXMOVINCMOVXAJMP
PINC8: DECCJMEMOVXANLSWAPMOVMOVXSWAPAJMP
PINC9: DECCJHEMOVMOVXAJMP
PINGA: CLR
INC R6DPTR, IdrposA,R6A,0A+DPTRR1,ADPTR/tsumR2, 106DPTRR2,PINC6A,9DPTRB,ADPTR, «sumDPTRCA,ROA,BPINC7A, IOFFHB,*OFFHPINCBA,ROA,B,PINC8A,9DPTRB,ADPTRA,Í)DPTRPINCBAA,B,PINC9A,6DPTRA,*OFOHAB,AA,9DPTRAPINCBAA, B, PINGAB,*OOHA,0DPTRPINCBA
/INCREMENTA PUNTERO PARA LOCALIZAR;POSICIÓN A COPIARSE EN DISPLAY RAM
;CARGA EN ACUMULADOR DIRECCIÓN REL,;EN Rl DIRECCIÓN RELATIVA;CARGA LA DIRECCIÓN DE SUM A DPTR
/Y IA INCREMENTA 6 VECES PARA APUNTARiAL EXPONENTE;Y CARGA EL EXPONENTO AL ACUMULADOR;Y POSTERIORMENTE A REGISTRO B;DPTR APUNTA A DIRECCIÓN DE;PRIMER DÍGITO DE NPF
/RESTA REFERENCIA - EXPONENTE;SALTA SI REFERENCIA >= A EXPONENTE;'??' A ACUMULADOR INDICA OVERFLOW;'??' EN B INDICA OVERFLOW,-SALTA A PINC5 PARA ACTUALIZAR 2 DATOS;CARGA REFERENCIA A ACUMULADOR/SALTA SI EXPONENTE ES MENOR A REFERENCIA/Y ALMACÉNALOS EN ACUMULADOR/DÍGITOS MAS SIGNIFICATIVOS EN B/APUNTA A SIGUJEHTES DOS DÍGITOS;Y ALMACENA EN ACUMULADOR
/DISMINUYE EN 1 EL VALOR DE LA REFERENCIA/SALTA SI EXPONENTE MENOR A REFERENCIA-1/DOS DÍGITOS MAS SIGNIFICATIVOS A ACUMULADORíELIMINA DÍGITO MENOS SIGNIFICATIVO Y/EXPRESA DÍGITOS O y Al/ALMACENA DÍGITOS EN B/DÍGITOS MAS SIGNIFICATIVOS A ACUMULADOR/DÍGITO MENOS SIGNIFICATIVO TOMADO EN CUENTA
/DISMINUYES EN 1 EL VALOR DE LA REFERENCIA/SALTA SI EXPONENTE MENOR A REFERENCIA-27OOH A B COMO DÍGITOS MAS SIGNIFICATIVOS/TERCER DÍGITO A ACUMULADOR
/'00' A ACUMULADOR Y A
Página 101
25AC F5FO25AE F825AF 90070F25B2 E58225B4 2925B5 F58225B7 E425B8 358325BA F58325BC E5FO25BE 54FO25CO C425C1 243025C3 FO25C4 OE25C5 9030FF2SC8 EE25C9 9325CA F925CB 90070F25CE E58225DO 2925D1 F58225D3 E425D4 35832GD6 F5832SD8 E5FO25DA 540F25DC 343025DE FO25DF OE25EO 9030FF25E3 EE25E4 9325E5 F925E6 90070F25E9 E58225EB 2925EC F58225EE E425EF 358325F1 FS8325F3 E825F4 54FO25F6 C425F7 243025F9 FO25FA 22
25FB 90082F25FE 79052600 A32601 D9FD2603 EO2604 34012606 782B2608 6002260A 782D260C OE260D 9030FF2610 EE2611 932612 F92613 90070F2616 E5822618 292619 F582261B El261C 35832G1E FS832620 E82621 FO2622 22
MOVPINCB: MOV
MOVMOVADDMOVCLRADDCMOVMOVAHLSWAPADDÍÍOVXINCMOVMOVMOVCMOVMOVMOVADDMOVCLRADDCMOVMOVANLADDMOVXINCMOVMOVMOVCMOVMOVMOVADDMOVCLRADDGMOVMOVAHLSWAPADDMOVXRET
SIG: MOVMOV
6IG1: INCDJNZMOVXANLMOVJZMOV
SIG2 : INCMOVMOVMOVCMOVMOVMOVADDMOVCLRADDCMOVMOVMOVXRET
B,ARO,ADPTR, tdspramA,DPLA,R1DPL,AAA,DPHDPH,AA,BA, «OFOHAA,«30H6DPTR,AR6DPTR,«drposA,R6Ay 8A+DPTRR1,ADPTR,*depi:amA,DPLA,R1DPL,AAA,DPHDPH,AA,BA,IOFHA,«30H6DPTR,AR6DPTR, tdcposA,R6A,9A+DPTRR1,ADPTR,*daprainA,DPLA,R1DPL,AAA,DPHDPH,AA,ROA, «OFOHAA,*30H6DPTR,A
DPTR, IsumR1,I5DPTRR1,SIG1A, flDPTRA, *01RO,*2BHSIG2RO,I2DHR6DPTR, »drposA,R6A/0A4DPTRR1,ADPTR, idepramA,DPLA,R1DPL,AAA,DPHDPH,AA,RO6DPTR,A
,-REGISTRO B INDICA UMDERFLOW; CARGA EN RO DÍGITOS MENOS SIGNIFICATIVOS;APUNTA A INICIO DE DISPLAY RAMjY AUMENTA POSICIÓN RELATIVA;R1 AL PUNTERO PARA GUARDAR
;VALOR MAS SIGNIFICATIVOS A ACUMULADOR/PRIMERO TRABAJA CON DÍGITO MAS SIGNIFICATIVO
; CONVIERTE DÍGITO A ASCII
; INCREMENTA PUNTERO PARA LOCALIZAR; POSICIÓN A COPIARSE EN DISPLAY RAM
; CARGA EN ACUMULADOR DIRECCIÓN REL .; E» Rl DIRECCIÓN RELATIVA;APUNTA A INICIO DE DISPLAY RAMjY AUMENTA POSICIÓN RELATIVA;R1 AL PUNTERO PARA GUARDAR NUEVAMENTE
;VALOR A PONER EN DISPLAY RAM EN ACUMULADOR/TRABAJA AHORA CON DÍGITO MENOS SIGNIFICATIVO/CONVIERTE A ASCII
/INCREMENTA PUNTERO PARA LOCALIZAR/POSICIÓN A COPIARSE EN DISPLAY RAM
íCARGA EN ACUMULADOR DIRECCIÓN REL.;EN Rl DIRECCIÓN RELATIVA;APUNTA A INICIO DE DISPLAY RAM;Y AUMENTA POSICIÓN RELATIVA/Rl AL PUNTERO PARA GUARDAR NUEVAMENTE
/VALOR A PONER EN DISPLAY RAM EN ACUMULADOR;SOLO TRABAJA CON DÍGITO MAS SIGNIFICATIVO
/CONVIERTE DÍGITO A ASCII
; UBICA PUNTERO EN LOCALIZACIOH;DE MEMORIA CORRESPONDIENTE AL/SIGNO DE BUm
/TRAE SIGNO DE Bum AL ACUMULADOR/AISLA EL BIT DEL SIGNO; CARGA SIGNO POSITIVO A RO/SALTA SI sum ES POSITIVO/CARGA SIGNO NEGATIVO A RO/INCREMENTA PUNTERO PARA LOCALIZAR/POSICIÓN A COPIARSE EN DISPLAY RAM
/CARGA EN ACUMULADOR DIRECCIÓN REL./EN Rl DIRECCIÓN RELATIVA/APUNTA A INICIO DE DISPLAY RAM;Y AUMENTA POSICIÓN RELATIVA/Rl AL PUNTERO PARA GUARDAR NUEVAMENTE
/CARGA SIGNO A/DISPLAY RAM
; ENTRADAS :\l ^
discomdisdnt
ACTDIS
Pórtico 1, donde un interruptor indica selección de pantallaDirección de comandos n diuplayDirección de datos a dieployDirección inicial de diepiay rom
Página 102
I UALIDAS:
; 201! Copia de pórtico 1 actualizado
;PROCESO:
; Este proceso revisa el interruptor en Pl y actualiza el/ rnm del display según existan cambios en Pl.; Se chequea Pl, según el bit que esté conectado a tierra,; se indica una dirección relativa de display rom de manera; que se copia un segmento de display rom a la rom del; display. EB muy importante la introducción de estados de; espera. El proceso debe ser transparente.
/CONSTANTES USADAS:
í ninguna
/VARIABLES CREADAS:
; A variable de propósito general; RO; Rl contador para estados de espera
/SÜBRUTIHAS USADAS
; ninguna
¡REGISTROS ALTERADOS
/ A
2623 C0832625 C0822627 E82628 COEO262A E9262B COEO262D 901AOO2630 7-1802633 FO2633 791E2635 D9FE2637 E5902639 90070F263C 30E013263F 30E1162642 30E2192645 30E41C2648 30E51F2 6 4 B 30E622264E F5202650 C1BC2652 F5302654 74002656 C1742658 F520265A 7428265C C17426SE F5202660 74502662 C1742664 F5202666 74782668 C174266A F52026<JC 74AO266E C1742670 F5202672 74C82674 25822676 F5822678 7400267A 3583267C F583267E 78142680 A32601 EO2682 C0832684 C0822686 901A012689 FO268A 791E268C D9FE268E D0822690 0083
ACTO JS :PUSHMOVPUSHMOVPUSHMOVMOVMOVXMOVDJNZMOVMOVJNBJNBJNBJNBJNBJNBMOVAJMP
DSPO : MOVMOVAJMP
DSP1 : MOVMOVAGMP
D6P2 : MOVMOVAOMP
DSP3 : MOVMOVAJMP
D6P4 : MOVMOVAOMP
DSP5 : MOVMOV
CDDRAM :MOVMOVADDCMOVMOV
CDD1 : ItíCMOVXPUSHPUSHMOVMOVXMOVDONZPOPPOP
PUSH DPHDPLA , R OACCA,R1ACCDPTR, IdiscoinA , I 8 0 H0DPTR , AR1,B30R l , $A,P1DPTR, IdspramACC. 0, DSPOACC.1,DSP1ACC.2 ,DSP2ACC,4,DSP3ACC.5,DSP4ACC.6,DBP52011, ACDD320H,AA , I O OCDDRAM20H,AA, 140CDDRAM2 0 H , AA, 180CDDRAM20H,AA, «120CDDRAM20H,AA , I 1 G OCDDRAM20H,AA , f 2 0 0ADD A, DPLDPL, AA, «00A, DPHDPH, AR 0 , « 2 0DPTRA,eDPTRDPHDPLDPTR,«disdat«DPTR, AR1,I30R l , £DPL,DPH
/EL PROCESO DEBE SER TRANSPARENTE
;PARA ELLO ENVÍA A STACK A
/DPTR, RO Y Rl;DIRECC. COMANDOS DISPLAY EN DPTR;Y ENVÍA A ESTA LOCALIDAD, PRIMER;BYTE DDRAM A SER ESCRITO/INTRODUCE ESTADO DE ESPERA
;NUEVAMENTE Pl A ACUMULADOR;EN DPTR, DIRECCIÓN DE DISPLAY RAM;SALTA SI ESTA ACTIVADA RED 1;SALTA SI ESTA ACTIVADA RED 2/SALTA SI ESTA ACTIVADO MODULO 1;SALTA SI ESTA ACTIVADO MODULO 2/SALTA SI ESTA ACTIVADA FASE 1;SALTA SI ESTA ACTIVADA FASE 2
íACTUALI7,A 2OH
/COPIA PRIMERA PANTALLA/ACTUALIZA 2OH;SUMA 40 A DPTR, PARA COPIARíSEGUNDA PANTALLA DE DISPLAY RAM;ACTUALI7.A 2011;SUMA 60 A DPTR, PARA COPIAR/TERCERA PANTALLA 'DE DISPLAY RAM/ACTUALIZA 20H/SUMA 120 A DPTÍI, PARA COPIAR/CUARTA PANTALLA DE DISPLAY RAM/ACTUALIZA 2011;SUMA 160 A DPTR, PARA COPIAR/QUINTA PANTALLA DE DISPLAY RAM;ACTUALIZA 3011/SUMA 200 A DPTR, PARA COPIAR 6a.
/SUMA ACUMULADOR A DPTR/PARA OBTENER LA PANTALLA A/COPIARSE DESEADA
;SON 20 DATOS A COPIARSE EN la. FILA
/TRAE DATO DE DISPLAY RAM
/ALMACENA PUNTERO EN STACK/A DPTR DIRECCIÓN DATOS DE DDRAM/ENVÍA DATO A DDRAM/INTRODUCE ESTADO DE ESPERA
Página 103
MODULO DE VISUALIZACION DE RESULTADOS Y COMUNICACIÓN
2692 D8EC2694 C0832696 C0822698 901AOO2S9B 74CO269D FO269E 791E26AO D9FE26A2 D08226A4 D08326A6 781426A8 A326A9 EO26AA C08326AC C08226AE 901A0126B1 FO26B2 791E26B4 D9FE26B6 D08226B8 D08326BA D8EC26BC DOEO26BE F926BF DOEO26C1 F826C2 D08226C4 D08326G6 22
DJNZPUSKPUSHMOVMOVMOVXMOVDJNZPOPPOPMOV
CDD2 : INCMOVXPUSUPUSHHOVMOVXMOVDJN£POPPOPDJN7,
CDD3 : POPMOVPOPMOVPOPPOPRET
RO,CDD1DPHDPLDPTR,*cHscomA,*OCOH0DPTR,AR1,I30R1,SDPLDPHR0,*20DPTRA(0ÜPTRDPHDPL.DPTR,*disdat6DPTR,ARl,*30Rl,£DPLDPHRO,CDD2ACCR1,AACCRO,ADPLDPH
; SALTA HASTA LEER TODOS LOS DATOS
; ALMACÉN A PUNTERO EN STACK;A DPTR DIRECCIÓN COMANDOS DE DDRAM;PARA INDICAR LOCALIDAD DE PRIMER,-BYTE SEGUNDA FILA DE DATOS
7 RECUPERA PUNTERO DE ETACK
;TRAE DATO DE DISPLAY RAM
/ALMACENA PUNTERO EN STACK;A DPTR DIRECCIÓN DATOS DE DDRAM; EN VI A DATO A DDRAM/INTRODUCE ESTADO DE ESPERA
; SALTA HASTA LEER TODOS LOS DATOS; FINALIZADO EL PROCESO, RECUPERA
,DE PILA A Rl, RO Y DPTR
3100
31QO3103310B310E31133116"311B311E31233126312B3I2E3133313G313B313E314331463148314E31533156315B315E316?.31653169316C317031733177317A317E318131853188318C318F
Q<4 06 07OF 10 182B 2C 2D33 34 353F 40 4247 48 4A52 54 5556 57 585C 5E 5F60 61 6266 68 696A 6B 6C70 72 7374 75 767A 7C 7D7E 7F 8084 86 8788 89 8A8E 90 9192 93 9498 9A 9B9C 9D 9EA2 A4 A5A6 A7 A8AB AD AEAF BO BlB6 B8 B9BA BB BCBF Cl C2C3 C4 C5CA CG CDCE CF DOD3 D5 D6D7 D8 D9DE EO ElE2 E3 E4E7 E9 EAEB EC ED
ORG
db1A IBdb
3A 3Bdb
4E 4Fdb
59 5Adb
63 64db
6D 6Edb
77 78db
81 82db
8B 8Cdb
95 96db
9F AOdb
A9db
B2db
BDdb
C6db
DIdb
DAdb
ESdb
EE
3100H
***** TABLA DE DIRECCIONES RELATIVAS PARA DISPLAY RAM
4h,6h,'7h,OFh,lQh,18h,lAh,lBh,?.3h,24h,27h23 24 27
7 v rms (3 ) , vi ( 3 ) , t hdv (2 )
. 6(3), Epd (3)
2Bh,2Ch,2Dh,33h,34h,35h,3Ah,3Bh
3Fh , 4 Ob , 42h , 47b , 4 8h , 4Ah , 4Eb , 4Fh
52h,54h,55h,56h,57h,58h,59b,5Ah
5Ch,5Eh,5Fh,60h,61h,62h,63h,64h
66h , 68h , 69b , 6Ah , 6Bh , 6Ch , 6Dh , 6Eh
70h ,72h ,73h ,74h ,75h ,7 (5h ,77h ,78h
7Ah,7Ch,7Dh,7Eh,7Fh,80h,81h,82h
84h,86h ,87b ,88h ,B9b,8Ah,8nh ,8Ch
8Eh,9Üb,91h ,92h ,93h ,94h ,95h ,96h
98h,9Ah,9Bh,9Ch,90h,9Eh,9Fh,OAGh
OA2b , OA4h , OASb , OA6h , OA7h , OA8h , OA9h
OABh , OADb , OAEb , OAFh , OBOb , OBlh , OB^h
OB6h, OB8h, OB9h, OBAh, OBBh, OBCh, OBDh
OBFh , OClh , OC2h , OC3h ( OC4h , OC5h , OC6h
OCAh , OCCh , OCDh , OCEh , OCFh , ODOh , ODlh
OD3h ,OD5h ,OD6h ,OD7h ,OD8h ,OD9h ,ODAh
ODEh, OEOh, OElh, OE2h, OE3h, OE4b, OE5b
OE7h , OE9b, OEAh, OEBb , OECh, OEDh , OEEh
; i r m e ( 3 ) , i l (3 ) , t h d i ( 2 )
;A2, M I , M2, M3 , - f , Fl, F2, F3
;A3, MI , M2, M3, +, Fl, F2, F3
;A4, M I , M2, M3 , +, Fl, F2, F3
;A5, Hl, M3, M3, +, Fl, F2, F3
;A6, MI , M 2 , M3, +, Fl, F2, F3
;A7, MI , M 2 , M3, +, Fl, F2, F3
;A8, M I , M2, M3, -1-, Fl, F2, F3
;A9, MI, M2, M3, +, Fl, F2, F3
;a2, M I , H 2 , - f , Fl, F3, F3
;a3, M I , M 2 , +, Fl, F2, F3
;a4, MI, M 2 , f - , Fl, F2, F3
;a5, MI , M 2 , - f , Fl, F2, F3
jo6 , MI, M2, +, Fl, F2, F3
;a7, MI , M 2 , 4-, Fl, F2 , F3
;a8, MI , M2, +, Fl, F2, F3
;a9, MI, M 2 , +, Fl, F2, F3
Página 104
MODULO DE VTSUALIZACION DE RESULTADOS Y COMUNICACIÓN
3.7.Centro de llamadas a rutinas.
Las rutinas diseñadas pueden funcionar independientemente entre
si, incluso fueron probadas independientemente y en grupo. Lo único que
queda por definir son los centros de llamadas a rutinas que transferirán el
control a los diferentes módulos. Al paginar la memoria cada 2K, se trata
de mantener rutinas de programa cerca para utilizar las. instrucciones ACALL
y AJMP en lugar de las más lentas y de mayor espacio LCALL y LJMP. Existe
un centro de llamadas a rutinas al inicio de la página 2 de 11 bits.
2800
2600 110B2802 11DC2804 319D2006 12225E2809 80F5
PAGINA 1 DE MEMORIA
7.ONA DE MANEJO DE RESET E INTERRUPCIONES
PAGINA 2 DE MEMORIA
PROGRAMA PRINCIPAL
ORG
LLAMA :
2800H
ACALLACALLACALLIA:ALLSJMP
LECTURFACTORARMÓN IRESULTLLAMA
;LEE DATOS; ENCUENTRA
DE ADC Y GUARDA EHFACTOR DE POTENCIA
MEMORIADE RED
,-REALIZA ANÁLISIS DE ARMÓNICAS/ACTUALIZA;CREA LA7.0
RESULTADOSINDEFINIDO
/RESULT se encuenbran en la página 1 de memoria puesto que no requiere,-de invocar a rutinas BASIC para realizar operaciones de punto flotante./Dada la extensión del programa, todas las rutinas (LECTOR, FACTOR, ARMONI,,-RESULT y los llamadas a BASIC) no entrón juntas en esto página de 2K/por lo que se requiere hacer la mencionada división.
PAGINAS 3 Y 4 DE MEMORIATABLAS DE DATOS
LAS ULTIMAS LOCALIDADES DISPOtUBLES DE ROMSON USADAS PARA ALMACENAR TABLAS RE DATOS
Página 105
CEHTRO DE LLAMADAS A RUTINAS
Finalmente, y para ratificar la medularidad del software, se
puede apreciar que al comienzo y al final de cada módulo se cambia al banco
3 y al banco O de registros respectivamente. Con esto se puede acceder
directamente desde la linea de comandos del BASIC-52 a cada uno de los
módulos sin que exista problema alguno. Desafortunadamente, la única forma
de acceder a la línea de comandos es sacando la EPROM antes de encender el
equipo, en una posible futura mejora se podria incluir un jumper que permi-
ta la opción de arrancar el programa diseñado o pasar a la linea de coman-
dos del BASIC-52.
El listado global del programa diseñado se encuentra en el
primero de los dos documentos anexos a la presente tesis.
Página 106
CENTRO DE LLAMADAS A RUTINAS
27 Oritaneda Gavidia, Marión, Sistema de desarrollo de programas de Controlbasado en el microconbrolador INTEL 8052-flH BASIC. Tesis de Grado,EPN, Quito, 1993, p.144.
28 Intel Corporation, MC5 BflSlC-52 User's Manual, Santa Clara, California,1986, pp. 148-152.
29 ídem, p.133.
30 ídem 27, p.24.
31 ídem 28, p.130.
32 ídem.
-3 O
Rodas Posso, Marcelo, La Transformada Rápida De Fgurier, Tesis de Grado,EPN, Quito, 1977, pp.39-52.
Página 107
CAPITULO 4.
PRUEBAS REALIZADAS AL SISTEMADISEÑADO
4.1.Pruebas de operación del equipo.
Las pruebas de operación del equipo se efectuaron en el Labora-
torio de Electrónica de Potencia. Se usó para ello la configuración
trifásica sendconhrolada en el Equipo Didáctico Para Estudio De Conversores
existente en el Laboratorio de Electrónica de Potencia para controlar un
grupo motor - generador DC. El motor es un motor DC BñLDOR de 3/4 HP, 90V,
7A y con una velocidad de 1750 RPM.
Corriente de la prueba de operación
FIGURA 4.1.- FORMA DE ONDA DE LA CORRIENTEMUESTREADA EN LA PRUEBA DE OPERACIÓN
FIGURA 4.2.- FONOGRAFÍA DE LA CARGA DEL EQUIPO
Al activarse el convertidor se observó que el voltaje fase neu-
tro de entrada era prácticamente sinusoidal y tenía un valor eficaz de 61.2
V y que la corriente era distorsionada de un valor eficaz de 5.41 A con la
forma de onda mostrada en la figura 4.1. El conversor entregaba un voltaje
DC de 98 V y una corriente DC de 6.4 A. Los datos de voltaje y corriente
de entrada fueron medidos con el multímstro Fluke 87 y el probador de cor-
riente Fluke Y8100.
Para referencia de valores reales de distorsión se tomó 256
muestras de corriente con la tarjeta de adquisición de datos del laborato-
rio y se realizó el siguiente análisis en Microcap III:
Micco-cap TirHnme
Fourier coofficlents of wnveform XXXDabe 11/32/94 Time 18:56:13
Martío.
013
345
Percent
5.434533100.00000071.211644
4.84940116.8595802.738067
Mogni tude(Volto)
1. 66*796930,69203221.856300
1.408ÍI045.1745480.640368
Angle(Degcees }
0.000000118.676039-42.822113
-50.467264176.401930-166.623888
Cosí noTerm
1.667969-34.72777716.030888
0.947397-5.164348-0.817568
SinoTerm
0.000000-26.92755914.856261
1.1479-18-0.3247380.194427
Páaina 109
PRUEBAS DE OPERACIÓN DEL EQUIPO
678
91011
1?.1314
151617
181920
212223
242526
272829
303132
333435
363738
394041
424344
454647
484950
515253
545556
575859
606167.
636465
666768
697071
0.7062436.4926341.575637
1.8914452.6606451.751173
2.9248581.3114231.774089
1.5170011.4370870.764986
0.9739791.2759010.325601
0. 3751200.2136130.516806
0.9966720.5565880.475879
0.2002690.2566340.346119
0.3992200.2864100.101114
0.3671850.2244450.134294
0.4044070.6821310.665749
0.3903200.3366970.599673
0.5052960.44-15940.169106
0.3356370.7108760.303568
0.3542170.6131400.565955
0.9011180.3429680.397917
0.3838180.6734910.306397
0.3860860.4546600.389550
0.3264450.2167480.208926
0.4239510.2657530.211734
0.2295520.3925710.420325
0.2468060.2288660.324112
0.2167601.9927210.483595
0.5805230.8166060.537470
0.8976980.4025020.544504
0.4658440.4 4.a 0710.234790
0.2989340.3916000.099934
0.1151320.0655620.158618
0.305B990.1708280.146057
0.0614G70.0787660.106231
0.1225290.0879050.031034
0.1126970.0688870.041218
0.1241210.2093600.204332
0.1197970.1033390.184052
0.1550860.1364550.051902
0.1030140.3181820,093171
0.1087160.1881850,173703
0.2765710.1052640.091437
0.1178010.2067080.094039
0.1184970.1395450.119561
0.1001930.0665240.064124
0.1301190.0815650.064985
0.0704540.1204800,129006
0.0757500.0702440.099477
80.60265364.977803-70.884530
-110.060985-32.321941157.213483
124.732655-105.79280717.885735
-3.052804159.046501-160.984458
-125.68844437-73744733.995691
152.165632-79.517090-119.000733
48.546615-9.954487136.741482
-114 .692837-101-97469778.824884
126.23763386.740575-34.008864
-77.734000120.43859741.927215
102.31423348-627716-33.589846
-22 .648410-83 .581817-177.224121
50.99940045.33667243.896508
-61.632526-107.541212142.836126
74.201625134.4571940.106382
-50.394181-140.058329-17.582671
170.315794115.1566891.944953
5.771823-17.887618-89-936625
-360.068174-119,752683175.138017
68.774677-16.699244-97.869207
-31.655949-135.050605166.295941
-76.842285121.4164211.557628
0.0353930.8428600.158364
-0.1991310.690079-0.495533
-0.511462-0.1095450.518189
0.465183-0.411904-0.231977
-0,1743910.3096870.083815
-0.1018110.011928-0.076901
0.2025080.168356-0.109797
-0.025678-0.0163420.020588
-0.0734310.0049980.025726
0.033942-0.0348990.030666
-0.0264720.1383760.170212
0.1105590.011552-0.183836
0.0976000.0959200.038023
0.048944-0.065758-0.074249
0.029598-0.1064730.173703
0.176315-0,0807060.087165
-0.116123-0.0878710.093985
0.1178970.1327990.000132
-0.09419]-0.033013-0.063893
0.0473080.078125-0.008897
0.059972-0.005285-0.125334
0.017243-0.0366150.099440
-0.213851-1.8056930.456930
0.5453010.436620-0.208162
-0.7377460.387309-0.167228
0.024809-0.1577320.076500
0.242794-0.239676-0.054421
-0.0537570. 0644670.138730
-0.2292690.029530-0.096318
0.0558460,077052-0.104217
-0.098828-0.0877630.017358
0.110124-0.059392-0.027541
-0.121265-0.1571100.113045
0.0461310.1026920.008914
-0.120523-0.097054-0.035328
0.0906440.208037-0.056284
-0.104610-0.155168-0.000322
0.2130840.0675800.027621
-0.019816-0.187101-0.003192
-0.0119170.0428610.119561
0.0341560.057755-0.005435
-0.1212920.0234380.064373
0.0369760.085111-0.030563
0.073761-0.059946~0. 002704
Página 110
PRUEBAS DE OPERACIÓN DEL EQUIPO
727374
757677
787980
818283
848586
878889
909192
939495
969798
99100101
102103104
105106107
108109110
111112113
11-41151.16
117118119
120121122
123124125
126127128
0.2732090.0751040-083316
0.3279930.3803500.434257
0.1641470,2092110.201871
0.3057280.2181.670.177192
0.2884340.1752020.092201
0.4165520.4319690.437121
0.5798270.3024280.213802
0.2061.340.3580650.400015
0,4681280.3871710.303055
0.3444770.2764880.160617
0.0511960.4017250.220715
0.0577540.1005670.240519
0.1194610.1373280.403172
0.4217700.4988370.466253
0.5343060.3050490.224675
0.1231530.1871100.213602
0.3572880.7773510.524089
0.2893740.4532430.579491
0.6332810.5562860.636362
0.0838530.0230510.025571
0.1006680.0860450.133282
0.0503800.0642110.061958
0.0938340.0669600.054384
0.0885260.0537730.038298
0.1278480.1325800.134161
0.1779610.09267,10.065620
0.0632670.1098970.123773
0.1436780.1188310.093014
0.1057270.0848600.049297
0.0157130.1232980.067742
0.0177260.0308660.073820
0.0366650.0421490.123742
0.1294500.1531030.143103
0.1639890.0936260.068957
0.0377980.0574280.065559
0.10.96590.3385850.160854
0.0888150.1391100.177857
0.1943670.1707360.195313
-73.797414-90.017269-147.463825
-175.760657139.174352128-843609
71.760993-4.306101-92.404639
-132.564929-121.779404-130.411957
57-57037466-983173-21.752938
-112.540187-167.027044167.151613
112.27034798.49324015.881592
-40.853438-126.319007164.077222
75.170146168,61010444.085015
-17.673336-177.558527-147,639525
159,24168085,45614469.791426
131.785017147.80678311.775241
-99-965269-135.815088-169.637160
-151.96358174.40681793.099665
76.001612-21.614434-33.393580
140.647474104.952564172.752792
60.806203-10.158510-70.729177
-89.312350-145.693276136.442372
114.87577752 .5381530.000000
0.023398-0.000007-0.021558
-0.100392-0.065111-0.083594
0.0157680.064030-0.002600
-0.063472-0.035264-0.035256
0.0474730.0210250.026283
-0.049008-0.129196-0.130803
-0.067443-0.0137090.063115
0.047854-0.065090-0.118062
0.036774-0.1164900.066813
0.100737-0.084783-0.041641
-0.0146930.0097680.023401
-0.011811-0.0261210.072267
-0.006345-0.030225-0.121723
-0.1142590.041155-0.007738
0.0396680.0870420.057573
-0.029220-0.014817-0.065035
0.0534880.2348450.053087
0.001066-0.114909-0.128890
-0.0817610.1038470.195313
0.0805230.0330510.013753
0.007442-0.056253-0.103808
-0.0478490.0040210.061904
0.0691100.0569210.041408
-0.074721-0.0494920.010488
0.1180820.029763-0.029834
-0.164686-0.091803-0.017957
0.0413840.088548-0.033682
-0.138893-0.023467-0.064712
0.0320970.0036150.026386
-0.005569-0.122910-0.063572
-0.013217-0.016445-0.015065
0.0361120.0293770.033359
0.060846-0,147468-0.142893
-0.1591190.0344880.037953
-0.033967-0.055483-0.008270
-0.0957290.0430800.151841
0.0888080.078405-0.132559
-0.176334-0.1355230.000000
Foiiríor statietics
Total harmonic distortion ( « ) . . ,Odd harmonic distortion { % ) . . .Even harmonic disbortion ( % ) , , .
Sum o£ harmónica 2 . . . HSum oC harmónico^ 2 . . . NSquaro root oC eum of harmonice' '
74.0-190749.733568
73.406564
d9.509933516.534048
22 .727165
Página 111
PRUEBAS DE OPERACIÓN DEL EQUIPO
Sum of; odd harmonice 3...tiSum of: odd harmonica^a 3 . . . NSum of even harmónica 2 . . . NSum o£ even hacmonicsrt2 2 . . . N
Average AC powec of waveCorm into a 1 obm load (Watts J ....Average AC power of waveform inbo a 50 obm load(Watts)-.-.Avgirage AC powec of waveform into a 600 obm load(Hat ts ) . . . .
Average AC power oE odd harmónica into a 1 obm load (watts)Avorcige AC powor of even barmonice into a 1 obm load(watto)RMS valué of waveform -
12.93391S8,924736
36,577003507,599365
729,26*3-13414.585249
1,21.5437
4,462368253,799683
27.056332
El análisis hecho por el Microcap se utiliza solo para compro-
bar el contenido armónico en forma porcentual puesto gue los valores de las
muestras fueron escalados de manera que los valores absolutos no correspon-
den a la realidad.
El medidor de factor de potencia fue colocado junto al equipo
didáctico y conectado. En la foto de la figura 4.3. se tiene un acerca-
miento al medidor del que se distingue claramente el LCD en la zona iz-
quierda, sobre el logotipo; el LED indicador de encendido y el selector de
pantalla en la zona central y en la zona derecha, el recuadro de terminales
donde se conectan los cables de voltaje (terminales de la izquierda) y los
FIGURA 4.3.- ACHICAMIENTO AL MEDIDOR DE FACTOR
Pagina 112
PRUEBAS DE OPERACIÓN DEL EQUIPO
de corriente (terminales de la derecha). No debe olvidarse que los termi-
nales negros están conectados entre sí internamente.
En la foto de la figura 4.4. se puede apreciar la diferencia
de tamaño entre el equipo didáctico y el medidor, entre ellos está el
multlmetro Fluke 87; atrás, se puede divisar el transformador AC/AC de po-
larización del medidor. Las dimensiones del equipo diseñado son notable-
mente convenientes, similares a las de un multimetro de escritorio.
FIGURA 4.4. — FOTOGRAFÍA COMPARATIVA DELTAMAÑO DEL MEDIDOR DE FACTOR DE POTENCIA
Una vez encendidos los equipos y pasado el mensaje de espera se
comprobó que los primeros valores obtenidos no se ajustaban a los valores
reales por lo que se esperó a la actualización de datos (el LCD mostraba la
pantalla con los valores eficaz y de la fundamental de voltaje y corriente
Página 113
PRUEBAS DE OPERACIÓN DEL EQUIPO
y las distorsiones armónicas, propios de la segunda posición del selector).
El segundo :set de datos presentó ya sus valores acordes con la realidad,
así que, variando el selector desde la posición 1 (del extremo izquierdo)
hasta la posición 6 (del extremo derecho), se procedió a tomar 5 muestras
de cada medida y promediándolas se obtuvo los siguientes resultados:
DIMENSIONES
Muestra 1
Muestra 2
Muestra 3
Muestra 4
Muestra 5
Promedio
P(kH)
0.22
0.22
0.33
0.22
0.22
0.22
S(kVA)
0.32
0.32
0.33
0.32
0.32
0.32
fp
67%
68%
69%
67%
683
68*
Id
488%
4-89%
+ 88%
+ 87*
+ 89%
+ 88%
V(V)
61
61
63
60
61
61
1(V)
61
61
62
60
61
61
D
4%
6%
5%
7%
4%
5%
I(A)
5.3
5.3
5.3
5.4
5.3
5-3
1(A)
4.2
4.1
4,2
4.3
4,2
4,2
D
78%
80%
77%
73%
78%
77%
Los encabezados de la tabla corresponden a los del LCD. Así,
P, S, fp y ird, que aparecen con el selector en la posición 1, corresponden
a potencia real, potencia aparente, factor de potencia y factor de potencia
de desplazamiento; V, 1 y D de la fila superior corresponden a valor efi-
caz, valor de la fundamental y distorsión armónica total de voltaje, mien-
tras que I, 1 y D de la fila inferior corresponden a los mismos valores de
corriente.
No debe olvidarse que el signo positivo en el factor de poten-
cia de desplazamiento indica predominancia inductiva en la fundamental.
Siguiendo con el selector en la posición 3 y 4, que correspon-
den a las armónicas de voltaje aparecieron algunos valores, los más fre-
cuentes fueron los de las armónicas 2, 4, 5 y 16 (representado por la letra
G), pero todos los -valores fueron inferiores al 5% y sus fases dispersas
por lo que se consideran pertenecientes a la franja del 0-5%.
Con el selector en la posición 5, se visualizó las 4 primeras
armónicas de corriente mayores al 1% y en la posición 6 (la posición de la
derecha), las 4 siguientes:
ORDHN
Muestra 1
Muestra 2
Muestro 3
Muestra 4
Muestra 5
Promedio
a76-140
69-145
71-143
71-142
69-144
71-143
3
03-072
05+125
02+126
01+026
04+077
0-5%
4
15-1161
16+160
13+161
13+159
15+1.56
10-15%
5
02+165
01+127
03+093
01-014
03f084
0 -53
6
02-134
01+119
01+125
01-008
01+104
0-5%
7
05+005
04+001
04-002
05+004
05+011
5-10%
8
01+000
02+025
01+018
02+003
02+034
0-58
9
01-038
01-014
03-143*
03+124*
01+000
0-5%
Página 114
PRUEBAS DE OPERACIÓN DEL EQUIPO
Los valores de las armónicas se leen de la siguiente manera:
los primeros dígitos representan al módulo de la misma cano porcentaje de
la fundamental, el signo y los siguientes 3 dígitos representan a su ángulo
de fase en grados. El asterisco en las muestras 3 y 4 de la novena armóni-
ca indican que los' estos valores corresponden a la décirca armónica (que
apareció en el LCD con la letra A). Esto sucedió por que en esas muestras,
el valor medido de la novena armónica no superó el 1% y por lo tanto no
apareció en pantalla.
Las armónicas 3, 5, 6, 8 y 9 se consideran dentro de la franja
del O - 5% ya que sus valores de módulos eran menores al 5%. El valor pro-
medio de la armónica 7 es 5%, entonces se le considera perteneciente a la
franja del 5 - 10%. La cuarta armónica tiene un promedio de 14% que le
ubica en la franja del 10 al 15%. Solo la segunda armónica tiene un prome-
dio que sobrepasa al 15%, entonces se adopta su promedio como valor de su
módulo.
Si bien en esta prueba no se usó el computador (que sí se usó
en las pruebas de precisión), cabe destacar que al encender el medidor,
éste envía un pulso al computador que el programa "TERMINAL" lo suele in-
terpretar como un dato enviado con error, por ésto es conveniente primero
encender el medidor y luego poner en funcionamiento al programa de comuni-
caciones en el computador.
4.2.Pruebas de precisión.
Las pruebas de precisión tienen por objeto determinar los
errores que comete el equipo diseñado para indicar, naturalmente, los
márgenes de error del mismo y para recomendar futuras acciones a temarse
buscando siempre mejorar el diseño inicial.
El análisis de las pruebas fue una etapa bastante larga debido
a la gran cantidad de datos usados, es por ello que en este apartado se
describen las pruebas realizadas y los resultados obtenidos. En este
capítulo se incluyen el documento PRUEBAS DEL PROGRAMA y los 33 gráficos
obtenidos de los documentos PRDATOS.XLS y PRANALI.XLS. Estos dos últimos
se encuentran junto con los detalles de las Cormas de onda obtenidas en el
Página 115
PRUEBAS DE PRECISIÓN
segundo documento anexo a la presente tesis. Las observaciones y recomen-
daciones están más adelante en el capítulo quinto.
Para determinar con más precisión el origen de los errores, es
preciso dividir a estas pruebas en dos partes: pruebas del programa y prue-
bas del equipo corrpleto.
Pruebas del programa
Estas pruebas se realizaron antes de diseñar la etapa de auto-
arranque, por lo que al encender el equipo, se pudo interactuar con el com-
putador programando y obteniendo datos. Adicionalmente, no se realizaban
aun las instrucciones que expresan las armónicas como porcentajes de la
fundamental sino que aparecen como valores eficaces. Aparte de ésto, el
programa es exactamente el mismo que reside en la EPRCM del equipo.
Se trabajó con el programa "Terminal" realizado en QBASIC para
la tesis del Sistema De Desarrollo Basado en el 8052AH-BASIC, y, dado que
se trabajó con Windows, los resultados obtenidos en la pantalla fueron ex-
portados a un procesador de textos. Cabe indicar que el trabajo con QBASIC
facilita el trabajo del equipo ya que las líneas de control del pórtico de
comunicación serial no son manipuladas y se puede usar el circuito de in-
terfaz con optoacopladores. "Terminal" de. Windows, que trabaja a 19200 bps
en lugar de los 9600 máximo de QBASIC 4.5, forza las líneas de control a 1
lógico, lo que impide usar el interfaz con optoacopladores. De todas ma-
neras, se mantuvo el espacio original correspondiente a la comunicación
serial de la tarjeta del 8052AH-BASIC, así que si se desea hacer pruebas
sin el circuito de optoacopladores basta poner en su sitio el CI 232 y unir
con cables al conector correspondiente con el cable serial.
Una vez que están encendidos el equipo y el computador con el
programa "Terminal" listo, se presiona la barra espaciadora a lo que el
microcontrolador responde con un mensaje de inicialización. Lo primero que
se hizo al recibir ese mensaje es poner el valor exacto del cristal de os-
cilación (12 MHz), preguntar por los valores correspondientes a XTAL, TMOD,
TCON y T2CON (que deben ser 12*000.000, 16, 244 y 52 respectivamente) y
chequear si se disponía de la memoria esperada (LEN=1 indica que no hay
programa en RAM y FREE-3583 indica los 3.5K de memoria libres). En el mo-
nitor del computador apareció lo siguiente:
Página 116
PRUEBAS DE PRECISIÓN
*MCS-51{tm) BASIC VI. 1*READY> XTAL =12000000
>PRINT XTAL,TMOD,TCON,T2CON12ÜOOOÜO 16 244 52
>PRINT LEN, FREE1 3583
lo que indicó que la rutina de inicialización fue exitosa.
Luego de inicializar el display (en la dirección 221Dh) se pro
gramó lo siguiente:
>5 V=120*SQR(2) :C-15*SQR(2)>10 CLOCK 1>20 CALL 22EEH>30 FOR 1=1 TO 32
>50 PUSH A>eo ere>70 A=C*SItl(I/5-0929)>80 PUSH A
>10Q NEXT I>210 TIME^C^CALIj 28DCH:PRINT TIME>220 LD9 07FFIH-6:POP A: PRINT " P= ' . A , " ",>23G LD6 0805H4-6:POP A:PRltIT ' S= " . A , " ",>240 LD9 080BH-(-6:POP A:PRIMT "FP= ' , A>250 LD8 OS17H46:POP A i P R I M T 'VRHS= " , A , ->350 LD0 001DH-(-6:POP A:PRINT " IRHS= " , A>310 TÍMELO :CALÍ. 299DH:PRINT TIME>320 PRJHT "VOLTAJE">330 FOR 1*1 TO 16>340 L.D9 OÜ8FH+I*6:POP A : JF A<1 THEH GOTO 360>350 PRINT I, A, :LDeOE4FHí.r' t6:POP A:PRINT A>3GO MEXT I>370 PRINT "CORRIEMTK">380 FOR 1=1 TO 16>390 bD§ ODEFH+I'-6:POP A:IF A<1 THEN GOTO 410>400 PRINT I, A, ;U56 OEAFH+I*6:POP A:PR.INT A>410 HEXT I>420 LDe 0833H4-I?:POP A.-PRIIíT "lliDi- " , A ( ">430 LD@ 829H4-6rPOP A í P R I N T "TtiDv= " . A , " ',> 4 4 0 LD9 811H+6:POP A.-PRIMT "FPÜ= ' , A>510 TIME=0:CALL 2375H.-PRJ.NT TIME '>520 CLOCK O
Este programa inicializa la porción de RAM que va a ser usada,
pone los valores correspondientes a voltaje y corriente en sus respectivas
localidades de memoria, llama a las rutinas que calculan el factor de po-
tencia y realiza análisis de armónicas. Finalmente, de cuando en cuando se
llamaba a la rutina que actualiza datos en el LCD para comparar lo que pro-
cesa con lo que aparece en éste.
En las páginas 1, 2 y 3 de PRUEBAS DEL PROGRAMA, documento in-
cluido en las próximas hojas, se trabaja con datos de varias formas de
onda, con diferentes desfasajes y componentes armónicas. De los resultados
obtenidos, se puede apreciar lo siguiente:
> Los módulos de voltaje, corriente y componentes armónicas sonexactamente iguales a los de J.as ondas indicadas. No debe olvi-darse que el programa redondea al segundo decimal.
Página 117
PRUEBAS DE PRECISIÓN
>• Las fases de las armónicas tienen una desviación máxima de 0.2 yei valor de ia fase es más preciso si se trata de las primerasarmónicas.
>- Los valores de potencia activa y aparente tienen errores ocasio-nales de menos de la unidad.
>• Los valores de factor de potencia y distorsión armónica total devoltaje y corriente son exactos.
*- Los valores de factor de potencia de desplazamiento son exactoscuando son positivos y se desvían en 0.1 cuando son negativos.
En el programa, se incluye además los comandos CL'OCK y TIME que
se utilizaron para tornar el tiempo tomado en las rutinas de- cálculos y gue
se resumen en el siguiente cuadro que indica los de ejecución de las ruti-
nas de cálculo de factor de potencia (fp), análisis de armónicas (ARM. ) y
actualización de datos en Display RAM y LCD (LCD):
TÍP (S)
*«. ( - )
TOTXJ. ' '
PROEBA 1
1.06
15.17
0.21
16.44
PROEBA 2
1.27
15.82
0.85
17.94
PRUEBA 3
1.38
15.62
0 .68
17.68
PRUEBA 4
1.22
15.54
0.61
17.37
PRUEBA 5 PRUEBA 6
1 1.04
15.09 16.23
0.18 0.31
17.07 17.58
PRUEBA 7
0.67
15.89
0.77
17,33
PROEBA 8
1.02
15.63
0.91
17.56
Las pruebas efectuadas fueron: 1> voltaje sinusoidal de de 120V
con corriente sinusoidal de 15A en fase, 2> estos valores cambiaron a 80V
y 5A, 3> los valores son de 120V y 10A pero la corriente atrasada en 90°,
4> el desfase es ahora por adelanto de la corriente en 60", 5> aparece vol-
taje distorsionado con la corriente sinusoidal en fase con la fundamental
de voltaje, 6> la corriente es también distorsionada, 7> las corrponentes
armónicas de voltaje y corriente están en fase, y 8> se regresa a voltaje
distorsionado y corriente sinusoidal. Dados los tiempos de cada prueba,
esta tabla no permite deducir explicación alguna respecto a la diferencia
de tiempos, así que lo que permite es conocer el porcentaje aproximado de
tiempo promedio empleado por las rutinas (fp 6.2%, AKM. 90.5%, LCD 3.3%)
En las páginas 4 y 5 del documento mencionado, se evalúan los
errores cometidos por los convertidores. Por 4 veces se invocó a las ruti-
nas que leen los ADC cuando éstos se hallaban supuestamente encerados (al
valor 128). Los resultados demuestran que alrededor del 55% de las medi-
Página 119
PRUEBAS DE PRECISIÓN
cienes serán correctas, entre el 35 y 45% variarán ± 1 LSB (1.96 V ó 196
mfl. según el caso) del 2 al 3% en - 2 LSB (3.92 V ó 392 mñ.) y muy ocasional-
mente (menores al 1%, sobre todo en corriente) en - 3 LSB (5.88 V ó 588
mA) . Estos errores son muy importantes ya que marcan un limite en la pre-
cisión del equipo debido a la precisión de los convertidores analógico di-
gitales.
'En las páginas siguientes se presenta lo que fueron las pruebas
del programa:
Página 119
PRUEBAS DEL PROGRAMA
MCS-51(tm) BASIC VI. 1*READY
XTAL =12000000
PR I NT XTAL , TMOD , TCOW , T2CON120000ÜO 16 244 52
>PRIMT LEN, FREE1 3583
>CAl,L 221DH
>10 CLOCK 1>20 CALL 22EEH>30 FOR J>1 TO 32>4ü A=v'¡3iM(i/>50 PUSH A
0 GTQ 084FIH-116>70 A=C*SIM(1/>00 PUSH A
90 GTS 0 9 0 F I I t - I * 6>10Ü MEXT I>21Ü TIME=0:CALL 28DCII :PRINT TIME>220 LOS 0 7 F F H l 6 : P O P A : P R I M T " P = " , A , " ",
30 LD9 0805l lH6" :POP A:PR1NT "f5= " , A , ">240 1.00 080BUi6:POP A : P R I N T "FP= " , A>250 l,D9 081Vm6:POP A : P R I M T "VRMS= " , A , " " ,>26Ü LDO Ü81D1N6:POP A : P R I M T " 1RMS= " ( A>310 T1ME=0:CALL 2 9 9 D I I : P R I M T TIME>320 PRIMT "VOLTAJE">330 FOR 1=1 'ro 16>340 LD9 OD8FH(- I l -6 ;POP A: IF A<1 TUEH GOTO 3 SO>350 PRINT 1,A, : L D 8 0 E 4 F H h I * 6 : P O P A s P R I N T A>J60 MEXT 1>37Q PRIHT "CORRIENTE">380 FOR 1=1 1X5 16>390 LD@ ODEFH-hI*6 :POP A : IF A<1 THEH COTO 410>-100 PRIMT I, A, :LD9 OKAFMf I A 6 : POP A í P U I N T A>410 MEXT I>420 LD9 0823IH6:POP A : P R I N T "TI!OÍ= " , A , " ",>430 LD@ 829H' i -6 íPOP A: PRIMT "THDv= " , A ( " ",> 4 4 0 LDQ 811!M6:POP A : P R I M T "FPD= " , A>510 TTME=0:CALL 23VÍ31I : PRIMT TIME>520 CLOCK O>PRIMT LEN, KREE593 2991
•RUN
1.06= 1799.98 Sr 1800 FP= 1
VRMS= 120 IRMí3= 1515.17
VOLTAJ E1 120 O
CORRIENTE1 15 OHDi = O TIIDvsi O FPD= 1.21
READYCALL 2375H
CALL 2375H
11.27
P= 400 S= 400 FP=/RMS= 80 IRMG= 515.815'OLTAJE
I 00 OZURRIENTE
Í "í O• M D Í -= O TUDvr O FIH)--
RADYCALL 23V5I I
CALL 237511
PAGINA 1
PRUEBAS DEL, PROGRAMA
5 V=:120*SQR(2)-70 A = 1 0 ' S Q R ( 2 ) * S I N ( t 7 5 . 0 9 2 9 - P I / 2 )•RUN
1 .375p= O St= 1200
P= OVRHS= 120 IRHS= 10
15.615VOLTAJE
1 12 O OCORRIENTE1 10 270
11IDÍ = O THDv= O FPD= O.68
READY>CALL 2375H
>70 A a l O * S Q R ( 2 ) * G I N ( I 7 5 . 0 9 2 9 - | . P I / 3 )RUN
1.215P= 600 S= 1200 FP= .5
í 120 IIIMS= 1015.535
VOLTAJE.20 O
JOUR1EMTE1 10 60
l'IIDi = O THÜVs O 1-'PD= - .49.605
READY
A=120*SQtt(2) 1CO£J( 1/5.0929 ) i - Ü O ' C O Ü ( .A = A i t í * S Q t t ( 2 ) tCOG(13lI /5 .0929 -PI73)
>70 A = Ü 1 G Q R ( 2 ) * C O Ü ( I 7 5 . 0 9 2 9 )>RUM
t/5 .09291 Pl/4
1'= 960.02 Ss 1002.88 ¥VRMS= 125.36 IRMS= 815.885
VOLTAJE1 120 O4 35.36 4513 O -59.99
CORRIENTE1 0 0
FHDi= O TUDvsj .3 rPD =.18
READV
= .96
•RUM
1.04P= 2130.7
tVRMS= 130.2516.23
VOLTAJE1 120 O4 50 4.513 8 -59.99
CORRIENTE1 2 0 0
10 307 1005 -134.992 -89.993 -119.991.5 -44.902 -1802 09.991.85 O
= .71 THDv=.305
3192.43 FP=1HMS= 24 .51
.67
2457810111315
,'12 TPD= -.99
READY40 Ar200'SQ»(2) *COS( 1/5 .0929) f 10U *SQR(2) *COí3(2 * 1/5 . 0'Í39 I PI/6)41 A=-A-70fGQR(2) 'COü(4'175.0929)í50 *GQR(2)*COG(ü* 1/5.0929-3 *PI74]-42 A^A+20'GQR(2) 'ÜTN { 7 ' 1/5 . 0929 } -30 ' SQR ( 2 ) COS ( O ti/5 . 00?.9í P r /3 )
PAGINA 2
PRUEBAB DEL PROGRAMA
43 Ar=AH5*-RQR(?.) '-COS( 10 *1/5 . 092 9--PI /4 ) -20 *SQR ( 2) 1CO£J( 11 ' 1 /5 . 0929 )44 Ar-.A -?.0*SQR(2) -*SIN( 13 * 1/5 . 0920 )+18 .5*SQR (2 ) *COG(15'i/5.Ü929)
>RUH
.665P= 6166.75 S= 6160.19 FP= 1VRMS= 251.66 IRMS= 24.5115.89VOLTAOE1 208 O2 100 304 70 1805 50 134.997 20 -89.998 30 -11.9.9910 15 -44.9811 20 -18013 20 89.9915 18.5 O
CORRIENTE1 20
13 20 89.9915 18.5 OCORRIENTE
20 O10 307 1005 -13-1.992 -89.993 -1L9.991.5 -44.902 -1802 89.99
7810111315 1.85 O
fHDi= .71 T¡!Dv=.765
.68 FPD= -.99
READY>40 A=120iEQR{2)'*COe(I/5.0929) f 10 *SQR(2 ) *COS( lü * 1/5 .0929) P.t/3)
1 A=-A>4243
>70 A=15ÍGQR(2)4COS(I/5.0929 -1 A=-A
>72>73>74>RÜM
!. .015= 1550.06 Ss JOOG.3 FP= .0(5RUS- 12Ü.42 IUMS= 1515.61
VOLTAJE1 120 O10 10 -119.99JORRIEMTE1 15 -29.99,'HÜÍ= O THDvt: 0.0 E--2 FPD= .(37.91
READYCALL 2375H
CALL 2375H
CALL 2375H
CALI, 2375H
CALL 237511
PAGINA 3
PRUEBAS DJ2I, PROGRAMA.
10 CAblí 230ElliCAI,Ij 22EEII110 CALL aSOBMsCAliL 28DCH130 FÜB 1=1 TO 32135 LÜ9 84FH!-1*G140 POP A : PRIHT A, "150 MEXT I
READV>RUM
• 1.5686275
1.5686275
1 .5686275
-1.5686275
1.5606275
1 .5686275
1 .5686275READY
>RUM
1 .5686275
4.7058826
1 .5686275
-1.5686275
1.5686275
1.5686275
1.5686275READV
>RUH
1.5686275
4.7050826
1.5686275
-1.5686275
-1.5686275
L. 5686275
1.5686275REAÜYRUW
-1.5(586275
1.5686275
1.5686275
-1.5686275
1.5686275
1 .5686275
1.5686275READY>135 LD9 90FHfI>RUH
9.8039215 E-29.8039215 E-2
9.8039215 E-29.8039215 E-2
-9.8039215 E-29.8039215 E-2
9.8039215 E-2
1.5686275
1.5606275
4 . 7058826
4.7058826
4.7058026
-1 .5686275
4.7058826
-1.5686275
4.7050826
-1.5686275
1.5686275
-1.5686275
1.5686275
4.7058826
1.5686275
-1.5606275
-1.5606275
4.7058826
-1.5606275
1.5G86275
1.5686275
-1.5686275
4.7058826
4 .7050026
-1.5606275
4.7058026
1 .5606275
-1.5686275
*6
-9.00.19215-9.0039215
9.80392159.8039215
.29<ni765-9.0039215
9.8039215
1.5686275
1.5606275
1.5686275
4.7058026
-1.5606275
4 .7058826
-1 .5686275
1.5686275
1.5686275
1.5686275
-1.5686275
4.7058026
-1.5686275
4.7058826
1.5ÓOG275
1.5686275
1.5C86275
-1.5686275
4.70D0026
1.5686275
1.5686275
1.5686275
-1.5686275
1 .5606275
E-2 9 .E-2 -9.
4 .7050026
-1.5686275
1.5606275
1.5606275
-1 .5606275
1.5606275
1-5606275
1.5606270
4.7050026
1.5606275
1.5606275
4.7050826
-1.5686275
1.5606275
-1.5606275
1. 5606275
1.5686275
4.7058026
4 .7050826
1.5606275
1 .5686275
1.5606275
4 .7058826
4.7050026
0039215 E-28039215 E-2
E-2 .29411765 9.E-2 -9.8039215 E-2
-9.003912-2 9.
E-2 9.
215 13-2 -9.8039215 E-2
8039215 E-2
-1.5686275
4.7050826
4.7058826
1.5686275
-1.5686275
1.5686275
1 .5606275
1.5606275
4.705002G
1.5686275
1.5606275
1 .5686275
1.5686275
-4 .7050026
1 .5606275
-1.5606275
1.5606275
1.568G275
1.5606275
-1 .5686275
1.5606275
-4 .7058826
1.5606275
1.5606275
.294117659.0039215 E-2
0039215 E-29.8039215 E-2
0039215 E-2-9.0039215 E-2
9.8039215 E-2
PAGINA d
PRUEBAS DEL PROGRAMA
9.8039215 E-2READr>RUN
9.8039215 E-215 E-29,8039215 E-2
9.8039215 E-2
9.8039215 E-2-9.8039215 E-215 E-29.8039215 E-215 E--2-9.8039215 E-29.8039215 E-2READY>RUN
9.8039215 E-2
9.8039215 E-2
9.8039215 E-29 .8039215 E~2--9.8039215 E-?,
9.8039215 E-2
-9.8039215 E-2
9-8039215 E-2
READf>RUU
.29411765-.294117659,8039215 E-29.8039215 E-29.8039215 E--2
9.8039215 E-2
-9.8039215 E-29.8039215 E-2
-294117G5
9.0039215 E-2
-9.0039215 E-2
9.8039215 E-2
9.8039215 E-2-9.0039215 E-2
9.8039215 E-2
9.0039215 E-2
9.0039215 E-2
9.8039215 E-2
9.8039215 E-2-.49019607-9.8039215 E-2
9.0039215 E-2
9.0039215 E-2
-9.8039215 E-2
9.8039215 E-29.8039215 E-2
.29411765-.294117659.8039215 E-2
-9.8039215 E-2
9.0039215 E-2-9.8039215 E-2
9.8039215 E-2
.29411765
9.8039215 E-2
9.8039215 E-2
.29411765-.29411765
.29411765
.29411765
9. £5039215 E-2
9.6039215 E-2
.29-1117659.003921ÍÍ E-2
-9.8039215 E-2
9.0039215 E-2
9.0039215 E-2
-9.8039215 E-2
-9.8039215 E~29.0039215 E--29.0039215 E-29.8039235 E-2
-9.8039215 E-2
9.8039215 E-2
9.8039215 E-2-9.8039215 E-2
9.0039215 E-2
-.29411765
-9.8039215
9.0039215
9.8039215 E-2-.29411765
.29411765
9.8039215 E-2
-9,8039215
9.0039215
9.0039215 E-2-9.0039215 E-2
9.8039215
-9.0039215
-9.8039215
-9.8039215
9.8039215 E-29.8039215 E-29.8039215 E-29.8039215 E-2
-9.8039215
-9.8039215
.294117659.8039215
9.80392
E--2
E-2
9.P0392
9.80392
E-2
E-2
E-2
E-2
E-2
E-2
E-2
E-2
E- 2
PAGINA 5
PRUEBAS DE PRECISIÓN
Pjruebas del equipo completo
Se realizaron 4 pruebas: con voltaje y corriente sinusoidales,
voltaje sinusoidal y corriente distorsionada, voltaje distorsionado en re-
des R y RC y voltaje distorsionado con corriente distorsionada. Cada una
de estas pruebas tenia tres partes: La primera con un voltaje variable (4
voltajes: alrededor de 90 V, alrededor de 110 V, alrededor de 120 V y alre-
dedor de 140 V), corriente fija y un determinado ángulo de fase; la segunda
con voltaje variable, corriente fija distinta de la anterior y el mismo
ángulo de fase; la tercera con voltaje variable, una de las dos corrientes
anteriores y un ángulo de fase distinto.
Para obtener esos voltajes se aplicó 139.5 V a una red de re-
sistencias de manera que en diferentes partes existan los valores indica-
dos, el voltaje distorsionado se obtuvo de un inversor NIPPON para
automóviles que de 12 VDC entrega una señal cuadrada con zona muerta de
120VAC.
La corriente se obtuvo aplicando estos voltajes a una red R y
una red RC cuyo desfase medido en el osciloscopio era 26.5°, la corriente
se tomó midiendo el voltaje a una resistencia de valor despreciable. Para
las corrientes distorsionadas independientemente del voltaje, se introdujo
a estas redes un par de diodos opuestos en paralelo entre sí y se midió el
voltaje en los diodos. Las formas de onda y los valores considerados como
reales de las pruebas se encuentran en los archivos CORRIENT.FNO,
PRUEBA3.XLS y PRUEB7V4.XLS en el segundo documento anexo a la tesis.
Del conjunto de pruebas mencionado, se define una codifica-
ción de las pruebas de 3 cifras: la primera indica que número de prueba es
(y por lo tanto especifica una de las cuatro posibles formas de onda de
voltaje y corriente), la segunda indica cada una de las tres partes de la
prueba que se relacionan con la corriente medida y el factor de desplaza-
miento y la tercera indica con cual es el voltaje de trabajo (cuatro posi-
bilidades que abarcan el rango de 90V a 140V.
Página 125
PRUEBAS DE PRECISIÓN
Esta codificación es importante ya que es la utilizada en las
tablas de pruebas y en los gráficos gue se incluyen en las páginas si-
guientes :
CÓDIGO
111
112
113
114
i?, a122
123
124
131
132
133
134
211
212
213
214
221
222
223
22-i
231
232
233
234
311
312
313
314
321
322
323
324
331
332
333
334
411
412
413
414
421
4.22
4.23
424
431
432
433
434
VOLTAJE(V)
87.5
107.8
117-3
139.5
87-5
107-8
117.3
139.5
87.5
107.8
117-3
139.5
87.5
107-8
117.3
139.5
87.5
107-8
117.3
139.5
87.5
107.8
117.3
139.5
84.5
103 .9
113 .1
134.5
84,5
103 .9
113 .1
134.5
84.5
103 .9
113 . 1
134.5
84,5
103.9
113 .1
134 .5
84.5
103.9
113 .1
134,5
84.5
103,9
113 .1
134.5
CORRIENTE(A)
15.6
15.6
15.6
15.6
7.9
7.9
7.9
7.9
15.5
15.5
15.5
15.5
6.28
6.28
6.28
6.28
12.2
12 .2
12.2
12 .2
6.28
6.28
6.28
6.28
6.2
6.2
6.2
6.2
12.2
12 .2
12.2
12.2
6.1
6.1
6.1
6.1
10.79
10.79
10.79
10.79
5.47
5.47
5.47
5.47
12.31
12.31
12.31
12.31
FACTOR DEDESPLAZAMIENTO
1
1
1
1
1
1
1
1
0.9
0.9
0.9
0.9
1
1
1
1
1
1
1
1
0.9
0.9
0.9
0.9
1
1
1
1
0.9
0.9
0-9
0.9
0.9
0.9
0.9
0.9
1
1
1
1
1
1
1
1
0.9
0.9
0.9
0.9
CONDICIONES
V, I SINUSOIDALESV VARIABLE11 CONSTANTE
FASE 1 CONSTANTE
V, I SINUSOIDALESV VARIABLE12 CONSTANTE
FASE 1 CONSTANTE
V, I SINUSOIDALESV VARIABLE11 CONSTANTE
FASE 2 CONSTANTE
V SINUSOIDALI DISTORSIONADA
V VARIABLE11 CONSTANTE
FASE 1 CONSTANTE
V SINUSOIDALI DISTORSIONADA
V VARIABLE12 CONSTANTE
FASE 1 CONSTANTE
V SINUSOIDALI DISTORSIONADA
V VARIABLE11 CONSTANTE
FASE 2 CONSTANTE
RED RV DISTORSIONADA
V VARIABLE11 CONSTANTE
FASE 1 CONSTANTE
RED RCV DISTORSIONADA
V VARIABLE12 CONSTANTE
FASE 2 CONSTANTE
RED RCV DISTORSIONADA
V VARIABLE11 CONSTANTE
FASE 2 CONSTANTE
I DISTORSIONADAV DISTORSIONADA
V VARIABLE11 CONSTANTE
FASE 1 CONSTANTE
I DISTORSIONADAV DISTORSIONADA
V VARIABLE12 CONSTANTE
FASE 1 CONSTANTE
I DISTORSIONADAV DISTORSIONADA
V VARIABLE11 CONSTANTE
FASE 2 CONSTANTE
Página 126
PRUEBAS DE PRECISIÓN
Los valores de voltaje y corriente eficaz tomados como reales
se obtuvieron con el multímetro FLUKE 87 existente en Laboratorio de
Electrónica de Potencia. Las formas de onda fueron captadas con la tarjeta
de adquisición de datos existente en el mismo laboratorio y las muestras
usadas en MicroCap III y EXCEL 4.0 para calcular los parámetros de distor-
sión y factor de potencia.
Los datos del equipo fueron enviados al computador donde fueron
almacenados tal como se los recibió (excepto por la eliminación del carác-
ter de fin de bloque) en un archivo. Este archivo fue ordenado en EXCEL
4.0 y de éste se obtuvieron los gráficos mostrados en las próximas páginas.
El modelo de tabla de datos ordenada que se muestra a conti-
nuación consta de 6 mediciones (5 para las pruebas 2, 3 y 4) y el análisis
de éstos como promedio , máximo , mínimo , real y desviación es tándar . Por
motivo de espacio las tablas no pueden ser incluidas totalmente aquí.
PARTE l . li VOLTAJE VARIABLE, CORRIENTE 15.5 A, FACTOR DE POTENCIA
1
1>4
f
t
p.~IU
nr.tn.
Ennon
xcnnon
MAKIMO
tiiMtrio
Dcsr
p
1311.73
1377.47
HOM*
1J71.1*
1JU.-U
H1M7
IJ4WT
1íi*
IMT
I.»*
HtMT
1JU.4*
zo.tr
s
1400.0*
I377.S*
H10.1
1371.4
13K.C1
MI»
13 «.11
OÍS
17.13
i.m
«tt
1H*.t1
"•«
f.
1 -0.11
1 -0.11
1 -0.11
t -0,11
t -0,11
1 -0.11
1 -0.11
1 -1
* 0.01
O.OOX -I.OOx
i -0.11
1 -0.11
0 0
Tr«
*t.*1
**.2S
*1.3i
ÍI.31
*7.»1
*1.»1
«Í.73
.7.,
1.15
i.«X
*•>,»!
«.«
0.73
lr*r
Í5.75
15.tt
15.7*
1S.*Í
H.5F
15.»
15.C1
».i
O.*1
O.f4x
15.»
I5.5F
6.1
TUDI
».03
0.04
0.03
•J.03
0.05
«.Oí
•.«
0
0.0,
M1t.11
0.09
0.03
0.01
THD»
0.03
0,03
0,03
o.«
Mf
O.OJ
..04
0
0.04
1.11C.11
0.05
0.03
M1
ITtl
• ».*
M.1I
íí.zt
M.Z3
»7.77
• 1.75
»M7
.7.,
1.17
1.14X
*1.75
*7.77
•.75
rf tSCTt 1IH
0 15.74
t» 15.4
6 t$.T7
0 15.* 1
0 15,53
0 15.71
* 1S.Í7
•
0
O.oax ,.4Tx
« 15.71
• 15.53
0 0.11
TASE 11
0.07
0.14
6.15
• .«1
O.J»
«.33
O.Z5
•
O.íf
M».^1
O.S4
0.01
0.11
Para el análisis de armónicas no se hace la diferenciación
entre valores de voltaje puesto que la composición armónica no se ve alte-
rada cuando el voltaje tana distintos valores. En la tabla que se presenta
a continuación se aprecian los 6 valores de las muestras de cada parte pro-
mediadas en medial, media2, media3 y medial, de todos los valores de la
prueba se saca una media general, así como valores máximos y mínimos. Para
ondas distorsionadas, se incluye el valor de error. Esta tabla de armóni-
P. agina 127
PRUEBAS DE PRECISIÓN
cas se repite para las armónicas 10 a 16 de voltaje (norteadas con las le-
tras A, B, . .., F y G por el equipo) y para las armónicas de corriente.
ANÁLISIS DE ARMÓNICAS
VOLTAJE
1~«J.
1.11.111.47
2.23
2.4*
1.S*
1.M
2.2»
2.1*
2.17
2.41,5*
1.22
Z.1
2.31.15
2.71
1.15
1.21
2.>7
1.»*
1.1*122,31
1.53
2.27
2.U1,97
1.14
2.»*
1.t¥
f«r.
-175,2113*. t»1Í1.0*145.7111.21-0,12
127,37-171.13
HUÍ-43. t\3
•1.43
-135.1Í-4Í.11-1ÍO.*5-3.017.17
ll.tl
-1*5.15•17E.3*«.51
-172.117?.120.45
-7.12171.0»
-17S.5Í
i«.1.010.70,11
0.71
3.0*0.1»
1.»
1.1c.'lOÍ* 71.31.12
1.01
1.«
2.11
O.S5
Z.7*
O.í1,¿»
Z.F1
1.T1
0,75
12.Í»
*.*12.Í*
2.<r*1.*7
1.413.01
0.53
,„.
-1U2
l.íl
-tS.3329,35-30.12-112.1»
*.1i-*4.3Z37.54H, 73•tO.SÍ-7J.2»
-«.Oí40.1107.51-103.01-11.11-23.13
-111.4*-Í2.45
01.11-77.02-41.14-27.*
-45.2*40.21
-112,1»
4
0.54
0.70.3»
1.2*.7>0,51
*.TÍ
*.t)
M»1.07
1Z30.71
0.57
t.*5
1.170.71
1.11O.*10.21O.t?
•.7*
0.**0.57
O.*1
9.13
*,73
I.H*.71
0.77
1.3*
«.13
f«r*
-I32.M2717.0715.7*-»4.17O*.H
31.7.Í-4*.121.*»-137.7*110.51
*.*
-1.J3-1lt.17Í3.127.41
-12.Í3-17.*3
17*.f1131. *1-122.71115.27-15t.0t-11t,77
-1.5T17*.S1
-1S7.7Í
5w.44.
2.91
1.31
2.0*
1.51
2.?1
1.1*
1.«
1.11
1.*1.01
1.J1.1F
1.*11.47
I.?*1.33
2.41
2.13
1.11
2.1*
*.»7
1.141.12
2.* 5I.H2.M2.52
1.2:51.13
2.* 51.04
f-r»
1*1.32H1.0*137.13155.21*1.9111*. *1
-171.91-170,11Ht.IJ1**.11H3.32
I5*,1*
1ÍÍ.7143. *>1-1*. < 2H1.*1H3.31l't.5^7
1*1.1145.51111.**1*4.1213*. 12ISt.34
127.2H1.03
-171.0*
*
9.41
1.13
9.33
0,t2
0.74
9,14
• -*
0.»4
0.25
0.*2
1.11
0.*O.J1
*.«
0.*2
0.1O.H0.229,03
0.11
*.47
0.17
0.23
9,71
4.5»
1.2»
O.f!9. «59.511.2*
0,0 1
f«»
-»*.*7-54.97147.14-t7.|2«l.íl
3*,47
-13*.*71*0.37
-74.1**1-11Í.72124.34
I2Í.5Z113.J-144. *5-41.77-140.J77t.52
•)1.7J•127.13-11.t4-147.41-21.1374.1
-!2.1t1*0.37
-14T.41
T
0.471.13
0.4*
í.O*
9.11
*.4•-7»
1.W9,(1
o.*10.»2
0.**9,($
*.71
0.12
9.71
9.55
0.410.41
o.ts9.H
0.71
9.119.T19.21.01$.42».*9.71.43
0.2
fu*
-11Í.3-11». 21-145.51•t».0t•*>.9t-142.43
-1*T.l*-1Í.21-19*. 2Í-15J.4•117.7*-17.1*
-t57.54-13,23-*5.17-I1*.*7•F1.JI-39.5*
-H.01-110.55-»1.71-»1.*»-121.15-19. ti
-104.71-1».21
-t',7.2l
9«44.
0.2J
9.11
0.21
9.19.2»
9.43
9.Z7
9.1?
9.71
9.11
9.5»
9.47
9.9*
*.41
9.*0.14
0.37
9.1*
0.23
0.37
*.31
«-J19.13
9.) 79.?.
o.nC.22
9.31
0.3*
8.71
9.0*
f«.
-1.Í*U7.Í271.02-51.23-1.07-1.4
13t.41-11.7»-1IM»-73.4-44.74-t**.7»
-1H.21-2». 039.75
12?.»2.0»
-74.1*
1*.4Jtt.*1-tT7.»>29.»
121,12-125,7*
-tt.1I3t.1l
-1t*.7t
*
9,75
9.2*
9,4»
*.*71.11
0.37
• .(1
9.JT
9.JV
O.H9.319.J2
0.21
».«
9.H0.31
0.91
9.31
0.11
9.5• .4
O.Í1
9.43
0.9*
9.31
0.5»
9.7(
*.4Z
9.4*
l.tl
0.9*
f«.
-*7.9*U3.54-119.11117-170.Z7
-**.*
40.U
-131.31-T3*.S1S.H
-t2*.7»U.»
-7M1
-f?1,f 1151.11-Í3.047 4.» 3-»2.»3
-17.0)-112.ZF-1**.11-«2.3-*.53157.7*
-41.11t57.7t
-170.Í7
De los datos obtenidos, se tiene la siguiente descripción de
las mediciones de los parámetros de la red:
> La potencia activa en la gráfica 1 varío su error relativo en ±5%mientras que los promedios de Jas muestras solo lo hacen entre-3.5% y 2%. En los grupos de muestras, la diferencia entre máximoy mínimo varía entre el 1.8% y 6.2%.
^ La potencia aparente en la gráfica 2 varía su error relativo en±4% mientras que los promedios de las muestiras solo lo hacen entre-3% y 2%. En los grupos de muestras, la diferencia entre máximo ymínimo varía entre el 1.2% y 5.6%. Existe un pico que sobresale en321.
>- El voltaje RMS en la gráfica 3 varía su error relativo entre -2.2%y 2-6% mientras que los promedios de las muestras solo lo hacenentre -2% y 1.5%. En los grupos de muestras, la diferencia entremáximo y mínimo varía entre el 0.5% y 3.9%.
> La corriente RMS en la gráfica 4 varía su error relativo en ±3.3%mJenl:i:as que los promedios de las mue.stras solo lo hacen entre-2.1% y 1%. En los grupos de muestras, la diferencia entre máximoy mínimo varía entre el 1% y 5.3%.
Página 128
PR
AN
ALI
.XLS
Cha
rt 1
P c
om
o e
rro
r re
lativo
6.00
%
4.00
%
co \
,;/\
o
;l
co /, ;
-4.0
0
-6.0
0%
Max
.
Mín
.
Med
.
Pru
eb
a Pa
ge
l
I»r*.
PR
AN
ALI
.XLS
Cha
rt 2
4.00
%
3.00
%
2.00
%
1.00
%
0.00
%
UJ
-1.0
0%
-2.0
0%
-3.0
0%
-4.0
0%
-5.0
0%
S c
omo
erro
r re
lativ
o
.i i
I •.
I l
-.' '
a ' i
1 ' v
; >,
co\
:¡ i
co
\7
\\
Max
.
Mín
.
Med
.
Pru
eba Pa
ge
l
PR
AN
ALL
XLS
Cha
rtS
c. I V
1.00
%
ÜJ0. o.c -0.£
-1.0
0%
-1.5
0%
-2.0
0%
-2.:
Vrm
s co
mo
erro
r re
lativ
o
o c
rn°/
J
9 n
n°y
í.
1 c
;no¿
i \ h
A
\r\
A^
M A
A
/U
¡ S>
/
\ \í
^ /
\. I
/
i ».
i '
i. <
i •
¡ -.t
S
f • i
- , j , V
, ,
\ >-
\:¿
- "
v 'o
j cp
-.
y: r
-V t-
rr
•-
' C
\
\ 1 1
^-J
'—J
I \
•'• \
^ •
• /
/ •
\
• í
.' .
/ \
\ ^
/¡
\ /
\ v
i A
'•
• >
' "
i 1
' :*.
-
í '
• '
i •
'•'•
i :
1
;i -
't M
'• i
; •
• i
,-í
' .'
.:•
! t
• i
y
¡V
!
1 ; i
>
\ i
: i '-
'-
i • ' i
i ¡ •
. i; ( •
1 ;i
; r
it i
1
• >
i-' i i
i
-.1; i
: ;
1
'
V-
V /~
^
i
A.-V
'V
: Í-
, U
/\4
Í
\M
/ C
O '
', r
-
' !
ICJ '
M :
.:CO
.'
r¿
;
V 04
/^
CO
CM
/ (M
/ 1
co
• '
>CQ
, t
- ;ro
í
1
.- r
^ \r
v \
/ \
üí
' i
\ /
\\
\
/ \
V
/!
••
•/
;' \\
>• ;
V../
/ i
v ;
, i \
/ i
i i
/ \
\ ;
li
i /
i \
Max
.
—•
Mín
.
• M
ed.
Pru
eba Pag
e 1
PR
AN
ALI
.XLS
Cha
rt A
Irm
s co
mo
erro
r re
lati
vo
4.00
%
Max
.
Mín
.
Mea
.
-2.0
0%
-3.0
0%
-4.0
0%
Pru
eba Pa
ge
l
PRUEBAS DE PRECISIÓN
> En la gráfica 5 se comparan los promedios de los errores relativosde las magnitudes anteriores. En casi toda la gráfica los erroresde P y S siguen a los de VRMS e IRMS, principalmente a estos últi-mos que son algo mayores. Solo en el grupo 43x P se aleja deVRMS, IRMS y S siguiendo, tal como se ve en la gráfica 6, al fac-tor de potencia.
>- En la gráfica 6, el error absoluto del factor de potencia varíaentre -2.4% y 2.3%. Los promedios de las muestras entre -1% y1.6%. Los picos más pronunciados suceden cuando el desplazamientoes distinto de cero y el voltaje y corriente están distorsionados.Las variaciones entre máximo y mínimo son del orden de -0% a 4%.En 43x el promedio se aleja de J.a tendencia de la gráfica, sincontar con esta parte, las variaciones mencionados se reducen a-1.7% a 0.6%, -1% a 0.6% y O a 2%.
>• En la gráfica 7, el error absoluto del factor de potencia de des-plazamiento varía entre -3.5% y 1.2% (sin la parte "43xn entre-3.5% y 0%); los promedios entre -2.3% y 0.7% (sin "43x" entre-2.3% y —0.2%) y las variaciones entre máximo y mínimo entre O y3%. En general, los mejores valores se dan con señales sinusoi-dales sin desfase, y los peores con distorsión y desfase distintode cero. Si bien, como se ve en la gráfica siguiente, la fase dela corriente fundamental mantiene sus errores constantes a lo lar-go de toda la experiencia, pequeñas variaciones cuando el desfasees distinto de cero causan mayores errores en el coseno de la faseque cuando no hay desfase.
>~ En la gráfica 8, el error absoluto de la fase de la fundamental decorriente varía entre -3.4" y 2.7" (sin la parte "43x" entre -2.7°y 2.7"), los promedios entre -2" y 2.2" (sin "43x" entre -1" y-2-2 ) y las variaciones entre máximo y mínimo entre 0.2" y 4.2".En general, los mejores valores se dan con señales sinusoidalessin desfase. En "ASx" existe un cambio brusco en la tendencia dela gráfica, ese desplazamiento brusco se podría estimar de 1 a 2" .
> En la gráfica 9 se compara los promedios del factor de potencia ydel cociente P/S. No existe una diferencia digna de mencionarentre ambas curvas.
>- En la gráfica 10 se compara los promedios del factor de potenciade desplazamiento y el coseno de la fase de la fundamental de co-rriente. Existe una diferencia constante de -J.% entre el fpd y elcoseno de la fase.
>- En las gráficas 11 y 12 aparacen los errores absolutos del valoreficaz de voltaje y del valor eficaz de su fundamental. Estosvarían de -2.5V a 3V y de -1.9V a 3.7V respectivamente. Sus pro-medios de -1.1V a 1.6V y de -1.2V a 2.3V. Sus diferencias máximo- mínimo son de 0. 6V a 3.5V y de 0.6V a 3.3V .
Página 133
PR
AN
ALI.X
LS
Chart
5
Err
ore
s m
ed
ios d
e P
, S
, Vrm
s e
Irm
s
3.00
%
2.00
%
1.00
%
0.00
%
UJ 2?
-1.0
0%
-2.0
0%
-3.0
0%
-¿1.
00%
i ¡
i i
'. !
í y r
\ T
i.7~ir
n
;!
i j
;
~\i
• \/
u '
;
i\S V
rms
Irms
j
Pru
eb
a Pa
ge
l
PR
AN
ALI
.XLS
Cha
rt6
2.50
%
2.00
%
1.50
%
1.00
%
0.50
%
0.00
%
-0.5
0%
-1.0
0%
-1.5
0%
-2.0
0%
-2.5
0%
fp c
omo
erro
r ab
solu
to
ru
i !
/ »
\
1
i i
y i
, jr—
i r
csi
'•«1
/ '
'//v-
.V '
' V
'/ 'í
' /' /
V\--'
'/ r\
"~"J
/ V
; \^
' ':
/ /^
' /
\"
/ ra
- —
n o? ,
\ / ^
/
,^
~
i t
í 1
'/ 5
T
\I
\
\
v i
Max
.
Mm
.
Med
.
Pru
eba Pa
ge
l
PR
AN
ALI
.XLS
Cha
rt 7
2.00
%
1.00
%
0.00
%
-!
-1.0
0%
-2.0
0%
-3.0
0%
-4.0
0%
Max
.
Mín
.
Med
.
Pru
eba Pag
el
PR
AN
ALI
.XLS
Cha
n 8
Fas
e de
111
I c
omo
erro
r abs
olut
o
o •o
3.00
2.00
1.00
0.00
UJ
-1.0
0
-2.0
0
-3.0
0
-4.0
0
i i
/i
TT
t i
¡ \
i \;
i .-i
u u I
Max
.
—•-
Mín
.
Med
.
Pru
eba Pagel
PR
AN
ALL
XLS
Cha
rtS
Err
ores
abs
olut
os d
e pr
omed
ios
de íp
y P
/S
a UJ
2.00
%
1.50
%
1.00
%
0.50
%
0.00
%
-0,5
0%
-1.0
0%
5T7W
iví
1
'í
I I
!
/ 2
-1.5
0%
Pru
eba
Pa
ge
l
re'
PR
AN
AU
.XLS
Cha
rtlO
Err
ores
abs
olut
os d
e fp
d y
Cos
[Fas
e(Í1
)]
2.00
%
1. i .0
0%
0.
rt LU
-1.0
0%
-2.0
0%
A
A
X'
i co i
:cvj
,1
\ i
i
\3 '
\o
,
/í\c
o/
\o A
1 /
\\
1 [
¡.
i I
[_
. I
1
i _
J ' !
. i
! !
~i
i ¡
¡ i
i í~
i
1 ~
T" i ¡
i
¡ i
i
A
fpd
Cos
(FA
SE
11)
!
Prue
ba
Pa
ae
l
PR
AN
ALL
XLS
Cha
rt 1
1
rt UJ
3.00
2.00
1.0
0
0.00
Vrm
s co
mo
erro
r abso
luto
V
A\v
I \0
-2.0
0
-3.0
0
i \
v v \\
'-•
/ \
\ \
/ /H
i -I
i ,
i V i
| *
i U
/-'
i i
i A
. \
M
1,
1 ¡
i 1 i
V :
i
' '• t
; 1
' f
' '/
<\
i i
i 1
\ \ i
-.1 i i
r í : l
\,
\ ii
t
i-
. i
; ¡ i . l
X
• .;
J i
¡i
1 /
i ,
\
^
\ \r
-^—
U
' \^
'•
: /\' '': :
/ '
—
\—
t—
U.'i~
V
- i
r- /
v
i—
i
/ i
t—
•; / i '.
i—
'
:T,
,'oJ
ro
'. \iir~
sv
j ;
co
/ \V
:
/ \C
M
M '
03
/ U
\ r-
^-
x •
V: M
. cu
_/
cy
\o •
/ \c
o /
i • /n
'
p
\/
\ /
\ ii/
!\¡
\ / \
u/
/ i
\'¡
\ i'
./
'
^
V
!/ N
i
t l
i !
. *
' ''
.'•
' i
l *'
1j
i i
l t
í [
! y;
i ¡
'. 1
» ;\
v'
\ .'
X./
OJ
*A
CO
*
;
V <
T /
i
^T•
• r"
r
' \
/ \
\
A V
Max
.
Mín
.
Med
ia
Pru
eba P
ag
el
í*
LU
4.00
3.00
2.00
1.00
0.00
-1.0
0
-2.0
0
PR
AN
AllX
LSC
hart
ia
[VI |
co
mo
erro
r ab
solu
to
\
Max
Mín
.
Med
ía
Pru
eba P
aq
el
PRUEBAS DE PRECISIÓN
>• De manera similor en las gráficas 13 y 14 aparecen los erroresabsolutos de los valores eficaces de la corriente y su fundamen-tal . Estos varían de -.46A a .45A y de -0.41A a 0.56A. Ambospromedios van de -0.3A a 0.09A, Sus diferencias máximo - mínimoson de de 0.07.A a 0.7A y de 0.02A a 0.76A. Las grandes diferen-cias se deben a picos ocasionales (los dos más pronunciados sedieron con voltaje y corriente distorsionados sin desfase y elmenos pronunciado a voltaje y corriente sinusoidales con desfase).
En cuanto a distorsión armónica se refiere, se tuvieron los
siguientes resultados:
>• El error absoluto de distorsión armónica total de corriente estáen la gráfica 15. Hay 3 etapas definidas: cuando no hay distor-sión de corriente (prueba 1) en la cual el error de THD varíaentre 3% y 5% y el promedio entre 3.33% y 4.67%, con distorsión decorriente de la prueba 2 (en este caso la distorsión marcada por16 valores, 37.37%, es muy similar a la de 256: 38%) cuyos valoresvarían entre -1.9% y 4.1% y sus promedios entre 0.3% y 3.1%, ycuando la corriente junto con el voltaje están distorsionados (eneste caso se presentan dos distorsiones con valores de 26.3% y42.57% para 16 muestras, que son muy diferentes a 29% y 46% para256 muestras) con valores que varían entre -6.7% y 0% y promediosentre -2% y -4.6%.
>- En la gráfico 16 se encuentra lo contraparte de voltaje en las quesolo hay dos etapas definidas: cuando no hay distorsión con va-lores entre 3% y 6% y con promedios de 3% a 4.4% y cuando el vol-taje es distorsionado con valores entre -5.2% y -1.2% y promediosenl:re -3 . 8% y -3.2%.
> En los gráficos 17 y 18 aparecen los espectros de voltaje sinusoi-dal (cuyas armónicas deben ser cero) y la comparación de los pro-medios de voltaje de la prueba 1, de la prueba 2 y corrientesinusoidal. En la comparación se puede ver que los promedios sonmuy similares. En lo que al espectro se refiere se puede destacarque desde la 8a. armónica los máximos son menores al 1.4% y lospromedios al 0.5%. Los valores máximos de la 2a., la 3a. y la 5a.armónicas son de prácticamente el 3% y los promedios de alrededorde 1.8%. Los valores máximos de la 4a., 6a. y 7a. armónica son dealrededor de 1.4% y sus promedios de 0.7%.
Página 142
í»
PR
AN
AL
LX
LS
Ch
art
lS
Irm
s co
mo
erro
r abs
olut
o
0.40
-1
0.2
0.20
0.10
—
o.oo
f ;
•.[rt
i '
.'Ü
J _L "
-0.1
0
-0.2
0
, \ /í
\ I
i I
I i
' i
r/
,'t
"M-" t
'•, i
i t
! '/
r\
/.'.*
,
;fi—
*.
;/C
\ V
\
7
i \'
/; i
-,'
i i
i i
i j i
i \
/1 j
I t...
i*"
'' \
^"^
^ í
i ;i
\ /
V
Max
.
Med
ia
-0.3
0
-0.4
0
-0.5
0
\
Pru
eba P
agel
PR
AN
AL1
XLS
Cha
rt 1
4
0.60
0.50
0.40 o.-ao
0.20
^
0.1
0
(U UJ0.
00
-0.1
0
-0.2
0
-0.3
0
-0.4
0
-0.5
0
11 | c
omo
erro
r ab
solu
to
Max
.
Mín
.
Med
ia
Pru
eba P
añ
o
*'
PR
AN
ALl
XLS
Cha
rUS
TH
DÍ
com
o e
rro
r abso
luto
6.00
%
4.00
%
2.00
%
-i
0.00
%
Q
-2.0
0%
-4.0
0%
-6.0
0%
-3.0
0%
i i
I /
¡f:T
\ :
i i
! i
i i
i i
i i
i
1 •
; \r^
x"/\-^
i ir\
/ \i
v\\
i i !
V
Max
.
Mín
.
Med
.
Pru
eba Pagel
PR
AN
AU
>C
LS
Chart
16
TH
Dv
com
o er
ror
abso
luto
6.00
%
-r
4.00
% --
2.00
%
--
0.00
%
-2.0
0% +
-4.0
0%
--
-6.0
0%
-1-
Max
.
Mín
.
Med
.
Pru
eba
pUl
coUl
O» CD
¡'
:rnco
Oa.CD
3:»
1'C/)
a.fD
<o
CDa.CD
fDcr
"D
X
O)O
í»
Q.
33ft)fu
% Fundamentalpen
roln
O« 103
Oí
í uVií./i
\
3T3
P
Q.3Q.(O
o"CO
•ao3(D :a.5'coQ.CD
TJ(Da3tn
£» :cu :
ocwoa!EL(D(O
1
1
p í *S-* ho -
: 3n-»
3
PRUEBAS DE PRECISIÓN
Los espectros correspondientes a vo.lt a je distorsionado aparecen enlas gráficas 19 y 20. Los promedios de voltaje de la prueba 3, dela prueba 4 y de la corriente distorsionada como el voltaje sonmuy parecidos. Existen 4 grupos de armónicas:
Las armónicas cuyos valores reales son menores a 1%: El máximomedido llega al 10%, mientras que los promedios no pasan del 4%y los mínimos son menores al 1%. La brecha entre máximo y míni-mo va de 4.6% a 9.8%.
• Las armónicas cuyos valores reales están entre 1% y 5%: Laarmónica 11 (3%) está en este caso. Se confunde con el grupoanterior excepto por la brecha que es del 4%.
Las armónicas entre 5% y 10%: Están en este caso la 3a .(7.63%), la 9a. (7.1%), la 13a. (8.1%) y la 15a. (6.38%) armóni-cas. Las armónicas 3 y 5 tienen máximos superiores al 10% (13%y 11.2% respectivamente), promedios mayores al 5% (7.7% y 7%) ymínimos cercanos al 5% (5.3% y 4.2%). En cambio, la 13 y la 15tienen máximos menores al 10% (9.23% y 8.7%), promedios del 5% ymínimos cercanos al 2% (2.91% y 1.2%). Las brechas de las cua-tro armónicas van del 6.3% al 7.7%.
Armónicas mayores al 10%: Como la 5a, (14.5%) y la 7a. (16%)armónicas. Sus valores máximos y promedios son mayores al 10%(16% y 12.3% para la quinta y 15.8% y 14.4% para la séptima),mientras que su valores mínimos son de alrededor del 10% (9-4% y12.2%). Las brechas disminuyen a 6.6% y 3.6%.
Para entender el comportamiento global de las armónicas, se en-cuentran en los gráficos del 21 al 26 los fasores (solo señaladospor los puntos finales) de 20 muestras de armónicas y el valorreal para la 2a., .3a., 6a., 7a., 10a. y lio. armónicas. Lasarmónicas que pertenecen a los dos primeros grupos (2, 6, 10 y 11)tjenen muestras muy dispersas en módulo y especialmente en fase.La 3a. armónica muestra fasores con dispersión en módulo pero noen fase mientras que la 7a. muestra fasores concentrados en móduloy fase. Cabe notar que el error de fase del fasor 7 es mayor aldel 3 y que éstos se dan por que los valores reales están atrasa-dos respecto a las muestras.
Página 149
% Fundamental
Poo oo o
o oo
CDo
rooo
-tkbo
enoo oo
Oí
3O» CD
c»
PR
AN
ALL
XLS
Cha
rt 2
0
Com
para
ción
de
prom
edio
s de
esp
ectr
os d
e se
ñale
s di
stor
sion
adas
18 16 12
§
10
e 3 LL 5?
¿Ai
/ \
í <
i\ U./
/m
i/
Rea
l
Vpr
.3
V pr
.4
Ipr.
3/4
3 9
10
Arm
ónic
a
1112
13
14
15
16
Paq
e 1
Parte Imaginaria
ó>
~0tu
Oo
oo
oo
rooo
o
~0PJ¡n O)
oo
oo
oo
oo
oo 8
oo
oo
oo
oo
rooo o
T|PwoCu<J)Q.fDroD.
nPo.
ÍDo.
PQ.O
"O
221>CkO)orr
PR
AN
ALI
.XLS
Cha
rí22
Fas
ores
de
3a. A
rmón
ica
de v
olta
je d
isto
rsio
nado
i.OO
-1 4
.00
-1 2
.00
-1 0
.00
-8.0
0-¿
00
-4.0
0-2
.00
T
6.00
-
4 4.0
0 -
ri (C 'en rt ot r £
A
2.00
-
- "
." ••
•
" •
I !
, 1
a !
L !
nn
n
• M
uest
ra
*
Rea
l
O.J3
0
Par
te r
eal
-2.0
0
Pag
e 1
FRA
NA
U.X
LS
Cha
rt 2
3
Pes
ores
de
6a. A
rmón
ica
de v
olta
je
dist
orsi
onad
o
4.00
-r
3.00
—
2.00
—
1.00
—
1 1
1 1
00
-4.Ü
O
-3.0
0
i Ir
1 n
nn :
a •
ti
l!
1 «
a
' J
! '
' •
'
-2.0
0
-1_O
Q
0.00
1.
00
2.00
3
£0
4.
00
5.00
• M
uest
ra
A R
ea!
-1.0
0 -r
-2.0
0
-3.0
0
--
-4.0
0
Pa
ge
l
Parte imaginaria
oo
oo
Oooo
oo
oo
oo
poo
rooo
-g-
oo
oo
oo
TIpí/>o"03O)
CLCD
T)(U
oo
P»P
3 T)
52
T)P[Q(D
oo
o.CD
ÍDO.írt'^•vo-^c/>o'
D-O
O
'34.
oo
PR
AN
AU
.XLS
Cha
rt 2
5
Fa
sore
s de
1 O
a. a
rmón
ica
de v
olta
je d
isto
rsio
nado
¡e CL
8.00
-
•
6.00
-
•
"
V
9
4.00
-
2.00
-
••
1 '
i n
OP
i i
i a
U-J
U
.00
-6
.00
-4.0
0
-2.0
Í '
0.
-2.0
0 -
-¿nn
-
-
a i
a
Muest
ra
. ,
A
Rea
!
^
1 !
l !
li
li
)0
2.00
4.
00
6.00
'
8.00
Par
te r
eal
Pagel
Parte imaginaria
enbo
oo
oo
PO
oo
TJ(aa.(D
oO
rooO
oO
o
oo
oo
oo
$O
TIP
ÍÜI/)EXCD
P
P"
O»13
Q_CD
*£?.CD'o.
oraPD.O
c0>i/»
PRUEBAS DE PRECISIÓN
> En la gráfica 27 está el espectro de la corriente distorsionada dela parte "43x". Se puede diferenciar 4 grupos:
• Las armónicas algo mayores al 1%: Este grupo está formado porlas armónicas pares. Los máximos medidos no pasan de 6.5%, lospromedios son menores al 4% y los mínimos están entre el 1% y el2%, La brecha está entre 4.1% y 4.9%.
• Las armónicas entre el 5% y el 10%: Como son la lia. (8.27%),la 13a. (7.6%) y la 15a. (6.6%). Sus máximos están cercanos al10% (9.24%, 8.36% y 8,36%), los medianos (6.95%, 5.78% y 5.08%)mayores al 5% y mínimos mayores al 1% (4.76%, 2.75% y 1.32%).Sus brechas son del orden del 4.6%, 5.6% y 7.1%.
• Las armónicas del 10 al 15%: En este caso están las armónicas 7(14.7%) y 9 (10.7%). Sus máximos son mayores al 10% (14.5% y11.3%), sus medios de alrededor del 10% (13.4% y 9.6%) y mínimosno despreciables (12.1% y 4.8%). Sus brechas son del 2.4% y6.5%.
• Armónicas mayores al 15%: En este caso están la 3a. (30.6%) yla 5a. (19%). Se^caracterizan por tener brechas pequeñas (1.4%y 1.9%) de manera que los valores reales están muy cercanos almáximo o al promedio (31.2% y 30.5% para la 3a. y 19.2% y 18.2%para la 5a.).
>*• Finalmente, en las gráficas 28 a 33, se muestran los fasores delas armónicas 2, 3, 6, 7, 10 y 11 de la corriente distorsionada.Se puede notar que los fasores de 2, 6 y 10 son dispersos en módu-lo mientras que sus fases se aproximan a la fase del fasor real.La armónica 11 la fase es poco dispersa y el módulo relativamentedisperso. La armónica 7, sus fasores son de fase y módulo másconcentrados que en el caso anterior. La 3 se tiene la fase con-centrada y el módulo muy concentrado. Al igual que en el casoanterior, los errores de fase son mayores a medida que la armónicaes mayor y todos éstos son de retraso respecto a los valores medi-dos .
Se realizó una quinta prueba con el objeto de determinar las
medidas cuando el voltaje y la corriente son nulas. Los resultados indica-
ron que el voltaje rms promedio es IV y la corriente promedio 0.1A, sus
fundamentales fueron 0.26V y 0.01A respectivamente.
Los tiempos de proceso para las diferentes pruebas fueron:
PRUEBA
TIEMPO (B)
1.1 1.2
17.55 17.53
1-3
17.6
2.1
17.69
2.2
17.56
2.3
17.56
3.1
17.63
3.2
17.75
3.3
17.63
4.1
17.63
4.2
17.75
4.3
17.44
Los tiempos no dependen de la forma de onda ni del factor de
potencia de desplazamiento. El tiempo promedio es 17.61 s.
Página 158
% Fundamental
oo
oo
oo
enoo
rop"oo
oo o
oo
3O* (O
2: 2: s:tth O) 51x o. P
i31
Parte imaginaria
oo
OO
o-^ÍDW
Q.(Dr\PP"i
TJ(U3(O^(D -^
ro'oo
Q.CD
83O)'Z3í-*-(D
Q.w'-*-O^to5"3PlD_
OO
Oo
Parte imaginaria
¿oUloo
¿oo
roUl
oo
tJ(U3.ÍD
01oo
Oíoo
oo
C/lbo bo
p-ÍD-o
PR
AN
ALJ
.XLS
Cha
rt 3
0
Faso
res
de 6
a. a
rmónic
a d
e c
orrie
nte d
isto
rsio
na
da
(pr
.4.3
.)
«J _c 'oí rt r rt Q.
4.00
T
-
3.00
--
2.00
—
1.00
--
-5.0
0 -4
,00
-3.0
0 -2
.00
-1.0
0 0.
-1.0
0 --
A
-2.0
0 --
-3.0
0 J-
Par
te r
eal
X)
1.00
2.
00
¿3.0<
a 4.
00
5.00
6.
00
Pag
e 1
Parte imaginaria
o
o.oo
coo
"O
£(D
T)fu
oo
CLCD•M
P
O*
8O.CD
8cof-*-CD
Q.
co'O—ico_o'3OQ.P
ÜlO
Ico
Parte imaginaria
¿o
oo
L8
yO)oo oo
o
ro
8 i"
OO
oo
oo
Parte imaginaria
oo
oo
oo
•co pbo
"nPO)o
O.(D
robo
P
P
"U(u
(Q(D
OO
Q-(D
83.ro13,-*•CD
O.
w'í-4-
o
OZ3PQ.
P
9(u
COco
oo
8
-U
U)
CAPITULO 5.
CONCLUSIONES YRECOMENDACIONES
5.1. Análisis del sistema
5.1.1.Análisis técnico.
Una vez diseñado, armado y probado al equipo se analizó las
siguientes características:
> Con los datos obtenidos se puede apreciar que el error no se debeal algoritmo aplicado. Los errores aparecen en cuanto los datosmuestreados llegan con un error determinado ya antes de ser calcu-lados . Con las muestras tomadas en las pruebas del programa, sepodría esperar solo por los convertidores analógico digitales te-ner un error promedio de ±1.4V (ó ±140mA) en los valores eficacesde voltaje y corriente. Este es aproximadamente el rango de errorobtenido en los promedios (de -i.IV a 1.6V son 2.7V entre máximo ymínimo y de ~0.3A a 0.09A son 210 mA entre máximo y mínimo) . Deestos valores se ve claramente una tendencia al error medio dis-tinta de cero. Esta tendencia (que %sin mayor cálculo se puedeubicar en 0.25V y ~105mA) puede ser debida a una incorrecta cali-bración del valor de cero en el caso del voltaje y la imposibili-dad de calibrar en el caso de corriente. Los máximos y mínimos delas medidas sucederían con la presencia de picos ocasionados porei convertidor y que son más frecuentes en el ADC de corriente queen el de voltaje; estos picos crean variaciones en otras magni-tudes además de la corriente. Otro factor de error es el númerode muestras, mientras más muestras se tome, menor será el error alcalcular los valores eficaces, de todas formas, este error no
* tiene tanta incidencia como los anteriores.
> Existe una gran correspondencia entre los errores de la potenciaactiva, de la potencia aparente (que se obtiene como producto devoltaje y corriente eficaz), del voltaje eficaz y la corrienteeficaz. Errores en las muestras de voltaje y/o corriente no solocrean errores en sus valores eficaces sino también en los valoresde potencia activa y aparente. La medición de factor de potenciaes más inmune a estas vav¿aciones ya que resulta de la división deP/S. No está de más indicar que los errores encontrados en losvalores eficaces de voltaje y corriente son menores que los de lasfundamentales de éstos.
ANÁLISIS TÉCNICO DEL SISTEMA
" En el programa existe un error que debe ser corregido y que selocaliza en el redondeo a segundo decimal de los valores medidos.Para redondear se sumó 0.005 al valor medido y se sacó el enterode éste multiplicado por 100. Esta fórmula es correcta para elcaso de números positivos, pero si los números son negativos creaun error en el segundo decimal. Por ejemplo si el valor medido es-O.997, sumando O.005 y truncando para obtener 2 decimales se ob-tiene -0.99 en lugar del -1 deseado. El redondear los valores fueuna medida tomada para eliminar los errores de cálculo del algo-ritmo y este error se nota principalmente en el factor de potenciade desplazamiento, cuando existe predominancia capacitiva, y enlos ángulos negativos.
>• Los errores obtenidos en la potencia activa, el factor de poten-cia, el factor de desplazamiento y la fase de la fundamental decorriente en la prueba "4,3" se consideran debidos a fallas en elcálculo de los valores reales. No se contaba con un instrumentode precisión para determinar un desfase exacto entre fundamentalde voltaje y de corriente cuando ambos están distorsionados (lacorriente con distorsión extra a la causada por el voltaje) y unapequeña diferencia de 1 a 2" como se estima es suficiente paraalejar todos los errores de las tendencias mostradas en las gráfi-cas .
>- Una fuente menor de errores, como se expresó anteriormente, es lainadecuada calibración del equipo. Esta se debe a dos factores:La precisión de las medidas puntuales no fue lo suficientementebuenta como'para calibrar exactamente y dado que siempre es mejorcalibrar valores DC que AC, la condición de diseño de discriminarla componente continua obligó a que los acondicionadores dificul-ten por esta razón realizar una mejor calibración. No es sufi-ciente que el error del amplificador operacional se compense (lacompensación no fue completa) con el de la referencia de 2,5V. Sise requiere mejorar la precisión se debe incluir unos pocos ele-mentos más para eliminar los errores introducidos por estos doscomponentes. Si se desea mejorar más la precisión debería haberun potenciómetro que calibre'la entrada de corriente.
> Por lo visto en el programa de prueba, un programa típico ocupamenos de la mitad de la memoria disponible para él y utilizar unaspocas variables. Por esto el área destinada a programa de pruebases más que suficiente.
> Como este es un prototipo, podría ser conveniente disponer de unjumper que permita acceder a la línea de comando BASIC-52 para
' realizar pruebas en posteriores mejoras. En el caso de que elaparato sea ya destinado a cumplir las funciones para las que fuediseñado, se elimina el jumper de la tarjeta. Esta idea nace delinconveniente que constituye tener que sacar la EPROM para encend-er el equipo y volverla a colocar una vez que ya se obtenga lalínea de comando.
Página 167
ANÁLISIS TÉCNICO DEL SISTEMA
" El tiempo de proceso no depende sino de los cálculos internos delBASIC-52 y no influye mayormente que las ondas sean distorsionadaso tengan un desfase entre si. El tiempo promedio de 17.61 segun-dos puede ser muy grande o muy pequeño dependiendo de la ópticaque se aplique: si el aparato se usa como un indicador puntualpara conocer ese momento las características de la red monofásica,es lento e incluso relativamente impreciso (los errores práctica-mente se duplican tomando medidas puntuales que considerando pro-medios); mientras que si se toma como un registro de largo tiempo(que podría ser una aplicación más real) el equipo es lo suficien-temente rápido para obtener hasta 4 muestras por minuto, prome-diarlas y obtener datos más precisos.
>- No se pudo hallar información sobre el tiempo que le toma al8052AH realizar una rutina BASIC invocada desde ensamblador, unestudio posterior podría ser realizado para medir los tiempos deéstas y conocer formas de optimizarlos .
>- Casi todo el tiempo requerido se va en el análisis de armónicasque requiere de muchos cálculos matemáticos . El micro controlador8052AH-BASIC no es quizás la mejor opción para realizarlos. Exis-ten otras alternativas que podrían ser consideradas : Por un ladose puede trabajar con .aln AVCASE PACKAGE de AVOCET SYSTEMS un com-pilador, ensamblador y simulador de lenguaje C para la serieMCS-5Í y que se dispone actualmente en la Facultad de IngenieríaEléctrica, por otro lado se puede los procesadores de señales di-gitales (DSP) cuyos principales representantes son los TMS320Cxxque tienen una arquitectura especial que facilitan las operacionesmatemáticas (incluidas las de punto flotante) , lastimosamente noexiste mucha información disponible al respecto.
>- La distorsión armónica total, ya sea de voltaje o de corriente,menor al 6% debe tomarse en cuenta como no confiable ya que puedeser causada por los errores ocasionados por los convertidoresanalógico digitales. Es necesario realizar pruebas variando losvalores de distorsión armónica total con el objeto de conocer elcomportamiento del equipo ante distintas distorsiones (sobre todosi son menores al 20%) .
>• Por la misma razón las armónicas cuyo valor medio sea menor al 5%de la fundamental deben .ser 'tomados en cuenta como pertenecientesal rango del O - 5% , las- armónicas cuyos valores medios esténentre el 5% y el 10% de la fundamental deben considerarse comopertenecientes a ese rango. De manera similar para el rango
de la fundamental.
>• Para módulos mayores al 15%, los valores son muy exactos (errorabsoluto de alrededor del 2%) y su precisión se puede conocer com-parando que tan pequeña es la diferencia entre valores máximo ymínimo y que tan próximos estén las fases medidas entre sí. Seríarecomendable tomar unas 5 medidas para tener un promedio acep-table .
>~ Aún así , mientras mayor es el orden de la armónica , mayor es elerror de la fase real respecto a las fases medidas.
Página 168
ANÁLISIS TÉCNICO DEL SISTEMA
> La comunicación seric.l fue probada cuando se transmitieron losdatos al computador. De las 36 páginas de datos enviadas, loserrores cometidos se debieron al activar o desactivar el programaTERMINAL mientras se transmitían datos. Para evitar estoserrores, sería mejor chequear si los datos enviados fueron correc-tos. Al pasar los datos a la hoja electrónica, los números ennotación científica no fueron tomados como tales sino como texto.
Una vez realizado el análisis y basado en las pruebas de preci-
sión, se puede establecer las siguientes especificaciones del sistema di-
señado :
Especificaciones Técnicas
MEDIDOR DE K&CTOR DE POTENCIA PARA OMDflS DISTORSIONADAS:
VOLTAJE DE EXÍTRADA: ';
RANGO DE VOLTAJE: O - 250 Vp
RANGO DE FRECUENCIA: 60 - 960 Hz
- IMPEDANCIA DE ENTRADA: 1 MOhm
CORRIENTE DE ENTRADA:
RANGO DE CORRIENTE:
RANGO DE FRECUENCIA:
IMPEDANCIA DE ENTRADA:
O - 2.5 Vp (eguiv. a 25 A con Y8100)
60 - 960 Hz
200 kOhm
FRECUENCIA DE MUESTRBO:
íl ECUENCIA: 2kHz
RANGO DE MEDIDAS/PRECISIÓN MUESTELVPRECISIÓN PROMEDIO:
(Para un rango de voltaje de 120V ±20%)
POTENCIA REAL:
POTENCIA APARENTE:
VRMS:
IRMS:
FP:
FPD:
THDi:
THDv:
MODULO ARMÓNICA:
6.25kW
6.25kW
250Vp
25A
1
1
1
1
±5%
±4%
±2.5%
±3.3%
±1.8% (*}
±2.5% (*)
(**)(**)
±3.5%
±3%
±2%
±2%
±1% (*)
±1.5% (*)
(**)
(**)
100% (de 1) ±2%(***) ±1%(***)
Página 169
ANÁLISIS TÉCNICO DEL SISTEMA
RESPUESTA EN EL TIEMPO:
TIEMPO ESTIMADO:
TEMPERATURA DE OPERACIÓN:
< 18s
O'C - 50*C
* Error respecto al fondo de escala
** Error respecto a la distorsión de 16 armónicas es ±4% y ±3%.
*** Para armónicas mayores al 15% de la fundamental
5.1.2.Análisis de costos.
tLa siguiente es la lista de elementos utilizados con su respec-
tivo costo. La lista de las tarjetas 2, 3 y 4 se obtuvo aplicando el co-
mando PARTLIST de OrCad. A todas las listas se les impuso un precio basado
en "el catálogo de JDR (en dólares) y aumentado un 30% por concepto de gas-
tos de transporte y desaduanización. Los precios, a menos que se indique
lo contrario son en sucres. La cotización del dólar para todos los cálcu-
los es de S/.2300.
ítem No.
12345678910111213141516171819202122232425262728
Canb. Referencia
CO0T00 DE TARJETA 1
Par be
11321112111111112131113211
Condensadores
Resisbencias 1/4W
Resigbencia inb&gradaMicroconbrolador • •EPROM 8K ISOnsRAM esbábica 2K 120ne8 RebenedoresCuabro AND 2 enbradasUno de 8 DEMÜXDOB de 4 DEMUXSupervisor FuenbeOscilador CrisbalZócalo para CI
zócalo ID6
jumpersregleba de pínes IDS
SubhobalCircuibo impreso
Total tarjeta 1
22pF 5V10uF 25VlOOnF 5V10UF 5V3 .3K3K9x3 -3K.-8052AH BASIC2764611674L637374LS0874LS13874L6139TL770512.0 MHz40 pines28 pines24 pinee20 pinee16 pines14 pines8 pinee2x202x8
2x401x40
Precio/unid.
$150$269¿299$269S150$150$807$89,551$14,801$6,728$1,944$1/047$1,166$1,166$5,831$3,259$688$658$538$449$359$269$269$2,960$1,465$598$7,445$2,960
Tobal
$299$1,076$299$269$449$299$807$89,551$14,801$13,455$1,944$1,047$1,166$1,166$5,831$3,259$688$658$1,076$449$1,076$269$269$2,960$4,395$1,196$7 ,445$2,960$159,158595,000
$254,156
Página 170
ANÁLISIS DE COSTOS
COSTOS DB TARJETA
ítem No.
1234567891011 '1213141316171819202122232425
Cant. Referencia
Condensadores
DiodoTransistores NPN
Resistencias 1/4W
PulsadorConvertidor A/DCuatro OR 2 entradasCuatro NAND 2 entr.Seis InversoresOptoacopladoresZócalos para CI
Zócalos ID8
Regleta de pines IDS
SubtotalCircuito impceso
Total t«rj«tn 2
Parte
180pFluF1N41482N2222A2N390410K3.3K1.2K200470150560
ADC08047.4 S3 274SOO74HC146N13620 pines14 pines8 pines2x82x20 .2x52x40
Precio/unid.
$1,047$478$120$628$299$150$150$150$150$150$150$150$1,166$8,821$1,047$867$1,047$5,831$449$269$269$1,465$2,960$1,346$7,445
Total
$2,093$2,870$120$1,256$299$449$299$299$150$150$150$150$1,166$17,641$1,047$867$1,047$11,661$897$807$538$4,395$2,960$1,346$7,445
$60,099$50,000
$110,099
COSTOS DB TARJETA 3
ítem No .
1'23456789101112131415161718192021222324252627
Cant, Referencia
31211134243111111aiii211111
Condensadores
Diodos
Resistencias 1/4H
PotenciómetroDoble Amplif. Oper,Referencia 2.5VRegulador 5V 3ARegulador 8V SOOmATimerZócalo para CIZócalo IDSRegleta de pines IDS
Disipador de calor
SubtotalCircuito Impreso
Total tarjeta 3
Parte
lOu2200uÍU1500p22uO.Olu1N47331N54001N4001200K1.2K4.7K1M7.5K10K5KLF353LK336LH323TLM78M08CLM5558 pines2x82x401x40GrandePequeño
Precio/unid. Total
$1,346$2,661$478$239$1,346$269$508$658$179$150$150$150$150$150$150$2,362$2,063$3,259$8,223$1,346$1,166$269$1,465$7,445$2,960$1,166$568
$4,037$2,661$957$239$1,346$269$1,017$2,631$359$598$449$150$150$150$150$2,362$2,063$3,259$8,223$1,346$1,166$538$1,465$7,445$2,960$1,166$568
$47,720530,000
$77,720
Página 171
ANÁLISIS DE COSTOS
COSTOS DK TARJETA 4
ítem No.
1234
Cant. Referencia Parte
1 LED ROJO1 Resistencia1 Zócalo IDS1 Interruptor (estimado)
GubtotalCircuito impreso
Total tarjeta 4
Precio/unid. Total
Jumbo3002x86 posiciones
$269£150$1,465$5,980
$269$150$1,465$5,980
$7,664$5,000
COSTOS TOTALES
ítem No.
123456789101113131415
Cant. Referencia
Tarjeta 1Tarjeta 2Tarjeta 3Tarjeta 4LCDCable serialPórtico serialConectoree V y ITransformadorConector a transí.Portafusible y fusiblePie de cable plano
Caja plástico ABS
TOTAL SOCHESTOTAL 08 DOLARB8
Parte
L2012DB25 2ft.DB25
120V/12VAC/2A
2A40 cables16 cables16 cables color10"x7.6"x3.1"
Precio/unid. Total
$254,158$110,099$77,720$12,864$119,451$9,149$1,764$1,000$23,771$2,362$867$1,794$718$1,435$25,385
$254,158$110,099$77,720$12,864$119,451$9,149$1,764$4,000$23,771$2,362$867$1,794$2 , 153$4,306$25,385
$649,642$283.00
El costo total del medidor de factor de potencia es $ÜS 283 y
su diseño tomó aproximadamente un tiempo de cuatro meses. Si se desea con
un LCD que disponga de capacidad de gráficos, como tiene un modelo que se
analiza más adelante, el equipo subiría a US$348. Si debido al ensamblaje
del equipo se produjera 5 aparatos mensuales y se le pague al ensamblador
un total de US$500, el costo total del aparato con capacidad gráfica ascen-
dería a US$448.
Cono contrapartida, analizadores de energía tienen costos más
elevados: El VIP SYSTEM 3 con módulo de armónicas, fabricado por ELCONTROL
tiene un valor de US$6000 y posee características muy similares a las del
medidor diseñado aquí, además, puede medir sistemas trifásicos, su pantalla
tiene 'capacidad gráfica, posee una impresora incluida en la caja como otra
alternativa de mostrar resultados, puede activar 2 relés ante la presencia
de máximos y mínimos y tiene la capacidad de ser expandido para medir otras
señales. El analizador trifásico BMI PCWERFILER 3060 tiene un costo de
US$12000, este costo se reduce a US$7000 si el analizador es monofásico.
Finalmente, el analizador de potencia y armónicas HA-2000 de AMPROBE posee,
además del análisis de armónicas y 'de potencia de una red monofásica, una
Página 172
ANÁLISIS DE COSTOS
pantalla con capacidad gráfica, memoria y opciones similares a las ofreci-
das por el equipo diseñado por solo US$989.
Si con fines de comparación se le aumenta el 30% como gastos de
importación al último equipo. El valor de éste es el 286% del valor del'
medidor de factor de potencia diseñado. Solo con estos valores se podría
afirmar que no es conveniente fabricar equipos como el diseñado para su
distribución en el mercado ya que el equipo de ñMPROBE tiene el respaldo de
una marca ya existente en el mercado que garantiza un buen funcionamiento.
5.2.Conclusiones y recomendaciones.
y El control del factor de potencia y el mantener voltaje en niveles apro-
piados es importante en la seguridad de los modernos sistemas de poten-
cia. Es imperativo entregar un nivel de voltaje constante al consumidor
e indispensable que éste se mantenga en un determinado ancho de banda
para mantener la estabilidad del sistema. Adicionalmente, la distorsión
causa por sí; misma muchos efectos indeseables en equipos de carga, pro-
tección y control. Todo esto hace que sea necesario contar con aparatos
que midan los parámetros de una red con la suficiente precisión.
y Las fórmulas de sumatorio usadas para hallar los valores eficaces de
voltaje, corriente, potencia activa, aparente y factor de potencia tra-
bajaron como se esperaba. A pesar de que se puede hallar los mismos
parámetros con la transformada rápida de Fourier (FFT), el cálculo es
más sencillo de la manera empleada en esta tesis (sobre todo respecto al
cálculo de la potencia actiVcKh Con ambos procedimientos se obtienen
resultados muy precisos.
y Sin embargo, ambos procedimientos de cálculo tendrán sus limitaciones si
las armónicas superiores al orden 16 son irrportantes. Respecto a esto,
la limitación de usar el probador de corriente (que hace portátil al
equipo) evita mejoras al equipo ya que el ancho de banda de éste es 1
kHz.
y El algoritmo FFT fue de fácil implementación ya que existe una buena
documentación del tema, y en este caso, el algoritmo programado en For-
tran se pasó a QBASIC 4.5 y a ensamblador MCS-51.
Página 173
; CONCLUSIONES Y RECOMENDACIONES
El tiempo de proceso de este algoritmo es grande en comparación con los
demás procesos (la rutina de análisis de armónicas requirió un promedio
del 90% del tiempo total de proceso). El espacio de memoria ocupado por
la rutina (390 bytes frente -att 1199 byt'es de toda la rutina de análisis
de armónicas y 3461 bytes del programa total) y por las tablas necesa-
rias-para su ejecución (224 bytes frente a casi 3.5K) es pequeño.
El número de muestras recomendables depende más bien de otros paráme-
tros, si la distorsión existente tiene armónicas de orden mayor al
número de muestras/2 (como sucedió en las pruebas de precisión), es ob-
vio que se requieren más muestras para reducir el error, pero esto im-
plica el uso de procesadores más veloces. En cambio, el ancho de banda
permitido por los sensores limitan el número de muestras (en el caso del
probador de corriente IkHz); el área de programa prueba en RAM y de Dis-
play RAM se verían comprometidas al aumentar el número de muestras pues-
to que se requiere de espacio para mayores tablas y para más resultados.
De todas formas, las pruebas? realizadas aquí muestran que los errores
más se debieron a configuración del hardware más que del algoritmo. En
formas de onda muy distorsionadas, en las que se requiera error mínimo,
se requiere aplicar técnicas especiales de denominadas de "Windowing"
antes que aunrentar el número de muestras (ver referencia [ ]).
El programa en ensamblador queda plenamente justificado ya que existe
una gran cantidad de transferencia de datos entre el microcontrolador y
los dispositivos de memoria, los de entrada y los de salida. El manejo
del BASIC hubiera sido demasiado lento. De todas formas se aprovechó el
uso de las rutinas BASIC para realizar operaciones en punto flotante.
Si el Sistema de Desarrollo Basado en el 8052AH-BASIC posee excelentes
características para muchas aplicaciones, en el caso del medidor de fac-
tor de potencia deja mucho que desear. El BASIC es muy 1 ento y la
transferencia de control entre rutinas ensamblador y rutinas BASIC así
como el manejo de interrupciones puso muchas limitaciones en el diseño,
aparte de eso, el Sistema de Desarrollo queda completamente subutilizado
en esta aplicación: Hay muchas características que no se utilizan y se
tuvo que descartar el uso de bastantes elementos de la tarjeta 1 origi-
nal .
Página 174
CONCLUSIONES Y RECOMENDACIONES
»
•/ Existen otras alternativas que podrían ser consideradas al BASIC-52:
Por un lado se puede trabajar con el AVCASE PACKAGE de AVOCET SYSTEMS un
compilador, ensamblador y simulador de lenguaje C para la serie MCS-51 y
que se dispone actualmente en la Facultad de Ingeniería Eléctrica, por
otro lado se puede los procesadores de señales digitales (DSP) cuyos
principales representantes son los TMS320Cxx que tienen una arquitectura
especial que facilitan las operaciones matemáticas (incluidas las de
* punto flotante), lastimosamente no existe mucha información disponible
al respecto en la facultad.
%/ El uso de un área de memoria donde se tienen los datos que se van a co-
piar directamente al LCD (área de display RAM) acelera el proceso ya que
evita el calcular los valores a enviarse al LCD cada vez que se mueve el
selector.
•*- J Si bien puede parecer que la actualización de datos del equipo diseñado
es lenta, los casi 18 segundos son aceptables ya que para registrar da-
tos para hacer un histograma es conveniente hacerlo en períodos de algu-
nos minutos y el tomar los datos a mano para conocer los valores ese
momento puede terciar casi los 18 segundos para copiar las mediciones en
una pantalla. De todas formas, el análisis de armónicas del analizador
de energía VIP SYSTEM 3 fabricado por la firma italiana ELCONTROL demora
10 segundos en actualizar datos lo que demuestra que el equipo desarro-
llado no es en realidad tan lento.
J En las pruebas, realizadas no se logró encontrar alguna dependencia entre
el tiempo de proceso y otros factores como el factor de desplazamiento y
la forma de onda.
Página 175
CONCLUSIONES Y RECOMENDACIONES
Sin tornar en cuenta 1 os promedios, sc .0 1 as muestras individual es, el
equipo diseñado córrete errores relativos máximos del ±5% en las medi-
ciones correspondientes a potencia re^al, potencia aparente, factor de
potencia y valores eficaces de voltaje, y corriente. Esto contrasta con
el estudio canadiense mencionado en la referencia [ ] que señala que un
20% de contenido de la 5a. armónica puede producir un error del 10 al
15% en Vatímetros de 2 elementos, tres fases. Basados en la referencia
[5], solo con la presencia del 1% de la 3a. armónica (sin distorsión de
voltaje) los errores de medición con aparatos analógicos aumenta de me-
nos del 1% al 3%. Las armónicas con las que se probó este medidor de
factor de potencia superan a las del estudio y se mantuvo un error nota-
blemente más bajo. Esto es muy importante ya que es el primer instru-
mento para medir estas magnitudes bajo distorsión que se posee en
laboratorio y sus resultados son bastantes satisfactorios.
Para reducir 1 os errores cometidos por el equipo es conveniente tomar
unas 5 medidas de cada magnitud para luego promediarlas. En el caso de
módulos de armónicas, se debe recordar que solo los módulos promedios
mayores al 15% de la fundamental pueden ser considerados como válidos.
Si los promedios son menores al 5%, debe considerarse que esa armónica
está en el rango del O - 5%," si están entre el 5 - 10% pues pertenecen a
ese rango, lo mismo para el rango del 10-15%. De todas formas una pe-
queña diferencia máximo-mínimo en módulos pequeña constituye un criterio
para conocer que tan precisa es la medida. Los errores cometidos al
calcular las fases no hacen confiables los valores medidos.
De las pruebas realizadas se pueden ubicar las siguientes fuentes de
error en orden de importancia: Los errores introducidos por los conver-
tidores analógico digitales (que son ± 1LSB), el número de muestras
cuando las componentes armónicas de orden mayor a 16 son importantes, el
probador de corriente que introduce un error del 3% en componentes de
frecuencia mayor a 200 Hz y, en menor grado, el algoritmo de la trans-
formada rápida de Fourier que para ondas muy distorsionadas requiere de
procesos auxiliares que le peüutan disminuir errores cometidos en dis-
continuidades .,
Página 176
: CONCLUSIONES Y RECOMENDACIONES
y El maestreo se realizó en un solo ciclo sin sincronismo, es decir, se
temó muestras sin esperar a un valor especifico (usualmente cruce por
cero). Esto no es causa de error, pero sí de variaciones de resultados
cuando las señales son muy distorsionadas con armónicas de alto orden ya
que la fuente de error no es el sincronismo sino el número de muestras
tomadas. El tomar las muestras aleatoriamente permite obtener un prome-
dio si existe error debido a esta causa. Además, cuando exista distor-
sión, podrían haber arranques erróneos cuando se busque sincronismo.
y El uso de postes de identificación en los equipos diseñados facilitan el
chequeo y la calibración de los equipos. De todas formas, para facili-
tar la calibración del equipo se recomienda: 1> acondicionadores que
sirvan también para continua, 2> un potenciómetro de calibración para
corriente y 3> compensación de las desviaciones en el LF353 y en el
LM336. Esto último es necesario sobre todo si se usa convertidores
analógico - digitales de mayor resolución.
y Con el objeto de mejorar los errores se recomienda hacer las siguientes
modificaciones: 1> utilizar convertidores analógico - digitales de mayor
resolución (12 bits), 2> si se dispusiera de un instrumento de aisla-!
miento de corriente de mayor ancho de banda sería conveniente aumentar
el número de muestras, pero para ello se debe ampliar la velocidad de
procesamiento y la memoria RBM, finalmente, 3> mejorar los sistemas de'
calibración como se sugirió en el punto anterior. Con el objeto de me-
jorar el algoritmo, se debe corregir el error de redondeo para canti-
dades negativas (en la rutina REDON2 del programa)tal como se sugirió en
el análisis técnico.
y Se debería hacer más pruebas con distorsión, especialmente con valores
de distorsión armónicas menores al 20%. Se conoce el comportamiento del
equipo cuando indica distorsión armónica mayor al 20% y menor al 6% pero
no hay datos (que pueden ser muy importantes) en este rango de valores.
y Finalmente, a menos que se disminuyan los errores cometidos y se reduz-
can los costos del equipo variando la configuración y utilizando algunos
elementos más baratos, este nfedidór de factor de potencia no puede com-
petir con equipos similares como el analizador HA-2000 de ñMPROBE.
Página 177
£ Descripción física del medidor de factor de potencia
A. Descripción completa de elementos de cubierta exterior
B. Diagrama circuital
C. Diagrama del circuito impreso
D. Diagrama de soldadura
E. Conectores y postes de identificación
F. Características adicionales del dispositivo de cristal líquidoL201200JOOO de Seiko
U, Características adicionales del Sistema De Desarrollo BasadoEnEI8052AH-BASIC
A. Uso de la memoria interna por el BASIC-52
B. Almacenamiento en RAM externa
C. Uso de la RAM extema por el BASIC-52
D. Rutinas BASIC-52 invocadas desde ensamblador
III. Programa en QBASIC que realiza la Transformada RápidadeFourier y halla Jos espectros de potencia y fase de una señal
APÉNDICE I. Descripción física del medidor de factor de potencia
A. Descripción completa de elementos de cubierta exterior
SELECTOR LEDDEENCENDIDO
JfcPANALIZADORLCD
VISTA FRONTAL EKTCA-DA ETTOABAVOLTAJE CORRIENTE
CABLE DE P OLARIZACIONRESET PÓRTICO SERIAL
VISTA POSTERIOR
flGURA M.-CUBEERTA EXTERIOR
B. Diagrama circuitaí
HGURA 1-2 .-DIAGRAMA CIRCUTTAL DE LA TARJETA 2
FIGURA 1-3 .-DIAGRAMA CTRCUITAL DE LA TARJETA 3
"
-..,.
n
nGTJRAI-4.-TJMGIOVMACIRCtJn:AIJDELATARJETA4
C. Diagrama del circuito impreso
•s *
JPft
1
OtN-»0
O--
o
sün
•
¡o
OOoo
oooooooo00
N —
¡1 •]
f
oooooo
Cov±
0 0o • oO " O0 Oo • oo • o
•\Ja OL/--H1í • • CQ~-y VJ¿-/.o •
•
(o1
oooooo
>Jn
enB"}03
M
o)x
:H
ooooo oooooooooooooooooooooooooooooooooonn •-
FIGURA 1-5.- DIAGRAMA DE COMPONENTES DE TARJETA ^
1 I O O O O O C O O I l io O
RlI l o
n L ] o o o o o o f 1 o n I 71 o o o o o
D8 c7
odio (a o
ÍIGURA I-fi.- DIAGRAMAS CIRCUrrAX.K.S DE LAS TARJETAS 3 (ABAJO) Y4 (ARRIBA)
*
FIGURA 1-8.- PAUTE INFERIOR DEL CIRCUITO IMPRESO DE LA TARJETA 2
JIGURA I-*.- VISTAS INFERIORES DE LOS IMPRESOS DELAS TARJETAS 3 (ABAJO) Y 4 (ARRIBA)
E. Conectores y postes de identificación
1. Ubicación en la tarjeta
A TAKJ.2- H4
VA TARJ.4 - H2
FIGURA 1-10.- CONECTORES TARJETA 1
FIGURA I- U.- CONKtrrORKS TAR.DCTA 2
A TARJETA 2-JO. DE TRANSFORMADOR
CAPACITOR USAD OCOMO REFERENCIA "V
DE VOLTAJE Y CORRIENTE
ATARJ.1-H5 ATARJ.2-H3-
FIGURA 1-13.- CONECTORESTAR.IETA 4
2. Esquema
En los siguientes esquemas solo se mencionan a los conectores y
pines que se utilizan.
DE TARJETA 1: H4 y H6 A TñRJETñ 2: H4
Los pines 1, 3, 5, ..., 13 y 15 del conector de la tarjeta 2 cor-
responden a los 8 pines (1, 2, 3, ..., 7 y 8) del conector H6 de la tarjeta 1.
Los otros pines (2, 4, 6, . .., 14 y 16) corresponden al conector H4 de la tar-
jeta 1. El esquema corresponde al conector de la tarjeta 2.
2 4 6
O O O
0 0 0
1 3 5
DE TARJETA 1
o o o1 2 3
T2 T2 EX PWMTRIG T/C OUT
DE TñRJETA 1
VCC /RD DB1 DB3 DBS DB7
2 4 6 8 10 12 14 16 18
O O O O O O O O O
O O O O O O O O O
1 3 5 7 9 11 13 15 17
VCC EXT /WR DBO DB2 DB4 DB6RST
DE TñRJETA 2
8 10
O O
0 O
7 9
CS1B CS2B CS3B
12 14 16
O 0 0
O O 0
11 13 15
R10UT T1IN
H5 A TARJETA 4: H2
0 O
4 5
/PROGPUL
O O 0
6 7 8
/PROG /DMAENA ACK
H8 A TARJETA 2: H2
20 22 24 26 28 30 32
0 0
O 0
0 O 0 0 0
3 O O 0 O
19 21 23 25 27 29 31
GND
34 36 38 40
0 0 0 0
O O O O
33 35 37 39
AO GND
Hl A TñRJETA 3: H2
GND GND GND ADCi ADCv
2 4 6
0 O 0
O O O
1 3 5
e 100 0
0 O
7 9GND VCC GND GND V+
Vre£ GND GND13 14 16O 0 O -
O 0 0
11 13 15
VCC VCC GND
DE TARJETA 2: H3 A TARJETA 4: Hl
vcc2
GND
DE TARJETA 2: H5 A PÓRTICO SERIAL
RD DTR
2 4 6 8 10
O
0
0
O
0
O
0
O
O
0
1 3 5 7 9
TD SG RTS
DE TARJETA 2: H6 A LCD
GND VLC /WR DBO DB2 DB4 DB6
2 4 6 8 10 12 14 16
0
0
0
0
oo
o0
oo
0
0
0
ooo
1 3 5 1 9 11 13 15
VCC AO J3 DB1 DB3 DBS DB7
F. Características adicionales del dispositivo de cristal líquido L201200JOOO deSeiko
1. Características eléctricas
Valores cardctetÍBtícos absolutos ; ^ ; !\;.: V - . 5 >
Carácter IB tica
Volbaje de polarización
Voltajes de entrada
Temperatura de operación
Temperatura de almacenamiento
Símbolo
Vto-Vss
Vu:
V«
TOPR
T•L9TO
Mío
0
Vro~7
v«0
-20
Max
7
vro
vro
50
60
unidad
V
V
V
°c°c
Voltaje de operación recofoendado (Vop=VM,-V^;) r .1Temperatura (°G)
Voltaje Vop (V)
0
5
10
4.9
25
4.75
40
4. U
50
4.5
Características eléctricas •"•"-' ?: . '- V(|1!=5V, V,,,=OV( T=20" Q 70" • . v .;-.;•-:-;;/.- '•:. ; .::-•;-.,-/ '.."? -.:;:
Característica
Voltaje deentrada
Voltaje desalida
AltoBajo
Alto
Bajo
Voltaje depolarización
Símbolo
vmv^VCB!
OLl
Va>
V»-V«:
Condición
-I^-O.aOSmA
1 =1. 2mA
Mín
2.20
2.4
-
4.753
Típ
--
--5
-
Max
v»0.6_
0.4
5,256.3
unidad
VV
V
V
V
V
2. Diagramas de tiempo
El análisis de los diagramas de tiempo es muy importante para evi-
tar incompatibilidades entre diferentes componentes del equipo. Si bien la
gran mayoría de componentes no presentan problemas a estas velocidades de pro-
ceso, es factible que se presente un problema en la escritura de datos al con-
ectar directamente el microcontrolador y el LCD.
RS
R/W
A DB
2Í
IDIAGRAMAS DE TDJMPO DE ESCRITURA DEL LCD
¡DIAGRAMAS DE TIEMPO DE ESCRITURA DEL 8052AH-BASTC
Comparando el diagrama de tiempo de escritura del LCD con el del
microcontrolador se puede ver que en. el primero se requiere activar la señal
de escritura antes que se active la línea de selección, en el microcontrola-
dor, primero se activa la línea de selección y luego se activa la señal de
escritura. Si se conecta solo la línea de escritura del microcontrolador a la
línea de lectura/escritura del LCD (como está conectado ,en el equipo), no se
da este problema ya que por defecto, está línea siempre está en la posición de
lectura.
La solución a este inconveniente fue generar la señal de habilita-
ción del LCD con la línea de selección del microcontrolador, la línea de lec-
tura y la línea de escritura unidas con compuertas NñND y OR. Se eligieron
compuertas tipo S de alta velocidad con la menor cantidad de compuertas po-
sibles para que no existan retrasos perjudiciales.
3. Sef de funciones
El controlador HD44780 posee dos registros directamente manejados
por un microprocesador externo: 1) El registro de instrucciones (IR) y el reg-
istro de datos (DR). La información de control es almacenada temporalmente en
estos registros previo al comienzo de una. operación interna. Esto permite
conectarse a varios tipos de microprocesadores de diferentes velocidades. Las
operaciones internas del 44780 son determinadas por las señales enviadas del
microprocesador. Estas señales incluyen al selector de registros RS, a la
línea de lectura/escritua R/W y al bus de datos DBO-DB7.
Cuando RS=0 y R/w=0, se ordena escribir una instrucción en regis-
tro de instrucciones. Estas instrucciones pueden, ser:
a. Clear Display:
Borra toda la memoria de pantalla y regresa el cursor a la posi-
ción "HCME". Su código es Olh. Toma entre 82 us y 1.64 ms ejecu-
tarla -'*,, '<•-
b. Return Harte:
Regresa al cursor a la posición "HOME". Además regresa al LCD
desplazado a su posición original. Los contenidos del DDRñM se
mantienen. Su código es 02h. Su ejecución toma entre 40 us y
1.64 ms.
c. Entry Mode Set:
Indica la dirección de movimiento del cursor y si la pantalla se
desplaza o no. Estas operaciones se realizan durante escritura y
lectura de datos. Su código es 0 0 0 0 0 1 i/d s en binario,,
donde i/d indica si la dirección del movimiento del cursor es con
el incremento o decremento de direcciones y s indica si la pantal-
la debe desplazarse. Le toma entre 40 us y 1.64 ms ejecutar esta
instrucción.
d. Display ON/OFF Control:
Su código e s O O O O l d c b e n binario, donde d indica si la pan-
talla debe estar encendida (la pantalla apagada no altera los con-
tenidos de memoria), c indica si el cursor debe estar prendido y b
si éste debe parpadear. Toma 40 us ejecutar esta instrucción.
e. Cursor or Display Shift:
Elige desplazar pantalla o mover el cursor con s/c hacia la dere-
cha o la izquierda (r/1) sin alterar los contenidos de la memoria
con el código O O O 1 s/c r/1 x x. Toma 40 us efectuar esta oper-
ación.
f. Función Set:
Define la longitud de datos, el número de líneas del LCD y la ca-
racterística de la fuente de caracteres. Se define en la secuen-
cia de RESET. Para el L2012 con MPU de 8 bits corresponde el
código 38h.
g. Set CG RñM Address:
Con DB7=0 y DB6=1, los 6 bits menos significativos apuntan a una
dirección de CG RñM (de caracteres programables) para luego leer o
escribir. ,•
h. Set DD RAM Address:
Con 067=1, los demás bits definen una dirección en DD RAM (de los
caracteres que aparecen en el LCD) que será leída o escrita. Hay
40 localidades de DD RAM disponibles.
Cuando RS=0 y R/W=1, el MPU recibe en DB6 . . DBO del bus de datos
el contador de direcciones que especifica la dirección en la que los datos de
DD RAM o CG RAM serán escritos o leídos. El bit más significativo (DB7) se
denomina la bandera de ocupado (BF) que tienen el valor de 1 cuando una opera-
ción interna está en progreso y el valor de O cuando una nueva instrucción
puede ser aceptada.
Con RS=1 y R/W=0 se escribe un dato en DD RAM o CG RAM según se
haya especificado con las instrucciones. Los datos en DD RAM son caracteres
ASCII, excepto por los más altos que corresponden caracteres KATA KAHA japo-
neses.
Finalmente, con RS=1 y R/W=1 se lee un dato de DD RAM o de CG RAM.
APÉNDICE II. Características importantes del Sistema De DesarrolloBasado En El 8052AH-BASIC.
A. Uso de la memoria interna por el BASIC-52
En el manual del usuario del BASIC-52 aparecen las localidades de
memoria interna usadas por este lenguaje, por ésto, aquí simplemente se dará
una referencia rápida recalcando en aquellas localidades que son de especial
interés por ser usadas en el medidor de factor de potencia.
OOh a 07h Banco O de registros: Es usado por BASIC como banco de trabajo.Cada vez que se invoque a rutinas BASIC desde ensamblador, debetransferirse el control al banco O.
08h a 17h Bancos 1 y 2: Es usado por BASIC para almacenar punteros,direcciones y otros datos temporales. Son destacables lasdirecciones 09h que es el puntero de la pila de argumento y OAhque es el puntero de la pila de control.
18h a iFh Banco 3 de registros: Está reservado para el usuario. Todas lasoperaciones en ensamblador deben realizarse en este banco.
20h a 21h Localidades disponibles para el usuario. La localidad 20h seutiliza como copia del pórtico 1 para detectar cambios que sucedenal mover el selector.
22h a 26h Zona direccionable bit a bit de uso para el BASIC. Destaca elbit 26.4h que indica que un texto que se imprime está en ROM.
27h a 4Ch Punteros, contadores y otros valores usados por el BASIC-52.Destaca 3Eh que es el puntero de registro de la pila interna.
4Dh a OFFh Espacio de pila interna del 8052AH y espacio de trabajo delusuario.
B. Almacenamiento en RAM externa
1. Formato de punto notante
El MCS BASIC-52 almacena todos sus números en punto flotante en un
formato de paquete BCD normalizado que maneja un exponente binario. El si-
guiente ejemplo corresponde al valor de pi (3.1415926) que se encuentra alma-
cenado en la localidad de memoria X
í> LOCALIDAD. VALOR DESCRIPCIÓN
X 81H EXPONENTO: 81H=a0^1, 82H=10A2, 7FH=10A-1
X-l OOH BIT DEL SIGNO: OOH=POSITIVO, 01H=NEGATIVO
X-2 26H DOS DÍGITOS MENOS SIGNIFICATIVOS
X-3 59H SIGUIENTES DOS DÍGITOS
X-4 41H SIGUIENTES DOS DÍGITOS
X-S 31H DOS DÍGITOS MAS SIGNIFICATIVOS
Hay que agregar que cuando el valor del exponente es OOh, se está
representando al número cero. De manera similar, dado que el BASIC normaliza;*.
todos los números, el dígito más significativo no puede ser nunca cero a menos
-que el número representado sea cero. Los 7 bits más significativos del signo
son usados como temporales durante los cálculos.
2. Forma de almacenamiento de variables
¿Cómo almacena el MCS BASIC-52 sus variables y strings?. Existen
dos punteros de 16 bits que controlan la localización de strings y variables y
otros dos punteros que controlan la localización de las variables escalares y
f, dimensionales. El puntero MTOP indica el tope de RAM que es asignado a BASIC,
en el caso de esta tarjeta MTQP=OFFFh. El puntero VARTOP indica cual .es el
tope de memoria para uso de variables BASIC, si no se usan strings, como en
este caso, VARTOP=MTOP. El puntero VARUSE indica en que localidad de memoria
se puede ubicar una nueva variable BASIC, su valor inicial es VARTOP y cada
vez que el usuario asigna una nueva variable, el valor de VARUSE se decrementa
en 8.
C. Uso de la RAM externa por el BASIC-52
1. Memoria usada por el BASIC-52
El BASIC-52 se reserva para su uso las primeras 511 localidades de
memoria para almacenar datos de utilidad en manejo de programas y las pilas de
argumento y control. Las siguientes son las localidades más destacadas:
6Gh-OFEh Pila de controlOFFh SobreElujo de la pila de control104h-105h Valor de VARTOP106h-107h Valor de VARUSE108h-109h Valor de DIMUSElOAh-lOBh Valor de MTOP10Eh-113h Valor del Cristal (XTAL)12Dh-lFEh Pila de argumento
2. Pila de control
Esta pila, ubicada entre las localidades 60h y OFEh es usada para
almacenar toda la información relacionada con lazos de control como lazos DO-
WHILE, DO-UNTIL y FOR-NEXT y subrutinas básicas como GOSUB. Esta pila, a dif-
erencia de la pila interna, es inicializada en OFEh y va decreciendo.
3. Pila de argumentos
La pila de argumentos ocupa las localidades 12Dh a IFEh de la me-
moria externa. Esta pila almacena todas las constantes que el BASIC está
usando. Las operaciones matemáticas del RñSIC-52 se realizan sobre el último
(o los dos úlbimos) números de la pila de argumento. Esta pila está iniciali-
zada en IFEh y decrece en 6 bytes por cada número en punto flotante gue se
almacene.
D. Rutinas BASIC-52 invocadas desde ensamblador
El MCS BASIC-52 contiene una librería de rutinas completa que
puede ser fácilmente accedida con instrucciones CALL de lenguaje ensamblador.
1. Precauciones
a. El BASIC-52 usa los bancos de registros O, 1 y 2 dejando el banco3 para el usuario (excepto en el caso de programación de memoriasEPRGM). El usuario puede realizar cualquier cosa que desee eneste banco que el BASIC nunca alterará su contenido, excepto en elcaso mencionado. Las direcciones correspondientes a este bancopueden ser direccionadas con la expresión DBY. Adicionalmente, laslocalidades 20h y 21h nunca son usadas por el BASIC. Estaslocalidades son direccionadas bit a bit.
b. El banco de registros O es usado por BASIQ como el ARCHIVOREGISTRO DE TRABAJO por lo que cada vez que se invoque a rutinasBASIC, el usuario debe asegurarse de seleccionar el banco deregistros 0. Esto se hace encerando los bits 3 y 4 de PSW. Siesto no se realiza, no se realizará operación alguna.
c. A menos que se diga lo contrario en la documentación sobre rutinasBASIC, siempre se debe asumir que el ARCHIVO REGISTRO DE TRABAJO yel registro DPTR serán alterados.
d. Ciertas rutinas requieren de la inicialización de ciertosregistros antes de ser llamadas. Estos registros son siempre delARCHIVO REGISTRO DE TRABAJO. Esto es válido también cuando lasrutinas devuelven un valor a un registro o registros.
e. El BASIC-52 inicia la pila interna desde la localidad 77h. ElBASIC no utiliza memoria más allá de esa localidad excepto comoespacio de la pila interna. El usuario puede utilizar parte deesta memoria para sus aplicaciones si asigna al PUNTERO DE PILAINTERNA un valor mayor a 77h de manera que el usuario puedadisponer de una franja de memoria entre lo ocupado por el BASIC-52y la pila interna-. Es, suficiente dejar un mínimo de 48 bytes deespacio para la pila. Lo malo es que reducir este espacio reduceel número de paréntesis que el BASIC puede evaluar en unaexpresión. Esto causará un error I-STACK o causará un conflictofatal en el CPU.
f. Respecto a interrupciones debe tomarse en cuenta que como éstasson desviadas por el BASIC, la PALABRA DE STATUS DEL PROCESADOR esenviada a la pila de donde debe ser recuperada por el usuarioantes de regresar de la interrupción. Por lo tanto, el usuario nodebe haber transferencias entre BASIC y ensamblador ya que elBASIC siempre necesita estar en un estado conocido y unainterrupción aleatoria no garantiza que el intérprete esté en unestado conocido. El usuario debería manejar el banco de registros3 para manejar interrupciones en ensamblador.
2. Forma de acceso
El acceder a las rutinas MCS RASIC-52 desde lenguaje ensamblador
es sencillo, simplemente se debe cargar al acumulador con un valor especifico
y llamar a la localidad 30h. El valor cargado en el acumulador determina que
operación será realizada. Por ejemplo, para obtener el coseno de un número
que está al tope de la pila de argumento se debe aplicar las siguientes
instrucciones:
ANL PSW,ttOE7h
MOV A,
CALL 3 Oh
7 UTILIZA EL BANCO CERO DE REGISTROS
;CARGA EN EL ACÜMLADOR EL VALOR;CORRESPONDIENTE A LA FUNCIÓN COSENO;EJECUTA LA INSTRUCCIÓN
Dado que el programa principal es en ensamblador,, es conveniente
terminar estas instrucciones con un
ORL PSW,K18H
que transfiere el control al banco 3 de registros nuevamente.
3. Rutinas BASIC-52 utilizadas en el medidor de factor de potencia
La tabla siguiente muestra las rutinas BASIC utilizadas en el
equipo diseñado. En la primera columna se indica la etiqueta con la que se- le
llama dentro del programa, en la segunda el nombre asignado por BASIC, en la
tercera el valor con que se debe cargar el acumulador y en la última se expli-
ca la función de la rutina (por efectos de espacio se emplea TOS en lugar de
número en punto flotante al tope de la pila de argumento):
ETIQUETA NOMBRE DE LA RUTINA ACDMDLADOR EXPLICACIÓN
ABSOL
ATAN
CARSER
COCIENTE
COSENO
CRIiF
ENTERO
FROMSTACK
PRODUC
RESTA
SIGNO'SQR
SUMA
TOSER
TOSTACK
ABSOLUTE VALUÉ
ATN OPERATOR
OUTPUT CHARACTER IN R5
DIVIDE
COSIME OPERATOR
OUTPUT CR-LF
INTEGER
POP A-STACK TO (R3:R1)MULTIPLY
SUBSTRACT
SIGN
SQUARE ROOT
ADD
OUTPUT TOP OF A-STACK
PUSH ( R 2 : R O ) TO A-STACK
18H
22H
80H
8AH
1CH
07H
19H
03H
88H
?MH
1AH
1FH
82H
90H
02H
Reemplaza TOS por su valor absolubo
Reemplaza TOS por el arco bangente del mismo
Toma el carácter en R5 y lo dirige a la consola
2 TOS por pemílbimo/ültimo, usuario maneja error
Reemplaza TOS por su coseno (ITOSI < 2000)
Envía una secuencia CR-LF a la consola
Reemplaza TOS por su valor enbero
Envía "TOS a dirección apuntada por R3:R1
2 TOS por BU producbo, usuario maneja error
2 TOS por penúlbimo-úlbimo, usuario maneja error
TOS por 1 si TOS>0, -1 si TOS<0 ó O si TOS=0
Reemplaza TOS por su raíz cuadrada
2 TOS por suma de ambos, usuario maneja error
Envía TOS a consola
Nuevo TOS es número apunbado por R2:RO
r
Los errores que puede manejar el usuario cuando se suma, resta,
multiplica o divide se basan en un código de status que el BASIC provee al
usuario a través del acumulador. Esta información se almacena como banderas
con cada bit de este registro de manera que: ACC.O=underflow, ACC.l=overflow,
ACC.2=cero y ACC.3=división para cero. Los otros 4 bits no se usan y tienen
un valor de cero. Con estos valores el usuario puede tomar las medidas perti-
nentes que ameriten el caso o simplemente ignorar el error.
APÉNDICE lll. Programa en QBASIC que realiza la TransformadaRápida de Fourier y halla los espectros de potencia yfase de una señal
REMREMREMREMREMREM
REMREMREM
PROGRAMA QUE APLICA LATRANSFORMADA RÁPIDA DE FOURIER
OBTENCIÓN DE CONSTANTES
CLSnmr = 32 'NÚMERO DE MUESTRASLPRtNT "NUMERO DE MUESTRAS = " ; nmrn = LOG(nmr) / LOG(2)pi = 4 * ATN(l)DIM a (n) , ndec (nmr / 2) , ndecor(nmr) , nx(nmr) , rr(nrnr / 2), ir(nmr / 2)DIM rx(nmr), ix(nmr) , p(nmr), f{nmr), pot(nmr), fas(nmr)
ff*".
REM OBTENCIÓN DE MUESTRASinicio:INPUT "frecuencia fundamental"; frt = TIMER: tO =: t'LPRINT "Frecuencia de la fundamental-",- f r;LPRINT "tiempo de muestreo"; 1 / 60 / nmr;FOR i = 1 TO nmr
tiempo = (i + 1) / 60 / nmral = 100 * SQR(2) * COS(2 * pi * fra2 = 50! * SQR(2) * COS(2 * pi * 2 *a3 = 20 * SQR(2) * COS(2 * pí * 3 *a20 = 7 * COS(2 * pi * 20 * fr«30 = 3' * COS{2 * pi * 30 * frrx(i) = al + a2 + a3ix(i) =; O
1 print rx(i),NEXT i1 print
PRINT "obtención de muestras:t = TIMER
REM
fijo"
tiempo)* fr * tiempo)* fr * tiempo)
tiempo + pi / 3)tiempo + pi / 4)
JGi"; TIMER - t; tiempo total=B; TIMER - tO
^
nm = nmr./ 2 - 1ind = n: ictl =10: Nd = O: 1 = 0FOR fc = 1 TO nm;
nmc = niii + 1 - k: idiv = nmcDO ;
idiv = INT(idiv / 2): a(ind) = nmc - idiv * 2,nmc = idiv: ind ~ ind - 1: Nd - Nd + 1
LOOP UNTIL idiv < 2a(ind) = idivIF ictl'O 1 THEN ictl = 1: ninf = n - Nd: iexpa = Ndiexp = iexpa: 1 = 1 + 1 : ndec(1) = OFOR jj = ninf TO n
j = n + ninf - jjndec(l) = ndec(l) •+• a(j) * 2 A iexpiexp = iexp - 1
NEXT jjFOR i = ninf TO n: a (i) = O: NEXT iind = n
NEXT knm = nm + 1: ndec(l + 1) = oFOR kc = 1 TO nm
kd = nm ;- kc + 1: ndecor(kc) ~ ndec(kd)1 print ndecor(kc),
** 1M iJ «
NEXT kc1 prinb
PRINT "obtención de <k>: tiempo=H; TIMER - t; " biempo bobal="? TIMER - tOt = TIMER
REK OBTENCIÓN DE WA<K>
rbase = COS(2 * pi / nmr) : ibase = ••SjTÍ(2 * pi / nmr)FOR i = 1 TO nm
fx = ndecor(i); rr - 1: ir - OIF fx <> O THEN
FOR j = 1 TO fxrt = re * rbase - ir * ibaseir = rr * ibase + ir * rbaserr = rt
NEXT jEND IFrr(l) = rr: ir(i) s ir
' print H(:"; rr; ", " / ir; ")",NEXT i'prinb
PRINT "obbencion de W<k>: biempo="; TIMER - b; " biempo botal=",- TIMER - bOb = TIMER
REM OBTENCIÓN DE <K> ORDENADOS PARA ESPECTROS
FOR i = 1 TO nm: ndecor(i) = ndecor(i) * 2; nx(i) = ndecor(i): NEXT iFOR i = 1 TO nm: ndecor(i) = ndecor(i) + 1; nx(i + nm) = ndecor(i): NEXT iFOR i = 1 TO nmr
IF nx(Í) > nm THEN nx(i) ~ nx(i) - nm ELSE nx(i) = nx(i) + nm' prinb nx(i),HEXT i'prinb
PRINT "obbencion de <k> ordenados: tioii po='V; TIMER - b; " biempo tobal="; TIMER - bOb'= TIMER .
REM **** + * + »r*****-*»**-***-*' + *' + **A*********-lr**
REM CALCULO DE ESPECTROS DE POTENCIA Y FASE
k = nmr / 2: ngrupo = 1FOR kiber = 1 TO n
j = OFOR kngrup = 1 TO ngrupo
i = jFOR knsy = 1 TO k
i = l + l : J = l + ksum = rr(kngrup) * ix(j) + ir(kngrup) * rx(^)dif = rr(kngrup) * rx(j) - irr(kngrup) * ix(j)rx(j) = rx(i) - dif: ix(j) = ix(í) - sumix(ij = ixíi) H- sum: rx(i) = rx{i) + dif
NEXT knsyNEXT kngrupngrupo = 2 * ngrupo: k = k / 2
NEXT kiberpmax = OFOR i = 1 TO nmr
. rx (i) = rx ( i) / nm: ix { i) = ix ( i) / nmP(i) = SQR(rx(i) ^ 2 + ix(i) rt 2)IF rx(i) = O THEN
f(i) = o ; ... ,ELSEIF rx(i) > O THEN
•f(i) = TVTN(ixti) / rx(ii) * 180 / piELSEf(l) = ATN(ix(Í) / rx(i)) * 180 / pi + 180
END IFIF p(i) > pmax THEN pmax = p(i)
NEXT i
PRINT "calculo de especbros: biempo=FI; TIMER - b; " biempo bobal=B; TIMER - bOb = TIMER
REM ORDENAMIENTO DE LOS ESPECTROS
Top Related