152433 - 148.206.53.84148.206.53.84/tesiuami/uam7666.pdf · proyecto terminal de ingenieria...

131
152433 UNIVERSIDAD AUTONOMA METROPOLITANA IZTAPALAPA iII Clr4 ,.I PROYECTO TERMINAL DE INGENIERIA ELETRONICA ASESORES: ING. ORTIZ BALBUENA LAURA E. ING. MARTINEZ GONZALEZ ALEJANDRO ALUMNOS: L E O N FRANCISCO MEJIA OSORIO APOLINAR PEREZ GONZALEZ CANDID0

Upload: dinhduong

Post on 21-Oct-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

152433

U N I V E R S I D A D A U T O N O M A M E T R O P O L I T A N A

I Z T A P A L A P A iII

Clr4 ,.I

P R O Y E C T O T E R M I N A L

D E

I N G E N I E R I A E L E T R O N I C A

A S E S O R E S :

I N G . O R T I Z B A L B U E N A L A U R A E.

I N G . M A R T I N E Z G O N Z A L E Z A L E J A N D R O

A L U M N O S :

L E O N F R A N C I S C O

M E J I A O S O R I O A P O L I N A R

P E R E Z G O N Z A L E Z C A N D I D 0

Page 2: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

,

EST AClON h

METEOROLOGICA

REMOTA 9

Page 3: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

,

PREFACIO

Es ampliamente conocido que el clima de una ragic5n en el mundo %está determinado por su ubicacidn geográfica, y para poder bonocerlo es wcesario hacer un estudio del estado del tiempo.

y;, También se sabe qua? las distintas +ormas de vida, y las dcaracterlreticas de los individuos de una misma especie, estan determinadas por las condiciones climatol6gica~ en las que se desenvuelven. El clima está determinado por distintos *actores, y el

conocimiento de mstos es de gran utilidad en distintas ramas de la actividad humana, asimismo el conocer la variacibn de estos factores reporta un enorme bene+icio para una mcojor plrneación y

realizaci6n de las tareas humanas.

Por otro ledo, en lw últimos &os la actividad industrial, la explosi6n demográ+ica, y la sobreexplotacidn de los recursos naturales ha provocado cierta alteración en el clima de algunas regiones del mundo, lo cUal ha ocasionado la desaparici6n de varias especies de flora y + a m a de muchos lugares en el mundo; de ahi la importancia de conocer el comportamiento de los distintos +actores climatol6gicor. Aigirnos de los d&os más notables que el desarrollo industrial

ha provocado son por ejemplos el calentamiento del planeta, y la destrucción de la capa da ozono, los cuáles han tenido distintos efectos que harta el momento todavia no se han podido establecer o no se han dado a conocer adecuadamente a la opinión pQblica debido a que, desafortunadamente existen +uerter intereses que impiden que se modiFiquen algunas politicas de desarrollo industrial, y atenuar con ello el daño que se hace al medio ambiente. EL conocer los cambios clinatolbgicos, sus causas y e+ectos

puede llevar al ser humano a sew conciente del daRo que sus actividades hacen al planeta y buscar alternativas para llevar a cabo estas actividadms sin poner en peligro l a existencia de la amplia diversidad de ecosirtemair con los que se cuenta en la actualidad.

Page 4: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

3

1M)ICE

INTRODUCCION .................................................. NOCIONES DE METEOROLOGICI ...................................... 5

ANTECEDENTES .................................................. 7

SISTEW PIETEOROLOGICO Y Sü P.ISM. ........................... 9

ESTACION METEOROLOGICEI ........................................ 10

DESCRIPCION DEZ LA ESTACION METEüROLMjICCI REMOTA ............... 1 1

DESCRIPCION DEL CIRCUITO ELECTRIC0 ............................. 15

MCIPEO DE PERIFERICOS.. ........................................ 16

DIAGRAMA ELECTRIC0 ............................................ 17

MODO DE MANEJO DE LA ESTACION RUYJOTA.=.. ...................... 18

DESCRIPCION DE LECTURA DE PARAMETROS .......................... 22

FORMATO DE CSLMAC€NWIENTO DE DCITffi ............................ 24

DEFINICION DEL PROTOCOLO Y ALGORITMO DE COMWJICKION .......... 28 FORMATO DE DATOS TR.SMITIM3S ................................. 30

ALGORITMO GENERAL DEL AUTOMATA DE LA ESTACION REMOTA .......... 32

ALGORITMO GENERCIL DEL AUTOPÍfiTC1 DE LA ESTACION CENTRAL ......... 34

CONCLUSIONES .................................................. 35

1

..

Page 5: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

-.... ....... ...-.-. ..

BIBLIOGRAFI. .................................................. 37

AFENDICE A

AUTOMATA DE LA ESTACION REMOTA .......................... 38

APENDICE B AUTOMATA DE LA ESTACION CENTR.L ......................... 110

2

Page 6: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

INTROOUCCION

A traviés de l a obtención de in-formación climatol6gica y e l

procesamiento de Bsta, es posible obtener beneficios para el m e j o r

aprovechamiento de l os recursos naturales.

Algunos de l o s bene-ficios que e l estudio del clima puede

proporcionar sonr

1 ) Obtención de in+ormción con f ines aeronAuticos.

2) Busqueda de -fuentes de energía alternativas.

3 ) Plani f icac i6n del crecimiento urbano.

4) Previsihn dm desastres naturales.

5 ) Obtención de mejores cosechas-

etc - E l clima está &terminado por d i s t i n tos Cactorer entre los

cuáles podemos mencionar los riquientesr

- Precipitación p luv ia l .

- Direcci6n y velocidad del viento.

- Presión atmósÍerica.

- Temperatura.

- Humedad.

- Radiación solar.

- Movimientos t r lú r i cos .

- etc.

Para l l eva r a cabo e l estudio #el clima y determinarlo en una

regi6n en especial es necesario recabar periódicamente in+ormaci6n

de l o s diversos +actores que comforman a éste, y de esta +orma

podar determinar de que manera estos re ven a-factados por toda l a

gama de tarear qua rea l i za e1 %er humano y la Í o r m r en que &&os

cambios pueden revert i reele.

Debido a que las condiciones climatol6gicas cambian

aleatoriamentr se ha buscado una +orma de cuantiFicar los cambios

de lor Factores climrtolbgicos.

Tal .Forma es Ir lectura periódica de estor .Factores en intervalos de tiempo, adecuados al cambio de cada uno de estos f ac t ores -

3

Page 7: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

En este trabajo se desarrolla únicamente una parte do lo que será una estación remota de la estación meteorológica, dicha parte esta constituida por los #16?meotoa necesarios para la medición de

los siguientes .Factores climatol6gicos.

1 ) Velocidad del viento (Km/h).

2) DirecciCln de viento (grados norte). 3) Precipitación pluvial (mililitros/dia) .

4

. . .L .LI ." , , . . . , ,

Page 8: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

NOCIONES DE METEOROLOGIA

Meteorología es la ciencia que estudia los fenómenos que ocurren en la atesfera, tales como viento, pracipitaci6n pluvial, temperatura, etc. El comportamiento de tales +enómenoo determina el clima de las diversas zonas terrestres. La meteorología se auxilia de lar leyes termodinámicas debido a qua la atmc5Bfera es una mezcla de gases, donde la intsrrelación de presión, temperatura y volúmrn siguen dichas leyes. Tambibn esta relacionada con la geograffa debido a que la latitud, la longitud y topografía afectan las caracteríf&ticarP y distribucibn de los elementos meteorol4gicos sobre la super+icie terrestre.

La circulación general de la atmósfera está directamente relacionada con le distribución promedio de presión ateosferica sobre la superficie terrertra. Extendimndose alrededor de la tierra, en el ecuador se tiene una

franja de relativrmante baja presión, conocida como zona da calmas ecuatoriales, donde el aire calentado por la accidn directa de los rayos solares se expande y eleva. Es una región caliente, Wmedo, CKLbeCS, vi entos 1 igeraarente variables, precipitaciones, etc. Cerca de los 30° latitud norte y

localiza una franja de alta prrsibn. Estas son regiones seco descendente, sin nubes, vientos variables precipitación. En estas latitudes se encuentran la5 regiones dedrticas de la tierra. Hacia los polos cerca de los 60" latitud norte y

de aire altas

sur se

de aire y baja grandes

sur se localizan las .Franja6 de baja presión, clima variable y

prec ip i tac ió n moderada. Finalmente, Ben losi casqueteda polares, de relativa alta presión,

el aire seco y frio desciende, y la precipitación es baja. La dirección prevaleciente de los vientos, sobre la supeficie

terrestre, va de lea zonas de alta presión hacia las zonas de baja presión. Los vientos no soplan directamente de norte o sur hacia las zonas de baja presión debido a que su.frsan una deflexi6n originada por la rotación distribución de presiones

de tierra. Un modelo idealizado de la y la circulación general de los vientos

5

Page 9: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

se muestra en el cuadro siguiente:

VIENTO

Polares del este Dominantes del oeste Alisios del noreste Ecuador Alisios del sureste Dominantes del oeste Polares del oeste

PRES I ON Zona de alta presi6n Zona de baja presión Zona de alta presión Zona de calmas ecuatoriales Zona de alta prerián Zona de baja presidn Zona de alta presión

El sistema general de los vientos re modifica considerablemente por variaciones dm temperatura y preri6n sobre las áreas de agua y tierra. La distribuci6n de las masas da tierra y agua origina que las

zonas tbricamente uni#ori#es en cuanto a presión se alteren formando centros da alta y baja presi6n, &%to es el resultado de lar diferencias de los calores especí+icos, reflectividad y propiedades mixtas del agua y de la tierra, y de la existencia de barreras a l flujo de aire.

6

Page 10: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

ANTECEDENTES

Desde mediados del siglo pasado en México se inició el registro sistemAtico de in+ormaci6n mateorol6gica. En 1917 se cre6 el Bervicio Meteorológico Nacional como la dependencia responsable de captar, procesar, y difundir la informaci6n metaorol6gica y cl imatolc5gica. Actualmente la Comisión Nacional del Agua es la dependencia del

gobierno federal encargada de proporcionar el servicio pirblico de in+ormaci6n metereológica, climatolc5gica e hidrol6gica en todas las rscalrr espaciales y temporales qua sea posible obtener con la tecnología disponible. Asimismo la CNCI tiene la responsabilidad de operar lass presas para e1 control de avenidas e intervenir dentro del Sistema Nacional de Protección Civil, en auxilio de la poblaci6n en situaciones dm emergencia Por fenómenos

hidrometeorol6gicos. En su estructura interna la CNA cuenta con el SMN encargado de

l a in+ormaci6n mrteorol6gica y climatológica y con l a gerencia de aguas superf-iciales, unidad responsable de la información hidrol6gica y de la operacic5n de presas durante la ocurrencia de avenidas. Hacia 1981 la cobertura y el estado dm las instalacionm y redes

de obrervaci6n naetrorolbgicas, clinatol6gica e hidrológica eran consideradas adecuadas aún cuando todos los equipos eran de tipo convencional .

c1 partir de 1982 a consecuencia de la reducci6n del presupuesto que afecta a1 rector pablico l a estructura de obrervaci6n meteorológica, climatol6gica e hidrol6gica del país además de su.frir de un constante deterioro, impidió la incorporaci6n de equipo moderno. Como producto de Brte proceso, el sistema damuestra deficiencias en IOU operacibn, obsolrcencia en sus equipos á) instrumentos, y en general +alta de mantenimiento operativo y correctivo.

Page 11: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Para dar cumplimiento a las funciones que en materia met~~orol6gica, hidrol6gica y de mantenimiento de avenidas se han asignado a la CNA, es necesario que ésta cuente con equipos que le permitan generar, procesar y analizar informaci6n de manera oportuna y confiable. Los enorR)ipñs dpños potenciales en bienes materiales, perdidas de vidas humanas que PQ pueden prevenir mediante la correcta operaci6n de la in-formaci6n y el alertamiento oportuno sobre los hn6menoss extraordinarios, justifican ampliamente los es+uerzos que se hagan para nrojorar y ampliar la información mhteorol6gica e, hi drol6g ica. Notables son lor avances que se han tenido en los sistemas de

captura, tranemisi6n, procPsamiento y difuribn de la in+ormación meteorol6gica e hidrol6gica; sin embargo en nuestro país se ha

visto limitada la incorporaci6n de estos avances en los procedimientos que actualmente se desarrollan, por ello, es

indispensable llevar adelante un proceso de modernización y rmpliacibn del Servicio Meteorol6gico Nacional de las diferentes redes de obsrrvacidn con que actualmente se cuenta.

Page 12: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

SISTEMA METEREOLOGICO Y SU PANORAMA

Un sistema meteorológico se configura en tres nivelms básicos

que siguen un proceso secuencia1 de adquisición, procesamiento y

presentación de datos meteorológicos.

El primer n i ve l esta Cormado por los equipos de

campo, const i tu idos por8 sensores y equipos de te le t rasnnis i6n .

SENSORES Y EQIPOS DE TELETRANSMISION.

Mediante estos mquipos sm p r o o d r a la adquisici6n de datos a

t r a vé s de los di+erenters sensores ins ta lados pa ra ta l efecto. Los

equipos de transrmisi6n es tán compuestos por la5 s igu ientes

unidades:

Unidad de alimentación.

Modem dm transmisión.

Unidad informática.

Unidad de adquisición de datos.

La +uncic5n de éstas unidades es l a concentraci6n de los datos y

la teletranssmisión a la unidad cent ra l der1 sistema para su procesamiento, l o que constituye las funciones de l segundo n ive l .

La unidad cent ra l de l sistema integrado esta compuesta por una

unidad informática basada en un ordenador, siendo su m i s i ó n el

procesamiento da los datos adquiridos, mediante la unidad de

adquisición de datos.

La información procesada en la unidad cent ra l de l sistema, se

t r a n s f i e r e a travu)s de las unidadas secundarias de presentación de

datos a los centros de inCormrci6n meteorol6gica tales como l a

torre da contro l , observatorios , compaEfas &reas, centros de

control por radar y centros pQb l i co r de inFormación

meteorol6qica, que globalmente farman el tercer n ive l del sistema.

9

. ".Y

Page 13: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

ESTACION MET€REOLOGICA

En cada estaci6n ineteorológica, a horas +ijadas por convenios internacionales, se hacen mediciones y cálculos para las condiciones locales del tiempo. Una ertaci6n moderna esta equipada para esta tarea; realmente es

sorprendente los pocos cambios que se han e-fectuado en el instrumental con que cuenta una estación meteorologica; el barc5mett-o, el pluviómetro, el higrónetro, el anemómetro, la veleta y , el termómetro no han perdido nada der su antigua importancia y

los avincei verdaderamente revolucionarios en la observación meteorolc5gica se deben principalmente a que las prácticas de observación y tecnología actuales permiten elevar estos

instrumentos a cualquier nivel de la atmós+era y a los avanzados sistemas con que cuentan para transmitir la in-formacion que recaban a la tierra. El radar es otro instrumento de gran utilidad en la meteorología

debido a que cuando un hat de ondas es emitido por el aparato estas rebotan en las mo14culas de agua que 4 p ~ encuentran en las nubes y esto produce en la pantalla de radar una imagen de extrordinaria nitidez; de a5ta -forma se puede apreciar l a forma de las nu- y la cantidad de hunrírdad que llevan. Por otra parte el radar permite seguir la trayectoria de huracanes y ciclones y con ello prevenir a l a poblacibn que se encuentran en peligro de vet-se

aqectadas por estos qenórnenos. Todo pronóstico del tiempo es el resultado del trabajo y de la

experiencia de muchas personas; 10% observadores que registran las condiciones locales, los cientí+icos cuyas investigaciones ayudan a descubrir las normas generales de la circulación de1 aire en l a

atmós+era, los que aplican esas normas al tiempo de cualquier día

y localidad dceterninador para obtener un cuadro comprensible del estado áel tiempo.

Page 14: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

DESCRIPCION DE LA ESTACION METEREOLOOICA REMOTA

Teniendo en mente los conocimientos basicos procedemos a dar una descripción que pasará de lo general a lo particular, sobre el

trabajo desarrollado en lo que será una parte de la estaci6n metereológica remota8 en adelante nos re+eriremos a esta como estación rshmota. Esta estaci6n remota está di-ada para obtener, procesar y

desplegar l a in+ormación obtenida de los distintos intrumentos que .

se utilizan para hacer la adquisici6n áe datos, de los parámetros, que abarca esta trabajo y los cuales son P

a) Velocidad y dirección del viento. b) Cantidad acumulada de lluvia al día.

Esta estación consta de tres unidades: 1 , - Unidad de Procesamiento. 2.- Unidad de Entradidsalida. 3.- Unidad de Interface.

UNIDQD DE PROCESCIMIENTO. Conformada por una tarjeta madre der una PC 100X compatible. La

tarjeta madre puedo ser una 80x86 compatible con IBM. Esta es controlada por un autómata escrito en lenguaje de programaci6n Turbo Pascal versiun 7.0; esto bajo l a plata+orma del sistema operativo flS-DOS.

Da esta tarjeta se ocupan SUI ranuras de expansión para conexi6n de la unidad dcs interface y tarjeta especial para eel manejo da l a

unidad de almacenamiento y de la comunicación serial.

UNIDAD DE ENTRADA/SALIDA Con+ormada por el conjunto de dispositivos de entrada y salida

los cuales son : Teclado (de membrana de matriz 4 x 4) , display (LCD AND-4911, unidad de impresión, unidad de almacenamiento (disco duro, óptico o flrxiblr), sentiorhs (veleta, anemómetro, pluviómetro), y comunicaci6n serial. Cabe hacer mención que la unidad de almacenamiento, der impresión, al igual que l a

comunicaci6n serial serán controladas por la unidad de

1 1

,.".. , , . , . ' .1 . ,I,..- -. . , .. . .

Page 15: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

procesamiento (tarjeta madre e n unidn con l a tarjeta

multifunciones); los demás dispositivos mencionados serán

manejados, por medio de la unidad de interr.Face que rids adelante se

describe . E l objetivo de cada uno de estos dispositivos es:

Teclado: Dispositivo der entrada, cuya Cunción es proporcionar

l a capacidad de manejo manual de l a ertaci6n remota. E s t e es un

teclado de membrana de matriz 4 x 4.

Display LCDi Dispositivo dea sal ida que proporciona in-fomacidn

visua1,en este se dsnpliega l a información cJm los datos recabados

por la estaci6n remotas además hace un desplegado de varios memfs

con las opciones disponibles a ejecutarse.

Unidad de i~ipresiónr Esta unidad consta de una impresora, en

esta se imprime l a in+ormación recabada cada intervalo de tiempo

especi+icado en el menfi der impresidn.

Unidad de almacenamientor Con-formada por un disco .Flexible en e l

cual se almacenan los datos que 5e recaban cada hora.

Senrorer: Estos tienen l a .Finalidad de detectar los factores

climatológicos y mandar las sañales correspondientes para d e s p b s

codi+icarlrs y aal obtener l a in.Formación que se requiere.

Comunicaci6n ser ia l : Comprende l a comunicación que se realiza por

medio del puerto serie, el objetivo de esta comunicación es l a de

mandar toda l a in-formeción recabada por l a estrcibn remota a la

estaci6n central.

UNIDAD DE INTERFACE.

E l objetivo de ante trabajo es principalmente el d i s e o y manejo

de esta unidad, a l igual que l a unidad dm Entrada/Salida que se

trata más adelante.

Unidad constituida por una tarjeta, disceñadr especialmente para

l a obtención y desplegado de datos obtenidos, además del manejo de

l a estación remota. Debe ser capar de brindarle a l a unidad de

procesamiento el enlace con io5 dispositivo de Entrada/Salida.

12

Page 16: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Para la habilitaci6n de esta unidad cie utilizan 4 circuitos de comparación (74LS85) teniendo como entradas de comparacibn las direcciones que van desde A19 hasta A4, de esta +orma se esta mapeando el puerto de tarjeta prototipo (300-3lF); que junto con las direcciones AS y A 2 hacen referencia a cada chip de la misma tarjeta; A l y A0 se conectan directamente a las terminales de los chips que los requieren .. Se utiliza el PPI1 (Programmable Peripheral Inter-face 8255) para

controlar el display LCD (Liquid Crystal Display AND-491); de este PPI estamos tomando el puerto A , para leer y escribir al LCD datos o comandos; y del puerto B se toman lar sQñalea de control para el LCD. La utilización de este PPI pie incorpot-6 para evitar problemas de velocidad entre el LCD y la unidad de procesamiento. Para controlar el teclado de membrana de matriz de 4 x 4 se

utiliza el PPI2, del cuál se toma el puerto C por sus cualidades que presenta, ya qua puede ser con#igurado como dos puertos independientes de un nibble (4 bits) cada uno. Los bits del nibble más bajo (salida) +ueron conectados a las terminales de las columnas del teclado mientras las terminales de los renglones se conactar6n al nible lnar alto (entrada). El &digo que se genera

muestra a continuación : TECLA

O

i 2

b 4

3

6

7

e 9

A

1)

C D E P

al pulsar cada una de las teclas se

COD160 (hexadecimal) 77

78 7D 78 E7 BR ED BE D7 DR DD DE E7 ID ED EE

1 3

Page 17: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

En la lectura de la sefhl de la, direcci6n del viento se ocupa el puerto A del PPI2 para leer el código Gray que proviene de l a

veleta.

Para l a lectura de la velocidad del viento se cuenta con un PIT (Programmable Interval Timer 84CS41, del cual 4ie utiliza el contador cero para contar los pulsos provenientes del anembmetro durante un intervalo de 100irre; la cuenta de el total de pulsos durante el intervalo cirerncionaáo nopi dg la vlclocidrd del viento en Km/Hr . Se utiliza el contador uno del PIT para llevar la cuenta de los

pulsos provenientes del pluvi6metro por diay; la cuenta nos dá la cantidad dQ lluvia acumulada al &a.

UNIDAD DE ENTRADAISALIDA Conformada por el conjunto de dispositivos de entrada y salida

los CUple5 son o Teclado de membrana de matriz 4 x 4 display LCD

AND-491, de almacenamiento (disco .Flexible, disco 6ptico o disco duro) sensores (veleta, rnembmetro, pluvi6agtro), comunicacibn serial. Cabe hacer mencidm que el dispositivo di, almacenamiento al igual que la comunicacidn 5er-12~1 r)o serfin wanhjacbo por la unidad da interface ya antes mencionada; sino que Bstas son manejadas por

la5 tarjetas especializadas para tal f i n .

Page 18: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

DESCRIPCION DEL CIRCUITO ELECTRIC0

Cada comparador consta de cuatro entradas, para e l primero se comparan las direcciones A19,Al8,Al7 y 416 ; en e l segundo se hace

l a mismo con A15, A14, A13 y A12; con e l tercero tomamos A l l , A10,

A9 y A85 y para e l Ql t imo se toma A7, Ab, A 5 y A4 ;estas

direcciones se comparan con valores predeterminados de tal +orma

que se cubra e l rango de direcciones de 0300h a 031Fh. Cuando una

dirección caé dentro de este rango, en l a sa l ida de io5

comparadores se presenta un uno lógico; este uno lógico junto con l as direcciones A3 y A2 permiten direccionar l o r dos PPI y e l

Timer, A l y CIO se! conectan directamente a l T imer y a los PPI. De l a unidad de procesamiento sa estan tomando las señales de

IORD,IOWR y RESET para lore PPI conectados a sus entradas de RD, WR

y RESET respectivamente. Para e l T i m e r solamente se toman e l RD y

e l WR. E l PPIl es configurado conforme, a los requerimientos del

aut6mata. €1 PPI2 t iene e l puerto A como salida, el puerto C como

como entrada ysal ida y e l puerto B como salida.

E l contador cero y uno del Timer están configurados en e l modo

cero.

E l puerto A del PPIl se conecta a l bus de datos del display LCD , y las s&aleas de control de 6ste se, conmctan a1 puerto E.

DISPOSITIVOS UTILIZADOS. 4 Comparadores 7485. 2 PPI 82C55. 1 P I T 82C54. 1 Display LCD. 1 Teclado de membrana de matrix de 4 x 4. 1 Compuerta NAND 7420. 1 Compuerta Mil 7410. 1 Compuerta OR 7432. 4 Resistencias de 1OK. 1 POT de 20K.

Page 19: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

MAPEO DE PERlFERICOS

A19 A18 A17 Al6 A15 A14 A13 A12 Ail A10 A9 A8 A7 A6 A5 A4 1

A3 A2 Al A0

Notat En la arquitectura de las PC, X T y AT, el bur de

direcciones utiliza cuatro bytes para direccionar puertos I/O,

centre el rango dm OOOOh a FFFFh. Sin embargo en el proyecto desarrollado se tuvieron que utilizar las 20 direcciones del sistema. El mapeo se realiza sobre el espacio asignado a la tarjeta prototipo (00300h a 0031Fh).

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1

82C54

TIHER

,, . .- . ..~ . . . ". - "l"__^ . , . ..

1

t

82C55

PPI

1

I L

a 2 c x 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

0 0 0 0 0 0 0 0 0 0 l l 0 O 0 PPI

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 l

0 O 0 O O 0 0 0 0 0 l l O O Q O O l l Q

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1

4

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 3 0

o / 1 0 0 11

0 1 2 I

O ! 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 ~

J O 1

Page 20: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

. .- . . _.. ..

-.._

, .

. ._

? I

I ,

I

t ~ .. ...

Page 21: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

MOM) DE MANEJO DE LA ESTACION REMOTA

Una vez ensambladas las tres unidades que constituyen la estación remota, se procede a ejecutar el autómata. Este autómata controla el Funcionamiento de nuestra estación

remota, se activa cuando se inicializa el sistema, ya que este se

invoca dentro del archivo de tratamiento por lotes AUTOEXEC-BAT; el archivo AUTOEXEC.BAT s l ~ ejecuta chs manera automática a1

iniciar el +uncionamiento d e 1 sistema. Una vez iniciado el autbmata se observe en el display (LCD) la

+echa y hora del sistema en tiempo real adeniás de un m e d da opciones. Las opciones de dicho menú sons OPCION Viento. Lluvia.

Presión AtmosMrica Humedad. Radiac ió n. Temperatura Puerto Serie Impresora Actualizar Fecha y Hora

Bajar M n a Subir Menú

ESTADO (Activada) . (Activada). (Desactivada). (Desactivada) . filcppactivada). (Desact ivada) . (Activada) . (Uctivada). (Activada).

(Activada). (Pictivada) .

TECLA DE ACTIVACION o 1

Para accesar cualquier opción &lo es necesario pulsar l a tecla correspondiente de1 tmclada de la cestaci6n remota. A continuaci6n se demcriben cada una de las opciones que están

activadas. V I ENTO :

Aparecen los datos de velocidad y dirección del viento en tiempo real, junto con ellos el mensaje de salir de esta opción. Ejemplor

Velocidad : 10Km/Hr. Dir: 18WN- F) SALIR.

18

Page 22: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

LLUVICI:

Aparece la cantidad de lluvia (ml) acumulada en el transcurso del día, tambign el mensaje de salir.

Ejemplo: DATOS DE LA LLUVIA. Cantidad : 20 ml. F) SALIR.

PUERTO SERIE: Un menú aparece con varias opciones da velocidad i(bps) para l a

trasnrniri6n del puerto serie las cuales song

1) 150

3 ) 600

5 ) 2400

7) 9#0

Además der l a opci6n de salir F) SALIR . Este menú parmanece activo durante 30 segundos o

seleccionar una opci6n. Un segundo mnCr aparece, en caso de seleccionar una

di-ferente de SALIR. Este nos permite seleccionar el puerto y nos indica el puerto serie actual:

Formato: Pto, serie actual: COn2.

1 ) cmi. 2 ) cm2. F) SALIR.

La opción SALIR inicializa el puerto serie con el actual .

Este menú permanece activo durante 1 5 segundos 0

seleccionar una opción. Una vez terminada esta opci6n regresa al memh principal.

hasta

opción serie,

puerto

hasta

19

, . .. . .... ,.'..l__. -.-. a .."I - ".

Page 23: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

IMPRESORCI: Opción que realiza la impresibn de los datos de la lluvia y el

viento en tiempo real. La impresión 5e realiza de acuerdo al intervalo de tiempo de la opción elegida del siquiente menir:

1 ) 20 sag. 0 ) 10 seg.

2 ) 30 Seg. 3 ) 40 seq.

5 ) 1 Min. 4) 50 scag.

6 ) 2 Min. 7 ) 3 Min. 8 ) 4 Min. 9) 5 Min. A) Termina Impresión F) Salir

Este mnú solo dura 30 segundos mientras no se pulse la tecla de alguna opcidn ; si esto no sucede regresa al m e M principal.

CICTUALIZAR FECW Y HORA:

Pide al usuario la +echa y la hora bajo los siguientes formatos: Para la +echa aparece la siguiente linea:

Fsc ha ( dd-mm-araa 1

En la siguiente linea 65 esperada la fecha; la cual puede ser introducida por medio del teclado si se quiere modificar, o en 5u defacto pulsar la tecla F si no se quiere modi+icar. Una vez puesta la +echa a modi+icar se debe pulsar la tecla F para que esta sea aceptada. En caso de teclear una +echa erronea y pulsar la tecla F, &Sta no será aceptada y volverá a ser desplegado el mensaje de petición de fecha. Si se desea borrar el caracter izquierdo inmediato, de l a fecha escrita se puede pulsar la tecla B. Lo siquiente es un ejemplo de como debe Pier introducida la fec ha : E j emp 1 o P

Fecha ( dd-mm-aaaa ) 12-07-1994 pulsar F.

20

Page 24: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Para l a hora aparece la siguiente linea:

Horathh-am-ss)

En l a siguiente linea se espera l a hora, l a cual puede ser

introducida de manera similar a l a fecha.

Lo siguiente es un ejemplo de como debe ser introducida l a

hora:

E j emp 1 o: Hora (hh-aun-ss)

16-30-10 pulsar F.

Nota: E l guic5n se ascribe a l pulsar l a tecla c\.

21

" 5-. .*&.*-* . ". . . ". ,. '. _*." ....__.. ""_ . ,< ._. - , , _ ._ . . .. , .

Page 25: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

DESCRIPCION DE LECTURA DE PARAMETROS

=digo Gray

DIRECCION DEL VIENTO La veleta nos proporciona bytes en paralelo los que se reciben

en el puerto A del PPI2. Estos bytes tienen el +ormato de código Gray. Cada byte tiene BU equivalente decimal (grados)con+orme se muestra en la siguientetabla.

Equiv. Decimal

TCIBLA DEL CODIGO GRAY UTILIZfiDO

0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 o 0 0 1 1 1 1 1

138 132 120 126

O 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 o 0 1 1 1 0 0 0 o 0 1 1 1 0 0 1 276

Page 26: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

VELOCIDCID DEL VIENTO

El anmnómetro nos proporciona una serie de pulsos durante

intervalos de 100 milisegundos. El riiramro de pulsos en dicho intervalo nos dá la velocidad del viento en Km/Hr. Para realizar l a cuenta hacernos uso der1 contador cero, del timer

utilizado en el sistema implementado.

CCINTIDCID DE LLUVIA CSCUMULADCI

El Pluviómetro nos proporciona un pulso cada que st? acumula un mililitro de lluvia, el &mero da estos pulsos es cuantificado por el contador uno del timer del sistema. Al finalizar el día la cantidad de lluvia acumulada es el total dm pulsos cuantificados.

23

Page 27: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

FORMATO DE ALMACENAMIENTO DE DATOS

Los datos obtenidos por l a estaci6n remota son almacenados en

nuestro caso en una unidad de disco Clexible (es -Factible en

posteriores mejoras del sistema u t i l i z a r una unidad de dísco

ópt ico). En este t rabajo como ya sa mencionó anteriormente d l o se

rea l i za la obtencibn de 105 pararnentrooi VIENTO y LLUVIA, por 10

cual sólo se rea l i za e l almacenamiento de estos parámetros.

ALMACENAMIENTO DEL VIENTO:

Los datos del viento que deben ser almacenados son: velocidad,

direccidtn, &o, m e s , &a, hora, minuto y segundo del momento en

que es obtenido e l par&inatro. Estos deben ser obtenidos cada 10

segundos, viendo esta .frecuencia y e l &mero de datos, e l

almacenamiento resu l ta r ía muy costoso desde e l punto de v i s t a

espacio, debido a que habría datos que resul tar ían redundantes,

por ejemplo en l os datos de todo un día, lo% datos, año, mes y día

resultan redundantes; por l o cual se decidió almacenar los datos

en dos archivos independientes pero relacionadcmg en e l primero der

l os cuales re almacenarán loss datos aKo, mes, día y en e l segundo

los datos restantes.

E l primer archivo tendrá como elementos, reg is t ros cuyos campos

son: año, mes, día, i n i y + in# en los campos &o, mes y día se

almacenan e l año, mes, y día actuales; los campos l ' ini ' ' y "+in"

nos áán l a posición de i n i c i o y +in der los datos restantes

(velocidad, dirección, hora, minuto y segundo), de todo un día,

dentro del segundo archivo.

En e l segundo archivo se deben almacenar velocidad, direcciC>n,

hora, minuto y segundo. Estos datos es posible almacrnarlos

ut i l izando 6 bytes (cada dato en un byte a ascepci6n de l a

dirección que u t i l i z a r í a dos); pero se decidió rea l izar una

compactaci6n a estos datos a sólo 4 bytes, ahorrando dos bytes. E l

formato de asta compactación se i l u s t r a a continuación.

24

Page 28: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Se u t i l i z a un WORD (16 b i t s ) para almacenar la velocidad, hora y

segundos. La hora u t i l i z a 5 b i t s (del 0 a l 4); l a velocidad

u t i l i z a los ocho b i t s más s i g n i f i c a t i vo s ; como l a obtencidn de

es tos datos e5 cada 10 segundos y en mult iplos de 10, &lo se almacenan las decenas de segundos, pora l o cual sólo se u t i l i z a n

3 b i t s (de l S al 71, la s igu iente f i g u r a msquermatira el formato

del WORD.

..

V : B i t s ocupados por la velocidad ( va l o r máx. 254).

S c B i t s ocupados por las decenas de srgundoci ( va lo r mAx. 5 ) .

(mult ipl icado por 10 nos dará los segundos).

H : B i t s ocupados por l a hora ( va lo r d x . 23 ) .

Otro WORD se u t i l i z a para almacenar l a d i recc ión y minutos. Los

minuto-s u t i l i z a n 6 b i t s (del O a l 5>, la d i recc ión 10 bits; (del 6

a l 151, l a s i gu i en te . f igura muestra este 9ormato.

D t B i t s ocupados por d i recc ión ( va lo r máx. 354).

M : B i t s ocupados por el minuto (valor máx. 59 ) .

E l segundo archivo entonces e% const i tu ido por r e g i s t r o s los

cua les tendrán dos campos t i p o WORD, con un +ormato igua l a l de

10s WORD 1 y WORD 2 cuyo nombre será VelSgHr y DirMin resprc t i vacnent e.

25

Page 29: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

En seguida se muestra una +igura

ambos archivos.

Día byte

Primer archivo.

Ini F i n byte byte

ppr word byte

30 0 1 6 2 1 b 3 30

1 4 k+l

2

5 15 29

k n

L I

Dato I Dato Dla 30 I Dla 30

w I 1 II

que i lustra l a relaci6n entre

t I I1 II

)I 11

Dla 4 Día 5

Segundo archivo.

VelSgHr DirMin -1 0 1 2 3 4 3 6 7 8 9

10 11 12 13 14 1 s 16 17 1 8 19 20 21 22 23 24 25 26 27 28 29 30

k k+l

I

n n+ 1

Dla 30 Dlai 30 Dla 30 Día 1 M a 1 Día I M a 1 Dla 1 D i d I Dla I Día 1 Dla 1 Dla 1 Dla 1 Día 2 Dla 2 Dla 2 Dla 2 Dla 2 Dla 2 Día 2 Dla 2 Dia 2 Dla 2 Día 2 Dla 2 Día 2 Dla 2 Día 3

. I ' Dla 3 Dla 4

I I .

I -

26

Page 30: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

- .---

La figura anterior muestra la relación entre los archivos en los que se almacenarán los datos correpondientes a l viento. Es

importante decir que es &lo un ejemplo ilustrativo para poder comprender la relación de los archivos y que on la realidad no se dará por que la diferencia entre los campos Ini y Fin de 10s

registros dol primer archivo debe ser de 8640, que es el &mero de veces que e1 sistema obtiene el parámetro viento (esto es muy posible que no lo cumplan los campos del primer registro, " día de arranque " 1 I

Los perlodos der escritura a los archivos ya descritos serán cada hora. En cada cambio de hora !m escribirán 360 registros más al segundo archivo y se actualizarán los campos Ini y Fin del registro actual, en rl primer archivo. En cada cambio der día a d d s de lo anterior se escribe un nuevo registro en el primer archivo con sus campos inicializados de acuerdo al nuevo día.

EILMACENEIMIENTO DE LEI LLUVIEI: El almacenamiento de la lluvia se realiza en un archivo cuyos

elementos serán registros con los siguientes campos: Cantidad (de lluvia en mililitros), año, mes, día, hora, minuto, y segundo. El almacenamiento en este archivo es aleatorio debido a que sólo se realiza en el momento en que se registra algún cambio en la cantidad de lluvia. A1 finalizar el día set escribe un registro con los datos de la lluvia independicntecnentr de si hay cambios en la lluvia o no. La siguiente +igura describer el archivo de almacenamiento de la lluvia.

. . .

27

Page 31: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

DEFINICION DEL PROTOCOLO Y ALof?ITMO DE COMUNICACION

La comunicación entre l a estación central y l a estación remota

se rea l i za por medio del puerto serie. E l objet ivo de esta

comunicaci6n esy e l envio de datos, (del día antcerior y en tiempo

rea l ) de l a estaci6n remota a l a estación central. Para l o cual se

requiere l a der.finici6n de un protocolo y algoritmo de

comunicaci6ny que a continuaci6n procedemos a describir.

ALGORITMO DE COHUNICACION :

1 .- Central transmite su identi f icador.

2 .- Remota transmite su identi-ficador.

3 .- Central transmiter password.

4 .- SI password correcto ENTONCES

Remota Transmite menú.

OTRO

Corta enlace.

5 .- Central transmite opci6n de menú.

6 .- Remota transmite datos de acuerdo a l a opción de menú.

6.1 .- SI opcidn m e n ú = MENU1 ENTONCES

Transmite MENU1.

OTRO

6.2 .- S I opci6n memi = MENU2 ENTONCES

Transmite MENü2.

OTRO

b.3 .- Transmite MENU3.

Nota o MENU1 transmite l os datos acumulador del día anterior.

MENU2 transmite l o s datos en tiempo real.

MENU3 f . inal iza la smsi6n de comunicación.

28

Page 32: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROTOCOLO DE COMUNICCICION :

E l protocolo consiste en enviar bloques de datos, que estarán

consti tuidos por l os 4 campos siguientes:

1.- Cabecera de datos, es decir &digo que indica e l i n i c i o de

datos, que llamaremos ST da^ START).

2.- IdentiFicador de campo, Bste indicará e l t i p o de dato o

comanda que stit está transmitiendo.

3.- Datos, este campo es const i tu ido por 128 bytes a l o más,

donde serán colacardoas loci datas para ser transmitidos.

4.- F i n del bloque de datos, que llamarenos ENTER.

La siguiente Figura i l u s t r a esto.

I ST I I den. de Campo 1 DATOS 1 ENTER 1 1 byte 1 byte 128 bytes 1 byte

E l conjunto de identi f icadores de campo que se usa es:

C X T T x = O0h

CIEC = Olh

CIER = 02h

CPCISSWD= 03h

CMENU = 04h

CMENUl = 0Sh

CMENUZ = Obh

CtlENü3 = 07h

CFIN = 08h

CPASSERR=Wh

TERDCITVm OAh

TERDCITLLZOBh

CELDD = 0Ch

CCIDLL = ODh

CADV = OEh

CLRD = OFh

DATTIRE= 1Oh

DDtALL = llh DDAV = 12h

=digo 88

I 8

81

I 8

I8

88

81

18

SI

8I

81

I8

SI

I 8

In

81

88

88

abortar cualquier t i p o de transmisi6n.

Ident iFicador de Estación Central . I dent i.F icador der Est ac f6 n Remt a . Password . Menfr . Memi 1 . Me-2.

Menú3.

F i n de Enlace.

Password Erroneo.

Terminación de Datos del Viento.

Terminación de Datos der la Lluvia.

Error dr lectura do Datos en Disco.

Ckiarencia de Datos de l a Lluvia.

Ausencia de Datos del Viento.

Central L i s t a para Recepción de Datos.

Datos en Tiempo Real.

Datos del Dla Anterior de l a Lluvia.

Datos del Dla Anterior del Viento.

29

. ., . . . . .~ . .

Page 33: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

FORMATO DE DATOS TRANSMITIDOS

De acuerdo al protocolo establecido los datos, del viento y

lluvia del día anterior serán transmitidos.

TRANSMISION DE DCITOS DEL VIENTO. Como ya vimos, los datos del viento, velocidad, dirección, hora,

minuto y segundo, se encuentran almacenados en forma compactada en registros con dos campos tipo WRD, llamador VelSgHr y DirMin; por lo que lobi campos correspondientes a cada uno de lor registros del día anterior sisarán transmitidos a I s estaci6n central cuando éstos sean requeridor. Depues de transmitir ST y el identiFicador de campo, se procede a transmitir l o s datos; el primer campo en ser transmitido es VelSgHr, se toma el byte menos significativo de este campo y se transmite, seguido del byte más signi+icativo; seguidamente, BP hace lo m i s m o , al transmitir el campo DirMin. Esta operación se repite hasta agotar los datoss cumpliendo con el protocolo de transmisibn de los 128 bytes. La siguiente +igura ilustra la distribuci6n de 10s campos VelSgHr y DirMin en el bloque de 128 bytes.

1 2 3 4 - 1 . 125 126 127 128

(ST(DDCIV( B I A I B I A 1 1 B I CI I B 1 PI I ENTER] I'VelSgHr I DirMinl . I . IVelSgHrl DirMinl

B: Simboliza el byte menos significativo del campo respectivo.

A: SimboLiza eL byte d s significativo deC campo respectivo.

NOTA : No 8iempre el bloque de datos tend& lor 128 bytos.

Como cada registro del viento (almacenado) es da 2 WORD, o sea 4 BYTES, entonces un bloque de datos a lo más contendrá 32 registros de datos del viento del día anterior. Si se tienen almacenados los datos del viento del día anterior en sus 24 horas completas, tendremos 8640 (16 X 60 X 24) registros, por lo que para transmitir los datos del viento del á ía anterior es necesario transmitir 270 bloques de 128 bytes.

30

Page 34: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

TRANSMISION DE DATOS DE L A LLUVIA.

Los datos de la lluvia se encuentran almac@nados en registros con los campos Cant, Cwo, Mes, Día, Hora, Min y Seg. Los campos Cant y Año son transmitidos en dos partes por ocupar dos bytes de

espacio, BU byte menos significativo sera transmitido primero e

inmediatamente d e r p d s el byte más siqnificativog los deinás, que solo ocupan un byte son transimitidos seguidamente comforme fueron mencionados. Esto se repite hasta transmitir el total de registros de lluvia del áía anterior. La tranrmioidn debe de cumplir con la definición de protocolo ya descrito. La siguiente figura muestra la distribución de los canrpos en el bloque de 128 datos.

118 119 120 121 122 123 124 125 126 127 128 I . .

I B l A l B l A l I I I I 1 I 1 ENTER 1 . . I IVmlSgHrl &i o I h BiIDlaI Hrlilinl Sgl

E: SimboLiza OL byte mc.1~11 rignif icativo doL campo rerpoctivo.

A: SimbLiza et byto m a r significativo d d campo respectivo.

NOTA : En oste cam0 sobran aL menos dor byter aL finaL deL

bLoque do it0 bytor debido aL &mero de campos Por

rogirtro <e Campor>.

TRANSMISION DE DATOS TIEMPO REAL: Los parárnetros en tiempo real que son enviados son el viento y

la lluvia; en el momento en que son requeridos por la estaci6n central, estos datos son obtenidos de las terminales de medicibn y enviados. El orden para enviarlos despUes del respectivo ST e

identificador de campo es: byte menos significativo de la cantidad de lluvia seguido del byte más signi+icativo, velocidad del viento (1 byte), byte menos signi+icativo de l a dirección del viento y

+inralmente el byte m&s significativo. Ver la siguiente figura.

1 2 3 4 5

I Cant \Veil Dir I [ ST I DATTIRE I 1 B I A I ENTER I

8: Simboliza eL byte menos mignificativo dot campo rorpectivo. A: simboliza eL byte m h eignificativo d d campo respectivo.

31

Page 35: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

ALGORITMO GENERAL DEL AUTOMATA DE LA ESTAClON REMOTA

COMIENZA

INICIALIZA

REPXTE Pon +echa y hora en el display.

Espera y despliega l a opción de1 memj. Viento.

Lluvia.

Imp resor a . Puerto serie.

HCISTA SIEMPRE.

TERMINA.

Como se observa el programa sa encontrará e n un ciclo infinito.

La +unci6n de cada uno de los puntor se explica a continuación.

Inicialirar

Esta parte del programa realiza l a inicializaci6n de variables

(que serán visibles en lei implemintaci6n de l programa), del puerto

serial de comunicaci6n, de los circuitos per ie r icos utilizados en

l a implementaci6n da l a tarjeta de l a estación remota (LCD,TIMER y

PPI's) I

Pon .Fecha Y Ho ra en el disPlav x

Poner l a +echa y hora actual en el display.

Esvera Y de saliaaa la M) cion del menu : Durante un cierto tiempo a l llegar a esta parte e l programa

espera que sea pulsada una tecla, indicando l a opci6n que soe desea

ejecutar. Además se depliega l a opci6n actual del menú, si es que

l a hay, en caso dm no haberla se despliega el me-.

Viento : Realiza l a obtenci6n de los datos de l parámetro viento cada 10

segundos, almacenandolos en una variable apropiada hasta que hay

32

< < . _ I . . . y , , " . - . ,

Page 36: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

un cambio de hora , con lo cual se procede a guardarlos en la unidad de almccnamiento.

Lluvia s

Verifica si B(B M dado algún cambio en la cantidad de lluvia acumulada en el transcurso del día; en caso de ser asf se procede a registrarlo, guardando la nueva cantidad de lluvia y sus datos de fecha y hora an que se dib.

ImaraPrrora : Una de las opciones del me- es ,a de impresora la cual es

elegida en el punto que carpeora la opci6n del menú3 cuando la opcibn de impresi&n es dada de alta, en este punto se verifica, y se envian 105 datos en tiempo real del viento y la lluvia, de acuerdo a la opción de imprcesibn seleccionada.

Puerto mr ie : En este punto se lleva acabo el protocolo do enlace con la

estación central. Este enlace se realiza verificando el estado y analizando el bu-ffer de comunicación; dicho buffer de comunicaci6n tendrA los datos que llegar611 a través del puerto serie y que le fuerbn asignados por la rutina que realiza el servicio de interrupcibn del puerto serie.

Este algoritmo general se realizó en un lenguaje de alto nivel como es pascal, (TURBO PCISCAL Ver 7 . 0 ) . El &digo del autómata de

la estaci6n remota es pñadido en este reporte, en e1 apendice A.

Page 37: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

ALGORITMO GENERAL DEL AUTOMATA DE LA ESTACION CENTRAL

COMIENZA

Inicíal iza Puerto Serie.

Envía Identificaáor Estación Central.

Espera Identiqicador Estación Remota.

Envf a Pararwor d . Espera =digo Menú.

!3EmZ Pide Opción Med.

Envla Opci6n Med.

Recibe Datos.

TECLCS ESC THEN

SALIDA <--- Verdadero.

HC)FIT/S SALIDA.

Restablece VIctores de Intmrrupción.

TFRM I NA .

34

Page 38: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

CONCLUSIONES

En este trabajo hemos desarrollado una descripción de como +u& implementada una parte de la estación remota. Esta parte incluye solamente la obtención de los par&metros viento y lluvia, La implmmmntación +u& dividida en do5 partes importantes la5

cuales son: 1. D i d o y realización de la tarjeta de interface (Hardware). 2. DisíQño y rmalizacibn del autómata (Software).

El hardware sufrí6 varies modificaciones conforme se 43.16

desarrollando; estas modi+icaciones f;ucrron hatchas con el +in de mejorar su funcionamiento y disminuir su taiRPño.

Inicialmente para medir la velocidad del viento se utilizaron 4

contadores de 4 bits conectados en cascada para implementar un contador de 16 bits, sin embargo, finalmente se utili26 el contador O de un timer. Ds la misma manera para la medici6n del parametro lluvia se utilizó el contador 1 del mismo timer. La dirección del viento en un principio se obtenía leyendola con

un buf.fer (74244); posteriormente, ésta se realizó a traves del puerto A del PP12.

La habilitación escritura y lectura al display se realizaba, conectando directamente las terminales de habilitación (IOW, IOR,

40, A l ) y el bus de datos, de la tarjeta madre a las terminales correspondientes del LCD. La diferencia de velocidad entre el LCD

y la tarjeta madre provocd que el funcionamiento del display no

Cuera el adecuado. Por 10 que se decidió manejar el display a

traves del PPIl; por medio de &&e, 11p fueron enviadas a l LCD las señales de habilitación (Puerto B); los datos a leer y escribir al LCD se enviaron por el puerto A. El Software también su+rió modificaciones conforme el hardware

cambió. En un principio sie realizó l a interface entre pascal y lenguaje

ensamblador, sin embargo las ventajas proporcionadas por turbo pascal versián 7.0, hicieron que la implementación del aut4mata, fuera realizada al loo%, en turbo pascal.

35

Page 39: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Para la verificación de la comunicación serial tuvo que implementarse un autómata de la estación central. Para mejorar la capacidad de almacenamiento del sistema es

#actible utilizar unidades de mayor capacidad, tal como el disco óptíco o disco duro aunque este Qltimo resulta menos económico.

El autómata implementado contempla so10 unidades de impresión de matriz de puntob por lo qua para utilizar otro tipo de impresora es necesario implemsntar nuevas rutinas para este fin. También es .factible utilizar un monitor VGA monocromático en

lugar del LCD utilizado. Esto debido a que la difencia del costo económico, de cada uno de 6stos no es considerable; el utilizar un monitor diaria grander ventajas en comparación con el LCD. Por otro lado si se utiliza un teclado de PC tiene más ventajas

que el teclado utilizado.

Page 40: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

BIBLIOGRAFIA

1. Data Communications Local Area Networks UARTS Handbook, National Semiconductor Corporation, Santa Clara, Cali-Fornia, 1990.

2. System Bios +or IBM PC/XT/CIT Computer and Compatibl~es, Mc Graw Hil1,Englewood Cli-Fs, 1992.

3. O’ Brirn, S., Turbo Pascal Hill, i%xico, D.F., 1993.

4. The TIL Data Book, Texas

Texas, 1976.

7 manual de referencia,

Instruments Incorporated,

Mc Graw

Da1 las,

5. fiND LED and LCD products, William J. Purdy Company, Unites States American, 1987.

6. INTEL Peripherical Components, Intel Corporation, Unites Stater CImQcrican, 1987.

7. M- 1509 Manual de Usuario, Brother Company, 1986,.

Page 41: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

APENDICE A

AUTOMATA DE LA ESTACION REMOTA

Page 42: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

. .-.-

PROGRAM E6tMet; USES crt,dos,CoTiVa,CRAL,EscDSK,LCDTecla,Pantalla,MedParam,Fcha-Hra,

impresor,Serial;

var CAD: stringC2551; c: integer; Sal: Boolean; A: LONGINT;

C VIENTO: Si ya se cumplieron los 10 segundos para la siguiente lectura del viento entonces, lee el viento, guardalo en e1 buffer. En cuanto se detecta cambio de hora del tiempo real se guardan los datos acumulados que se encuen- tran en el BuCfer del viento. CambioDia

1 PROCEDURE VIENTO; VAR Ve 1, Di r , DecSeg : WORD;

LectV iento: BOOLEAN; BEGIN IF CambioHora THEN

GuarDatViento; IniVarPeriodicas; IF CambioDia THEN

VelMaxima:=O; VelMinima:=SFF;

BEG IN

BEGIN

END; END;

DecSeg:= SgLecViento DIV 10; LectViento:= InterDecSeg(SgLecViento,lO); IF LectViento THEN BEG I N Ve 1 oc i da dViento (Ve 1 ) ; IF Vel >= 255 THEN

DirViento (Dir) ; Dit- : =67; GetTime (Hr , Mi n, Sg, Cent) ; GuarEnBufer (Hr , Mi n, DecSeg , Vel , Di t- ; VelMaxMin(Ve1); Writeln('Leyend0 viento', IBV);

Vel : =254;

END; END;

C asigOpcEnMenu: Determina la nueva opcibn a desplegarse en el display; esta opcion es determinada de acuerdo al codigo de la tecla "CodTecla". Esto so- lo cuando la opción actual a ser desplegada e36 la de menú "CveMenu". Es de- cir el cambio en la opción menú, es SO10 posible cuando se está desplegan- do el menú en el display.

1 PROCEDURE QsigOpcEnMenu(CodTec1a:BYTE;VAR 0pcDisplay:INTEGER); BEGIN IF (OpcDisplay=CveMENU) THEN CASE CodTecla OF TecO : OpcDisplay:=CveVIENTO; Tecl : OpcDisplay:=CveLLUVIA;

t

39

Page 43: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Tec2 : OpcDisplay:=CveMENU; Tec3 : OpcDisplay:=CveMENU; Tec4 : OpcDisplay:=CveMENU; Tec5 : OpcDisplay:=CveMENU; Tecb : OpcDisplay:=CveMENU; Tec7 : OpcDisplay:=CveMENU; Tec8 : OpcDisplay:=CveMENU; Tec9 : OpcDisplay:=CveMENU; TecA : OpcDisplay:=CvePtoSer; TecB : OpcDisplay:=CveIMP; TecC : OpcDisplay:=CveFH; TecD : OpcDisplay:=CveABAJO; TecE : OpcDisplay:=CveARRIBA; TecF : OpcDisplay:=CveMENU;

END ELSE IF Codfecla = TecF THEN OpcDisplay:=CveMENU;

END:

C No se esta desplegando el menú 3 C SI Tecla = Tecla F ENT 3 C Opcion en display <- Menu 1

C PideYDespOpcionMenu: Pide la opcidn del menú para desplegarla en el display )

o ejecutarla. 1 PROCEDURE Pi deYDespOpcionMenu; VAR CodTecla: BYTE;

Vel,Dir,Lluvia : WORD; Sa 1 : BOOLECSN;

BEG IN EspTecla(CodTecla,lO); C Espera Tecla 3 CSsigOpcEnMenu(CodTecla,OpcDisplay); C Asigna la opcidn del menú de 3

C acuerdo al valor de la tecla 1 CASE OpcDisplay OF C Ejecuta y/o despliega la op- 1 CveVIENTO : BEGIN < ción ya especificada. 1

VELOCIDADVIENTO(Ve1); DIRVIENTO(Dir); Di r : =67; ActPantDeViento(Ve1 ,Dir) : DespPantDeV i ento;

END; CveLLUVIA : BEGIN

Cant i dadL 1 uv i a (L 1 uv i a ) ; ActPantDeLluvia(L1uvia); DespPantDeLluvia;

END; CveImp : BEGIN

OpcDeImpresion; OpcDisplay:=CveMENU; END;

CveFH : BEGIN EscComLCD($Ol); ActualizaFecha; QctualizaHora; I niVarPeriodica8; OpcDisplay:=CveMENU;

END; CvePtoSer : BEGIN

OpcDePtoSerie;

40

Page 44: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

I -...“....-.-,--P - :

152453 OpcDisplay:=CveMENU:

END; CveABAJO, CveARRIBA, CveMENU : Pantal laMENU;

END; END;

C IniciaDiaLluvia: Inicializa la cantidad de la lluvia acumulada al día, esto se realiza mediante el envio de un comando al Contl del TIMER, dicho comando lleva la cantidad a partir de la cual empezará a contar y esta obviamente será cero. Para que esta cuenta se cargada en los registros internos de Contl es necesario que llegue un pulso a la entrada de este contador; por lo cual se envia atraves del bit 8 del puerto B del PPI2, un pulso que realiza esta función. Cabe mencionar que el proceso de cuenta cada contador del se realiza decrementando el valor de cuenta que les es enviada: como el valor de la lluvia puede exeder el valor de 255(=FFh) entonces es necesario uti 1 i zar cuentas de dos bytes. Las variables NRIDDALL y NRFDDALL ( N&mero de Registro Inicial de Datos del Día Anterior de la Lluvia y Nhmero de Registro Final de Datos del Día Anterior de la Lluvia ) son reinicializadas. Estas son variables que guardan la posicidn de los registros que limitan los datos de la lluvia del día anterior, dentro del archivo que guarda los datos de la lluvia. A l comenzar un nuevo día, NRIDDALL toma el valor de NRFDDALL y este a su vez el valor de el de IADLL ( Indice del Archivo de Datos de la Lluvia ) para que NRIDDALL y NRFDDALL limiten los datos del nuevo día anterior.

> PROCEDURE IniciaDiaLluvia; BEG IN PORTCComanTl : =$70; C Envia comando a Contl para cuenta de dos bytes.} PORTCContlTl:=$FF; C Envia valor max. de cuenta a LSB. > PORTCContlTI:=$FF; C Envia valor min. de cuenta a MSB. 1

CantLl uvi aAnt : =-1; C Cantidad de lluvia anterior <- -1. 1 NRIDDALL:=NRFDDALL+l; C Reinicializan NRIDDALL y NRFDDALL. 1

PORTCPtoBPPI21:= SUBE; C Envia pulso a la entrada de Contl para cargar > PORTCPtoBPPI23:= BAJA; C la cuenta en los registros internos de Contl. 1

NRFDDQLL:=IADLL; END;

C InicilizaPtoSerie: Se encarga de inicializar a FALSE, las banderas CTxIEC, CTxPassword y HayCOMANDO Central transmite Identificador de estción central, Central Transmite Password y Hay Comando (En el buffer del puerto serie) respectivamente; cuando la central envía su identificador la bandera CTxIEC se pone a TRUE, de la misma manera CTxPassword y la bendera HayCOMANDO se pone a TRUE cuando en el buffer del puerto serie hay un comando o dato completo. También se invoca la rutina que inicializa el puerto serie del sistema, donde parámetro por referencia le dará a dicha rutina la velocidad de tvasmisi6n, en este caso se inicia con una velocidad de 9600 baud; los valores posibles de dicho parámetro se indican en la implementación de la rutina. El puerto a inicailizar será indicado por medio del valor de la varible global COM que puede tomar los valores COMl o COMZ, en la inicializacidn tomará el valor COM1.

1 PROCEDURE InicilizaPtoSerie; BEGIN

41

Page 45: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

CTxIEC:=FALSE; CTxPassword: =FALSE; HayCOMANDO:=FALSE; COM:=COMl; I nici al i zaCOM ($E3) ;

END;

C INICIALIZA: Realiza la inicializacidn del sistema en general. de variables

1 globales, Pto Serie, LCD, PPI2, etc:.

PROCEDURE INICIALIZA; BEG IN Imprimiendo:=FALSE; C-Inicialira a FALSE,la bandera que indica si es

C que se esta imprimiendo. I niHo ja: =TRUE; C-Inicialita a FALSE, la bandera que indica si

C inicia una nueva hoja a imprimir. I ni Mens : = 1 ; <-Indica la columna en el renglon i donde se em-

C pezará a desplegar la fecha. RengMenu:=l; <-Se pone a 1 la variable que indica el renglon

C del menü apartir del cual se desplegará éste. OpcDisplay := CveMENU; C-Inicializa la variable que indica la opcidn a

C desplegarse en la pantalla, de tal manera que C se despliege el en la pantalla el menú.

PORTCPCPPI21:=@98; CInicializa PPI2 en modo O, Palabra de control lOOí1010 INICIA-LCD; C-Inicializa el LCD. I niPantsDeMensLCD; OpcDisplay := CveMENU; InicilizaPtoSerie; I n i A 1 mace nGra 1 ; I ni c i a D i aL 1 uv i a ; GetTime (Hr ,Min,Sg,Cent) ; SgLecViento:=(((Sg DIV 10)*10)+10) MOD 60; GetTime (Hr ,Mi n, Sg, Cent) ; HrActr=Hr; GetDate (Anio, Mes, ti i a , Di as) ; DiaAct: =Did; VelMaxima:=O; VelMinima:=BFF;

END;

C CambioLluvia : En caso de haber algtín cambio en la cantidad de lluvia acumulada del día actual, nos devolverá el valor booleano TRUE y FALSE en el caso contrario.

1 FUNCTION CambioLluvia: BOOLEAN; BEGIN Cant i da dL 1 uv i a ( CantL luv i a ) ; CambioLluvia:=FALSE; IF CantLluviaAnt < > CantLluvia THEN BEG IN CantL luvia4nt : = CantL luvi a ; CambioL 1 uv i a: =TRUE; END

END;

42

Page 46: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE LLUVIA; BEG IN IF CarnbioDia THEN I ni ciaDiaLluvia;

IF CarnbioLluvia THEN BEG I N Cant i dadL luv i a (CantL luvia ; IF CantLluvia > 16383 THEN

GetDate(Qnio,Mes,Dia, DiaS) i GetTime (Hr, Min, Sg,Cent 1 ; RegLluvia. Cant: = CantLluvia; RegL luvia. Anio: =Anio; RegLluvia.Mes :=Mes; RegLluvia.Dia :=Did; RegLluvia.Hora:=Hr; RegL luvi a. Mi n : = M i n; RegLluvia.Seg :=Sg; GuarDatLluvia; I ni VarPer i odi cas;

CantLluvia:=16383;

END; END;

BEGIN INICIALIZCI; REPEAT CambioHoraDia; {Cam b i oD i a) CCambioHora) PonFechaHoraE nLCD; Pi deYDespOpc i onMenu; VIENTO;

IMPRESORCI; PtoSer i e;

UNTIL FALSE; LeeDatosVionto; LeeDatosLluvia;

LLUVIFI;

END.

Page 47: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

INTERFACE CONST DIPR = $80; DISR = $CO; DITR = $94; DICR = $D4; CLRLCD = $01; LCDC = $308; LCDD = $309;

UNIT CoTiVa;

CComando que pone la direccion de la DD RAM en el ler reng.} CComando que pone la direccion de la DD RAM en el 20 reng. > CComando que pone la direccion de la DD RAM en el 3er reng.1 CComando que pone la direccion de la DD RAM en el 40 reng. 1 {Comando de limpiada1 del LCD. > CDireccion de escritura de comandos al LCD. > CDireccion de escritura de datos al LCD. >

C DIRECCIONES DE ACCESO FIL PPI (82C55). > PtoAPPI2= 8304; CDireccion para terier acceso al puerto A del PPI2 (82C55J.l PtoBPPI2= $303; CDireccion para terrier acceso al puerto B del PPI2 (82C55).> PtoCPPI2= $306; CDireccion para terrier acceso al puerto C del PPI2 (82C55).> PCPPI2 = $307; CDireccion para el acceso a la palabra de control del PPI23

C DIRECCIONES DE ACCESO AL TIMER (82C54). 1 ContOT = $300; CDireccion para tener acceso al contador O del TIMER. 1 ContlT = $301; CDireccion para terrier acceso al contador 1 del TIMER. > Cont2T = $302; CDireccion para terier acceso al contador 2 del TIMER. 1 ComanT = $303; CDireccion para enviar comandos al TIMER. > CUENTAO= $0000; CUENTAFF=$FFFF;

C CONSTANTES CUYO VALOR SON BYTES L.0S CUALES SIRVEN COMO SENALES DE HABI- > C CION PARA ALGUNOS DE LOS PERIFERICOS Y SERAN ENVIADOS 6TRAVEZ DEL PUERTO} C B DE PPI. 3 SHECLCD= $0; (Sena1 de habilitacion de escritura de comandos al LCD. 1 SHEDLCD= $1; CSenal de habilitacion de escritura de datos al LCD. > SHLCLCD= $2; CSenal de habilitacion de lectura de comandos al LCD. > SHLDLCD= $3; CSenal de habilitacion de lectura de datos al LCD. 1 SILCD = $2; CSenal de inhibicion del CLD. 1 MaxRenLCD = 4; MaxColLCD = 20; SUBE = $01: BAJA = $00;

PtoImp = $278; C Dirección del puerto de impresora. FF = BOC; C Alimentación de papel. LF = $06; C Alimentacidn de 1.inea. CR = SOD; C Retroceso del car-yo. SI = $OF; C Fijacidn del modo de 108 caracteres condensados. DC2 = $12; C Cancelación del modo de los caracteres condensados. ESC = $1840; C Inicialización de la impresora. NUMMAXIMP = 6; C Número máximo de registros que tiene el rengldn de

NUMMAXRENG = Jü;C Número máximo de renglones por hoja. MAXLINEAS = 66;C Número máximo de lineas que se pueden imprimir en un

C impresión.

C ja tamaño carta.

C CONJUNTO DE CODIOGOS DE LOS CARACTERES IMPRIMIBLES EN EL "LCD" MAS FRE- 1 C CUENTEMENTE USADOS. 1 CERO = $30; C Codigo 0011 O000 I UNO = $31; C Codigo 0011 O001 > TWO = $32; C Codigo O011 0010 I TRES = $33; C Codigo 0011 0011 > CUATRO = $34; C Codigo 0011 O100 11 CINCO = $35; C Codigo O011 0101 3

44

Page 48: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

SEIS OCHO

AMAY CMAY €MAY GMAY I MAY KMAY MMAY OMAY QMAY SMAY UMAY WMAY YMAY

aMIN cMIN eMIN gMIN iMIN kMIN mMIN oMIN qMIN sMIN uMIN wMIN yMIN

sADM sNUM sPOR sCOM

= $36; = $38;

= $41; = $43; = $45; = $47; = $49; = $4B; = $4D; = $4F; = $51; = $53; = $55; = 857; = $59;

= 861; = $63; = $65; = 867; = 869; = $6B; = SbD; = $6F; = $71; = $73; = $75; = $77; = $79;

= $21; C = $23; C = $25; C = 827; C

SPAR-C= sMAS = sMEN = sDIAG =

s I GLIAL= sINT = sFLE-I = sGRAD =

cP_Y-C=

$29; C $28; C $2D; C $2F; C $38;. C $3D; C 93F; C $7F; C $DF; C

c CODIGO

C Codigo 0011 0110 C Codigo 0011 1000 1

C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo

C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo

O100 O 0 0 1 O100 O 0 1 1 0100 0101 O100 o111 O100 1001 O100 1011 0100 1101 O100 1111 O 1 0 1 O 0 0 1 O 1 0 1 O 0 1 1 O 1 0 1 0101 O 1 0 1 o111 0101 1001

O100 0100 O100 O100 O100 O100 O100 O 1 0 0 O 1 0 1 O 1 0 1 O 1 0 1 O 1 0 1 O 1 0 1

O 0 0 1 1 O 0 1 1 1 O 1 0 1 1 o111 3 1001 1 1011 1 1101 1 1111 1 0001 1 O 0 1 1 1 O 1 0 1 1 o111 1 1001 1

Codigo ! : O010 O 0 0 1 1 Codigo # : O010 0011 1 Codigo X : O010 0101 Codigo ' : O010 O 1 1 1 Codigo ) : O010 1001 1 Codigo + : O010 1011 Codigo - : O010 1101 1 Codigo / : O010 1111 1 Codigo ; : O 0 1 1 1011 3 Codigo = : O 0 1 1 1101 1 Codigo ? : O 0 1 1 1111 1 Codigo <-: O 1 1 1 1111 1 Cod g r a d o s : l l O l 1111 1

SIETE NUEVE

BMAY DMAY FMAY HMAY JMAY LMCSY NMAY PMAY RMAY T M A Y VMAY XMAY ZMAV

bMIN dMIN W I N hMIN jMIN lMIN nMIN pMIN rMIN tMIN vMIN x M I N zMIN

sCOMS = SPES = sAMP = sPAR-A= sAST = sCOMA = sPUNT = sDOS-P= sMEN-Q= sMAY-Q= sFLE-D= sESP = sGION =

= $37; = $39;

= $42; = $44; = $46; = $48; = $4A; = $4C; = $4E; = $50: = $52: = $54; = $56: = $58; = $SA;

= $62; = $64; = $64; = $68; = 66A: = $6C; = $6E; = $70; = $72; = $74; = $76; = $78; = $7A;

$22; C 824; C $26; C $28; C $24; C 82C; C $2E; C 63A; C $3C; C $3E; C $7E; C $20; C $BO: C

C Codigo 0011 O111 C Codigo O 0 1 1 1001 1

C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo < Codigo C Codigo C Codigo

C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo C Codigo E Codigo C Codigo C Codigo C Codigo C Codigo C Codigo

O100 O010 > O100 O100 1 O100 O110 O100 1000 ) 0100 1010 1 O100 1100 1 0100 1110 o101 O000 > O101 O010 1 0101 O100 ) 0101 O110 ) 0101 1000 1 O 1 0 1 1010 >

O100 O010 0100 O100 O100 O110 0100 1000 O100 1010 O100 1100 0100 1110 O 1 0 1 O000 O101 O010 O 1 0 1 O100 0101 O110 0101 1000 O 1 0 1 1010

Codigo " : O010 O010 ) Codigo 45 : 0010 O100 Codigo & : 0010 0110 ) Codigo I : 0010 1000 )

Codigo Y : 0010 1010 ) Codigo , : 0010 1100 > Codigo . : 0010 1110 ) Codigo : : 0011 1010 1 Codigo < : O011 1100 1 Codigo > : O 0 1 1 1110 1 Codigo ->: O 1 1 1 1110 3 Cod espacio:0010 0000) Cod gion : 1101 1111

DE LAS TECLAS DEL TECLADO DE MATRIZ DE 4 X 4. 1

INFINITO = FALSE; MINUTO = o; SEGUNDO = 1;

NurnOpcMenu = 9; CveMENU = o;

4s

Page 49: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

CveABAJO CveARRI BA CveV I ENTO CveLLUV I A CveFH Cve Imp CveP toser OPC I MPO OPCIMPl OPCIMP2 OPC I MP3 OPC I MP4 OPC I MP5 OPCIMP6 OPCIMP7 OPC I MP8 OPC I MP9

= 1; = 2; = 3; = 4; = 5; = 6; = 7; = o; = 1; = 2; = 3; = 4; = 5; = 6 ; = 7; = 8; = 9;

C t t t t t TABLA DEL CODIGO GRAY t f 2 S t 1

( O, 6, 18, 12, TAB-COD-GRQY : ARRAY C1..641 OF INTEGER =

2, 36, 24, 30, C Los datos la tabla son los va lores de 1 90, 84, 72, 78, Clos grados correspondientes a cada co- 1 48, 54, 66, 60, Cdigo gray. Esta tabla se accesá con el 1 186,180,168,174, (valor decimal correspondiente al codigol 144,150,162,156, Cgray mas uno. 1 96,102,114,108, 138,132,120,126,

336,342,354,348, 288,294,306,300, 330,324,312,318, 192,198,210,204, 234,228,216,222, 282,276,264,270, 240,246,258,252);

1, 1, 1, 1 ,

MatrizMenu : ARRAYC1..9,1..201 OF BYTE = ~~sESP,sPAR~A,CERO,sPQR~C,sESP,VMAY,iMIN,eMIN,nMIN,tMIN, oMIN,sPUNT,sESP,sESP,sESP,sESP,sESP,sESP,sESP,sESP~, ~sESP~sPAR~A,UNO,sPQR~C,sESP,~~MAY,lMIN,uMIN,vMIN,iMIN, aMIN,sPUNT,sESP,sESP,sESP,sESP,sESP,sESP,sESP,sESP), ~sESP,sP~R~A,TWO~sPAR_C,sESP,PMAV,vMIN,eMIN,sMIN,iMIN, oMIN,nMIN,sPUNT,sESP,sESP,sESP,sESP,sESP,sESP,sESP), ~sESP,sPAR~A,TRES,sPAR~C,sESP,HMAY,uMIN~mMIN,eMIN,dMIN, aMIN,dMIN,sPUNT,8ESP,sESP,sESP,sESP,sESP,sESP,sESP,sESP), ~sESP,sPAR~Q,CUATRO,sPQR~C,sESP,RMAY,aMIN,dMIN,iMIN,aMIN, cMIN,iMIN,oMIN,nMIN,sPUNT,sESP,sESP,sESP,sESP,sESP~, ~sESP,sPAR~A,CINCO,sPAR~C,sESf~,TMAY,eMIN,mMIN,pMIN,eMIN, rMIN,aMIN,tMIN,uMIN,rMIN,aMIf~,~PUNT,sESP,sESP,sESP~, ~sESP,sPAR~A,AMAY,sP~R~C,sESP,PMAY~uMIN,eMIN,rMIN,tMIN~ oMIN,sESP,SMQY,eMIN,rMIN,iMIN,eMIN,sPUNT,~ESP,sESP~, ~sESP,sPAR~A,BMAY,sP~R~C,sESP,IMAY,mMIN,pMIN,rMIN,eMIN, sMIN,oMIN,rMIN,aMIN,sPUNT,sESP,sESP,sESP,sESP,sESP~,

(sESP,sPAR_A,CMAY,sPAR-C,sESP,~M~Y,cMIN,tMIN*sPUNT,sESP* F M A Y , e M I N , c M I N , h M I N , a M I N , s C O M A , H M A Y , o M I N , r M I N , a M I N ~ ) ;

Page 50: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

TYPE Cadena = ARRAYC1..331 OF BYTE; < Declaracion de arreglo de elementos tipo

MatrizCuatroR = ARRAYC1..4,1..201 OF BYTE: byte. 1

Datoviento = RECORD VelSgHr : WORD; DirMin

END;

Di aviento = RECORD Ani o Mes Dia I ni Fin

END:

DatL luvia = RECORD Cant FInio Mes Dia Hora Min

END; Seg

: WORD:

: WORD; : BYTE; : BYTE; : LONGINT; : LONGINT;

: WORD; : WORD; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE;

Datimp = RECORD HoraD HoraU Mi nD MinU SegD SegU V-VientoC V-Vi entoD V-VientoU D-Vi entoC D-V i e n t oD D-V i e ntoU C-L 1 uv i aC C-L luv iaD C-L 1 uv i aU

END;

VFIR EdoSist: BYTE; VelMaxima,VelMinima: WORD; SgLecViento: WORD; HrAct: INTEGER; DiaAct: INTEGER;

: BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; : BYTE; :WORD; :WORD;

ArchDiaViento : FILE OF DiaViento; IADiaV : LONGINT; ArchDatViento : FILE OF Datoviento;

4 7

Page 51: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

IADatV : LONGINT; A u x DiaV i ento : DiaViento; AuxDatViento : Datoviento; BuffDatViento : &RRAYC1..3603 OF Datoviento; I BV : INTEGER; ArchDatLluvia : FILE OF DatLluvia; I ADLL : LONGINT; RegLl uv i a : DatLluvia; CantLluvia : WORD; CantL luvi aAnt : INTEGER; D 1 aDeHoy : WORD; Hr,Min,Sg,Cent,Anio,Mes,Dia,DiaS: WORD: ILADiaV,ILADatV: WORD; IniMens,RengMenu,OpcDisplay,OpcImpresion,NumError: INTEGER; Mensaje : Cadena; C Variable Cadena que almacena la cadena a desplegar en

el LCD. 3

Matri zViento, MatrizLluvia, MatrizIrnpl,MatrizImp2, MatrizlPtoSer,Matriz2PtoSer,Matriz3PtoSer, MatrizME1,MatrizMEA: MatrizCuatroR; InterLecViento,InterPrornVelVien:WORD;

IndRenImp,NumHoja,NumReng: INTEGER; Imprirniendo,IniHoja,CarnbioHora,CambioDia: BOOLEAN; NRIDDALL,NRFDDALL:Longint;

RenImp :ARRAYC1..61 OF DatImp; Fi nI nter IMP: WORD; IMPLEMENTATION BEG I N END.

48

Page 52: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNIT GRFIL; INTERFACE USES CRT,DOS,CoTiVa;

PROCEDURE VelMaxMin(Ve1:WORD); PROCEDURE SacaMCDU (Cant i dad: WORD; VFIR Mi 1 1, Cen, Dec, Uni d: BYTE) : FUNCTION InterDecSsg(V6R SegLec: W0RD;Inter: 1NTEGER):BOOLEAN; FUNCTION InterMin(VAR MinLec: W0RD;Inter: 1NTEGER):BOOLEAN; PROCEDURE CambioHoraDia; FUNCTION HAYEspacio(CantEspacio: LONGINT): EUOLEaN; FUNCTION AMayorB(A,B:WORD): BOOLEAN; FUNCTION AMenorB(A,B:WORD): BOOLEAN; PROCEDURE DiaSemMensaje(DiaSem:WORD); PROCEDURE NumDiaMensaje(Dia:WORD); PROCEDURE NombMesMensa je (Mes: WORD) ; PROCEDURE NumAnioMensa je (Anio: WORD) ; PROCEDURE NumHoraMensaje(Hora:WORD); PROCEDURE NumMinMensaje(Min:WORD); PROCEDURE NumSegMensaje(Seg:WORD); PROCEDURE IniVarPeriodicas;

IMPLEMENTATION

PROCEDURE Ini InterImpresion; VAR Hr , Mi n, Sg I Cent : WORD; BEG IN GetTime (Hr , Mi n, Sg , Cent 1 ; CASE OpcImprosion OF OPCIMPO : FinInterIMP:=(((Sg DIU 10)*10)+10) MOD 60; OPCIMPl : FinInterIMP:=(((Sg DIU 2!0)*20)+20) MOD 60; OPCIMP2 : FinInterIMP:=(((Sg DIV 30)630)+30) MOD 60; OPCIMP3 : FinInterIMP:=(((Sg DIU 40 ) *40 )+40 ) MOD 60; OPCIMP2 : FinInterIMP:=(((Sg DIV ZiO)t50)+50) MOD 60; OPCIMPS : Fi nI nter IMP: =Mi n+l ; OPCIMP6 : CASE Min MOD 2 OF

O: Fi nI nter IMP: =Mi n+2 ; 1 : Fi n1 nter IMP: =Mi n+l ;

END;

O: F i nI nter IMP: =Mi n+3; 1 : Fi nI nter IMP: =Mi n+2; 2: F i nI nter IMP: =Mi n+l ;

END;

O: F i nI nter IMP: =Mi n+4; 1: FinInterIMP:=Min+3; 2: FinInteriMP:=Min+Z; 3: Fi nI nter IMP: =Mi n+l ;

END;

OPCIMP7 : CASE Min MOD 3 OF

OPCIMP8 : CASE Min MOD 4 OF

OPCIMPS : CASE Min MOD 5 OF O: FinInter IMP: =Mi n+5; 1: FinInterIMP:=Min+4; 2 : Fi nI nter IMP : =Mi n+3; 3: F i nI nter IMP: =Mi n+2; 4: Fi nInter IMP: =Mi n+l ;

END;

49

Page 53: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END; END;

PROCEDURE IniVarPeriodicas; BEG IN IF Imprimiendo THEN Ini InterImpresion;

GetTime(Hr,Min,Sg,Cent); SgLecViento:=(((Sg DIV 10)*10)+10) MOD 60;

END:

PROCEDURE VelMaxMin(Ve1:WORD): BEGIN IF Vel > VelMaxima THEN

IF Vel< VelMinima THEN VelMaxima:=Vel;

VelMinimat=Vel; END:

C Se en carga obtener el nClmero de miillares, centenas, decenas y unidades que constituyen la cantidad dada como párametro de entrada "Cantidad". Los para- metros de salida "Mill,Cent,Dec y Unid" tendrán el valor ASCII del niimero de millares, centenas, decenas y unidades respectivamente, del parametro de en- trada.

> PROCEDURE SacaMCDU (Cant i dad: WORD: VGR Mi 1 1 , Cen, Dec, Uni d: BYTE f : VAR Mi 1 1 ares, M i 1 1 ay, Centena, Decena, Uni dad: INTEGER :

BEG IN Millares :=Cantidad DIV 10000; Cant i dad: =Cant i dad MOD 10000; Mi 1 lar :=Cantidad DIV 1000; Canti dad: =Cantidad MOD 1000; Centena :=Cantidad DIV 100; Cantidad:=Cantidad MOD 100; Decena :=Cantidad DIV 10; Unidad :=Cantidad MOD 10;

CASE Millar OF O: Mill:=CERO; 1 : Mi 11 :=UNO; 2: Mill:=TWO; 3: Mi 1 1 :=TRES; 4: Mi 11: =CUATRO; 5: Mill:=CINCO; 6 : Mill:=SEIS; 7: Mill:=SIETE; 8: Mill:=OCHO; 9 : Mill:=NUEVE;

End; CFISE Centena O F O: Cen: =CERO; 1 : Cen:=UNO; 2: Cen:=TWO: 3 : Cen:=TRES; 4: Cen: =CUATRO; 5 : Cen:=CINCO;

50

...a*.*

Page 54: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

6: Cen:=SEIS; 7: Cen:=SIETE; 8: Cen:=OCHO; 9: Cen:=NUEVE; End; CASE Decena OF O : Dec : =CERO ; 1: Dec:=UNO; 2: Dec:=TWO; 3: Dec:=TRES; 4: Dec: =CUATRO; 5: Dec:=CINCO; 6: Dec:=SEIS; 7: Dec:=SIETE; 8 : Dec : =OCHO ; 9: Dec:=NUEVE; End; CASE Unidad OF O: Unid:=CERO; 1 : Uni d: =UNO; 2: Unid:=TWO; 3: Unid:=TRES; 4: Uni d: =CUATRO; 5: Uní d: =CINCO; 6: Unid:=SEIS; 7: Unid:=SIETE; 8: Unid:=OCHO; 9: Unid: =NUEVE; End;

END;

FUNCTION InterDecSeg(VAR SegLec: W0RD;Inter: 1NTEGER):BOOLEAN;

BEG IN VAR Hr,Min,Sg,Cent: WORD;

InterDecSeg:=FALSE; GetT ime t Hr , Mi n, Sg , Cent) ; IF (SegLec DIV 10) = ( S g DIV 10) THEN BEGIN SegLec:=(((Sg DIU lO)*lO)+Inter) MOD 60; InterDecSeg:=TRUE;

END; END;

FUNCTION InterMin(VAR MinLec: W0RD;Inter: 1NTEGER):BOOLEAN; BEGIN I nterMi n: =FALSE; GetT ime (Hr , Mi n, Sg , Cent 1 ; IF MinLec=Min THEN BEGIN Mi nLec: = (Mi n+I nter 1 MOD 60; I nterMi n: =TRUE;

END: END;

FUNCTION AMayorB(A,B:WORD): BOOLEAN; BEG IN

51

Page 55: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

AMayorB:=FALSE; IF A > B THEN AMayorB:=TRUE;

END;

FUNCTION AMenorB(A,B:WORD): BOOLEAN; BEG IN AMenorB:=FALSE; IF A < B THEN FIMenorB: =TRUE;

END;

PROCEDURE CambioHoraDia: BEGIN CambioDia:=FALSE; Cambi oHora: =FCILSE; GETT IME (Hr , Mi n, Sg, Cent ) ; IF HrFIct<>Hr THEN BEG IN CambioHora: =TRUE; HrAct:=Hr;

END; GETDATE (Anio, Mes, Di a, Di aS) ; IF DiaAct < > Did THEN BEGIN CambioDia:=TRUE; CAmbioHora:=TRUE; DiaAct:=Dia; GETTI ME (Hr , M i n, Sg , Cent 1 ; HrAct : =Hr ;

END; END;

FUNCTION HAYEspacio(CantEcpacio: LONGINT): BOOLEAN; VAR EspEnDisco:LONGINT;

NUMERROR: INTEGER; BEG IN HAYEspacio:= FFILSE; EspEnDisco:=DiskFree(O) j IF EspEnDisco = -1 THEN

ELSE NumError:=NumError OR $0

IF EspEnDisco >= CantEspacio THEN HAYEspacio:= TRUE;

END ;

C DiaSemMensaje: Pone los caracteres de acuerdo al día de la semana en la va- r i ble "Mensaje" . Mensaje: Varible global (FIrrglo de bytes).

1 PROCEDURE DiaSemMensaje(DiaSem:WORD); BEGIN

MencajeC6l:=sESP;MensajeC73:=sECP;MensajeC8l:=sESP; MensajeC9l:=sESP; MensajeClOI:=sESP;

52

Page 56: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

CASE DiaSem OF O : Begin

MensajeC11:=DMAY;Mensa~eC2l~=oMIN;MencajeC3l:=mMIN;MensajeC4l:=iMIN: MensajeCSl:=nMIN;MensajeC6l::=gMIN;MensajeC7l:=oMI~;

End; 1 : Begin

MensajeC11:=LMAY;MensajeC2l::=uMIN;MensajeC3l:=nMIN;M~nsajeC4l:=eMIN; MensajeCSI:=sMIN;

End; 2 : Begin

MensajeC1l:=MMFIY;MensajeC2l~:=aMIN;MensajeC3l:=rMIN;MensajeC4l:=tMIN; MensajeC5l:=eMiN;MensajeC6l~:=sMIN

End; 3 : Begin

MensajeC1l:=MMAY;MensaJeC2l~:=iMIN;MensajeC3l:=eMIN:MensajeC4l:=rMIN; Mensa~eC5l:=cMIN;Mensaje~6l:=o~IN; MensajeC73:=1MIN;MensajeC8l:=eMIN; MensajeC9l:=sMIN;

End; 4 : Begin

MensajeC13:=JMAY;Men~ajeC2l:=uMIN;M~nsajeC3l:=eMIN;MensajeC4l:=vMIN: MensajeC53:=eMIN;MensajeC6l:=sMIN;

End; 5 : Begin

Mensa~eC1l:=VMFIY;MensajeC2l:=iMIN;M~nsaJeC3l:=eMIN:MensajeC4l:=rMIN; MensajeC5l:=nMIN:MensajeC63:=eMIN;MensajeC7l:=sMIN:

End; 6 : Begin

MensajeC1l:=SMAY;MensaJeC2l:=aMIN;MensajeC3l:=bMIN;Mensa~eC4l:=aMIN; MensajeC53:=dMIN;Mensaje~6l:=oMIN

End; END;

END:

C NumDiaMensaje: Pone los caracteres de acuerdo al número del dia en la v a r i a - ble "Mensaje" . Mensaje: Varible global (Arrglo de bytes).

1 PROCEDURE NumDiaMensaje(Dia:WORD):

BEG IN VFIR Mill,Cen,Dec,Unid: BYTE;

SacaMCDU í Did, Mi 11, Cen, Dec, Uni d) ; Mensa j e C 1 1 1 : =Dec; MensajeC12l:=Unid; END;

C NombMesMensaje: Pone los caracterles de acuerdo al numero de mes en la varia- ble "Mensa j8". Mensaje: Varible global (Arrglo de bytes).

> PROCEDURE NombMesMensaje(Mes:WORD); BEGIN Mensaje C 13 1 : =sMEN ; Mensa jet 17 1 : =sMEN; CASE Mes OF 1 : Begin

MencajeC14l:=EMAY;Mensa~eCl5l:=nNIN;MensajeCl6l:=eMIN;

53

Page 57: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

End: 2 : Begin

Mensa~eC14l:=FMAY;MensajeC153:=eMIN;Mensa~eCl6l:=bMIN: End;

3 : Begin MensaJeC14l:=MMAY;Mensajel~l5l:=aMIN;Mensa~eCl6l:=rMIN;

End; 4 : Begin

MensajeC141:=AMAY:Mensajel~l5l:=bMIN;MensajeCl6l:=rMIN~ End;

5 : Begin MensajeC14l:=MMAY;MensaJel~l5l:=aMIN;MensajeCl6l:=yMIN;

End; 6 : Begin

MensajeC14l:=JMAY;Mensajel~l5l:=uMIN;MensajeCl6l:=nMIN; End;

7 : Begin MensajeCl4l:=JMAY;MensajeE153:=uMIN;MensajeCl6l:=lMIN;

End; 8 : Begin

MensajeCl4l:=AMAY;MensajeCl5l:=gMIN;MensajeCl6l:=oMIN: End;

9 : Begin MensajeC14l:=SMAY;MensajeCl5l:=eMIN;MensajeCl6l:=pMIN;

End; 10 : Begin

MensajeC14l:=OMAY;MensaJeCl5l:=cMIN;MensajeCl6l:=tMIN: End;

11 : Begin MensajeC141:=NMAY;MensaJeCl5l:=oMIN;MensajeCl6l:=vMIN;

End; 12 : Begin

MensajeC14l:=DMAY;MensajeCl5l:=iMIN;MensajeCl6l:=cMIN; End;

END; END;

< NumAnioMensaje: Pone los caracteres de acuerdo al número de año en la varia- ble "Mensaje". Mensaje: Varible global (Arrglo de bytes).

1 PROCEDURE NumAnioMensaje(Anio:WORD) ;

BEG IN VAR Mi 11 ,Cen, Dec,Unid: BYTE;

SacaMCDü (Ani o, M i 1 1 , Cen, Dec , Uni d ) ; Mensa jet 181: =Dec; MensajeC19l:=Unid;

END;

C NumHoraMensaje: Pone los caracteres de acuerdo al valor de la hora en la va- riable "Mensaje". Mensaje: Varible global (Firrglo de bytes).

> PROCEDURE NumHoraMensaje(Hora:WORD);

BEG IN VAR Mill,Cen,Dec,Unid: BYTE ;

54

Page 58: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

SacaMCDU (Hora, Mi 11, Cen, Dec, Uni d) ; MensajeC231:=Dec; MensajeC241 :=Unid;

END;

C NurnMinMensaje: Pone los caracteres de acuerdo al valor del minuto en la va- riable "Mensaje". Mensaje: Varible global (Arrglo de bytes).

1 PROCEDURE NumMinMensa je(Min:WORD) ;

B E G IN VAR Míll,Cen,Dec,Unid: B Y T E :

MensaJeC201:=sESP; MensajeCZlI:=sESP; Mensaje[ 22 1 : =sESP; MensajeC25l:=sDOS-P;

SacaMCDU (Mi n, Mi 11, Gen, Dec, Uni d) ; Mensa jeC26l:=Dec; MensajeC27l:=Unid;

END;

C NumSegMensaje: Pone los caracteres de acuerdo al valor del segundo en l a va- riable "Mensaje". Mensaje: Varible global (Flrrglo de bytes).

1 PROCEDURE NumSegMensaje(Seg:WORD);

BEG IN VQR Mill,Cen,Dec,Unid: BYTE;

MensajeE28l:=sDOS-P; MensajeC311:=sESP; Mensa jeC321: =sESP; Mensa jeC331: =sESP;

SacaMCDU(Seg,Mill ,Cen,Dec,Unid); MensajeC29l:=Dec; Mensaje C 30 3 : =Un i d; END; END.

Page 59: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

C UNIDAD QUE TIENE TODAS LAS RUTINA8 ENCARGADAS DEL ALMACENAMIENTO EN DISCO

1 UNIT ESCDSK; INTERFACE

DE LOS DATOS DE LOS PARAMETROS LEIDOS.

USES crt, dos ,CoTiva ,Gra l ,MedParam,Panta l la ;

PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE

LeeDatosViento; LeeDatosLluvia; IniAlmacenGral; Guar Da tV i ento : GuarDatLluvia; GuarEnBufer (Hora, Mi n, DecSeg, Vel , Di r: WORD) ; EdoS i stAl macen; IniVarArch; PruebaArchLluvia; Prue baArchsV i ento ;

IMPLEMENTATION

PROCEDURE EdoS i stA1 macen;

BEG I N VAR i: INTEGER;

IF NumError = O THEN

ELSE EdoSist:= EdoSist AND $FE

BEG IN EdoSist:= EdoSist OR 01; DespPa nt DeMEA; FOR i:=1 TO 5 DO BEGIN IF (i MOD 2) = 1 THEN BEG IN SOUND(2000); DELAY ( 1 O00 1 ; NOSOUND ;

END ELSE DELAY ( 1 O00 ) ;

I ni Var Per i odi cas ; END;

END; END;

FUNCTION HAYEspacio (CantEspacio: LOIUGINT) : BOOLEAN;

BEG IN VAR EspEnDisco:LONGINT;

HAYEspacio:= FALSE; EspEnDisco:=DiskFree(O); IF EspEnDisco = -1 THEN BEG I N NumError:=l; EdoS i stA 1 macen;

END ELSE

Page 60: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

IF EspEnDisco i= CantEspacio THEN

ELSE HAYEspacio:= TRUE

BEGIN NumError:=l; EdoSi stA 1 macen;

END; END ;

PROCEDURE CreaArchsViento; BEG IN C$I-> REWRITE(ArchDiaViento); NumError:=IOResult; EdoS i stFI 1 macen; IF NumError = O THEN BEGIN CLOSE(6rchDiaViento); NumError:=IOResult; EdoS istAlmacen; IF NumError = O THEN BEG IN REWRITE(ArchDatViento); NumError:=IOResult; EdoSistAlmacen: IF NumError = O THEN BEG IN CLOSE(ArchDatViento); NumError:=IOResult; E dos i s t A 1 macen; END;

END; END;

C$I+> END;

C CreaArchLluvia: Crea el archivo p<ara almacenamiento de los datos del parame

1 PROCEDURE CreaArchLluvia; BEGIN

tro LLUVIA.

<$I-> Rewrite(ArchDatL1uvia); NumError:=IOResult; EdoSistAl macen; IF NumError = O THEN BEG IN CloseIArchDatLluvia); NumError:=IOResult; E dos i stA 1 macen ; END;

( $ I + > END:

PROCEDURE IniVarArch; BEG IN

57

Page 61: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Assign(ArchDiaViento,’\DIAVIENT.DAl’>; Assign(ArchDatViento,’\DATVIENT.DAI’); Assign(ArchDatLluvia,’\LLUVIA.DAT’):

END:

PROCEDURE I ni41 macenV i ento; BEGIN GetDate(Anio,Mes,Dia,DiaS) ; AuxDiaViento.Anio: = Anio; AuxDiaViento.Mes := Mes; AuxDiaViento.Dia := Did; AuxDiaViento. Ini := O ; IADiaV:=O; IADatV:=-l; IBV:=O;

END;

PROCEDURE I ni AlmacenL luv id; BEG IN Cant i da dL 1 uv i a ( CantL 1 uv i a ) ; GetTime (Hr, Mi n, Sg , Cent) ; GetDate(Anio,Mes, Did, Dias) ; RegLluvia.Cant:= CantLluvia; RegLluvia.Anio:= Rnio; RegLluvia.Mes := Mes; RegLluvia.Dia := Did; RegLluvia.Hora:= Hr; RegLluvia.Min := Win; RegLluvia.Seg := Sg; CantLluviaAnt:=CantLluvia; IADLL:=-l; NRFDDALL:=-1 i

END;

PROCEDURE IniAlmacenGral; BEGIN IniVarArch; I ni AlmacenV iento; CreaArchsViento; I ni A 1 macenL 1 uv i a; CreaArchLluvia;

END;

PROCEDURE PruebaArchsV i ento : BEG IN <$I-> RESET ( ArchDiaV iento) ; NumError:=IOResult; E dos i 6th 1 macen; IF NumError = O THEN

BEG I N CLOSE(ArchDiaViento); NumError:=IOResult; EdoSisth lmacen; IF NumError = O THEN BEG I N

58

Page 62: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

RESET (Arc hDatV i ento) ; NumError:=IOResult; EdoSistAlmacen; IF NumError = O THEN BEG IN CLOSE(firchDatViento): NumError:=IOResult; E dos i stA 1 macen; END;

END; END; <$I+>

END;

PROCEDURE PruebaArchLluvia; BEG IN <$I-) RESET(ArchDatL1uvia); NumError:=IOResult; EdoS istA lmacen; IF NumError = O THEN BEG IN CLOSE(ArchDatL1uvia); NumError:=IOResult; E dos i stA 1 macen;

END; <$I+>

END;

PROCEDURE ActAuxDiaViento; BEG I N GETDFITE ( Anio, Mes, Di a, Di as ) ; AuxDiaViento.Anio: =F\nio; AuxDiaViento.Mes:=Mes; AuxDiaViento.Dia:=Dia; AuxDiaViento. Ini:=IADatV+l; AuxDi aVi ento. F i n: =- 1 ; IADiaV:=IADiaV+l;

END;

PROCEDURE EscBuffDatViento;

BEGIN VF\R Ind: INTEGER;

(SI-) RESET(ArchDatViento); NumError:=IOResult; EdoS i stA1 macen; IF NumError = O THEN BEGIN I nd: =O; REPEFIT Ind:=Ind+l; IADatV:=IADatV+l; Seek(ArchDatViento,IADatV); Write~ArchDatViento,Bu~fDatViento~Indl); NumError:=IOResult;

59

Page 63: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNTIL (NumError < > 0) OR (Ind =IBV); EdoS i s tA 1 macen; CLOSE(ArchDatViento); NumError:=IOResult; EdoSi stAlmacen;

END; IBV:=O; í$I+)

END:

PROCEDURE EscAuxDiaViento; BEG I N ($1-1 RESET ( ArchDi a V iento) ; NumError:=IOResult; EdoS istAlmacen; IF NumError = O THEN BEGIN AuxDiaViento.Fin:= IADatV; Seek(ArchDiaViento,IADiaV); Write(ArchDiaViento,AuxDiaViento) ; NumError:=IOResult; EdoSistAlmacen; CLOSE(ArchDiaViento); NumError:=IOResult; EdoS i stAl macen;

END <$I+)

END;

PROCEDURE EscDSKViento;

BEG IN VAR Ind: INTEGER;

IF IBV < > O THEN BEGIN EscBuffDatViento; IF NumError = O THEN

EscAuxDiaViento; IF NumError = O THEN IF CambioDia THEN ActAuxDiaViento;

BEG IN

END; END

ELSE BEG IN GETTIME (Hr , Mi n, Sg , Cent ) ; HrAct:=Hr; GETDATE(Anio,Mes,Dia,DiaS); Aux D i aV i ento. Anio : =Ani0 ; AuxDiaViento.Mes:=Mes; AuxDi aV i ento. Did : =Di a ;

END; END;

PROCEDURE GuarEnBufer(Hora,flin,DecSeg,Vel,Dir:WORD);

60

Page 64: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

VAR DatVien: Datoviento;

IBV:= IBV+1; DecSeg:= DecSeg SHL 5; Vel:= Vel SHL E; BuffDatVientoCIBVl.VelSgHr:=Vel OR DecSeg OR Hora; Dit-:= Dir SHL 6; Buf#DatVientoCIBVl.DirMin:= Dir OR Min

BEGIN

END;

C Guarda los datos del viento (Velocida,Direccion y tiempo de lectura) en el archivo "VIENTO. DAT".

PROCEDURE GuarDatViento; VAR DatVien: Datoviento;

Ind: INTEGER; BEG IN

I F HAYEspacio(2dl024) THEN BEG IN PruebaArchsV lento; IF NumError = 2 THEN

I ni CS 1 mace nV i ento ; CreaArchsViento;

IF NumError = O THEN

BEG IN

END;

EscDSKVi ento; END

END;

PROCEDURE GuarDatLluvia; BEGIN IF HAYEspacio(2t1024) THEN BEG IN C$I-> RESET(ArchDatL1uvia); C$I+> NumError:=IOResult; IF NumError = 2 THEN

I ni AlmacenLluv i a ; CreaQrchLluvia;

BEG I N

END;

BEG IN IF NumError = O THEN

CSI-> IADLL:=IGDLL+l; Seek(ArchDatLluvia,IQDLL); WRITE(ArchDatLluvia,RegLluvia); NumError:=IOResult; IF NumError < > O THEN BEG IN EdoS i stQ 1 macen; IADLL:=IADLL-1;

END; CLOSE(ArchDatL1uvia);

61

Page 65: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

NumError:=IOResult; E dos i s tA 1 mace n; {$I->

END ELSE

EdoS i s tA 1 macen; END

END;

END.

62

Page 66: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNIT Fcha-Hra; INTERFACE USES crt,dos,CoTiVa,GRAL,LCDTecla;

PROCEDURE Po nFec haHoraE nLCD ; PROCEDURE ActualizaFecha; PROCEDURE ActualizaHora;

IMPLEMENTATION

CONST TamF-H =33;

PROCEDURE Did-Semana(DiaSem:WORD): BEGIN MensajeC6l:=sESP;MensajeC7l:=sESP;MensajeC8l:=sESP; Mensa jeC93: =sESP; Mensa jeC 101: =sESP; CASE DiaSem OF

O : Begin MensajeC1l:=DMFIY;MensajeC2l:=oMIN;MensajeC3l:=mMIN;MensajeC4]:=~MIN; MensajeC5l:=nMIN;MensajeC6l:=gMIN;MensajeC7l:=oMIN;

End; 1 : Begin

MensajeC13:=LMAY;MensajeC23:=uMIN;MensajeC3l:=nMIN;MensajeC4l:=eMIN; MensajeCSl:=sMIN;

End; 2 : Begin

MensajeC1l:=MMAY;Mensa~eC2l:=aMIN;MensajeC3l:=r~IN;MensajeC4l:=tMIN; MensajeC5l:=eMIN;MensajeC6l:=sMIN

End; 3 : Begin

Mensa~eC1l:=MM~Y;MensajeC2l:=~MIN;MensajeC3l:=eMIN~Men~~j~~4]:=~~~~; MensajeC5l:=cMIN;MensajeC6l:=oMIN; MensajeC73:=1MIN;MensajeC83:=eMIN; MensajeC9l:=sMIN;

End; 4 : Begin

MensajeC1l:=JMFIY;MensajeC2l:=uMIN;MensajeC3l:=eMIN;MensajeC4l:=vMIN; Mensa jeC51: =eMIN; Mensa jeC61: =sMIN;

End; 5 : Begin

MensajeC1l:=VMAY;MensajeC2l:=iMIN;MensajeC3l:=eMIN;MensajeC4l:=rMIN; MensajeC5l:=nMIN;MensajeC6l:=eMIN;MensajeC7]:=~M~~;

End; 6 : Begin

MensajeC1l:=SMAY;MensajeC2l~=aMIN;MencajeC3l:=bMIN;MensajeC4l:=aMIN; MensajeC5l:=dMIN;MensajeC6l:~=oMIN

End; END;

END;

PROCEDURE Num-Dia(Dia:WORD);

BEG IN VFIR Mi 11, Gen, Dec, Uní d: BYTE;

SacaMCDU (Di a, Mi 1 1, Gen, Dec, Uni d) ; MencajeClll:=Dec; MensaJeClZl:=Unid; END;

63

*" I-

Page 67: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE Nom b-Mes (Mes : WORD ) ; BEG IN MensajeC13l:=sMEN; MensajeC171:=sMEN; CASE Mes O F 1 : Begin

MensajeCl4l:=EMAY;MensajeCl5l:=nMIN;MensajeCl6l:=eMIN; End;

2 : Begin MensajeC14l:=FMAY:MensajellS1:=eMIN;MensajeCl6l:=bMIN;

End; 3 : Begin

Mensajet l4 l :=MMAY;MensajeC153:=aMIN;MensajeCl6 l :=rMIN; End;

4 : Begin MensajeC14l:=AMAY;MensajeC153:=bMIN;MensajeCl6l:=rMIN;

End; 5 : Begin

MensajeC14l:=MMAY;Mensaje~~l5l:=aMIN;MensajeCl6l:=yMIN; End;

6 : Begin MensajeC14l:=JMAY;Men6ajel~l5l:=uMIN;MensajeCl6l:=nMIN;

7 :

8 :

9 :

10 :

11 :

12 :

End; Begin

End; Begin

End; Begin

End; Begin

End; Beg i n

End; Begin

End;

MensajeC14l:=JMAY;MensajeC153:=uMIN;MensajeCl6l:=lMIN;

MensajeC141:=AMAY;Mensaje~~l5l:=gMIN;MensajeCl6l:=oMIN;

MensajeC141:=SMAY;MensaJel~l5l:=eMIN;MensajeCl6l:=pMIN;

MencajeC14l:=OMAY;Mensajel~l5l:=cMIN;MensajeCl6l:=tMIN:

MensajeC14l:=NMAY;Mensajel~l5l:=oMIN;MensajeCl6l:=vMIN;

MensajeC14l:=DMAY;Mensaje~~l5l:=iMIN;MensajeCl6l:=cNIN;

END; END;

PROCEDURE Num-Anio(Anio:WORD); VAR Mi 1 1, Cen, Dec, Uni d: BYTE ;

BEGIN SacaMCDU ( FIni o, M i 1 1 , Cen, Dec , Uni d 1 ; MensajeC18l:=Dec; Mensaje C 19 1 : =Uni d; END;

PROCEDURE Num-Hora(Hora:WORD); VAR Mill,Cen,Dec,Unid: BYTE; BEG I N

64

Page 68: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

SacaMCDU (Hora, Mi 1.1, Cen, Dec, Un1 d) ; MensajeCZ3l:=Dec; Mensa jeC243:=Unid;

END;

PROCEDURE Num-Mi n (Mi n: WORD) ;

BEG IN VFIR Mill,Cen,Dec,Unid: BYTE;

MensajeC20l:=sESP; MensajeCZlI:=sESP; Mensa jeC 22 3 : =sESP; Mensa jeC253: =sDOS-P; SacaMCDU (Mi n, Mi 1 1, Cen, Dec, Uni d ) ; MensajeC263:=Dec; Mensa jet 27 1 : =Un1 d; END;

PROCEDURE Num-Seg(Seg:WORD);

BEG IN VAR Mill,Cen,Dec,Unid: BYTE;

MensajeC28l:=sDOS-P; MensajeC313:=sESP; MensajeC32l:=sESP; Mensa jeC333:=sESP;

SacaMCDU (Seg , Mi 1 1 , Cen, Dec, Uni d) ; MensajeC293:=Dec; Mensa jeC303: =Un1 d; END;

C PonFechaHoraEnLCD: Rutina encargada de enviar la fecha y hora al renglon su- perior del display FIND721. Debido a cuestion de espacio en el renglon, esta rutina escribe en el inicio del primer renglon del LCD la fecha y hora alma- cenada en el arreglo "mensaje", apartir del caracter especificado por la va- rible "IniMens". Como esta rutina esta dentro del ciclo infinito de la ruti- na principal nos dara la sensacion de un movimiento circular de la hora y fecha atraves del primer renglon del LCD. IniMens : Variable global que indica apartir de que caracter se imprime la

variable mensaje (Fecha y hora). 1 PROCEDURE PonFechaHoraEnLCD;

VFIR Ani o, Mes, Di a, Di asern, Hora, Mi n , Seg , Centes i mas: WORD; Indicel, Indice2: INTEGER;

BEGIN GetDate (Ani o, Mes, Di a, Di asern) ; GetTime (Hora, Mi n, Seg , Centesimas) ; Di aSemMensa je (Di asem) ; NumD iaMensa je I Di a) ; NombMesMensaje ( M e s ) ; NumFInioMensa je (FInio) ; NumHoraMensaje(Hora); NumMi nMensa je (Mi n) ; NumSegMensa je ( S e g ) ;

Page 69: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

EccComLCD(D1PR); FOR Indicel:=O TO 19 DO BEGIN I ndice2: = ( I ndi cel+I niMens 1 MOD TamF-H; IF Indice2 = O THEN

Indice2:=TamF-H; EccCarLCD(MensajeCIndice23);

END; I ni Mens : = ( I ni Mens+ 1 ) MOD TamF-H ; IF IniMens=O Then I niMens: =TamF-H;

END;

PROCEDURE ValidaFH(VAR Cad:Cadena;TamCad:INTEGER;VAR Err0r:BOOLEAN);

BEG IN VAR Ap:INTEGER;

Ap:=l; IF CadCApJ = sGION THEN

ELSE Error:=TRUE

BEG I N Ap: =Ap+l ; IF CadCApl IN CCERO,UNO,TWO,TRES,CUATRO

,CINCO,SEIS,SIETE,OCHC~,NUEVEl THEN BEG IN Ap: =Ap+l ; IF CadCApl < > sGION THEN Error:=TRUE;

IF NOT Error THEN END;

BEGIN Ap:=Ap+l; IF CAdEapl = &ION THEN

ELSE Error:=TRUE

BEG IN Ap:=Ap+l; IF Cad[ Ap 1 IN [CERO, UNO, TWO,, TRES, CUATRO

,CINCO,SEIS,SIETE,OCHC~~NUEVEl THEN BEG IN Ap: =Ap+l ; IF CadCApl < > sGION THEN Error:=TRUE;

IF NOT Error THEN

Ap:=Ap+l;

END;

REPEAT

IF CadCApl = sGION THEN

UNTILCError OR (Ap=TamCad)) Error:=TRUE;

END; END;

END; END;

66

Page 70: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE MensFecha; BEG IN MensajeClI:=FMAY: Mensa jeC21 ::=eMIN; Mensa jeC31: =cMIN; Mensa jeC4l:=hMIN; MensajeCSI:=aMIN; Mensa jeCbl:=sESP; MensajeC7l:=sPAR-A; Mensa jeC8l:=dMIN; MensajeC91 :=dMIN: Mensa jeC 101 : =cGION; Mensa j e C 11 1 ::=mMIN: MensajeC 131 : =cGION; Mensa jeC 14 1 :: =aM IN: MensajeCláI:=aMIN; Mensa jeC 171 J: =aMIN; MensajeC183:=sP#4R-C; MensajeC191:=sESP; MensajeCZOI:=sESP;

MensajeCIZl:=mMIN; Mensaje[ 15l:=aMIN:

END;

PROCEDURE MensHora; BEG IN MensajeClI:=HMAY; Mensa jeC21 ::=OMIN; MensajeC3l:=rMIN; Mensa je C 4 1 : =aM IN; Mensa jei 9 1 : :=sESP; Mensa jeC6l:=sPfJR-A; MensajeC7l:=hMIN; Mensa jeC81 ::=hMIN; MensajeC9l:=sGION; Mensa jet 101 :=mMIN; Mensa j e C 11 I: =mMIN; MensajeC12l:=sGION; MensajeC13l:=sMIN; Mensa jeC 141 : =sMIN; MensajeC15l:=sPAR-C; MensajeClbI:=sDOS-P; MensajeC173:=sESP; Mensa j e C I81 : =SESP; Mensa jeC 19 1 : =sESP; MensajeCZOI:=sESP; END;

PROCEDURE EscEnLCD(DirLCD,Tecla:BYTE;VAR TamCad:INTEGER;TamMax:INTEGER): BEG IN IF NOTtTecla IN CT~CC,T~CD,T~CE,TBCFI) THEN BEG IN IF Tecla = TecB THEN

TamCad: =Tamcad-1 ; IF TamCad = -1 THEN

EscComLCD(DirLCD+TamCad); EscCarLCD(sESP);

BEGIN

TamCad: =O;

END ELSE IF TamCad < TamMax THEN BEG IN EscComLCD(DirLCD+TamCad); TamCad: =TamCad+l ; CQSE Tecla OF TecO: EscCarLCD(CER0); Tecl: EscCarLCD(UN0); Tec2: EscCarLCD(TW0); Tec3: EscCarLCD(TRES); Tec4: EscCarLCD(CUATR0); Tec5: EscCarLCD(CINC0); Tecb: EscCarLCD(SE1S); Tec7: EscCarLCD(S1ETE); Tec8: EscCarLCD(OCH0); Tec9: EscCarLCD(NUEVE); TecA: EscCarLCD(sGI0N);

END; END;

END; END;

47

Page 71: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE LeeCad(VAR Fecha:Cadena;PosEnLCD:INTEGER;MaxCad:INTEGER);

BEG IN VAR i : INTEGER;

FOR i:=O TO (MaxCad-1) DO

EccComLCD (PocEnLCD+ i ) ; LeeCarLCD(FechaCi+lJ);

BEG IN

END; END;

FUNCTION NumCad(CavFecha:BYTE):WORD; BEG IN CASE CarFecha OF CERO : NumCad:=O; UNO : NumCad:=l; TWO : NumCad:=2; TRES : NumCad:=3; CUATRO: NumCad:=4; CINCO : NumCad:=5; SEIS : NumCad:=6; SIETE : NumCad:=7; OCHO : NumCad:=8; NUEVE : NumCad:=9;

END; END;

PROCEDURE DiaMesAnio(Fecha:Cadena;VAR Dia,Mes,Anio:WORD);

BEG IN VAR Ap: INTEGER;

Ap:=l;

Ap:=Flp+l; Dia:=NumCad(FechaCApl);

IF FechaCApI<>sGION THEN BEG I N Dia:=DiaflO; Dia:=Dia+NumCad(FechaCApl): Ap: =Ap+l ; END;

Ap : =Ap+l ;

Ap:=Ap+l; Mes: =NumCad(FechaCApI) ;

IF FechaCApl<>sGION THEN BEG IN Mes:=MestlO; Mes:=Mes+NumCad(FechaCFlpl); Ap:=Ap+l;

END; Flp: =Ap+l ; Flnio: =NumCad(FechaCApl) ; fAnio:=Anio*lO; Ap : = A p + l ; Anio:=Anio+NumCad(FechaCApl); Anio:=Anio*lO; Ap: = A p + l ; Anio:=Anio+NumCad(FechaC~pl~:

Page 72: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Anio:=AnioflO;

Anio:=Anio+NumCad(FechaCApl); Ap : =Ap+l ;

END;

PROCEDURE Anal i zaFecha (Fecha: Cadena; VAR Di a, Mes, Ani o: WORD;

BEG IN VAR Error:BOOLEAN);

DiaMesAnio(Fecha,Dia,Mes,Anio): IF (Anio>2099) OR (Anio<1980) THEN

ELSE Error:=TRUE

IF (Mes=O) OR (MES>12) THEN

ELSE Error:=TRUE

IF (Dia=O) OR (Dia>31) THEN

ELSE Error:=TRUE

BEG IN CFISE Mes OF 2 : BEGIN

IF (Anio MOD 4 ) = 0 THEN BEG I N IF Dia>29 THEN Error:=TRUE;

END ELSE IF Dia>28 THEN Error:=TRUE;

END; 4, 6 , 9, 11: IF Dia>30 THEN

Error:=TRUE; END;

END; END;

PROCEDURE ImpMensFecha; VAR i : i nteger ; BEG IN EscComLCD(D1PR); FOR i:=l TO 20 DO

EscCarLCD(MensajeCi3); END;

PROCEDURE ActualizaFecha; VAR Error: BOOLEAN;

TamFecha: INTEGER; CodTecla: BYTE; Fecha: Cadena; Di a, Mes, Ani o: WORD ;

BEG IN Me nsFecha :

69

Page 73: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

REPEAT ImpMensFecha; Error:=FALSE; TamFecha:=0; REPEAT EspTecla(CodTecla,lOO0); EscEnLCD(DISR,CodTecla,TarnFectla, 10) ; Delay(500) ;

UNTIL CodTecia = TecF; IF TamFecha < > O THEN IF TarnFecha < 8 THEN

Limp iaRengLCD (2) ; Error:=TRUE;

BEGIN

END ELSE BEG I N LeeCad (Fecha, DISR, TamFecha ) i; ValidaFH(Fecha,TarnFecha,Error) ; IF Error THEN

ELSE LirnpiaRengLCD (2)

BEGIN Anal izaFecha (Fecha, Did, Mes, Anio, Error) ; IF Error THEN Limp iaRengLCD ( 2 )

END; END;

UNTIL (NOT(Error) OR (TamFecha=O)); IF TarnFecha<>O THEN CetDate(Anio,Mes,Dia) ;

END:

PROCEDURE HrMi nSeg (Hora: Cadena ; TamHora : INTEGER ; VAR Hr , Mi n, Seg : WORD ) ; BEGIN VAR Ap: INTEGER;

Ap:=l ;

Ap : =Clp+l ; Hr:=NurnCad(HoraCApl);

IF HoraEApl<>sGION THEN BEGIN Hr:=Hr*lO; Hr:=Hr+NurnCad(HoraCApl); Ap:=Clp+l;

END; Ap : =Ap+l ;

Ap:=Ap+l; Mi n: =NurnCad (HoraCAp 1 ) ;

IF HoraCApI<>sGION THEN BEG IN Mi n: =Mí nS 1 O ; Mi n: =Mi n+NumCad (Hora EAp 1 ) ; Ap:=Ap+l;

END: Ap: =Ap+l ;

70

Page 74: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Ceg:=NumCad(HoraCApl); IF Flp<TamHora THEN BEG IN Ap:=Ap+l; Seg:=SegtlO; Seg:=Seg+NumCad(HoraCApl);

END; END;

PROCEDURE Analizahora(Hora:Cadena;TamHora:iNTEGER;VAR Hr,Min,Seg:WORD;

BEG IN VFIR Error:BOOLEAN);

HrMinSeg (Hora, TamHora,Hr ,Mi n,Seg) ; IF (Hr>23) THEN Error:=TRUE

ELSE IF (Min>S9) THEN

ELSE Error:=TRUE

IF (Ceg>59) THEN Error:=TRUE;

END:

PROCEDURE ImpMenaHora; VAR i:integer; BEG IN EscComLCD (DITR) ; FOR i:=l TO 20 DO EscCarLCD(MensajeCi3);

END;

PROCEDURE ActualizaHora; VAR Error: BOOLEAN;

TamHoro: INTEGER; CodTecla: BYTE; Hora: Cadena; Hr,Min,Seg:WORD;

BEGIN Me nsHora ; REPEAT I mpMensHora ; Error:=FALSE; TamHora:=O; REPEAT EspTecla(CodTecla,lOOO); EscEnLCD(DICR,CodTecla,TamHora,8) ; Delay(500);

UNTIL CodTecla = TecF; IF TamHora < > O THEN IF TamHora < 5 THEN

LimpiaRengLCD(4): Error:=TRUE;

BEG IN

Page 75: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END ELSE BEG IN LeeCad(Hora,DICR,TamHora); ValidaFH(Hora,TamHora,Error); IF Error THEN

ELSE LimpiaRengLCD (4)

BEG I N A n a l i zaHora (Hora, TamHora, Iir , Mi n, Seg , Error ) ; IF Error THEN LimpiaRengLCD(4)

END; END;

UNTIL (NOT(Error) OR (TamHora=O)); IF TamHora<>O THEN SetTime (Hr , Mi n, Seg , O ) ;

END; END.

72

Page 76: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNIT Impresor; INTERFACE USES crt,dos,CoTiVa,GRAL,MedParam,Pantalla,LCDTecla,PRINTER;

PROCEDURE IMPRESORCS; PROCEDURE OpcDeImpresion:

IMPLEMENTATION

PROCEDURE EdoSistImp;

BEG IN VAR i: INTEGER;

IF NumError = O THEN

ELSE EdoSist:= EdoSist AND $FD

BEGIN EdoSist:= EdoSist OR 02; I mpr imi rndo: =FALSE ; IniHoja:=TRUE; DespPa nt DeMEA ; FOR i:=l TO 10 DO BEG IN SOUND (2000) ; DELAY ( 1 000) ; NOSOUND; END;

END; END;

PROCEDURE ImpEncabezado;

BEG IN

I

VAR Anio,Mes,Dia, DiaSem: WORD;

Write(LST,char(DC2)); C Envía comando de cancealcidn 1 C del modo caracteres condensa-) C dos. 1

GetDate(Anio,Mes,Dia,DiaSem); Writeln(LST,’MBxico , D.F. a ’ ,Did,’-’ ,Mes,’-’ ,&nio); Writeln(LST,’Estación Meteorológica y Sísmica No. 1.’); Writeln(LST,’Ubicación: Av. Michoacan y la purisima. (UAM-I)’); Wr i te1 n (LST) ; Writeln(LST,’Reporte Estadistico. Ho ja No. ’,NumHoja); Wr i te1 n (LST) ; Write (LST, char (SI 1 ) ; C Envía comando de fijación del>

C modo de caracter condensados.> Write(LST,’LINEA HORA V-VIENTO D-VTO LLUVIA ’ ) ;

Write(LST,’ HORA V-VIENTO D-VTO LLUVIA ’ ) ; Wr i te1 n (LST, ’ HORA V-VIENTO D-VTO LLUVIA ’ ) ;

WritefLST,’ HORA U-VIENTO D-VTO LLUVIA ’ ) : Write(LST,’ HORA V-VIENTO D-VTO LLUVIA ’ ) ; Wr i te1 n (LST, ’ HORA U-VIENTO D-VTO LLUVIA’ ) ; <$I+>

END;

73

. . . . . I . . , ~ I .l.”.. “I .-- - . .

Page 77: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE GuarDatEnRengImp;

Mi 1 1, Gen, Dec, Uni d: BYTE; Var CantLluvia,Vel,Dir: WORD;

BEG IN I ndRenI mp : = I ndRen I mp+ 1 ; GetT ime (Hr , Mi n, Sg , Cent) ; Sg:= (Sg DIV 10) f 10; VELOCIDADVIENTO(Ve1); DIRVIENTO(Dir); VelMaxMin(Ve1); Cant i dadL luvi a ( CantL 1 uv i a ) ; SacaMCDU (Hr , Mi 1 1, Cen, Dec, Uni d) ; RenImpCIndRenImp1.HoraD := Dec; RenImpCIndRenImp3.HoraU := Unid; SacaMCDU (Mi n, Mi 1 1, Cen, Dec, Uní d) ; RenImpCIndRenImp1.MinD := Dec; RenImpCIndRenImpl.MinU := Unid; SacaMCDU ( Sg , Mi 11 ,Cen, Dec, Uni d) ; RenImpC1ndRenImpl.SegD := Dec; RenImpCIndRenImpl.SegU := Unid; SacaMCDU(Ve1 ,Mi 11 ,Cen,Dec,Unid) ; RenImpCIndRenImp1.V-VientoC := Cen; RenImpCIndRenImp1.V-VientoD := Dec; RenImpCIndRenImp1.V-VientoU := Unid; SacaMCDU (Di r , Mi 11, Cen, Dec, Uni d) : RenImpCIndRenImp1.D-VientoC := Gen; RenImpCIndRenImp1.D-VientoD := Dec; RenImpCIndRenImp1.D-VientoU := Unid; SacaMCDU (CantLluvia, Mi 11, Cen, Dec, Urii d) ; RenZmpCIndRenImp1.C~LluviaC := Cen; RenImpCIndRenZmp1.C-LluviaD := Dec; RenI mp C I ndRenI mp I. C-L 1 uvi aU : = Uni cl;

END;

PROCEDURE ImpReng; VAR Ind: INTEGER;

Mi 1 1 , Cen, Dec, Uni d: BYTE ; BEGIN SacaMCDU(NumReng,Mill,Cen,Dec,Unid):

FOR Ind:= i TO IndRenImp DO Write(LST,’ ’ ,CHAR(Dec) ,CHCIR(Unid) , ’ > ) ;

BEGIN Write(LST,CHAR (RenImpC Indl .HoraD) ,CHAR(RenImpC Indl .HoraU) ,’ : ‘ ) ; Wr i te (LST, CHCIR (RenImpC I ndl . Mi nD) , CHAR ( RenImpC I ndl . Mi nu) , Wr i te í LST, CHAR ( RenImpC I ndl . SegD ) , CHAR ( RenImpC I ndl . SegU ) , ’ Write~LST,CHQR~RenImpCIndl.V~VientoC~,CHQR~RenImpCIndl.V~VientoD~~; Write(LST,CHAR(RenImpCIndl.V-VientoU),’ Km/h ’ ) ;

Write~LST,CHAR~RenImpCIndl.D~VientoC~,CHAR~RenImpCIndl.D~VientoD~~; Write (LST, CHfAR ( RenImpC I ndl . D-V ientoU) , Char (248) , ’ N Write~LST,CHAR~RenImpCIndl.C~LluviaC~,CHAR~RenImpCIn~l.C~Lluvia~~~;

: ’ ) ; ’ ) ;

’ ) ;

Write(LST,CHQR(RenImpCIndl.C-LluviaU),7 mm ’ ) ;

END; Wr i teLN (LST 1 ; ($I+>

END;

Page 78: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE AvanzaSigHoja;

BEGIN VAR i: INTEGER;

FOR I:=l TO (MAXLINEAS-(NumReng+9)) DO WRI TELN (LST ) ;

END;

PROCEDURE FinalizaHoja; VAR Mi 11, Gen, Dec, Uni d: BYTE;

BEGIN I : INTEGER;

WR I TELN (LST) ; SacaMCDü (VelMax ima , Mi 1 1, Cen, Dec , Uni d) ; WRITE(LST,’Velocidad Máxima: ’,Char(Cen),char(Dec),char(Unid),’ Krnlh.’); SacaMCDU (VelMi nima, Mi 11, Cen, Dec, Uni d) ; WRITEtLST,’ Velocidad Mínima: ’,Char(Cen),char(Dec) ,char(Unid)); WRITE(LST,’ Kmlh.’); CantidadLluvia(CantL1uvia) ; SacaMCDU ( CantLluvia, Mi 1 1, Cen, Dec, Urti d) : WRITE(LST,’ CantLluvia: ’,Char(Cen),char(Dec),char(Unid)); WRITEln(LST,’ mm.’); END:

PROCEDURE ImpTiempoReal;

BEGIN VAR I: INTEGER;

IF IniHoja THEN BEG IN I mpE ncabezado; IniHoja:=FALSE;

END; Guar DatE nRe ng Imp ; IF IndRenImp = NUMMAXIMP THEN BEG IN NumReng : =NumReng+ 1 ; ImpReng; I ndRen Imp : =O ; IF NumRmng = NUMMAXRENG THEN BEGIN F i na 1 i zaHo ja; Avanzas i gHo ja : NumReng: =O; Numhoja:=Numhoja+l; IniHoja:=TRUE;

END; END;

END;

FUNCTION AsigOpcionImp(CodTec1a:BYTE): BOOLEbN; BEGIN IF CodTecla IN CNoTecla,TecB,TecC,TecD,TecE,TecFl THEN BEGIN IF CodTecla = TecF THEN AsigOpcionImp:=TRUE

ELSE

Page 79: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

AcigOpcionImp:=FALSE END ELSE BEGIN AsigOpcionImp:=TRUE; IF CodTecla = TecA THEN

IF Imprimiendo THEN BEGIN

BEGIN F i na 1 i zaHo ja; Imprimiendo:=FALSE; IniHoja:=TRUE;

END END

ELSE BEG IN CASE CodTEacla OF TecO : OpcImpresion:=OPCIMPO; Tecl : OpcImpresion:=OPCIMPl; Tec2 : OpcImpresion:=OPCIMP2; Tec3 : OpcImpresion:=OPCIMP3; Tec4 : OpcImpresion:=OPCIMP4; TecS : OpcImpresion:=OPCIMPS; Tec6 : OpcImpresion:=OPCIMP6; Tec7 : OpcImpresion:=OPCIMP7; Tec8 : OpcImpresion:=OPCIMP8; Tec9 : OpcImpresion:=OPCIMP9;

END; IF IniHoja = FALSE THEN BEGIN F i na 1 i zaHo ja; AvanzaSi gHo ja ;

Imprimiendo:=TRUE; IniHoja:=TRUE; IndRenImp:=O; NumReng:=O; NumHoja:=l;

END;

END; END;

END;

PROCEDURE OpcDeImpresion; VAR CodTecla: BYTE;

Vel,Dir,Lluvia,SgFinal : WORD; Sa 1 : BOOLEAN;

BEGIN GetT ime (Hr , M i n, Sg , Cent 1 ; SgFinal:=Sg + 30; REPEAT DespPantDeImpl; EspTecla(CodTecla,lS); Sal :=AsigOpcionImp (CodTecla) ; IF NOT(Sa1) THEN BEG I N DespPantDeImp2;

Page 80: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

EspTecla(CodTecla,l5); Sal:=AsigOpcionImp(CodTecla) END;

GetTime (Hr , Mi n, Sg , Cent) : IF (Sg DIV 10) = O THEN

IF Sg >= SgFinal THEN SgFinal:=SgFinal MOD 60;

Sal:=TRUE; UNTIL Sal; IniVarPeriodicas;

END;

PROCEDURE IMPRESORCS; BEG IN IF Imprimiendo THEN BEG IN CASE OpcImpresion OF OPCIMPO : IF InterDecSeg(FinInterIMP, 10) THEN

OPCIMPl : IF InterDecSeg(FinInterIMP,2O) THEN

OPCIMP2 : IF InterDecSeg(FinInte3rIMP,30) THEN

OPC IMP3 : IF I nter DecSeg (F i nI ntear I MP, 40 ) THEN

OPCIMP4 : I F InterDecSeg(FinIntevIMP,5O) THEN

OPCIMPS : IF InterMin(FinInterIMP, 1 ) THEN

OPCIMP6 : IF InterMin(FinInterIMP,2) THEN

OPCIMP7 : IF InterMin(FinInterIMP,3) THEN

OPCIMPB : IF InterMin(FinInterIMP,4) THEN

OPCIMPS : IF InterMin(FinInterIMP,5) THEN

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal;

ImpTiempoReal; END;

END: END; END.

77

Page 81: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNIT LCDTecla; INTERFACE USES crt,dos,CoTiVa:

PROCEDURE EscCarLCD(Car:BYTE); PROCEDURE EscComLCD(Com:BYTE); PROCEDURE LeeCarLCD(VAR Car:BYTE); PROCEDURE LimpiaRengLCD(Reng: INTEGER); PROCEDURE INICIA-LCD; PROCEDURE EspTecla(VAR CodTec1a:BYTE; Num1ter:INTEGER);

IMPLEMENTATION CONST PtoA-IN = $90; PtoA-OUT = $80; PtoAPPIl = $308; PtoBPPIf = $309; PtoCPPIl = 030cI; PCPPIl = $308; EnableLCD-OFF = $000; EscCom = $04; EscDat = $05; LecCom = $06; LecDat = $07;

C PonLCD-LC: Se encarga de poner las terminales de LCD de modo que se pueda

3 PROCEDURE PonLCD-LC; BEGIN

leer un comando de este. I

1

PORTCPCPPI13:=PtoíA-IN; . C PPto. A como Entrada; Peto. B como Salida. 1 PORTCPtoBPPIll:=LecCom: C Pone: E = 1, R/W = 1, RS = O del LCD. 1

END ;

PROCEDURE PonLCD-EC; BEG IN PORTCPCPPI13:=PtoA-OUT; PORTCPtoBPPIll:=EscCom;

END;

PROCEDURE PonLCD-LD; BEG IN PORTCPCPPIlJ:=PtoA-IN; PORTCPtoBPPS13:=LecDat;

1 END;

PROCEDURE PonLCD-ED; BEGIN PORTiPCPPIll:=PtoA-OUT; PORTCPtoBPPIlI:=EscDat;

1 END;

C P1’to.A como Salida; PPto. B como Salida. 1 C Pone: E = 1, R/W = O, RS = O del LCD. 1

C PPto. A como Entrada; PPto. B como Salida. 1 C Pone: E = 1, R/W = 1, RS = 1 del LCD.

C PPto. A como Salida; PPto. B como Salida. 1 C Pone: E = 1, R/W = 1, RS = 1 del LCD.

< Rutina usada para revisar el estado de la bandera de ocupado del LCD, antes de mandar un comando o dato al LCD. BF = Bandera de ocupado y es D7 en el registro de intruccion del LDC.

1

Page 82: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE LEE-BF-LCD; VAR BandOcup : BYTE; BEG I N PonLCD-LC; REPEAT BandOcup:=PORTCPtoAPPIll; BandOcup:=BandOcup AND $80;

UNTIL BandOcup = $0; END;

PROCEDURE EscCarLCD(Car:BYTE); BEG I N LEE-BF-LCD; PonLCD-ED ; PORTCPtoAPPIlI:=Car; PORTCPtoBPPI1l:=EnableLCD-OFF;

END;

PROCEDURE EscComLCD(Com:BYTE); BEG IN LEE-BF-LCD; PonLCD-EC; PORTCPtoAPPIlI:=Com; PORTEPtoBPPI1l:=EnableLCD~OFF;

END;

PROCEDURE LeeCarLCD(VAR Car:BYTE); BEG IN LEE-BF-LCD; Po nLCD-LD ; Car:=PORTCPtoAPPIlI; PORTCPtoBPPI1l:=EnableLCD~OFF;

END:

PROCEDURE INICIA-LCD; BEGIN DELAY (100) ; EscComLCD(b38); C Function Set (longitud de datos de interface e5 8 bits). 1 DELAY ( 2 0 ) ; EscComLCD($38); C Function Set (longitud de dato6 de interface es 8 bits). 1 DELAY (100) ; EscComLCD($38); C Function Set (longitud de datos de interface es 8 bits). 1 EscComLCD($38); C Function Set (longitud de datos de interface es 8 bits). > EscCornLCD(S0C): C Display ON. 1 EscComLCD($Ol); C Limpia el display y pone el cursor en home. 3 EccComLCD($Ob); C Entry Mode Set : I/D=l,S=O. Modo de incremento y modo. I

C de no corrimiento. 1 END;

PROCEDURE LimpiaRengLCDtReng: INTEGER);

BEG I N VFIR Col: INTEGER;

CFISE Reng OF 1 : EccComLCD(D1PR); 2 : EscComLCD(D1SR) : 3 : EscComLCD(DITR1;

79

Page 83: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

4 : EscComLCD(D1CR); END; FOR Col:=l TO 20 DO EscCarLCD(sESP1;

END;

PROCEDURE EspTeclatVAR CodTec1a:BYTE; Num1ter:INTEGER); VCIR Codigo: BYTE;

Sa 1 : BOOLEAN ; Cont: INTEGER;

BEG IN Sal:=FFILSE; Cont:=O; CodTecla: =NoTecla; REPECIT PORTCPtoCPPI23:=$OE; Codigo:=PORTCPtoCPPI23; IF ((Codigo AND $FO) < > $FO) THE:N BEG IN CodTec 1 a: =Codi go ; Sal:=TRUE;

END; PORTCPtoCPPI2l:=$OD; Codigo:=PORTCPtoCPPI23; IF ((Codigo FIND SFO) < > SFO) THEN BEG IN CodTecl a: =Codi go; Sal:=TRUE;

END; PORTCPtoCPPI23:=$OB; Codigo:=PORTCPtoCPPI21; IF ((Codigo AND SFO) < > SFO) THEN BEG I N CodTecla: =Codi go; Sal :=TRUE;

END; PORTCPtoCPPI21:=$07; Codigo:=PORTCPtoCPPI23; IF ((Codigo FIND $FO) < > $FO) THEN BEG IN CodTec la: =Codi go; Sa 1 : =TRUE ;

Cont:=Cont+l ; DELAY(100);

END:

UNTIL(Sa1 OR (Cont=NumIter)): IF Sal THEN BEG I N SOUND(2000); D E L A Y (100) ; NOSOUND ; END;

END; END.

Page 84: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

JNIT MedParam; INTERFACE USES crt,dos,CoTiVa;

PROCEDURE DirViento(VAR GradosDir:WORD) ; PROCEDURE VelocidadViento(VAR Ve1ocidad:WORD) ; PROCEDURE Cant i dadLl uvi a (VFIR CantL 1 uv i a: WORD > ;

IMPLEMENTATION

C DirViento: Obtiene la dirección de velocidad del viento en grados, esto por medio de la lectura del puerto A de.1 PPI1, a donde llegará el codigo coores- pondiente de la direccidn en formato GRAY, por lo cual será necesario pasar- lo a su equivalente a grados.

1 2ROCEDURE DirViento (VAR GradosDir:WORD) ;

SEGIN VAR Cod-Gray : BYTE:

Cod-Gray:=PORTCPtoAPPI23; GradosDir:=T~B~COD~GRAYCCod~~ray+lI~: END;

C VelocidadViento: Obtiene la magnitud de la velocidad del viento, mediante el uso del contador O del TIMER (de la tarjeta creada), el cual se encarga de contar un serie de pulsos que llegan a su entrada durante un intervalo de 100ms. Cuya cuenta será la magnitud de la velocidad en Km/h.

}

’ROCEDURE Ve 1 oc i dadVi ento (VAR Veloc i dad: WORD ) ;

3EG I N VAR Vel-Baja,Vel-Alta : BYTE;

PORTCCornanTl:=$30; C Mancia palabra de control a contO de 82C54 1 PORTCContOTI : =$FF; C Mancla cuenta LSB. 1 PORTCContOTl:=$FF; C Manda cuenta MSB. > delay(100); C Espara aprox 100 miliseg. 1

Vel-Baja:=PORTCContOTl; C Lee LSB de la cuenta. 1 Vel-&lta:=PORTCContOTl; C Lee MSB de la cuenta. 1

PORT C Coma nT 1 : =$O0 ; C Envia CONTER LATCH COMMAND para parar la 1 < cuenta del contO del 82C54. 1

Vel-Baja := $FF - Vel-Baja; Vel-Alta := $FF - Vel-alta;

Velocidad:=O: Velocidad:= Velocidad OR Vel-Alta: Velocidad:= Velocidad CHL 8; Velocidad:= Velocidad OR Vel-Baja: ZND;

Page 85: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

C CantidadLluvia: Obtiene la cantidad de lluvia acumulada hasta lo que va del día. Esto lo hace leyendo la cuenta que lleva el contador 1 del TIMER (que se encuentra en la tarjeta creada), la cual es la cantidad de lluvia acumulada hasta lo que va del d i d .

1 PROCEDURE CantidadLluvia (VAR CantLluvia: WORD) ; VAR Lluv-Baja,Lluv-Alta : BYTE;

CantLluv i aL: WORD; BEG IN PORTCComanTl : =840; Lluv~Baja:=PORTCContlTl; Lluv-~lta:=PORTCContlT~; CantLluvia := $0000; CantLluvia := CantLluvia OR Lluv-Alta: CantLluvia := CantLluvia SHL 8; CantLluvia := CantLluvia OR Lluv-Baja; CantLluvia:=($FFFF-CantLluvia);

END; END.

Page 86: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNIT Pantal la; INTERFACE USES crt,doc,CoTiVa,GRAL,LCDTecla;

PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE

I niPantsDeMensLCD; DecpPantDeViento; DespPantDeImpl; DespPantDeImp2; DespPantDeLluvia; DespPantlPtoSer; DespPant2PtoSer; DeepPant3PtoSer; DespPa nt DeME4 ; DespPantDeME I ; 4ctPantDeViento (Veloci dad, Grados: word) ; ActPantDeLluvia(CantL1uvia:WORD); Pantal laMENU;

IMPLEMENTATION

PROCEDURE IniPantDeViento; BEG IN MatrizVientoC1,1l:=sESP;MatrizVientoCl,2l:=sESP;MatrizVientoCl,3l:=~MAY; MatrizVientoC1,41:=4MAY;MatrizVientoC1~51:=TM~Y;MatrizVientoC1,61:=~M4Y; MatrizVientoC1,7l:=SMAY;MatvizVientoC1,8l:=sESP;MatrizVientoCl,9l:=D~~Y; MatrizVientoC1,10l:=EMAY;MatrizVientoCl,lll:=LMAY;MatrizVientoCl,l2l:=sESP; Matri~VientoC1,131:=VMAY;MatrizVientoC1,141:=1M4Y;MatrizVientoC1,151:=EM4Y; Matri~VientoC1,161:=NMAY;MatrizVientoC1,171:=TMAY;MatrizVientoC1,181:=0M~Y; MatrizVientoC1,191:=s€SP;MatrizVientoC1,201:=6ESP;

PROCEDURE IniPantDeLluvia; BEGIN MatrizLluviaC1,1l:=sESP;MatrizLluvi~Cl,2l:=DMAY;MatrizLluviaCl,3l:=AN~Y; MatrizLluviaC1,4l:=TM~Y;MatrizLluvi~Cl,Sl:=OM~V;MatrizLluviaCl,6l:=SM~V; MatrizLluviaC1,73:=sESP;MatrizLluvi~~Cl,8l:=DMAY;MatrizLluviaCl,9l:=EM4Y; MatrizLluviaC1,10l:=sESP;MatvizLluviatl,lll:~LMAY;MatrizLluviaCl,l2l:=~M~Y; MatrizLluviaC1,13l:=sESP;MatrizLluvtaCl,l4l:~LM~Y:MatrizLluviaCl,l5l:=LMAY; M a t r i z L l u v i a C 1 , 1 6 l : = U M A Y ; M a t v i z L l u v i a C 1 , l 7 l : = V M 4 Y ; M a t r i z L l u v i a ~ l , l 8 l : = I M A Y ; MatrizLluviaC1,19l:=AMAY;MatvizLluviatrizLluv~aCl,Z~l:=sESP;

E3 3

Page 87: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE I niPantDeImp; BEG IN MatrizImplC1,1l:=sESP;MatrizImplC1,~l:=MM~Y;MatrizImplCl,3l:=eMIN; MatrizImplC1,4l:=nMIN;MatrizImplCl,!~l:=uMIN;MatrizImplCl,6l:=sESP; MatrizImplC1,71:=DMAY;MatrizImplCl,~3l:=eMIN;MatrizImplCl,9l:=sESP~ MatrizImplC1,10l:=IM~Y;MatrizImplCl,lll:=mMIN;MatrizImplCl~l2l:=pMIN; MatrizImplC1,131:=rMIN;MatrizImplCl,l4l:=eMIN;MatrizImplCi,l5l:=sMIN; MatrizImplC1,16l:=iMIN;MatrizImplCl,l7l:=oMIN;MatrizImplCl,l8l:=nMIN; MatrizImplC1,19l:=sPUNT:MatrizImplCi,2Ol:=sESP;

€3 4

Page 88: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE IniPantDePtoSerie; BEGIN Matriz1PtoSerC1,1l:=sESP;Matriz1PtoSc~rC1,2l:=sESP;Matriz1PtoSerC1,3l:=VMAY; MatrizlPtoSerCl,4l:=eMIN;MatrizlPtoS~rCl,5l:=lMIN;MatrizlPtoSerCl,6l:=oMIN; MatrizlPtoSerC1,71:=cMIN;MatrizlPtoS~rCl,8l:=iMIN;MatrizlPtoSerCl,9l:=dMIN; MatrizlPtoSerC1,103:=aMIN;MatrizlPto~~erCl,lll:=dMIN;MatrizlPtoSerCl,l~l:=sESP; MatrizlPtoSerC1,13l:=sESP;MatrizlPto~erCl,l4l:=sPAR~~;MatrizlPtoSerCl,lSl:=BMAY MatrizlPtoSerC1,163:=PMAY;MatrizlPto~erCl,l7l:=SMAY;MatrizlPtoSerCl,l8l:=sP~R~C MatrizlPtoSerC1,19l:=sESP;MatrizlPto~~erCl~2Ol:=sESP;

EI 5

Page 89: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROCEDURE I n i P a n t D e M E A ;

Page 90: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

BEGIN MatrizMEACl,l1:=sESP;MatrizMEACl,2l:=EMAY;MatrizMEACl,3l:=~MAY: MatrizMEAC1,4l:=RMAY;MatrizMEACl,5l:=OMAY;MatrizMEACl,6l:=RMAY; MatrizMEAC1,7l:=sESP;MatrizMEACl,8l:=eMIN;MatrizMEACl,9l:=nMIN: MatrizMEAC1,10l:=sESP;MatrizME~Cl,l1l:=uMIN:MatrizMEACl,l2l:=nl~IN: MatrizMEAC1,131:=iMIN;MatrizMEACl,l~4l:=dMIN;MatrizMEACl,l5l:=aMIN: MatrizMEAC1,163:=dMIN;MatrizME~Cl,l7l:=sESP;MatrizMEACl,l8l:=dMIN; MatrizMEAC1,191:=eMIN;MatrizMEACl,2~3l:=sESP;

MatrizMEA~4,13:=6ESP;MatrízMEAC4,2l:=mMIN;MatrizMEAC4,3l:=iMIN; MatrizMEAC4,41:=eMIN;MatrizMEAC4,5l:=nMIN;MatrizME~C4,6l:=tMIN; MatrizMEAC4,7l:=oMIN;MatrizME~C4,8l:=sESP;MatrizMEAC4,9l:=LMAY; MatrizMEAC4,101:=LMAY;MatrizM€AC4,111:=EMAY;MatrizMEAC4,121:=NMAY: MatrizMEAC4,133:=AMAY;MatrizME~C4,1~~1:=sPUNT;MatrizMEAC4,151:=sESP; MatrizMEAC4,161:=sE8P;MatrizMEAC4,i’71:=sESP;MatrizMEAC4,181:=sESP: MatrizMEAC4,19l:=sESP;MatrizMEAC4,20l:=sECP;

END;

PROCEDURE IniPantDeMEI ; BEG IN MatrizMEIC1,1l:=sESP;MatrizMEICl,2l:=EMAY;NatrizME~Cl,3l:=RMAY: MatrizMEIC1,47:=RMAY;MatrizMEICl,5l:=OMAY;MatrizMEICl,6l:=RMAY; MatrizMEIC1,73:=~ESP;MatrizMEIC1,8l:=eMIN;MatrizMEICl,9l:=nMIN: MatrizMEIC1,10l:=sESP;MatrizMEICl,lll:=uMIN;MatrizMEICl,l2l:=nMIN; MatrizMEIC1,13l:=iMIN;MatrizMEICl,l~~l:=dMIN;MatrizMEICl,lSl:=aMIN; MatrizMEIC1,16l:=dMIN;MatrizMEICl,l~7l:=sESP;MatrízMEICl,l8l:=dMI~; MatrizMEIC1,19l:=eMIN:MatrizMEICl,2Ol:=sESP;

E3 7

Page 91: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

MatrizMEIC4,1l:=sESP:MatrizMEIC4~2l:=sESP;Matr~zMEIC4,3l:=sESP: MatrizNEIC4,4l:=sESP;MatrizNEIC4,Sl:=sESP:MatrizNEIC4,6l:=sESP: MatrizMEIC4,7l:=sESP:NatrizMEIC4,8l:=sESP;MatrizNEIC4,9l:=sESP; MatrizMEIC4,10l:=sESP;MatrizMEIC4,lll:=sESP;Natr~zMEIC4,l2l:=sESP; Matr izMEIC4,131:=sESP;Matv izMEIC4, l4 l :=sESP;Natr izNEIC4, lS l :=sESP; Mat r i zMEIC4 ,16 l :=sESP;Matv i zMEIC4 , l7 l :=sESP;Mat r i zMEIC4 , l8 l :=sESP; NatrizNEIC4,19l:=sESP:MatrizMEIC4,2Ol:=sESP;

END;

PROCEDURE IniPantsDeMensLCD; BEGIN IniPantDeViento; I ni Pant DeL 1 uv i a; I ni PantDeI mp; I ni PantDePtoSer i e; I ni PantDeMEA; I niPantDeMEI;

END;

PROCEDURE ActPantDeVi ento (Vel oci dad, iGrados: word) ;

BEG IN VAR Nill,Cen,Dec,Unid : BYTE:

SacaMCDU(Velocidad,Mi 11 ,Cen, Dec,Uni d) ; IF Cen = CERO THEN MatrizVientoC2,13l:=sESP ELSE MatvizVientoC2,13l:=Cen;

IF (Cen =CERO) AND (Dec = CERO) THEN NatrizVientoC2,14l:=sESP ELSE MatrizVientoC2,143:=Dec;

Matri zVientoC2,151 :=Unid;

SacaMCDU íGrados,Mi 11 ,Cen, Dec,Uni d) ; I F Cen = CERO THEN MatrizVientoC3,7l:=sESP ELSE MatrizVientoC3,7l:=Cen;

IF (Cen =CERO) AND (Dec = CERO) THEN MatvizVientoC3,8l:=sESP ELSE NatrizVientoC3,8l:=Dec;

Natr i zVientoC3,91 I =Uni d; END;

PROCEDURE ActPantDeLluvia(CantL1uvia:WORD); VAR Ni 11 ,Cen, Dec,Unid: BYTE; BEG I N SacaMCDU(CantLluvia,Nill,Cen,Dec,Unid); IF Mill = CERO THEN MatrizLluviaC2,13l:=sESP ELSE MatrizLluviaC2,133:=Nill;

IF (Cen = CERO) AND (Mill = CERO) THEN MatrizLluviaC2,14l:=sESP ELSE NatrizLluviaC2,14l:=Cen;

IF (Dec = CERO) AND (Cen = CERO) ANID (Mill = CERO)

i3 8

Page 92: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

THEN MatrizLluviaC2,153:=sESP ELSE MatritLluviaC2,153:=Dec;

MatrizLluviaC2,~61: =Uni d; END ;

PROCEDURE DespPantDeViento: VAR Reng,Colum: INTEGER; BEGIN FOR Reng:=l TO 3 DO BEG IN CASE Reng OF 1 : EscComLCD(D1SR); 2 : EscComLCD(D1TR); 3 : EscComLCD(D1CR);

END: FOR Colum:=l TO MaxColLCD DO EscCarLCD(MatrizVientoCReng,Columl);

END; END;

C Pone en el display las opcionees posibles de impresion, p a r a que el usuario

> PROCEDURE DespPantDeImpl; VAR Reng,Colum: INTEGER; BEG IN FOR Rsng:=l TO MaxRenLCD DO

escoja.

BEG IN CASE Reng OF 1 : EscComLCD(D1PR); 2 : EscComLCD(D1SR); 3 : EscCornLCD(D1TR); 4 : EscComLCD(D1CR);

END: FOR Colum:=l TO MaxColLCD DO EscCarLCD(MatrizImplCReng,Colum~~;

END; END;

PROCEDURE DespPantDeImp2; VAR Reng,Colum: INTEGER; BEG IN FOR Reng:=2 TO MaxRenLCD DO BEG IN CASE Reng OF

2 : EscComLCD(D1SR); 3 : EscComLCD(D1TR); 4 : EscComíCD(D1CR);

END; FOR Colum:=l TO MaxColLCD DO EscCarLCD(MatrizImp2CReng,Columl);

END; END;

PROCEDURE DespPantDeLluvia: VAR Reng,Colum: INTEGER:

Page 93: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

BEG IN FOR Reng:=l TO 3 DO BEGIN CASE Reng OF 1 : EscComLCD(D1SR); 2 : EscComLCD(D1TR); 3 : EscComLCD(DICR1;

END; FOR Colum:=l TO 20 DO

EscCarLCD(Mat r i zL luv iaCReng,Colum3) ; END:

END;

PROCEDURE DespPantlPtoSer; VAR Reng,Colum: INTEGER;

BEG IN FOR Reng:=l TO MaxRenLCD DO BEGIN CASE Reng OF 1 : EscCornLCD(D1PR); 2 : EscComLCD(D1SR); 3 : EscComLCDtDITR); 4 : EscCornLCD(D1CR);

END; FOR Colum:=l TO MaxColLCD DO EscCarLCD (Ma tr i z 1 PtoSer C Reng , Co I. urn 1 ) ;

END; END;

PROCEDURE DespPantZPtoSer; VAR Reng,Colurn: INTEGER; BEG IN FOR Reng:=2 TO MaxRenLCD DO BEGIN CASE Reng OF

2 : EscComLCD(D1SR); 3 : EscComLCD(D1TR); 4 : EscComLCD(D1CR) ;

END; FOR Colum:=l TO MaxColLCD DO EscCarLCD(Matrit2PtoSerCReng,Columl~;

END; END;

PROCEDURE DecpPant3PtoSer; VAR Reng,Colum: INTEGER; BEG IN FOR Reng:=l TO MaxRenLCD DO BEG I N CACE Reng OF

1 : EscComLCD(D1PR); 2 : EscCornLCD(D1SR); 3 : EscCornLCD(D1TR) ; 4 : EscComLCD(DiCR);

END; FOR Colum:=l TO MaxColLCD DO

Page 94: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

EscCarLCD(Matriz3PtoSerCReng,Columl~: END;

END;

PROCEDURE DespPantDeMEA;

BEG IN VAR Reng,Colum: INTEGER;

FOR Reng:=l TO MaxRenLCD DO BEG IN CFISE Reng OF

1 : EscComLCD(D1PR); 2 : EscComLCD(D1SR); 3 : EscComLCD(D1TR); 4 : EscComLCD(D1CR);

END; FOR Colum:=l TO MaxColLCD DO EscCarLCD(MatritMEACReng,Columl~;

END; END;

PROCEDURE DespPantDeMEI;

BEG IN VAR Reng,Colum: INTEGER;

FOR Reng:=l TO MaxRenLCD DO BEG IN CASE Reng OF

1 : EscComLCD(0IPR); 2 : EscComLCD(D1SR); 3 : EscComLCD(D1TR); 4 : EscComLCD(D1CR);

END; FOR Colum:=l TO MaxColLCD DO EscCarLCD(MatrizMEICReng,Columl~;

END; END;

PROCEDURE PantallaMENU;

BEG IN VAR Reng,Colum :INTEGER;

CASE OpcDisplay OF CveABAJO : RengMenu: =RengMenu+l ; CveARRIBA : RengMenu:=RengMenu-1;

END; OpcDisplay:=CveMenu; RengMenu: =RengMenu MOD NumOpcMenu; IF RengMenu = O THEN

Reng: =RengMenu; EscComLCD(D1SR); FOR Colum:=l TO 20 DO

Reng:= (Reng+l) MOD NumOpcMenu; IF Reng = 0 THEN Reng: = NumOpcMenu;

EscComLCD(D1TR); FOR Colum:=l TO 20 DO

RengMenu: = NumOpcMenu;

EscCarLCD(MatrizMenuCReng,Columli;

Page 95: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

EscCavLCD(MatrizMenuCReng,Columl); Reng:=(Reng+l) MOD NumOpcMenu; IF Reng = O THEN

Reng:= NumOpcMenu; EscComLCD(D1CR); FOR ColLirn:=l TO 20 DO

EccCarLCD(MatrizMenuCReng,Columl~; END: END.

Page 96: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

UNIT Serial; INTERFACE USES crt,doc,Gral,CoTiVa,MedParam,Pantalla,LCDTecla,EscDS~;

PROCEDURE InicialiraCOM(AL: BYTE); PROCEDURE PtoSERIE; PROCEDURE EspDeTrans; PROCEDURE LeeBuffCom; PROCEDURE OpcDePtoSerie; PROCEDURE DesHabi 1 InterCOM:

CONST COMl = 1; COM2 = 2;

VAR MaskCOM: WORD; COM,OpcMenuCom: INTEGER; YaST,HayCOMANDO,CTxIEC,CTxPasswovd: BOOLEAN: VectorAsinc: POINTER; VectorInterrup: ArrayCO..$FFl [OF POINTER

Absolute $0000:$0000;

IMPLEMENTATION LFIBEL INICIO; CONST

M A X = 100; PICA0 = $0020; PICA1 = $0021; MENUlCOM = 1; MENU2COM = 2: MENU3COM = 3; NOMENUCOM = 4; MaskCOMl = SO3FF; MaskCOM2 = S02FF;

t f t f t CONSTANTES ST = $FE; ENTER = SFF;

CACTTx = $00;

CIER = $02; CPASSWD= $03; CMENU = $04; CMENUl = $05; CMENU2 = $06; CMENU3 = $07; CFIN = $08; CPASSERR=$09; TERDATV= $OA; TERDATLL= $08; CELDD = $OC: CADLL = $OD; CADV = $OE; CLRD = $OF;

CIEC = $01;

RELACIONADAS CON EL PROTOCOLO DE COMUNICACION. STFIRT. 1 ENTER. 1 C >Ir* IDENTIFICADORES DE CAMPO r(ct >

c c < c c c c C c c c C c C c c

d t t t t 1

Codigo do abortar cualquier tipo de transmici6n. 1 de1 Identi-ficador de Ectacidn Central. ? de1 Identificador de Estacibn Remota. 1 dts Password. 1 de Menú. 1 de Menú1 . ? de MenÚ2. 1 de Menú3. 1 de Fin de Enlace. 1 de Password Erroneo. 1 de Terminacibn de datos Viento. 1 de3 Terminacidn de datos Lluvia. 1 de2 Error de Lectura de Datos en Disco. > de Ausencia de Datos de Lluvia. 1 de3 FIusencia de Datos de Viento. > Central Lista para Resepcion de Datos. 1

II

II

,I

II

I 1

II

1'

ll

I,

II

I,

I,

I 1

I S

I ,

93

Page 97: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

DATTIRE= $10; c ” de datos tiempo real. 1 DDALL = $11; c de datos de dia anterior de lluvia 1 DDAV = $12; c ” de datos de dia anterior de viento ?

TamIEC = 25; IEC: fiRRAVCl..TamIECI OF CHAR =

(CHAR(ST) ,CHAR(CIEC) ,’E’,’S’,’T’ ,’A’ , ’ C y ,’I’,’O’, ’N’ ,’ ,’A’,’L’i’ ’ 9 ’ ’ ,’U’, ’A’, ’M’,’ I ’ ,CHAR(ENTER));

’ , ’C’ ,’E’ ,’N’, ’T‘, ‘R’

TamIER = 88; IER : ARRAVCl..TamIERl OF CHAR =

(CHAR(ST) ,CHAR(CIER) ,’E’ , ’ s ’ ,’t’ , ’a ’ ’c’,’i’, ’O’ ,’n’ ,’ ’,’N’,’e’,’t’,’e’,’o’ ,‘S. , I 1’ ,*mT 1’ , V C ? , S a 7 ,’

’ ,’fi’,’V’?’ ’

,‘r’ ,’o’ ,‘l’,’o’ ,’g’ ,’i’ ,’c’ ,’a’ , ’ ’ , ’ Y ’ , ’ ’ !

’,’l’,’a’,’ ’,.p’,’U’,’r>,’l’, ,’M’l’i’,’~’,’h’,’o’,’a’,’c’,’a’,’n’,’ ’ 9 ’Y ’ 9 ’

” *’o’*’ 9 , ’ 1 ’ , * . ’ , ’ I , ’U*, 9 b’ , 9 i’, V c9, Pas, I C ’ , P i 9 , ’ 0 9 , S

9 . Y ? . l

S ’

, , ’ ( ’ , ’U’ , ’A’ , ’M’ , ’- ’ , ’ I’ , ’ 1 ’ ,CHfiR (ENTER) ) ; 7 19,’ m > , I a’, 9 . ’ , ’ 9

TamPassWD = 9; PASSWORD: ARRAVCl..TamPassWDI O F CHAR =

(CHFiR (ST) , CHAR (CPASSWD) , ’ 2’ , ’ 7 ’ , ’ O’ , ’ 7 ’ , ’ 6’ , ’ 7’ , CHFiR (ENTER) ) ; TamMPE = 19; MPE : FIRRAYCl..TamMPEl OF CHAR :=

( CHAR í ST 1 , CHAR ( CPASSERR , ’ P’ , ’ a’ , ’ s ’ , ’ s ’ , ’ w ’ , ’ o ’ , ’ r ’ , ’ d’ , ’ ’ y ’ E’ , ’ r ’ , ’ r ’ , ’ o ’ ,’n’,’e’,’o’,CHAR(ENTER)); I

I Í TamADIOS = 21;

ADIOS : ARRAYCl..TamADIOSl OF CHAR = (CHAR (ST) , CHAR (CFIN) , ’ A’ , ’ d’ , ’ i ’ ,’o’,’n’,’t’,’o’,CHAR(ENTER));

* o’ , ’ s’ , ’ ’ , ’ H’ , ’ a ’ , ’ c’ , ’ t’ y ’ a’ , ’ ’ , ’ P’ , ’ r’

VAR Hr 1 ,Minl , Cegl, Cent1 , Hr2, Mi n2,Stsg2, Cent2: WORD; C: INTEGER; B: BYTE; regc:registers; Rx,info,i,cont: INTEGER; BufferCom: ArrayCl..MAXl OF BYTE; i ndBuffCom: INTEGER;

C EspDeTrans: Realiza ciclos de espera hasta que se esta listo para accep- tar un nuevo caracter para transmisión atravez del puerto serial. Esto consiste en un ciclo en el cual se revisa el estado del b i t ntLmero 5 THRE (Transmiter Holding Register EZmpty) del registro LSR (Line Status Re- gister), que es uno de los registros del “INS8250“ UART (Universal Asyn- chronous Receiver/Transmitter) o c:ircuito emulador de este.

1 PROCEDURE EspDeTrans; BEGIN CCOMIENZA EspDeTrans. 1 C MIENTRFIS El bit THRE del registrci LSR del UART este &PAGADO HAS 1 i Sigue en el ciclo. 1 WHILE((PORTCS0FFD AND MaskCOMl AND $20) < > $20) DO BEG IN END;

END: {TERMINA EspDeTrans. 1

C EnviaMensPassErroneo: Envia a la estación central el mensaje de Password

Page 98: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Erro neo. 1 PROCEDURE EnviaMPE; BEG I N FOR i:=l TO TamMPE DO BEG IN EspDeTra nc : PORTCSOFF8 AND MaskCOMl:=ORD(MPECil);

END; END;

PROCEDURE EnviaCADLL; BEGIN EspDeTrans; PORTC$OFF8 AND MaskCOMl:=ST; EcpDeT r a ns ; PORTC$OFFS AND MaskCOMI:=CADLL; EspDeTrans: PORTC$OFFS AND MaskCOMl:=ENTER:

END;

PROCEDURE EnviaCADV: BEG IN EspDeTrans; PORTCSOFF8 AND MaskCOMl:=CT; ECpDeTrans; PORTCSOFFB AND MaskCOMl:=CADV; EcpDeTrans ; PORTC$OFF8 AND MaskCOMl:=ENTER;

END;

PROCEDURE EnviaCELDD; BEG I N Ecp DeTrans ; PORTC$OFF8 AND MaskCOMl:=ST; EspDeTra ne : PORTCSOFFB AND MaskCOMl:=CELDD; EspDeTrans; PORTCSOFF8 C\ND MaskCOMI:=ENTER;

END;

FUNCTION NRADiaV: LONGINT; BEGIN

<$I-> RESET ( ArchDiaV iento) ; NurnError:=IOResult; IF NumError = O THEN BEG IN NRADiaV:=FileSize(ArchDiaViento); CLOSE ( A r c h D i aV i ento) ; NurnError:=IOResult; IF NumError < > O THEN EdoS i stA 1 rnacen

END ELSE EdoS i stAl macen;

Page 99: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

<$I+> END;

FUNCTION NRALluvia(VAR NumError: INTEGER): LONGINT; BEGIN <$I-> RESET(ArchDatL1uvia); NumError:=IOResult; IF NumError < > O THEN

ELSE EdoSist:=EdoSist OR $01

BEG IN N R A L l u v i a : = F i l e S i t e ( A v c h D a t L l u v i a ) ; CLOSE(ArchDatL1uvia); NumError:=IOResult; IF NumError < > O THEN EdoSist:=EdoSist OR $01;

END <$I+>

END;

PROCEDURE TransCampRegDatVientoPS(A~uxDatViento:DatoViento):

BEGIN VAR 6uxByte: BYTE;

AuxByte:= AuxDatViento.VelSgHr; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=AuxByte; FluxByte:= AuxDatViento.Ve1SgHr SHR 8; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=AuxByte; AuxByte:= QuxDatViento. DirMin; EspDeTrans; PORTC$OFF8 FIND MaskCOMl:=RuxByte; AuxByte:= AuxDatViento.DirMin SHR 13; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=AuxByte;

END;

PROCEDURE L e e Y T r a n s R e g D a t V i e n t o P C O ;

BEG IN VAR Aux DatVi ento: Datoviento;

RESET(ArchDatViento); NumError:=IOResult; E dos i s tA 1 mace n; IF NumError = O THEN BEGIN SEEK(ArchDatViento,IRDatV); READ (ArchDatViento, AuxDatViento) :: NumError:=IOResult; E doS i stA 1 macen; IF NumError = O THEN

CLOSE(ArchDatViento); NumError:=IOResult; EdoSi stA lmacen;

TransCampRegDatV i entoPC ( AuxDatVi ento) ;

END:

Page 100: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

IF NumError < > O THEN BEGIN Esp DeT y. a ns ; PORTESOFFB AND MaskCOMl:=ENTER; END:

END;

PROCEDURE LeeRegADiaViento(1nd:LONGINT:VAR 4uxDiaViento:üiaViento); BEG I N <$I-> RECET(ArchDiaVient0): NumError:=IORecult; EdoS i 6th lmacen; IF NumError = O THEN BEGIN CEEK(ArchDiaVient0, Ind) ; READ(ArchDiaViento,AuxDiaViento); NumError:=IOResult; EdoS i stA 1 macen; CLOSE(4rchDiaViento); NumError:=IOResult; EdoC i ctA 1 macen; END;

{SI+> END;

PROCEDURE EsperaCLRD;

BEG IN VAR Sal: BOOLEAN;

REPEAT WHILE NOT(HayCOMAND0) DO BEG IN END;

Sal :=TRUE; IF BuffevComC21 = CLRD THEN

UNTIL Sal; HayCOMANDO:=FALSE;

END;

PROCEDURE EnviaTERDATLL; BEG I N EspDeTrane; PORTC$OFFB AND MaskCOMl:=ST; EspDeTrans; PORTCSOFFB AND MaskCOMl:=TERDATLL; EcpDeTrans; PORTCSOFF8 AND MaskCOMl:=ENTER;

END;

PROCEDURE EnviaTERDATV; BEGIN Es p DeT r a ns ; PORTCSOFF8 AND MaskCOMl:=ST: EspDeTra ns; PORTCSOFFB AND MaskCOMl:=TERDATV; EspDeTrans;

Page 101: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PORTC$OFF8 AND MaskCOMl:=ENTER; END ;

PROCEDURE TransDatVientoDiaAntPS; VAR Sal: BOOLEAN;

NumRegADiaV,Indl,Ind2: LONGINT; AuxDi aV i ento: Di aV i ento;

BEG IN Prue baArchsVi ento ; IF NumError < > O THEN

ELSE Env iaCELDD

BEGIN NumRegADiaV:=NRADiaV; IF NumError < > O THEN

ELSE EnviaCELDD

BEG IN IF (NumRegADiaV=O) OR (NumRegADiaV=l) THEN

ELSE EnviaCADV

BEG I N LeeRegADiaVi ento ( IADi aV-1, AuxDi a V i ento) : IF NumError < > O THEN BEG IN Env i aCELDD; Exit; END;

Sal:=FALSE; Indl :=AuxDiaViento. I n i j REPEAT EspDeTrans ; PORTC$OFF8 AND MaskCOMI:=ST; EcpDeTrans; PORTCSOFFB AND MackCOMl:=DDAV; Ind2:=l; WHILE (Indl<=AuxDiaViento.Fin) AND (Ind2<=32) DO BEG I N LeeYTransRegDatVientoPS(Ind1); IF NumError < > O THEN BEG IN EnviaCELDD; Exit;

END; Indl :=Indl+l; IndZ:=Ind2+1;

END; Esp DeTra ns ; PORTCSOFF8 FIND MaskCOMl:=ENTER; EsperaCLRD; IF Indl > AuxDiaViento.Fin THEN BEG I N Sal : =TRUE; EnviaTERDATV;

END UNTIL Sal:

Page 102: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END; END;

END; END;

< ArregCantLluvia: Realiza un arreg1.0 a la cantidad de la lluvia, para que ninguno de los dos bytes que constituyen la cantidad, tome e l valor de 255 (FFh), esto para que no se confundan con el valor de ENTER (=FFh), al ser transmitida la cantidad. El arreglo qu se le hace a la cantidada de la llu- vía es:

I : Restringir el valor de la canti.dad de la lluvia lo mas a 16383 (=3FFFh), "datos de a lo mas 14 bits", de este manera nos quedara dos bits libres para poder estructurar la cantidad.

2: Asignar a una varible auxiliar los 7 bits menos significativos de la cantidad, de esta manera tenemos la mitad de los bits que la conforman por separado ( 7 Bits).

3: Se hace un corrimiento de un bit a la izquierda a la cantidad, quedando de esta manera la o t r a mitad de los bit ( 7 bits) que conforman la canti- dad, en byte mas significativo

4: Se limpia el byte menos significativo de la cantidad. 5: Se pone en el byte menos significativo de la cantidad,los bits guardados

De esta menera pueden ser enviado sin temor a que cuaqueira de los byte de

El receptor debe relizar la opearacion inversas para recobrar la cantidad.

en la varible auxiliar.

la cantida de la lluvia se confunda con el valor de ENTER.

1 PROCEDURE ArregCantLluvia(VAR CantLluvia: WORD);

BEG IN VAR AUX: WORD;

IF CantLluvia > S3FFF THEN

AUX:= CantLluvia AND S007F; CantLluvia:= CantLluvia SHL I ; CantLluvia:= CantLluvia AND SFFOO; CantLluvia:= CantLluvia OR AUX;

CantLl uvi a : =S3FFF ;

END:

PROCEDURE TransCamposRegLluvPS(RegL1uvia: DatLluvia);

BEGIN VAR BYTEAUX: BYTE;

ArregCantLluvia(RegLluvia.Cant); BYTEAUX:=RegLluvia.Cant; Esp De Tra ns ; PORTC$OFF8 AND MaskCOMl:=BYTEAUX; BYTEQUX:=RegLluvia.Cant SHR 8; EspDeTrans; PORTCSOFFB AND MaskCOMl:=BYTEAUX; BYTEAUX:=RegLluvia.Anio; EspDeTrans; PORTCSOFFB AND MaskCOMl:=BYTEAUX; BYTEWX:=RegLluvia.Anio SHR 8 ; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=BYTEAUX; EspDeTra ns; PORTCSOFF8 AND MaskCOMl:=RegLluvia.Mes; EspDeTrans;

Page 103: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PORTC$OFF8 AND MaskCOMl:=RegLluvia.Dia: Esp DeTrans ; PORTCSOFF8 AND MaskCOMI:=RegLluvia.Hora; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=RegLluvia.Min; EspDeTra ns ; PORTCSOFFB AND MaskCOMI:=RegLluvia.Seg;

END;

PROCEDURE LeeYTransRegLluvPS(IndArct7:INTEGER); VAR BYTEAUX: BYTE;

RegLluvia: DatLluvia; BEGIN <$I-> RESET(ArchDatL1uvia); NumError:=IORosult; EdoS i stA 1 macen; IF NumError = O THEN BEG IN SEEK(ArchDatLluvia,IndArch); READ(ArchDatLluvia,RegLluvia); NumError:=IOResult; E dos i stA 1 macen; IF NumError = O THEN

CLOSE(ArchDatL1uvia); NurnError:=IOResult; E dos i s tA 1 macen;

TransCamposRegLluvPS(RegL1uvia);

END;

BEG IN IF NumError < > O THEN

Ecp DeT ra ns ; PORTCSOFFB AND MaskCOMl:=ENTER;

END; {SI+>

END;

PROCEDURE TransDatLluvDiaAntPS; VAR Ind1,IndZ: LONGINT;

Sa 1 : BOOLEAN; BEGIN PruebaArchLluvia; IF NumError < > O THEN

ELSE Envi aCELDD

IF NRFDDALL = -1 THEN

ELSE EnviaCADLL

BEG IN Indl:=NRIDDALL; Sal:=FALSE; REPEAT EspDeTrans; PORTCSOFFB AND MaskCOMl:=ST; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=DDALL;

Page 104: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Ind2:=1; WHILE(Ind1 <= NRFDDALL) AND (Irid2 <= 14) DO BEG IN LeeYTransRegLluvPS ( I ndl ) : IF NumError < > O THEN BEG IN Env i aCELDD: Exit: END: Indl :=Indl+l: I nd2 : = I nd2+ 1 ;

END: EspDeTrans ; PORTCSOFF8 AND MaskCOMI:=ENTER; EsperaCLRD; IF Indl > NRFDDALL THEN BEGIN Sal:=TRUE; EnviaTERDATLL;

END UNTIL Sal;

END: END;

PROCEDURE EdoSistEPS(HayComPtoSer; BOOLEAN); BEGIN IF HayComPtoSer THEN

ELSE EdoSist:= EdoSist OR $04

EdoSist:= EdoSist AND SFB: END;

C HabilInterCOM2: Se encarga de habiltar la interrupción del Puerto serial utilizado. Esto se realiza enviandlo la palabra de control de operación 1 (OCW1) al PIC (8259 o circuito emulador). OCWl pone CERO o UNO (1691~0) en los bits de mascara en el INTERRUPT MASK REGISTER. Los bits de enmaccarami- ento para hablitar las interrupciones de puerto serial son el bit 3 y el bit 4 para el Pto. serial 2 y el Puerto serial 1 respectivamente. Cuando se pone a UNO ldgico algan bit, se deshabilita la interrupción correspondiente a es- te bit y cuando se pone a CERO habilita la interrupción correspondiente.

1 PROCEDURE Habi 1 I nterCOM;

BEG IN CCOMIENZA HabilIntev. 1 OCW1:=PortC$00211; C Lee Operation Control Word 1 IOCW1) del PIC. 1

C litar la interrupci6n del puerto serial COM1. 3

END: C litar la interrupción de l puerto serial COM2. > PortC$0021l:=OCW1; C Se manda OCWl al PIC. 1

END; CTERMINA HabilInter. 1

VAR OCW1: BYTE;

CASE COM OF COMl:OCWl:=OCWl AND $EF;C Se pone a CERO ldgico el bit 4 de OCWl para habi)

COM2:0CWl:=OCWl AND $F7 C Se pone a CERO ldgico el bit 3 de OCWl para habi)

C DesHabilInter: Se encarga de deshabilitar la intervupcion de puerto serial esto se hace conforme a lo que fue indicado en el procedimiento anterior.

Page 105: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

1 PROCEDURE DecHabilInterCOM;

BEG IN VAR OCW1: BYTE;

OCW1:=PortC$00211; CASE CON OF COMl:OCWl:=OCWl OR $10; COMZ:OCWl:=OCWl OR $08;

END; PORTC$0021l:=OCWl;

END;

C FinEnlaceCom: Tiene la finalidad de cortar el enlace de comunicación con la

1 PROCEDURE FinEnlaceCom; BEG I N

estaci6n central.

Writeln('Fin de enlace' ) ;

CTxIEC:=FALSE; CTxPasswor d : =FALSE; FOR i:=l TO TamADIOS DO BEG IN EspDeTrans ; PORTC$OFFB AND MaskCOM1:=ORD(ADI lX3C i l ) ;

END; END;

C Procedimiento que sustituye a la rutina de interrupción OBh (Pto.de Comuni- cación serial "COM2"). El cual se encarga de recivir el comando en turno de la estación central, el cual será almacenado en una variable tipo arreglo de bytes llamado Buffer. Despues de haber recivido un comando será deshabi- litada la interrupcibn OBh y se prenderá la bandera de ComanListo que indi- cará que hay un comado listo en Bu-Ffer.

1 PROCEDURE ServInterrC0M;Interrupt; Var DatLec,OCWl: BYTE: BEGIN CCOMIENZA IntAsinc ( Interrupt ) . 3 Inline($FB); C Codigo insertado de la instrucción STI. 1 DatLec:=PortC$OFF8 AND MaskCOM3;C Obtención de un byte. 1 Cwrite(char(DatLec) ) : I IF NOT(HayCOMAND0) THEN BEG IN IF DatLec = ST THEN C SI Dato leido = ST ENT BEGIN YaST:=TRUE; C YaST <--TRUE. IndBuffCom: =l;

END; IF YaST THEN C SI YaST =TRUE ENT BEG IN C COMIENZA BufferComCIndBuf~Coml:=DatLec;C BufferComCIndBuffCornl<-- Dato Leido. I ndBuf fCom : = I ndBuffCom+ 1 ; IF üatLec=ENTER THEN C SI Dato leido = ENTER ENT

C IndBu+fCom<--IndBuffCom+l.

BEG IN c CON I NEZA HayCOMANDO:=TRUE; C HayCOMANDO <-- TRUE. YaST: =FALSE; c YaCT <--FALSE.

END C TERMINA

1 O2

1

Page 106: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END: END; iNLINE($FA) ; PORTCPICA01:=$20;

END;

C TEFiMINA >

C Codigo insertado de la instrucción CLI. >

C por medio de OCW2 ( FIN DE INTERRUPCION). 1 CTERMINA IntAsinc ( Interrupt ) . 1

C Se rnanda al PIC un NON-SPECIFIC EOICOMMAND. 1

C IECenBuff: Función booleana que tomará el valor "TRUE" si el codigo de Identificación de la Estación Centval se encuentra en el Buffer de comuni- cación. Y "FALSE" en caso contrario. Si hay comando disponible en el buffer de comunicacion, esta -funcibn compa-

ra uno a uno el código de los caracteres de la constante IEC con los códigos en el buffer de comunicación. Y termina su labor al encontrar diferencia en alguna de las comparaciones o al tierminar la COmparaCibn completa.

1 FUNCTION 1ECenBuff:BOOLEAN; VAR Ind: INTEGER;

Sa 1 : BOOLEAN ; BEGIN CCOMIENZA 1 IECenBuff:=FALSE; C Inicializa IECenBuff a FALSO. > IF HayCOMANDO THEN C SI Hay Comando en Buffer de c0m.ENT.j BEG IN C COMIENZA 1

Sa 1 : =FALSE ; C Sal del ciclo REPITE <-- FALSO. > I nd: =O; C Ind c-- O. 1 REPEAT C REPITE > Ind:=Ind+l; i I nd<--I nd+l . 1 IF ORD(IECCIndJ)=BufferCornCIndl THENC SI cod. de IECCIndJ = cod. de 1

C BuffComCIndJ ENT 1 BEG IN C COMIENZA 1 IF ORD(IECCInd1) = ENTER THEN c SI cod. de CIECCIndJ=ENTER ENT 1 Sal:=TRUE; C Sal del ciclo REPITE<--VERDAD.>

END C TERMINA 1 ELSE C OTRO > Sa 1 : =TRUE C Sal del ciclo REPITEc--VERDAD. >

UNTIL Sal; C HASTA Sal del ciclo REPITE=VERDAD.: IF ORD(IECCIndI)=BufferCornCIndJ THEN C SI cod. de CIECCIndJ = cod. de 1

i BuffComCIndJ ENT > IECenBuff:=TRUE; C IECenBuff <-- VERDAD. 1

END C TERMINA 1

WRITELN(' ESP IEC');)

HayCOMANDO:=FALSE;

CELSE

END; (TERMINA IECenBuff.

C PasswordEnBuff: Función booleana que tomara el valor "TRUE" si el codigo de PaS6WOrd de la estación remota se encuentra en el Buffer de comunicacidn. Y "FALSE" en caso contrario. Si hay comando disponible en el buffer de comunicacion, esta función compa- ra uno a uno el código de los caracteres de la constante "Password" con los códigos en el buffer de comunicación. Y termina su labor al encontrar dife- rencia en alguna de las comparaciones o al terminar la comparacidn completa.

1 FUNCTION PassWDEnBuff:BOOLEAN; VAR Ind: INTEGER;

Sa 1 : BOOLEAN ; BEG IN

Page 107: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PassWDEnBuff:=FQLSE; IF HayCOMANDO THEN BEG I N Sal:=FALSE; I nd: =O; REPEAT I nd: =I nd+ 1 : IF ORD(PasswordCInd3)=Bu~ferComCIndl THEN BEG I N IF ORD(PasswordCIndl)=ENTER THEN

Sa 1 : =TRUE ; END ELSE BEGIN Sal:=TRUE; Env i aMPE; FinEnlaceCom;

END; UNTIL Sal; IF ORD(PacswordCInd3) = BufferCcmC Indl THEN

HayCOMANDO:=FALSE; PassWDEnBu#+: =TRUE;

END CELSE WRITELN(’ ESP PSW’ ) ; 1

END;

C RTxMenu: Remota transmite el codigo de menú d la estación central. 1 PROCEDURE RTxMenu; BEGIN EspDeTrans; PORTCSOFF8 AND MaskCOMI:=ST; Esp DeT r a ns ; PORTCSOFF8 FIND MaskCOMI:=CMENU; EspDeTra ns ; PORTCSOFF8 AND MaskCOMI:=ENTER;

END;

RTxIdent: Remota transmite su identificador a la estación central. 1 PROCEDURE RTx I dent; BEG IN FOR i:=l TO TamIER DO BEG IN EspDeTr a ns ; PORTC$OFFEJ AND MaskCOMI:=ORD~IERCil~;

END; END;

< LeeBuWMenu: Lee en el buf#er de cornunicacidn l a opcion de menú que fue en- viada por la estación central y de acuerdo a esta se determina el valor de OpcMenu. En caso de no darse alguna de las opcioes especificadas, OpcMenu tomará el valor de NOMENU.

> FUNCTION MenuEnBuff: BOOLEaN:

Page 108: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

1 . - ..- I__-

BEG IN MenuEnBuff: = FALSE; IF HayCOMANDO THEN BEGIN IF CT=BufferComCll THEN IF ENTER=BufferComC31 THEN BEGIN CASE BufferComC21 OF CMENU 1 : OpcMenuCorn : =MENU 1 COP1 ; CMENU2: OpcMenuCom: =MENUZCOFI; CMENU3: OpcMenuCom:=MENU3COM;

END; MenuEnBuff: = TRUE: END;

HayCOMANDO:=FALSE; END

ELSE OpcMenuCom:=NOMENUCOM: {begin WRITELN(' ESP MENU'); OpcMenuCom:=NOMENUCOM;

END: 1 END;

C TransTiemReal: Realiza la transamision en tiempo real de los parametros lei-

1 PROCEDURE TransTiemReal;

dos.

VAR Vel, Di r , Hr , Mi n, Sg , Cent: WORD: DirBaja,DirAlta,LluviaBaja,LluviaAlta: BYTE:

BEG I N VelocidadViento(Ve1) : IF Vel >= $FF THEN

Di rViento (Di r 1 ; Dir :=354; Cant i dadL luvi a (CantL 1 uvia ) ; ArregCantLluvia(CantL1uvia); DirBaja:= Dir; Dir:=Dir SHR 8; DirAlta:= Dir; LluviaBaja:= CantLluvia; LluviaAlta:= CantLluvia SHR 8; Esp DeTra ns ; PORTC$OFFB AND MaskCOMl:=ST; Esp DeTrans ; PORTCSOFFEI AND MaskCOMl:=DATTIRE; EspDeTrans; PORTCSOFFB AND MaskCOMl:=LluviaBa.Ia; EspDeTr ans ; PORTC$OFFB AND MaskCOMl:=LluviaAlta; EspDeTra ns ; PORTC$OFFB AND MaskCOMl:= Vel; EspDeTrans; PORTCSOFF8 AND MaskCOMJ:=DirBaja; EspDeTrans;

Vel :=$FE;

105

Page 109: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PORTC$OFF8 AND MaskCOMl:=DirAlta; EspDeTrans; PORTCSOFF8 AND MaskCOMl:=ENTER;

END;

C MenuCom: Ejecuta el menú de comunicaciones conforme al valor de “OpcMenú”. 1 PROCEDURE MenuCom; BEG I N CASE OpcMenuCom OF MENU 1 COM :

MENU2COM:

MENU3COM: END; END;

C PtoSERIE:

BEG IN WRITELN(’Transmisi6n de datos acumulados del did anterior’ ) : T r a ns Da t V i e nt oD i a6 nt PS ; TransDatLluvDiaAntPS: IniVarPeriodicas;

END; BEGIN WRITELN(’Transmisi6n en tiempo real’ ) ;

TransT iemReal ; END; FinEnlaceCorn; C MENU3 da FIN al sesidn de trancmisidn de datos.>

Se encarga de llevar acabo el enlace entre la estación remota y la estacidn central. Para poder enviar datos acumulados o de tiempo real de ’

la remota a la central. 1 PROCEDURE PtoSERIE; BEG IN IF CTxIEC THEN BEG IN IF CTxPassword THEN BEG IN IF MenuEnBuff THEN

Me nuCom ; END ELSE IF PassWDenBuff THEN BEGIN RTxMenu; CTxPassword:=TRUE;

END END

ELSE IF IECenBuff THEN

CTxIEC:=TRUE; RTxIdent;

BEG IN

END END ;

CCOMIENZi? PtoSER IE. C SI Central transmitio cod. de identificaidn ENT.

C SI Central ya transmitio password ENT. C COMIENZA C SI Menu en buffer de comunicacidn ENT. C Ejecuta Menú de comunicación. C TERMINA. C OTRO ( CTxPassword = FALSE )

C SI Password en Buffer de comunicación ENT. C COMIENZA C Remota Transmite codigo de Menú. C Central Transmitio Password <- TRUE. C TERM I NA

C OTRO ( CTxIEC = FALSE )

C SI IEC en Buffer de comunicación ENT. C COMIENZA C Central Transmitio IEC < - TRUE. C Remota Transmite Identificacion. C TERMINA {TERMINA PtoSERIE.

C TODO LO SIGUIENTE ES UNICAMENTE iCODIGO QUE ES PARA PROBAR EL CODIGO FINTERI C POR LO CUAL DEBE DE SER BORRADO

PROCEDURE TransIEC;

Page 110: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

BEG IN FOR i:=l TO TamIEC DO BEG IN EspDeTra ns ; PORTCSOFF8 AND MaskCOMJ:=ORD( IECCiI);

END: END;

PROCEDURE TransPASSWORD: BEG IN FOR i:=l TO TamPASSWD DO BEG I N EspDeT v a ns : PORTCSOFFB AND M a s k C O M I : = O R D ( P A ! 3 3 W O R D C i l ) ;

END: END;

PROCEDURE TransMenu;

BEG IN VAR Menu: BYTE;

WRITELN(’Escribe Opcion Menú 1,2 (3 3’): READLN (Menu) ; CASE Menu OF MENUlCOM : Menu:=CMENUl; MENU2COM : Menu:=CMENU2; MENU3COM : Menu:=CMENU3;

END: EspDeTrans; PORTCSOFFB AND MaskCOMI:=ST; Es p DeT r a ns ; PORTCSOFF8 AND MaskCOMl:=Menu; EspDeT r a ns ; PORTCSOFF8 AND MaskCOMJ:=ENTER;

END;

PROCEDURE InicializaCOM(AL:BYTE); BEGIN FillChar(reqs,SizeOf(regs),O); CASE COM OF COMl:regs.DX:=O; COM2:regs.DX:=l;

END; regs.AH:=OO; regs.AL:=AL; Intr(S14,regs): CASE COM OF COM1: BEGIN

VectorAsinc:=VectorInterrupCSOCl; VectorInterrupCSOCl:=@Serv~interrCOM; MaskCOM:=MaskCOMl;

END; COM2:BEGIN

VectorAsinc:=VectorInterrupCSOBl; VectorInterrupCSOBl:=@Serv~ínterrCOM; MaskCOM:=MaskCOM2; END;

107

Page 111: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END; Habi 1 I nterCOM; b:=PORTC$OZFB AND MaskCOMl; b:=b AND $7F; PORTCSOFFB AND MaskCOMl:=b; PortCSOFF9 AND MaskCOMl:=$Ol; PortCSOFFC AND MaskCOMI:=$OB; C PortC$OFFE FIND MaskCOMl:=S80:) PortC$0203:=S20;

END:

PROCEDURE LeeBuffCom; BEG IN IF Bu+ferComC21=DATTIRE THEN BEG I N WRITELN('L1uvia ',BufferComC31); WRITELN('Ve1 Viento ' ,BufferComCSl~; WRITELN('Dir Viento ',BufferComC71); HayComando:=FALSE;

END; END;

PROCEDURE EspCOM; VAR Sal: BOOLEAN;

CodTecla: BYTE; SgFinal: WORD;

BEGIN DespPant3PtoSer ; EscComLCD(S93); CASE COM OF COMl:EscCarLCD(UNO); COM2:EscCarLCD (TWO) ;

END; Sa 1 : =FALSE ; GetTime (Hr, Mi n, Sg, Cent) ; SgFinal:=Sg+lS; REPEAT EspTecla(CodTecla,lS); IF CodTecla IN CTecl ,TecZ,TecFI THEN BEG IN Sal:=TRUE; CASE CodTecla O F Tecl: COM:=COMl; Tec2: COM:=COM2;

END; END;

GetT ime (Hr , Mi n, Sg , Cent ) ; IF (Sg DIV 10) = O THEN

IF Sg >= SgFinal THEN SgFinal:=SgFinal MOD 60;

Sal:= TRUE; UNTIL Sal;

E N D ;

FUNCTION AsigOpcionPtoSer(CodTec1a:BYTE): BOOLEAN; BEGIN

108

Page 112: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

IF CodTecla IN tNoTecla,Tec8,Tec9,TecA,TecB,TecC,TecD,TecE,TecFl THEN BEGIN IF CodTecia = TecF THEN AsigOpcionPtoSer:=TRUE

ELSE AsigOpcionPtoSer:=FALSE

END ELSE BEG I N AsigOpcionPtoSer:=TRUE; EspCOM; CASE CodTecla OF

TecO : InicializaCOM(903); Tecl : InicializaCOM(S23): Teca : InicializaCOM(843); Tec3 : InicializaCOM($&3); Tec4 : InicializaCOM(S83); Tec5 : InícializaCOM($A3); Tec6 : InicializaCOM(SC3); Tec7 : InicializaCOM(SE3);

END; END:

END ;

PROCEDURE OpcDePtoSerie; VAR CodTec1a:RYTE;

Vel,Dir,Lluvia,SgFinal : WORD:; Sa 1 : BOOLEAN;

BEGIN GetTime (Hr, Mi n, Cg, Cent) ; SgFi nal : =Sg+30: REPEAT DespPantlPtoSer; EspTecla(CodTecla, 15) ; Sal:=RsigOpcionPtoSer(CodTecla); IF NOT(Sa1) Then BEG IN DespPant2PtoSer; EspTecla(CodTecla,lS); Sal :=AsigOpcionPtoSer (CodTecla)

END;

BEG IN IF NOT(Sa1) THEN

GetTime (Hr, Mi n,Sg, Cent) ; IF (Sg DIV 10) = O THEN

IF Sg >= SgFinal THEN SgFinal:=SgFinal MOD 60;

Cal:= TRUE; END

UNTIL Sal; I niVarPeriodicas;

END: END.

Page 113: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

APEWDICE B

AUTOMATA DE L A ESTACION CENTRAL

Page 114: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

PROGRAM Serial; USES crt, dos;

LABEL INICIO: CONST

M4X = 131; PICA0 = $0020; PICA1 = $0021; MENUlCOM = 1; MENUZCOM = 2; MENU3COM = 3; NOMENUCOM = 4;

CON1 = 1; COM2 = 2;

rktttt CONSTANTES ST = $FE; C ENTER = $FF; C

CACTTx = $00; CIEC = $01; CIER = $02; CPASSWD= $03; CMENU = $04; CMENUl = $05; CMENU2 = $06: CMENU3 = $07; CFIN = $08; CPASSERR=$09; TERDATV= $O&; TERDATLL= $08; CELDD = $OC; CADLL = $OD; CADV = $OE; CLRD = $OF;

RELACIONADAS CON EL PROTOCOLO DE COMUNICACION. rkltll > START. 1 ENTER. 1

t f IDENTIFICADORES DE CAMPO $ 4 1 3 Codigo de abortar cualquier tipo de transmicibn. 1

c ” del Identificador de Estacidn Central. 1 i I ’ del Identificador de Ectacibn Remota. 11

1 ; c I t de Password. c I‘ de Menu. 1 ; c ” de Menul. i i i “ de Menu2. > i c ‘ I de MenC13. > : c “ de Fin de Enlace. c ” de Password Erroneo. 1 c ” de Terrninacibn de datos Viento. 1 c I’ de Termination de datos Lluvia. j c “ de Error de Lectura de Datos en Disco. 1 c de Ausencia d e Datos de Lluvia. i c de Ausencia de Datos de Viento. 1 < ’ I Clentral Lista para Resepcion de Datos. 1

- I

i i

DATTIRE= $10; c I’ die Datos tiempo real. 1 DDALL = $11; c I’ de Datos de Did Anterior Lluvia. 1 DDAV = $12; c “ dle Datos de Dia Anterior Viento. 1

TamIEC = 25; IEC: ARRAYCl..TamIECl OF CHAR =

~CHAR(ST),CHAR(CIEC),’E’.”,‘T’,’T’,’A’,’C’,’I’,’O’,’N’,’ ,’A’,’L’,’ ’ , ’ ’,’U’,’A’,’M’,’I’,i2HAR(ENTER));

’ ,’c’ ,’E9 ,’N’ ,?T’ ,’R?

TamPassWD = 9; PASSWORD: ARR&YCl..TamPassWDI OF CHAR =

Page 115: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

(CHAR(ST) ,CHAR (CPASSWD) , ’ 2 ’ , ’ 7 ’ , ’O’ ’ 7 ’ , ’ 6 ’ 7’ ,CHAR (ENTER) ) ;

TamMPE = 19; MPE : ARRAYCl..TarnMPEl OF CHAR =

(CHAR (ST), CHAR (CPASSERR) , ’ P’ , ’ a ’ . ’ s’ , ’ s’ , ’ w’ , ’o’ ’ r ’ ’ d’ , ’ ’ , ’ E’ , ’ v-’ ’ r’ , ’o’ ’ n’ , ’e’ , ’ o 7 ,CHAR (ENTER) ;

TamFIDIOS = 21; ADIOS : ARRAYCl..TamADIOSl OF CHAR =

t’ , ’o’ ,CHAR(ENTER) ) ; (CHAR(ST) ,CHAR(CFIN),’A’,’d’,’i’,’o’,’s’,’ ’,’H’,’a’. *s’,‘t’*’a’,’ ’ , ’ F ’ ,’Y’ , ’o’, ’ n’ ,

TYPE BufferDatos = ArrayCí..1281 O F BYTE: DatoLluvia = RECORD

Cant : WORD; Anio : WORD; Mes : BYTE; Dia : BYTE; Hora : BYTE; Min : BYTE; seg : BYTE; END;

VAR Hrl,Minl,Cegl,Centl,Hr2,Min2,SegZ,Cent2:WORD: C,Opcion: INTEGER; OPC : CHAR: 8: BYTE: regs : registers; Rx,info,cont: INTEGER; BuffDat: BufferDatos; ArchV : FILE OF BufferDatos; ArchLL : FILE O F BufferDatos; IndLL : LONGINT; BufferCorn: ArrayCi..MAXl OF BYTE; IndBuffCom: INTEGER; Mas kCOM: WORD; COM,OpcMenuCom: INTEGER; YaST,HayDatEnBuffCom,CTxIEC,CTxPassword: BOOLEAN; VectorAsinc: POINTER; VectorInterrup: ArrayCO..$FFl O F POINTER

Sa1,sall: BOOLEAN; CAD: STRINGC2551;

Absolute $OOOO:$OOOO;

C EspDeTrans: Realiza ciclos de espera hasta que se esta listo para accep- tar un nuevo caracter para transmisidn a traves del puerto serial. Esto consiste en un ciclo en el clual se revisa el estado del bit nLmero 5 THRE (Transmiter Holding Register Empty) del registro LCR (Line Status Re- gister), que es uno de los registrlss del “INS8250” UGRT (Universal Asyn- chronous Receiver/Transmitter) o circuito emulador de este.

f PROCEDURE EspDeTrans; BEGIN {COMIENZA EspDeTrans. } C MIENTRAS El bit THRE del registro LSR del UART este BPAGADO HAS 1

Page 116: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

c Sigue en el ciclo. WHILE((PORTC$OFFD AND MaskCOMl AND $20) < > $20) DO BEG I N END;

END: {TERM I NA Esp DeTrans . { HabilInterCOM2: Se encarga de habiltar la interrupción del Puerto serial utilizado. Esto se realiza enviando la palabra de control de operación 1 (OCW1) al PIC (8259 o circuito emulador). OCWl pone CERO o UNO (lógico) en los bits de mascara en el INTERRUPT MASK REGISTER. Los bits de enmascarami- ento para hablitar las interrupciones de puerto serial son el bit 3 y el bit 4 para el Pto. serial 2 y el Puerto serial 1 respectivamente. Cuando se pone a UNO ldgico algthn bit, se deshabilita la interrupción correspondiente a es- te bit y cuando se pone a CERO habilita la interrupcion correspondiente.

1 PROCEDURE HabilInterCOM;

BEGIN CCOMIENZA HabilInter. > OCWl:=PortC$00213; C Lee Operation Control Word 1 (OCW1) del PIC. 1

VAR OCWi: BYTE;

COSE COM OF l:OCWl:=OCWl AND SEF;C Se pone a CERO ldgico el bit 4 de OCWl para habili-3

2:0CWi:=OCWl AND $F7 < Se pone a CERO ldgico el bit 3 de OCWl para habili-> 'i < tar la interrupción del puerto serial COM1.

END; C tar la interrupcidn del puerto serial COM2. > ! PortCS00211:=OCW1; C Se manda OCWl al PIC. ? ;

END: {TERMINA Habi 1 Inter. 1 :

{ DesHabilInter: Se encarga de deshabilitar la interrupcion de puerto serial

1 PROCEDURE DesHabilInterCOM;

BEGIN

esto se hace conforme a lo que fue indicado en el procedimiento anterior.

VAR OCWl : BYTE;

OCWl:=PortC$00211; CACE COM OF i:OCWi:=OCWi OR $10; 2: OCWl:=OCWl OR $08;

END: PORTC$00211:=OCW1;

END;

C FinEnlaceCom: Tiene la finalidad de cortar el enlace de comunicacion con ia

1 PROCEDURE Fi nEnlaceCom;

BEG IN

estación central.

VAR i: INTEGER;

CTxIEC:=FALSE; CTxPassword :=FOLSE; FOR i:=l TO TamADIOS DO BEGIN EcpDeTrans; PORTCSOFF8 AND MaskCOMl:=ORD(ADIOSCil~;

END; END;

Page 117: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

- _. , .I , - . ....- "< ... <. - _ ., . .

C EnviaMensPascErroneo: Envia a l a estación central el mensaje de Password

> PROCEDURE EnviaMPE;

BEG IN

Erroneo.

VAR i: INTEGER;

FOR i:=l TO TamMPE DO BEG IN EspDeTra ns : PORTESOFF8 FIND MaskCOMl:=ORD(MPECil);

END; END;

C Procedimiento que sustituye a la rutina de interrupcidn óBh (Pto.de Comuni- cacidn serial "COMZ"). El cual se encarga de recivir el comando en turno de la estacidn central, el cual sera almacenado en una variable tipo arreglo de bytes llamado Buffer . Despues de haber recivido un comando sera deshabi- litada la interrupción OBh y se prenderá la bandera de ComanListo que indi- cará que hay un comado listo en Buffer.

1 PROCEDURE ServInterrC0M;Interrupt:

BEGIN (COMIENZA IntAsinc ( Interrupt ) .

Var DatLec,OCWl: BYTE:

I nl i ne (SFB) ; C Codigo insertado de la instrucción STI. DatLec:=PortC$OFFB AND MaskCOM1:C Obtencidn de un byte. IF NOT(HayDatEnBuffCom) THEN BEG IN IF DatLec = ST THEN C SI Dato leido = ST ENT BEGIN YaST:=TRUE; C YaST <--TRUE. IndBuffCom:=l;

END;

BEGIN C COMIENZA IF YaST THEN C SI VaST =TRUE ENT

BufferComCIndBuffComl:=DatLec;C BufferComCIndBuffCom1~-- Dato Leido. I ndBuffCom: =I ndBuffCom+l ; C IndBuffCom<--IndBuffCom+l. IF DatLec=ENTER THEN < SI Dato leido = ENTER ENT BEG IN C COM I NE Z A HayDatEnBuffCom:=TRUE: C HayCOMFINDO <-- TRUE. YaST:=FALSE; C VaST <--FALSE.

END C TERMINA END; C TERMINA

END; INLINE(SFA) ; C Codigo insertado de la instruccidn CLI. PORTCPICA03:=$20; C Se manda al PIC un NON-SPECIFIC EOICOMMAND.

C por medio de OCW2 ( FIN DE INTERRUPCION). END; (TERMINA IntAsinc ( Interrupt ) .

C IECenBuff: Funcidn booleana que tomará el valor "TRUE" si el codigo de Identificacidn de la Estacidn Central se encuentra en el Buffer de comuni- cacidn. Y "FALSE" en caso contrario. Si hay comando disponible en el buffer de comunicacion, esta +uncidn compa-

r a uno a uno el cddigo de los caracteres de la constante IEC con los cddigos en el buffer de comunicación. V termina su labor al encontrar diferencia en alguna de las comparaciones o al terminar la comparacidn completa.

1

Page 118: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

FUNCTION 1ECenBuff:BOOLEAN; VAR Ind: INTEGER:

Sal : BOOLEAN; BEG IN IECenBuff:=FALSE; IF HayDatEnBuffCom THEN

CCOM I ENZ A 1 C Inicializa IECenBuff a FALSO. 3 SI Hay Comando en Buffer de com.ENT.1

BEG IN c Sal:=FALSE; c I nd: =O; c REPEAT c

C IF ORD(IECCIndl)=BufferComCIndl THEN<

c BEGIN c IF ORD(IECCInd1) = ENTER THEN c Sal:=TRUE; c

END i ELSE c Sa 1 : =TRUE c

UNTIL Sal: i IF ORD(IECCIndl)=BufferComCIndl THEN C

c IECenBuff:=TRUE; i

CHabilInterCOMl; c

I nd: =I nd+l ;

HayDatEnBuffCom:=FALSE;

COMIENZA >'

Sal del ciclo REPITE <-- FALSO. 1 Ind <-- O. 1 REP I TE 1 Ind<--Ind+l. 1 SI cod. de IECCIndl = cod. de 3

BuffComCIndl ENT > COMIENZA > SI cod. de CIECCIndl=ENTER ENT 1 Sal del ciclo REPITE<--VERDAD. 1

TERMINA 1 OTRO 1 Sal del ciclo REPITE<--VERDAD. >

HASTA Sal del ciclo REPITE=VERDAD.> SI cod. de CIECCIndl = cod. de 1

BuffComCIndl ENT 1 IECenBuff <I-- VERDAD. >

Habilita interrup. de Pto. serial.1

TERM I NA > END c ELSE WRITELN('Espera Identificador de Estación Central' ) : END; (TERMINA IECenBuff. 1

c PasswordEnBuf-f: Función booleana que tomará el valor "TRUE" si el codigo de Password de la estación remota se encuentra en el Buffer de comunicación. Y "FALSE" en caso contrario. Si hay comando disponible en el buffer de comunicacion, esta función compa-

r a uno a uno el código de los caracteres de la constante "Password" con los códigos en el buffer de comunicación. Y termina su labor al encontrar dife- rencia en alguna de las comparaciones o al terminar la comparación completa.

> FUNCTION Pa6sWDEnBuff:BOOLEAN; VAR Ind: INTEGER;

Sa 1 : BOOLEAN;

PassWDEnBuff:=FALSE; IF HayDatEnBu-ffCom THEN

BEGIN

BEGIN Sal:=FALSE; Ind:=O; REPEAT Ind:=Ind+l; IF ORD (PasswordC I ndl )=BufferComC Indl THEN BEG IN IF ORD(PasswordCIndl)=ENTER THEN Sal:=TRUE;

END ELSE BEG IN Sal:=TRUE;

Page 119: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Envi aMPE ; FinEnlaceCom:

END; UNTIL Sal: IF ORD(PasswordCInd1) = BufferComCIndl THEN

HayDatEnBuffCom:=FALSE; PassWDEnBuff: =TRUE;

END ELSE WRITELN('Espera PASSWORD'); END:

< RTxMenu: Remota transmite el codigo de menú a la estación central. 1 PROCEDURE RTxMenu; BEG IN Esp DeTra ns ; PORTCSOFF8 AND MaskCOMl:=ST; EspDeTrans; PORTCBOFF8 AND MaskCOMl:=CMENU; Ecp DeT r a nc ; PORTCBOFFB AND MaskCOMl:=ENTER;

END:

C RTxIdent: Remota transmite su identificador a la estacidn central. 1 PROCEDURE RTx I dent;

BEG I N VAR i: INTEGER:

FOR i:=l TO TamIER DO BEG IN EspDeTrans; PORTCBOFFB AND MaskCOMl:=ORD(IERCil);

END; END:

C LeeBuffMenu: Lee en el buffer de comunicación la opcion de m e n u que fue en- viada por la estacidn central y de acuerdo a esta se determina el valor de OpcMenu. En caso de no darse alguna de las opcioes ecpecifícadas, OpcMenu tomará el v a l o r de NOMENU.

1 FUNCTION MenuEnBuff: BOOLEAN; BEG IN MenuEnBuff: = FALSE; IF HayDatEnBuf#Com THEN BEG IN IF CT=BufferComC13 THEN IF ENTER=BufferComC31 THEN BEG IN CACE BufferComC21 OF CMENUl : OpcMenuCom: =MENUlCOM: CMENUZ: OpcMenuCom: =MENU2COM; CMENU3: OpcMenuCom: =MENU3COF1;

END: MenuEnBuff: = TRUE:

HayDatEnBuffCom:=FALSE; END;

Page 120: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END ELSE BEGIN

OpcMenuCom:=NOMENUCOM; WRITELN(’Espera MENU’ :

END; END;

C TODO LO SIGUIENTE ES UNICAMENTE ICODIGO QUE ES PARA PROBAR EL CODIGO ANTERI C POR LO CUAL DEBE DE SER BORRFIDO

PROCEDURE TransIEC;

BEG IN VAR i: INTEGER;

FOR i:=l TO TamIEC DO BEGIN Esp DeT r a ns ; PORTCSOFF8 AND MackCOMl:=ORD( IICCil):

END; END;

PROCEDURE TransPASSWORD;

BEGIN VAR i: INTEGER;

FOR i:=l TO TamPASSWD DO BEG IN EspDeTrans; PORTCSOFFEJ AND MaskCOMl:=ORD(PASSWORDCi3) ;

END; END;

PROCEDURE TransMenu (NumMenu: INTEGER) ;

BEG IN VAR Menu: BYTE;

CASE NumMenu OF 1: Menu:=CMENUl; 2: Menu:=CMENU2; 3: Menu: =CMENU3;

END: EspDeTrans; PORTCSOFFEI AND MaskCOMl:=ST; EspDeTrans; PORTCSOFF8 AND MaakCOMl:=Menu; Esp DeTr a ns ; PORTCSOFFB FIND MaskCOMI:=ENTER;

END;

PROCEDURE InicializaCOM(AL:BYTE); BEG I N FillChar(regs,SizeOf(regs),O); CASE Com OF l:regs.DX:=O; 2:regs.DX:=l;

END; regs. AH: =OO; regs.AL:=AL;

117

Page 121: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Intr(Sl4,regs); CASE Com OF 1: BEGIN

VectorAs i nc : =Vector I nterrup C $02 1 ; VectorInterrupC$OCl:=@ServInt~errCOM; Habi 1 InterCOM; MaskCOM:=S03FF;

END; 2:BEGIN

VectorAsinc:=VectorInterrupC§~OBl; VectorInterrupC$OBl:=@ServIntervCOM; HabilInterCOM; MaskCOM:=SOZFF;

END: END; b:=PORTCd02FB &ND MaskCOMI; b:=b AND S7F; PORTCSOFFB AND MaskCOMl:=b; PortCSOFF9 CIND MaskCOMl:=$Ol; PortCSOFFC AND MaskCOMl:=SOB; C PortESOFFE AND MaskCOM1:=$80;> PortCS0201:=$20;

END;

PROCEDURE LeeDatTiRe;

BEGIN VAR CantLL, DirV: WORD;

Clrscr; IF BufferComC2l=DATTIRE THEN BEGIN CantLL:= BuffevComC41; CantLL:= CantLL SHL 7; CantLL:= CantLL OR BufferComC31; DirV:= BufferComC71; DirV:= (DirV SHL 8 ) OR BufferComCbl;;

WRITEí’CANTIDAD DE LLUVIA: ’,CantLL);

WRITE(’VELOC1DAD DEL VIENTO: ’,BufferComC51);

WRITE(’DIRECCI0N DEL VIENTO: ’,DirV); gotoxy(10,14); WRITE(’PAR4 SALIR PRESIONE ESC ’ ) ;

HayDatEnBu&FCom:=FALSE;

gotoxy(l0,8);

gotoxy(10,9);

gotoxy(lO,10);

END; END;

PROCEDURE EsperaIdentR;

Ind: INTEGER; VAR Sall,Sal2: BOOLEAN:

BEGIN Sall:=FALSE; REPEAT IF HayDatEnBuffCom THEN BEGIN SalZ:=FALCE;

Page 122: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

I nd: =O; REPEAT Ind:=Ind+l; IF ORD(IERCIndl)=BufferComCIndl THEN BEGIN IF ORD(IERCIndl)=ENTER THEN Sal2:=TRUE;

END ELSE SalZ:=TRUE

UNTIL Sal2; IF ORD(IERCIndl)=BufferComCIndl THEN

else

HayDatEnBuffCom: =FALSE; Sal 1: =true;

Writeln(’1ER Valida’)

Writeln(’ IER Invalida’ ) ;

END UNTIL Salí; END:

PROCEDURE EsperaCodMenu;

BEG IN Salí:=FhLSE; REPEAT

VAR Sall: BOOLEAN;

IF HayDatEnBuffCom THEN BEG IN IF BufferComC11 = ST THEN

IF BufferComC21 = CMENU THEN IF BufferComC31 = ENTER THEN

else Wr i te1 n ( ’ CodMenu va 1 i do’ 1

Wr i te1 n ( ’ CodMenu i nva 1 i do’ else Writeln(’CodMenu invalido’);

HayDatEnBuffCom:=FALSE; Sall:=trus; END

UNTIL Sall; END;

PROCEDURE TransCLRD; BEGIN EspDeTrans; PORTCBOFF8 AND MaskCOMl:=ST; EspDeTr ans; PORTCSOFF8 AND MaskCOMl:=CLRD; Esp DeTra ns ; PORTCBOFFB AND MaskCOMl:=ENTER;

END;

PROCEDURE InicializaPtoSerie; BEGIN CTxIEC:=FALSE; CTxPasswor d: =FALSE;

119

Page 123: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

HayDatEnBuffCom:=FALSE; COM:=COMl; I ni cia1 i zaCOM (BE3) ;

END:

PROCEDURE EsperaDatoPtoSer; BEG IN WHILE NOT(HayDatEnBuffCom) DO BEGIN END;

END;

PROCEDURE BuffComABuffDat;

BEGIN VAR i: INTEGER;

i:=l; WHILE (i <= 128) AND (Bu++erComCi+21 < > $FF) DO BEG I N BuffDatCil:=BufferComCi+21; i : = i + l ;

END END;

PROCEDURE LimpiaBuffDat;

BEG IN VAR i: INTEGER;

FOR i:= 1 TO 1 2 8 DO

BuffDatEil:= SFF; BEGIN

END: END:

PROCEDURE EscBuffEnArchV; VAR Sal: BOOLEAN;

IndFlrch: LONGINT; BEGIN

Sa 1 : =FALSE ; ASSIGN(ArchV, ’Viento.Dat’ i ; REWRITE(ArchV1; CLOSE(ArchV) ; RESET (ArchV) ; IndArch:=-1; REPEAT EsperaDatoPtoSer; CASE BufferComC21 OF CELDD : BEGIN

HayDatEnBu-ffCom: =FALSE; gotoxy(8,lO) ; WRITE(’ERR0R EN LECT’URA DE DATOS.’): Sal:=TRUE;

END: TERDATV: BEGIN

HayDatEnBuffCom: =FAL.SE; gotoxy (8,lO) ; WRITE(’F1N DE LA TRFiNCMISION DE LOS DATOS DEL VIENTO.’); Sal:=TRUE;

120

Page 124: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END: DDAV : BEGIN

LirnpiaBuffDat; BuffComABuffDat; HayDatEnBuffCom:=FALSE; Tra nsCLRD ; IndArch:=IndArch+l: SEEK(ArchV,IndArch): WRITE (ArchV, BuffDat) :

END; END;

UNTIL Sal; CLOSE(ArchV) ;

END;

PROCEDURE EscBu+fEnArchLL; VAR Sal: BOOLEAN;

IndArch : LONGINT; BEG IN Sal:=FALSE; ASSIGN(ArchLL,’Lluvia.Dat‘); REWRITE(ArchLL); CLOSE (ArchLL) ; RESET (ArchLL) ; I ndArch: =-1; REPEAT EsperaDatoPtoSer; CASE Bu+ferComC23 OF CELDD :

TERDATLL:

DDFILL :

BEG IN HayDatEnBuf#Com: =FFiLSE; gotoxy(8,14) ; WRITE ( ’ ERROR EN LECTURA DE DATOS. ’ ; Sal:=TRUE:

END; BEGIN HayDatEnBuffCom:=FALSE; gotoxy(8,14) ; WRITE(’F1N DE LFI TRANSMISION DE LOS DATOS DE LA LLUVIA.‘); Sa 1 : =TRUE ;

END: BEG IN Limp i aBuffDat ; BuffComABuffDat; HayDatEnBu#fCom:=FALSE; Tr a nsCLRD ; IndArch:=IndArch+l; SEEK(ArchLL,IndArch); WR I TE ( ArchLL , BuffDa t ) ; END;

END; UNTIL Sal; CLOSE (ArchLL) ;

END:

PROCEDURE RecibeDatDiaAnt; BEGIN

Page 125: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

EsperaDatoPtoSer; CASE Buf+erComC21 OF CELDD: BEGIN

HayDatEnBufCCom:=FALSE: gotoxy(8,8) ; WRITE(’ERR0R EN LECTURA DE DATOS.’); END;

CADV : BEGIN HayDatEnBuffCom:=FALSE; gotoxy(8,8) ; WRITE(’AUSENC1A DE DATOS DEL VIENTO DEL DI4 ANTERIOR.’):

END; DDAV : BEGIN

EscBufCE nAr chV ; qotoxy (8,8) ; WRITE(’TRANSMITIEND0 DATOS DEL VIENTO DE LA ESTACION CENTRAL.’); END;

END; EsperaDatoPtoSer; CQSE BufferComCZI OF CELDD: BEGIN

HayDatEnBuffCom:=FALSE; gotoxy(8,12) ; WRITE(’ERR0R EN LECTURA DE DATOS.’); END;

CADLL: BEGIN HayDatEnBuffCom:=FALSE; gotoxy(8,12); WRITE(’AUSENC1A DE DATOS DE LA LLUVIA DEL DIA ANTERIOR..’);

END; DDQLL: BEGIN

EscBuffEnArchLL; gotoxy(8,12) ; WRITE(’TRfiNSMITIEND0 DATOS DE LA LLUVIA DE LA ESTACION CENTRGL.’); END;

END; END;

PROCEDURE LeeRegADiaV(1nd: Lonq1nt:;VAR NumError:INTEGER); BEG IN CSI-1 RESET (ArchV) ; NumError:=IORecult; IF NumError = O THEN

SEEK(ArchV, Ind); READ(ArchV,BuffDat); NumError:=IOResult; I F NumError = O THEN

BEGIN

BEG IN CLOSE(ArchV) ; NurnError:=IOResult; IF NumError = O THEN BEG IN END;

Page 126: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END; END;

<$I+> END;

PROCEDURE EnviaDatosViento (I nd: LCINGINT; Var Contl: integer) ; VAR Ve lSgHr Di rMi n, Vel, Cg , Hr , Di r ,, Mi n: WORD;

i: INTEGER; SAL2: BOOLEAN;

BEG IN {$I-> RESET (ArchV) ; SEEK(ArchV, Ind); READ(ArchV,BuffDat); CLOSE (ArchV) ; {$I+> 1.- .-1;

gotoxy (1 ,Contl) ; WHILE (BuFfDatCil < > $FF) AND (i<=128) DO BEGIN VelSgHr:=BuffDatCi+ll: VelSgHr:=VelSgHr SHL 8: VelSqHr:= VelSgHr OR BuffDatCil: i:=i+2; DirMin:= BuffDatCi+ll; DirMin:= DirMin SHL 8; DirMin:= DirMin OR BuffDatCil; i:=i+2; Min:= DirMin AND SO03F; Dir:= DirMin SHR 6; Hr := VelSgHr AND SOOlF; VelSgHr:= VelSgHr SHR 5; Sg := (VelCgHr AND $0007) J 10; Vel:= VelSgHr SHR 3; WRITE ( ’ Velocidad: ’ ,Vel, ’ ’ ) ; WRITE(’ Dirección: ’,Diu,’ ’ ) ;

WRITE(’ Hora: ’,Hr,’ ’ ) ;

WRITE(’ Min.: ’,Min,’ ’ ) ;

WRITELN(’ Seg.: ’,Sg,’ ’ ) ;

contl : =cont 1 + 1 ; if cont1>23 then BEGIN sal2:=false; repeat gotoxy(l0,25); writel’PRESIONE ENTER PARA CONTINUAR’); CADC254l:=READKEY; IF ORD(CADC2541)=13 THEN

BEG IN Clrscr; Sal2:=TRUE; cont 1 : =2; gotoxy ( 1, Cont 1 ) ;

END: until sal2; END;

Page 127: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END; END:

PROCEDURE EnviaDatosLluvia(1nd: LOIYG1NT;Var Contl: integer); VAR CantLL, Ani o: WORD;

Me5, Did, Hr , Mi n, Sg : BYTE; i: INTEGER; sa 12: boo 1 ean:

BEGIN <$I-> RESET (ArchLL) ; SEEK(ArchLL,Ind); READ(ArchLL,BuffDat); CLOSE (ArchLL) ; <$I+) i:=l; gotoxy ( 1 ,Contl) ; WHILE (Bu+fDatCi+ll < > $FF) AND (it <= 126) DO BEG IN CantLL:=BuffDatCi+lI; CantLL:=CantLL SHL 7; CantLL:=CantLL OR BuffDatCil; WRITE ( ' Cant. Lluvia: ',CanLLL); i:=i+2; Ani o: =BuffDat C i + 1 1 ; Anio:=Anio SHL 8; Flnio:= Anio OR BuffDatCí3; WRITE(' Año: ',Anio); i:=i+2; Mes:=BuffDatCiI; WRITE(' Mes: ' ,Mes): i :=i+l; Dia:=BuffDatCil; WRITE(' Día: ',Did); i:=i+l; Hr:=BuffDatCil; WRITE(' Hra: ',Hr); i:=i+l; Min:=BuffDatCil; WRITE(' Min: ' , M i n ) ; i:=i+l; Sg:=BuffDatCiI; WRITELN(' Sg: ',Sg); i:=i+l; contl: =contl+l; if Contl>22 then BEG IN sal2:=false; repeat gotoxy ( 10 ,25 ) ; write('PRES1ONE ENTER PARA CONTINUAR.'); CADC2543:=READKEY; IF ORD(ChDC2541)=13 THEN BEGIN Clrscr; Sal2:=TRUE;

Page 128: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

Cont 1 : =2; gotoxy ( 1. Contl ) ;

END; until sa12; END;

END; END;

FUNCTION NRADiaV(V4R NurnError: INTEGER): LONGINT; BEGIN <$I-} RESET(ArchV); NurnError:=IOResult; I F NumError = O THEN BEG IN NRADiaV:=FileSite(ArchV); CLOSE (ArchV) ; NurnError:=IORecult; IF NumEvror < i O THEN BEG I N END;

END ELSE BEGIN END;

< $ I + > END;

FUNCTION NRALluvia: LONGINT; BEGIN <$I-> RESET(ArchLL) ; NRAL luv i a : =F i l eS i ze (AvchLL ) ; CLOSE (ArchLL) ; <$I+>

END:

FUNCTION NRAViento: LONGINT: BEGIN

<$I-> RESET (C\rchV ) ; NRAViento:=FileSite(ArchV); CLOSE (ArchV) ; < $ I + ?

END;

PROCEDURE LeeDatosViento; VAR NumRegAV,i: LONGINT;

Cont 1 : i nteger ; Ca12: Boolean;

BEGIN Assign(ArchV,’Viento.Dat’ ) ;

NumRegAV:= NRAViento; Contl:=Z; IF NumRegFIV = O THEN

beg I n

Page 129: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

gotoxy ( 1 o, 5 ) ; WRITELN(’ARCHIV0 DE DATOS DEL VIENTO VCSCIO.’) end

ELSE FOR i:=l TO NurnRegFIV DO

EnviaDatosViento(i-1,Contl) ; IF Contl < > 2 then

sal2:=false; repeat

BEGIN

gotoxy(10,25); write(’PRES1ONE ENTER PARA CONTINUAR.’); CADC2543:=READKEY; IF ORD(CADC2543)=13 THEN BEGIN

C 1 rscr ; Sal2:=TRüE;

END: until sal2;

END; - END;

PROCEDURE LeeDatosLluvia; VFIR NumRegAL,i: LONGINT;

Cont 1 : i nteger ; sa12: Boolean:

BEG IN Assign(ArchLL, ’Lluvia.Dat’ ) ; NumRegAL:= NRALluvia; C o n t 1 : =2; IF NumRegAL = O THEN

beg i n

WRITE(’ARCHIV0 DE DATOS DE LA LL-UVIA VACIO.’); end

gotoxy(l0,7) ;

ELSE FOR i:=l TO NumRegAL DO

Envi aDatosLluvi a ( i - 1. Cont 1 ) : IF Contl < > 2 then

sal2:=false; repeat

BEGIN

gotoxy(10,25); write(’PRESI0NE ENTER PFiR4 CONTINUAR.’); CADC254l:=READKEY; IF ORD(CADC2543)=13 THEN BEGIN

Clrscr; Sal2:=TRUE;

END; until sal2;

END; END;

BEG IN Clrecr;

Page 130: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

InicializaPtoSerie; Tra ns I EC : Espera1 dentR; TransPASSWORD; EsperaCodMenu; Sal:= FALSE; REPEAT Clrscr; Gotoxy(l0,8) ; WRITE(’ MENU’ ) ; Gotoxy(l0,S); WRITE(’1: TRANSMISION DE DATOS DEL DI4 ANTERIOR.‘); Gotoxy (10,101 ; WRITE(’2: TRhNSMISION DE DATOS EN TIEMPO REhL.’); Gotoxy (10,ll) ; WRITE(’3: DESPLEGAR DATOS ACUMULADOS EN DISCO.’); Gotoxy(lO,í2); WRITE(’4: TERMINAR TRANSMISION.’); Gotoxy(lO,14); WRITE(’ QUE OPCION DESEAS : ’ ) ;

ChDC255l:=READKEY; CASE ord(CADC2551) OF

49 : BEGIN Clrscr: TransMenu ( 1 ) ; Rec i beDa tD i aAnt ; gotoxy(l5,20);

ESPERE UN MOMENTO “,:a;:;oaoo>;

END; 50 : BEGIN

Sal 1 :=false; Clrscr; repeat

TransMenu ( 2 ) ; WHILE NOT(HayDatEn8uffCorn) DO BEGIN END; LeeDatTiRe; if: keypressed then

beg i n CADC2551:=READKEY; IF ORD (CFIDC2551) =27 THEN

end; until sall;

Sall:=TRUE;

END; 51 : BEGIN

Clrscr ; LeeDatosViento; LeeDatosLluvia;

END: 52 : BEGIN

TransMenu(3) ; WHILE NOT (HayDatEnBu+fCom:b DO BEG IN

127

Page 131: 152433 - 148.206.53.84148.206.53.84/tesiuami/UAM7666.pdf · PROYECTO TERMINAL DE INGENIERIA ELETRONICA ... elementos meteorol4gicos sobre la super+icie terrestre. ... dentro del Sistema

END; Clrscr; gotoxy (10.10) ; write(’TERMIN0 LA TRANSMISION, G D I O S . ’ ) ;

Sal:=TRUE; END;

END; JNTIL Sal;

DELFIY (3000 ) ; 3esHabi 1 InterCOM; cace COM OF 1: VectorInterrupC$OCl:=VectorAsinc; 2: VectorInterrupC$OBl:=VectorFIsínc; znd;

END.