Sei sulla pagina 1di 283

SISTEMA B SICO DE COMUNICACIN P OR F IB RA P TICA

Elkin Orlando Garca Giraldo


TRABAJO DIRIGIDO DE GRADO PRESENTADO COMO REQUISITO PARCIAL PARA OPTAR AL TTULO DE INGENIERO ELECTRICISTA

DIRECTOR Guillermo Len Mesa Betancur


Ingeniero Electrnico

UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE MINAS DEPARTAMENTO DE ELECTRICIDAD Y ELECTRNICA MEDELLN

A mis padres, por su valioso apoyo.

Elkin

AGRADECIMIENT OS

El autor desea expresar sus agradecimientos a:

Ing. Guillermo Mesa Betancur. Profesor del Departamento de Electricidad y Electrnica de la Facultad de Minas, por la orientacin y apoyo durante la realizacin del presente Trabajo Dirigido de Grado.

A todas aquellas personas que de una u otra manera colaboraron y apoyaron la realizacin del Trabajo de Grado.

ii

TABLA DE CONT ENIDO

AGRADECIMIENTOS ................................................................................................................................................................ II TABLA DE CONTENIDO .........................................................................................................................................................III LISTA DE TABLAS .................................................................................................................................................................. VII LISTADO DE ILUSTRACIONES ...........................................................................................................................................IX RESUMEN ......................................................................................................................................................................................XI ABSTRACT.................................................................................................................................................................................. XII INTRODUCCIN ..........................................................................................................................................................................1 CAPTULO 1: CONCEPTOS BSICOS ACERCA DE LOS SISTEMAS DIGITALES. ........................................3 1.1. 1.2. 1.2.1 1.3. 1.3.1 1.3.2 1.4. 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5. 1.5.1 1.5.2 1.5.3 1.5.4 1.6. 1.6.1 1.6.2 1.7. 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.8. PRINCIPIO DE FUNCIONAMIENTO................................................................................................................................3 LA LGICA BINARIA ....................................................................................................................................................4 lgebra Booleana...................................................................................................................................................4 COMPUERTAS LGICAS DIGITALES O GATES...........................................................................................................6 Circuitos combinacionales....................................................................................................................................6 El FlipFlop............................................................................................................................................................6 CIRCUITOS SECUENCIALES..........................................................................................................................................9 Circuito secuencial asincrnico........................................................................................................................ 10 Circuito secuencial sincrnico.......................................................................................................................... 10 Registros................................................................................................................................................................ 10 Decodificadores................................................................................................................................................... 11 Multiplexor........................................................................................................................................................... 11 Demultiplexor....................................................................................................................................................... 11 Contadores binarios............................................................................................................................................ 11 Memorias.............................................................................................................................................................. 12 CIRCUITOS INTEGRADOS............................................................................................................................................13 Familias lgicas de integrados......................................................................................................................... 14 Dispositivos de tres estados............................................................................................................................... 15 Dispositivos de colector abierto OC (open colector) ................................................................................ 16 Compuertas SCHMITT-TRIGGER ................................................................................................................... 16 SISTEMAS DIGITALES..................................................................................................................................................16 Sistema digital de propsito especial............................................................................................................... 18 Sistema digital de propsito general................................................................................................................ 18 CDIGOS DIGITALES...................................................................................................................................................21 Cdigo Octal........................................................................................................................................................ 21 Cdigo Hexadecimal........................................................................................................................................... 22 Cdigo Decimal codificada en binario (BCD)............................................................................................... 22 Cdigo ASCII: (American standard code for information interchange):................................................. 22 Cdigo ASCII Extendido.................................................................................................................................... 23 COMPONENTES BSICOS DE UN P.C.........................................................................................................................25 iii

1.8.1 1.8.2 1.8.3 1.8.4 1.8.5

La CPU.................................................................................................................................................................. 26 Circuitos de conexin o buses........................................................................................................................... 27 El adaptador de interfaces................................................................................................................................. 27 La ROM ................................................................................................................................................................. 28 La memoria RAM ................................................................................................................................................ 28

CAPTULO 2: EL PC Y LAS COMUNICACIONES ....................................................................................................... 29 2.1. 2.2. 2.3. 2.4. 2.5. 2.5.1 2.5.2 2.6. 2.6.1 2.6.2 2.7. COMUNICACIN PARALELO Y SERIE .......................................................................................................................29 EL M ODEM ..................................................................................................................................................................30 VELOCIDADES DE TRANSMISIN..............................................................................................................................32 M ODALIDADES DE TRANSMISIN ............................................................................................................................34 SINCRONIZACIN........................................................................................................................................................35 Transmisin asncrona ....................................................................................................................................... 36 Transmisin sincrnica ...................................................................................................................................... 37 DETECCIN Y CORRECCIN DE ERRORES................................................................................................................39 La paridad simple................................................................................................................................................ 39 La Paridad de bloque......................................................................................................................................... 40 DEFINICIN DE PROTOCOLO .....................................................................................................................................42

CAPTULO 3: LAS FIBRAS PTICAS............................................................................................................................... 44 3.1. 3.1.1 3.2. 3.2.1 3.2.2 3.2.3 3.3. 3.4. 3.4.1 3.4.2 3.5. 3.5.1 3.5.2 3.6. 3.7. 3.7.1 3.7.2 NATURALEZA DE LA LUZ...........................................................................................................................................44 Propagacin de la luz......................................................................................................................................... 45 LA FIBRA PTICA.......................................................................................................................................................48 Prdidas de potencia ptica.............................................................................................................................. 50 Ancho de banda de la fibra................................................................................................................................ 52 Tipos de fibra ptica........................................................................................................................................... 53 SISTEMA DE COMUNICACI N POR FIBRA PTICA ...................................................................................................57 FUENTES DE LUZ.........................................................................................................................................................58 El diodo LED: ...................................................................................................................................................... 59 El Lser:................................................................................................................................................................ 61 DETECTORES DE LUZ ..................................................................................................................................................63 Detectores PIN: ................................................................................................................................................... 64 Detectores APD: .................................................................................................................................................. 66 CONECTORES...............................................................................................................................................................67 EMPALMES...................................................................................................................................................................68 El empalme por fusin........................................................................................................................................ 69 El empalme mecnico......................................................................................................................................... 70

CAPTULO 4: CONOCIMIENTO BSICO DEL PUERTO PARALELO ............................................................... 72 4.1. SEALES DEL PUERTO PARALELO.............................................................................................................................73 4.1.1 Bus de Datos......................................................................................................................................................... 73 4.1.2 Bus de Estado....................................................................................................................................................... 74 4.1.3 Bus de Control ..................................................................................................................................................... 74 4.1.4 Las lneas de tierra.............................................................................................................................................. 75 4.2. PROGRAMACIN DEL PUERTO PARALELO ...............................................................................................................76 4.2.1 Programacin del registros de datos............................................................................................................... 77 4.2.2 Programacin del registro de estado............................................................................................................... 77 4.2.3 Programacin del registro de control............................................................................................................. 78 CAPTULO 5: CONOCIMIENTO DEL MDULO DE COMUNICACIONES ...................................................... 80 5.1. 5.2. 5.2.1 5.3. 5.4. 5.5. EXPLICACIN DEL MMICO DEL EQUIPO.................................................................................................................80 A COPLE ENTRE LAS LNEAS DEL PUERTO PARALELO DEL PC Y LAS DEL MDULO DE COMUNICACIONES ....82 Circuito interno de control................................................................................................................................ 87 PUERTO DE VERIFICACIN........................................................................................................................................89 CIRCUITO DEL OSCILADOR CENTRAL CK M AESTRO: ..........................................................................................90 CIRCUITOS DE ENTRADA DE SEAL A NLOGA......................................................................................................92 iv

5.6. 5.7. 5.8. 5.9. 5.10. 5.11. 5.12. 5.13.

CIRCUITO DE ENTRADA DE SEALES DIGITALES: .................................................................................................93 CIRCUITO TRANSMISOR - RECEPTOR DE SEALES POR LA FIBRA PTICA.........................................................94 CIRCUITOS DE CONVERSIN DE SEAL DIGITAL A A NLOGA ............................................................................96 CIRCUITO DE SALIDA DE SEALES DIGITALES ......................................................................................................96 GENERADOR DE FUNCIONES......................................................................................................................................96 M DULO EXTERNO DE INSERCIN DE BITS ............................................................................................................97 FUENTE DE ALIMENTACIN.......................................................................................................................................98 A CCESORIOS EXTERIORES .........................................................................................................................................98

CAPTULO 6: CONOCIMIENTO DEL SOFTWARE DE MANEJO DEL MDULO DE COMUNICACIONES ................................................................................................................................................................. 99 6.1. RECOMENDACIONES GENERALES ..........................................................................................................................100 6.2. VENTANAS DEL PROGRAMA . ..................................................................................................................................100 6.2.1 Ventana de bienvenida.....................................................................................................................................101 6.2.2 Ventana de configuracin................................................................................................................................102 6.2.3 Ventana de graficacin.....................................................................................................................................105 6.2.4 Ventana de edicin............................................................................................................................................106 6.2.5 Ventana de salida..............................................................................................................................................109 CAPTULO 7: PRCTICAS DE LABORATORIO .......................................................................................................111 7.1. 7.1.1 7.1.2 7.1.3 7.2. 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.3. 7.3.1 7.3.2 7.3.3 7.4. PRACTICA #1: A NLISIS DEL TEOREMA DEL MUESTREO....................................................................................111 Objetivos.............................................................................................................................................................111 Anlisis visual de una seal muestreada a diferentes frecuencias...........................................................113 Anlisis del proceso de conversin de una seal anloga a digital.........................................................114 PRCTICA #2: A PLICACIONES CON SEALES DE ENTRADA Y SALIDA DIGITALES. ..........................................116 Objetivos:............................................................................................................................................................116 Tablas de verdad de las principales compuertas.........................................................................................116 Combinacin de compuertas lgicas.............................................................................................................118 Multiplexor de cuatro canales.........................................................................................................................119 Demultiplexor de cuatro vas..........................................................................................................................121 Diagramas de tiempo de los contadores binarios.......................................................................................122 PRCTICA #3: TRANSMISIN DE DATOS DIGITALES ATRAVEZ DE LA FIBRA PTICA......................................125 Objetivos:............................................................................................................................................................125 Anlisis temporal de las seales a la salida de un registro de corrimiento............................................125 Transmisin de una seal digital a travs de una fibra ptica.................................................................127 PRCTICA #4: M ODIFICACIN DE LA TRAMA DE UNA SEAL DIGITAL MEDIANTE UN ELEMENTO DE HARDWARE .................................................................................................................................................................................129 7.4.1 Objetivos:............................................................................................................................................................129 7.4.2 Insercin de bits en la trama de una seal digital.......................................................................................129 7.4.3 Deteccin de errores por el mtodo de paridad simple par......................................................................131 7.5. PRCTICA #5: M ODULACIN AM, PAM Y ASK. ...............................................................................................135 7.5.1 Objetivos:............................................................................................................................................................135 7.5.2 Modulacin AM:................................................................................................................................................136 7.5.3 Modulacin PAM...............................................................................................................................................138 7.5.4 Modulacin ASK................................................................................................................................................139 7.6. PRCTICA #6: M ODULACION FM, PSK, Y MSK.................................................................................................142 7.6.1 Objetivos:............................................................................................................................................................142 7.6.2 Modulacin FM. ................................................................................................................................................142 7.6.3 Modulacines PSK ............................................................................................................................................144 7.6.4 Modulacines FSK............................................................................................................................................145 CONCLUSIONES .....................................................................................................................................................................147 ANEXO 1: TARJETA #1, TARJETA PRINCIPAL DE CONTROL.........................................................................148 CIRCUITOS DE ACOPLE ENTRE EL PC Y EL MDULO.............................................................................................................148 EL CIRCUITO DE CONTROL .......................................................................................................................................................150 v

CIRCUITO DE MEMORIA INTERMEDIA......................................................................................................................................151 CIRCUITO DEL RELOJ MAESTRO...............................................................................................................................................152 CIRCUITO DE DIVISIN DE FRE CUENCIA PARA LA TRANSMISIN SERIE.............................................................................152 CIRCUITO DEL GENERADOR DE FUNCIONES...........................................................................................................................153 SEALES Y DESTINO DE LOS DIFERENTES CONECTORES: .....................................................................................................153 LISTA DE LOS ELEMENTOS QUE CONFORMAN LA TARJETA DE CONTR ...........................................................................155 OL ANEXO 2: TARJETA # 2, CONVERSIN DE SEAL ANLOGA A DIGITAL Y DIGITAL A DIGITAL (INAD - INDD)............................................................................................................................................................................164 CIRCUITO DE CONVERSIN DE SEAL ANLOGA A DIGITAL................................................................................................164 CIRCUITO DE ENTRADA DIGITAL .............................................................................................................................................166 CONFIGURACIN DE LAS TARJETAS INAD INDD.............................................................................................................166 DESTINO Y SEALES DE LOS DIFERENTES CONECTORES DEL LA TARJETA A/D-D/D:......................................................167 LISTA DE LOS ELEMENTOS DE LA TARJETA #2 INAD - INDD............................................................................................168 ANEXO 3: TARJETA #3 CONVERSIN DE SEAL DIGITAL A ANLOGA Y DIGITAL A DIGITAL (OUTDA OUTDD) .................................................................................................................................................................172 CIRCUITO CONVERSOR DE SEAL DIGITAL A ANLOGA.......................................................................................................172 CIRCUITO CONVERTIDOR DE SEAL DIGITAL A DIGITAL.....................................................................................................173 CONFIGURACIN DE LAS TARJETAS:.......................................................................................................................................173 DESTINO Y SEALES EN LOS DIFERENTES CONECTORES DE LA TARJETA #3, OUTDA OUTDD ...............................174 LISTA DE LOS ELEMENTOS DE LA TARJETA #3 D/A-D/D.....................................................................................................175 ANEXO 4: TARJETA # 4 DE TRANSMISIN Y RECEPCIN DE SEALES VIA FIBRA PTICA (TX/RX) ........................................................................................................................................................................................178 DESTINO Y SEALES DE LOS DIFERENTES CONECTORES DE LA TARJETA TX/RX: ............................................................180 LISTA DE ELEMENTOS DE LA TARJETA TX/RX:......................................................................................................................181 ANEXO 5: TARJETA #5 MDULO DE INSERCIN DE BITS ...............................................................................186 DESCRIPCIN DE LA TARJETA..................................................................................................................................................186 SEALES EN EL CONECTOR J5.1 DE LA TARJETA DEL MODULO DE INSERCIN DE BITS: .................................................188 Lista de elementos de la tarjeta #5..................................................................................................................................189 ANEXO 6: CDIGO FUENTE DEL PROGRAMA MODCOM ..................................................................................192 PROGRAMA PRINCIPAL .............................................................................................................................................................192 ANEXO 7: CARACTERSTICAS TCNICAS DEL SISTEMA EL ECTRO PTICO.....................................263 REFERENCIAS BIBLIOGRFICAS .................................................................................................................................268

vi

LISTA DE TABLAS
Tabla 1.1. Relaciones bsicas del lgebra Booleana................................................................................................................5 Tabla 1.2. Cdigos Digitales BCD, Octal y Hexadecimal...................................................................................................... 23 Tabla 1.3: Smbolos del Cdigo ASCII extendido.................................................................................................................... 24 Tabla 3.1 Atenuaciones tpicas introducidas por diferentes conectores............................................................................. 68 Tabla 3.2 Atenuaciones tpicas introducidas por desalineamientos, inclinacin, diferencia de dimetro e ndice en los ncleos....................................................................................................................................................................................... 70 Tabla 4.1. Conector y Seales del Puerto Paralelo................................................................................................................ 73 Tabla 5.1 Cdigo de instrucciones enviadas en el primer nibble del bus DIRECCIONES............................................. 84 Tabla 5.2 Cdigo de instrucciones enviadas en el segundo nibble del bus DIRECCIONES. .......................................... 84 Tabla 5.3 Seales y lgica de la primera parte del circuito de control.............................................................................. 88 Tabla 5.4 Seales y lgica de la segunda parte del circuito de control.............................................................................. 89 Tabla 5.5 Seales del puerto de Verificacin.......................................................................................................................... 89 Tabla 5.6 Valores en KHz. y cdigos asignados para el rango de alta frecuencia del CK Maestro............................. 91 Tabla 5.7. Valores en Hz. y cdigos asignados para el rango de baja frecuencia del CK Maestro............................... 91 Tabla 5.9. Seales elctricas del conector BD 9 para la entrada y salida de seales digitales..................................... 93 Tabla 5.10. Seales elctricas del conector BD 9 hembra del transmisor serie ............................................................... 95 Tabla 7.1. Configuracin del archivo de programa PRAC1A............................................................................................114 Tabla 7.2 Configuracin del archivo de programa PRAC1B.............................................................................................114 Tabla 7.3. Configuracin del archivo de programa PRAC2A............................................................................................117 Tabla 7.4. Configuracin del archivo de programa PRAC2B............................................................................................118 Tabla 7.3:Configuracin del archivo de programa PRAC2C..............................................................................................120 Tabla 7.6: Configuracin del archivo de programa PRAC2D...........................................................................................122 Tabla 7.7: Configuracin del archivo de programa PRAC2E............................................................................................123 Tabla 7.8 Configuracin del archivo de programa PRAC3A.............................................................................................126 Tabla 7.9: Configuracin del archivo de programa PRAC3B.............................................................................................128 Tabla 7.10: Configuracin del archivo de programa PRAC4A...........................................................................................131 vii

Tabla 7.11: Configuracin del archivo de programa PRAC4B...........................................................................................133 Tabla 7.12: Configuracin del archivo de programa PRAC5A...........................................................................................137 Tabla 7.13: Configuracin del archivo de programa PRAC5B...........................................................................................139 Tabla 7.14: Configuracin del archivo de programa PRAC5C ..........................................................................................140 Tabla 7.15. Configuracin del archivo de programa PRAC6A...........................................................................................143 Tabla 7.16. Configuracin del archivo de programa PRAC5C...........................................................................................144 Tabla 6.16. Configuracin del archivo de programa PRAC5C...........................................................................................146 Tabla A1.1 Seales en los diferentes conectores de la tarjeta de control.........................................................................153 Tabla A1.2 Seales en los diferentes conectores de la tarjeta de control.........................................................................154 Tabla A.1.3. Lista de correas con las que se interconectan las tarjetas del modulo .......................................................157 Tabla 1.4 Conexin entre los pines de los conectores de la correa 1 ...............................................................................158 Tabla A.1.5. Conexin entre los pines de la correa 2............................................................................................................159 Tabla A.1.6. Cable 1: Interconexin entre el PC y el Mdulo de comunicaciones.........................................................161 Tabla A.2.1. Seales en los diferentes conectores de la tarjeta#2 INAD - INDD ...........................................................167 Tabla A2.2 Seales en DB9 macho de entrada de seal digital al INDD. .......................................................................168 Tabla A2.3 Correa A/D-D/D1 ....................................................................................................................................................169 Tabla A3.1 Seales en los diferentes conectores de la tarjeta #3, OUTDA - OUTDD ...................................................174 Tabla A3.2 Seales en DB9 hembra de salida de seal del OUTDD................................................................................174 Tabla A3.3 Correa D/A-D/D1...................................................................................................................................................176 Tabla A4.1 Seales en los diferentes conectores de la tarjeta de Tx/Rx...........................................................................180 Tabla A4.2 Seales elctricas de entrada y salida de seal serie enviadas por la fibra ptca......................................181 Tabla A.4.3 Correa TX/RX1......................................................................................................................................................183 Tabla A5.1 Seal en el conectores J5.1 o DB9 hembra de la tarjeta del modulo de insercin de bits........................188 Tabla A5.1 Seal en el conectores J5.1 o DB9 hembra de la tarjeta del mod. de insercin de bits............................188 Tabla A.5.2 Cable Inser1...........................................................................................................................................................190

viii

LISTADO DE ILUST RACIONES


Figura 1. Compuertas Lgicas Digitales ________________________________________________________ 7 Figura 2. Resumen de las Caractersticas de los FlipFlops__________________________________________ 9 Figura 3. Microcomputador Bsico ___________________________________________________________ 26 Figura 4. Circuito de Transmisin de Datos_____________________________________________________ 31 Figura 5. Velocidad de Transferencia de Datos y Velocidad de Transmisin Serie ________________________ 33 Figura 6. Comunicacin Simplex, SemiDuplex y Duplex____________________________________________ 34 Figura 7. Formato bsico de la Informacin Transmida en serie para el modo asncrono___________________ 37 Figura 8. Formato para transmisin sncrona en serie por bits y por caracteres__________________________ 39 Figura 9. Deteccin de error usando paridad simple par ___________________________________________ 40 Figura 10. Deteccin y correccin de error usando paridad de bloque_________________________________ 41 Figura 11. Jerarqua de Capas del Modelo OSI __________________________________________________ 43 Figura 12 Espectro electromagntico _________________________________________________________ 44 Figura 13 Reflexin de la luz________________________________________________________________ 46 Figura 14 Refraccin de la luz_______________________________________________________________ 47 Figura 15 Representacin de una fibra ptica___________________________________________________ 48 Figura 16 Reflexin total interna en una gua de onda y cono de aceptacin ____________________________ 49 Figura 17 Curva de atenuacin de fibras de slice.________________________________________________ 52 Figura 18 propagacin de la luz en una fibra ptica de ndice escaln ________________________________ 55 Figura 19 Dispersin de una fibra multimodo de ndice escaln _____________________________________ 55 Figura 20 Propagacin de la luz en una fibra de ndice gradual _____________________________________ 56 Figura 21 Propagacin de la luz en una fibra monomodo __________________________________________ 57 Figura 22 Sistema de comunicacin por fibra ptica y repetidor ptico________________________________ 57 Figura 23 Bandas de energa en una unin p-n __________________________________________________ 59 Figura 24. Diferentes estructuras de diodos LED ________________________________________________ 60 Figura 25 Longitud de la cavidad resonante en un lser ___________________________________________ 62 Figura 26 Campo elctrico en un fotodiodo PIN _________________________________________________ 64 Figura 27 Caractersticas de un diodo PIN _____________________________________________________ 65 Figura 28 Conector de abrazadera de precisin y bicnico _________________________________________ 67 Figura 29 Diferentes maneras de realizar empalmes en fibra ptica monomodo y multimodo _______________ 69 Figura 30. El puerto paralelo en el PC_________________________________________________________ 72 Figura 31. Distribucin de los pines en el conector DB25 Hembra del puerto paralelo ____________________ 76 Figura 32. Plano mmico del mdulo de comunicaciones ___________________________________________ 80 Figura 33. Circuito de Acople entre los buses del PC y el mdulo ____________________________________ 85 ix

Figura 34. Circuito de Control interno ________________________________________________________ 87 Figura 35. Ventana de Bienvenida al programa _________________________________________________ 101 Figura 36. Ventana de configuracin de equipo _________________________________________________ 102 Figura 37: Ventana de graficacin___________________________________________________________ 105 Figura 38. Ventana de edicin de programa____________________________________________________ 107 Figura 39 Ventana de salida _______________________________________________________________ 110 Figura A1.1. Filtro de Compensacin de impedancias entre PC y mdulos_____________________________ 158 Figura A1.2. Disposicin fsica de los elementos en la tarjeta #1 ____________________________________ 162 Figura A1.3. Screen de la Tarjeta # 1 _________________________________________________________ 163 Figura A2.1 Configuracin de las tarjetas INAD - INDD__________________________________________ 166 Figura A.2.2. Orden de los pines en el conector DB9 macho________________________________________ 168 Figura A2.3. Disposicin fsica de los elementos en la tarjeta #2 ____________________________________ 170 Figura A2.4. Lado de soldadura de la Tarjeta # 2 _______________________________________________ 171 Figura A3.1 Configuracin de la Tarjeta #3 OUTDA - OUTDD ____________________________________ 173 Figura A3.2 Disposicin fsica de los pines del conector DB9 hembra ________________________________ 175 Figura A3.3. Disposicin fsica de los elementos en la tarjeta #3, OUTDA - OUTDD _____________________ 176 Figura A3.4. Lado de soldadura de la Tarjeta # 3________________________________________________ 177 Figura A4.1 Orden de los pines en el conector DB9 hembra de entrada y salida de seal serie._____________ 181 Figura A4.1. Disposicin fsica de los elementos en la tarjeta #4 ____________________________________ 184 Figura A4.2 Lado de soldadura de la tarjeta#4 _________________________________________________ 185 Figura A5.1 Distribucin fsica de los elementos de la tarjeta #5____________________________________ 190 Figura A5.2 Lado de soldadura de la tarjeta #5_________________________________________________ 191

RESUMEN

Este trabajo de grado presenta el diseo y la construccin de un equipo de comunicaciones con 4 entradas de seal anloga, 4 entradas digitales, 4 salidas anlogas, 4 salidas digitales y sistema bsico de comunicacin por fibra ptica, al igual que un texto con teora elemental respecto a la electrnica digital, las comunicaciones, la fibra ptica, conocimiento y programacin del puerto paralelo, conocimiento del equipo, manejo del software de operacin y 6 prcticas de laboratorio donde se muestra los alcances y aplicabilidad del equipo. Presenta un software de manejo del mdulo de comunicaciones que aprovecha la versatilidad y facilidad de programacin del puerto paralelo del computador para interactuar con el mdulo y presentar en forma grfica en la pantalla del computador las operaciones matemticas y lgicas realizadas con las seales de las diferentes entradas y salidas. Al final de la obra se anexa: un diagrama mmico del equipo e escala real donde se explica en n forma grfica los diferentes bloques constitutivos del equipo al igual que la interaccin entre ellos y el puerto paralelo del computador; los planos electrnicos de las diferentes tarjetas que componen el equipo, al igual que una descripcin breve del seguimiento de las seales por los diferentes circuitos de cada tarjeta.

Palabras Clave: Comunicaciones; Protocolos; Fibra ptica; Electrnica Digital

xi

ABST RACT

This Thesis presents the design and construction terms in order to perform a Communication Equipment which comes up with 4 inputs for analog signals, 4 inputs for digital signals, 4 outputs for analog signals and 4 outputs for digital signals. Besides, it shows a communication system for fiber optics, as well as a complete text with basic theory concerning digital electronics, communications and fiber optics. It also provides information about knowledge and

programming of the parallel port, knowledge of the equipment itself and operation of the software. It also comes along with 6 laboratory practices, which let the user validate both scopes and applications of this equipment. There is a software that lets anybody to operate the communications module, and takes advantage of the versatility and easy programming of the parallel port in the PC computer in order to interface with the module itself and therefore, it presents graphics in the PCs display, where one can watch the kind of mathematical and logic operations which have been performed using signals from each input and output. At the end of this paper there are several attachments: One with the equipments MIME diagram in real scale, explains in a graphical way the different blocks that conform this equipment, as well as the interactions among themselves and with t e PCs parallel port. Theres h another attachment that shows the electronic levels for the distinct boards that conform this equipment. It also concerns with a brief description about the signals that travel through every single circuit in each board.

Keywords: Communications; Protocols; Fiber Optics; Digital Electronics

xii

INT RODUCCIN
Con los avances de la tecnologa actual en el campo de las comunicaciones se hace cada vez ms necesario estar actualizados en lo que a ello respecta teniendo como fundamento los conocimientos ms elementales de la electrnica digital, ya que ellos son la base del edificio de los conocimientos actuales. Teniendo en cuenta esto, en este informe se explica cmo se dise y construy un equipo que interfasado al puerto paralelo del PC permite aprovechar la pantalla del mismo para que en forma grfica los conocimientos bsicos en cuanto a electrnica anloga, digital y comunicaciones, se presenten hasta donde sea posible en forma visual, donde estos adquieren ms accesibilidad. Este equipo se construy con fines docentes y por medio de un

sotfware de programacin se pueden disear diferentes prcticas de laboratorio con la disponibilidad de 4 entradas anlogas, 4 entradas digitales, 4 salidas anlogas, 4 salidas digitales y un sistema de comunicacin por fibra ptica; se pueden programar operaciones matemticas y lgicas, funciones trigonomtricas y operaciones de control, permitiendo realizar con ellas grficas respecto al tiempo en la pantalla del PC. Se pretende tratar de m ostrar en cmara lenta los diferentes procesos a los que son llevadas las seales elctricas para tener una correcta comunicacin, permitiendo congelar instantes de tiempo para efectos de anlisis; por tanto se trabaja con seales del orden de 1Hz. El texto escrito pretende dar fundamentacin terica y presentar de una manera clara y sencilla los conocimientos elementales respecto a la electrnica digital en el captulo I, lo fundamental respecto a los sistemas de comunicacin en el captulo II, la teora bsica respecto a la fibra ptica en el capitulo III, el conocimiento y programacin del puerto paralelo, al cual se conecta el equipo de comunicaciones en el captulo IV, el conocimiento bsico del mdulo de comunicaciones para un mejor aprovechamiento de los recursos de hardware que el posee en el capitulo V, la correcta utilizacin del software de manejo del equipo en el capitulo VI y 6 prcticas de laboratorio que sirven como ejemplo y demostracin de los alcances del equipo en el capitulo VII. En l s anexos se presentan informaciones ms de talladas y tcnicas de cada una de o las tarjetas que conforma el equipo, al igual que las seales en cada uno de sus conectores y correas de interconexin. Se anexan en la parte final los planos de cada tarjeta a igual que un l
1

plano mmico del equipo, que servir como referencia de estudio en caso de no tener a la mano el mdulo de comunicaciones. Es un gran esfuerzo realizado con el inters de aportar de una manera prctica un poco de lo que la imaginacin y la creatividad pueden realizar y materializar con elementos cotidianos y sencillos.

1. CAPTULO 1 CONCEPT OS BSICOS ACERCA DE LOS SIST EM AS DIGITALES.


1.1. PRINCIPIO DE FUNCIONAMIENTO Los sistemas digitales basan su funcionamiento en la facilidad que tienen los dispositivos electrnicos para manejar informaciones binarias. Es fcil para un dispositivo electrnico saber

si en determinado punto A o no tensin elctrica, aplicar tensin en otro punto B o aplicar tensin en un punto C dependiendo de las combinaciones de estado de A y B. De esta manera nace la electrnica digital que es la parte de la electrnica que estudia los dispositivos, circuitos y sistemas digitales, binarios o lgicos. Su estudio se realiza por

representacin matemtica de decisiones falsas (asociada con nivel 0 o no tensin) y verdaderas (asociada con nivel 1 o tensin) de la lgica, resumidas en el lenguaje simblico llamado lgebra booleana. Electrnicamente es posible ser instrumentada con los estados de conduccin (saturacin) y no conduccin (corte) de los transistores, es decir trabajando como interruptores de corrientevoltage; todo-nada. Para la tecnologa TTL (transistor-transistor logic) el 0 lgico es

representado con voltajes entre 0 y 0.8 voltios y el 1 lgico con voltajes entre 2.4 y 5 voltios. En la realidad se puede decir que los circuitos digitales no son mas que la combinacin de muchos interruptores, extremadamente rpidos que se cierran o abren en un momento dado, formando determinados patrones de unos (1s) y ceros (0s). Cuando un sistema digital como una computadora guarda su informacin en algn perifrico, sustituye el estado de tensin / no tensin por estados como campo magntico / no campo magntico (en discos magnticos) o reflexin de la luz / no reflexin de la luz (discos pticos), pero en cualquier caso se trata de informaciones 0 1, esta informacin es llamada informacin binaria. En la terminologa digital, al nivel o estado lgico 1 0 lo denomina dgito binario o bit (Binary digit), a los grupos de 8 bits se les da el nombre de byte, a dos bytes (16 bits) palabra (word), a un grupo de 4 bytes (32 bits) doble palabra (double word) y al sistema que los maneja

se le llama sistema binario. Se le asigna el nombre de bus a un conjunto de circuitos o lneas que tienen asignada una funcin comn La informacin est representada en los computadores digitales en grupos de bits. Utilizando

diversas tcnicas de codificacin que es hacer que los grupos de bits representen no solamente nmeros binarios, sino tambin otros smbolos discretos cualesquiera, tales como dgitos decimales, letras del alfabeto o para desarrollar conjuntos completos de instrucciones que realizan diversos tipos de clculos. 1.2. LA LGICA BINARIA Es una ciencia de razonamiento numrico aplicada a circuitos electronicos que realizan decisiones del tipo si, entonces. Si una serie de circunstancias particulares ocurre, entonces una accin particular resulta. circunstancias. El resultado es siempre el mismo para una serie dada de

Es utilizada para describir, en forma algebraica o tabular, la manipulacin y En Electrnica digital existen dos tipos de lgica: lgica

procesamiento de informacin binaria.

positiva y lgica negativa. La lgica positiva utiliza el estado lgico 1 para indicar el nivel alto o high (H) y el estado lgico 0 para indicar el nivel bajo o low (L). La lgica negativa opera en forma exactamente contraria, es decir asigna el 1 al nivel bajo y el 0 al nivel alto. 1.2.1 LGEBRA BOOLEANA Es un mtodo que expresa en lenguaje matemtico la lgica digital, proporcionando el mtodo mas compacto y conveniente de representar, analizar y disear circuitos lgicos digitales. En el algebra booleana, las entradas y salidas de un circuito digital se representan mediante caracteres alfabticos llamados variables booleanas o lgicas. Generalmente las entradas se designan por las primeras letras del alfabeto y las salidas por las ultimas. Las variables booleanas se combinan para formar ecuaciones booleanas o lgicas. Una ecuacin booleana es una expresin

matemtica que sintetiza la funcin de un circuito digital; consta de tres elementos: Variables de entrada, variables de salida y operadores lgicos. Los operadores lgicos (., + y -) son signos que relacionan entre s las variables de entrada y establecen su relacin con la(s) variable(s) de salida. Para un valor dado de las variables de entrada, la funcin booleana puede ser o 1 0. Las operaciones bsicas del lgebra booleana y las reglas que la rigen se presentan en la tabla 1.1.
4

Tabla 1.1. Relaciones bsicas del lgebra Booleana

1) 3) 5) 7) 9) 11) 13) 15) 17)

X+0=X X+1=1 X+X=X X + X = X X+Y=Y+X X + ( Y + Z ) = (X + Y) + Z X ( Y + Z ) = XY + XZ ( X + Y ) = XY ( X ) = X

2) 4) 6) 8) 10) 12) 14) 16)

X.0=0 X.1=1 X.X=X X . X = 0 XY = YX X ( YZ ) = ( XY ) Z X + YZ = ( X + Y ) ( X + Z ) ( XY ) = X + Y

Una funcin booleana puede transformarse de una expresin algebraica a un diagrama lgico compuesto de AND, OR y compuertas inversoras, donde las variables de la funcin son tomadas como las entradas del circuito y el smbolo de la variable de la funcin se toma como la salida del circuito. Una tabla de verdad es una forma compacta de resumir la operacin de un circuito lgico, pues muestra la forma como la salida responde a todas las posibles combinaciones de niveles o estados lgicos de las entradas; su representacin requiere de una lista de 2 de las n variables binarias. combinaciones con 1s y 0s

La representacin de la tabla de verdad de una funcin es nica,

aunque la funcin lgica aparezca en muchas formas diferentes cuando se expresa algebraicamente. Dicha expresin algebraica puede simplificarse utilizando las relaciones

bsicas del lgebra booleana o utilizando el mtodo del mapa de Karnaugh (tambin llamado diagrama de Veitch) que proporciona un procedimiento simple y directo para simplificar funciones booleanas. Este ultimo mtodo, puede mirarse como un arreglo grfico de una tabla de verdad que permite una interpretacin fcil para elegir el mnimo nmero de variables que se necesitan para expresar la funcin algebraica. La manipulacin de informacin binaria se hace por circuitos lgicos que se denominan compuertas cuyos nombres, smbolos grficos, funciones algebraicas y tablas de verdad se muestran en la figura 1.

1.3. COMPUERTAS LGICAS DIGITALES O GATES Es un circuito electrnico con dos o ms lneas de entrada y una lnea de salida que tiene la capacidad de tomar decisiones. Las decisiones tomadas por una compuerta consisten en situar su salida en 0 en 1, dependiendo del estado de sus entradas y de la funcin lgica para la cual fue diseada. Cada compuerta tiene un smbolo grfico diferente y su operacin puede describirse La relacin entrada-salida de las variables binarias para

por medio de una funcin algebraica.

cada compuerta pueden representarse en forma tabular en una tabla de verdad. 1.3.1 CIRCUITOS COMBINACIONALES Es un arreglo conectado de compuertas lgicas con un conjunto de entradas y salidas que transforma informacin binaria de datos de entrada a datos de salida requeridos. As en cualquier tiempo, los valores binarios de las salidas son una funcin de las combinaciones de 1s y 0s de las entradas; son empleados para generar decisiones de control binario o para proporcionar funciones digitales que se requieren en el procesamiento de datos Un circuito combinacional puede describirse por una tabla de verdad o por medio de m funciones booleanas, una para cada una de las variables de salida expresada e trminos de las n n variables de entrada. Ejemplos de circuitos combinacionales son los codificadores y

decodificadores, los multiplexores y demultiplexores y algunos circuitos aritmticos. 1.3.2 EL FLIP FLOP Es un circuito secuencial capaz de almacenar un bit de informacin; es decir un flip-flop recordar sus entradas an despus de que stas han cambiado. Tiene dos salidas, una para el valor normal y una para el valor complementado del bit almacenado en l. Las diferencias entre los diversos tipos de flip-flops est en el nmero de entradas que poseen y en la manera en la cual las entradas afectan el estado binario. En la figura 2, se expone el smbolo grfico, la tabla

caracterstica y la tabla de excitacin para cada uno de los cuatro tipos de flip-flops RS, tipo D, JK y tipo T.

Figura 1. Compuertas Lgicas Digitales

Los smbolos grficos de cada flip-flop muestran las entradas segn el caso, junto con la entrada CP. La entrada CP se marca con un pequeo tringulo que es un indicador dinmico que denota
7

el hecho de que el circuito responde a una entrada de transicin de 0 a 1. A las salidas del flipflop se les da un nombre variable tal como Q. El pequeo tringulo rectngulo es un smbolo grfico para un indicador de polaridad y designa la salida complementada del flip-flop la cual es denotada por Q. La tabla caracterstica de cada flip-flop, resume la operacin de este en forma tabular, donde Q es el estado binario del flip-flop en un instante dado de tiempo conocido como el estado presente, las columnas S, R, D, J, K y T segn el caso, dan los valores binarios de las entradas y Q(t + 1) es el estado del flip-flop despus de que ha ocurrido un pulso de reloj conocido como el estado siguiente. El estado del flip-flop es siempre tomado de su salida normal Q. Cuando Q = 1 se dice que el flip-flop almacena un 1 y esta en el estado set. Cuando Q = 0 se dice que el flip-flop almacena un cero y esta en el estado aclarado. La tabla de excitacin consta de un lado de 2 columnas Q(t) y Q(t+1), y una columna para cada una de las entradas, para mostrar cmo se logra la transicin requerida. Hay 4 transiciones

posibles de un estado presente Q(t) a un estado siguiente Q(t+1). Las condiciones de entrada requeridas para cada una de estas transiciones se derivan de la informacin disponible en la tabla caracterstica. El smbolo X en la tabla representa condiciones que no importan: esto es, no

importa si la entrada del flip-flop es 0 1. Es comn la combinacin de dos flip-flops en una configuracin llamada maestro esclavo o M/S (master/slave), formando una versin mejorada del flip-flop RS; un circuito sirve como maestro y el otro como esclavo, esto con el fin de que las salidas puedan ser sincronizadas con un nivel o en algunos casos un flanco de una seal exterior.

Figura 2. Resumen de las Caractersticas de los FlipFlops

1.4. CIRCUITOS SECUENCIALES Es una interconexin de flip-flops y compuertas, cuyo comportamiento esta determinado por las entradas, las salidas y el estado de sus flip-flops. Tanto las salidas como el estado siguiente son una funcin de las entradas y el estado presente. Un circuito secuencial est especificado por una tabla de estado que relaciona las salidas y los estados siguientes con una funcin de entradas y estados presentes. La informacin disponible en una tabla de estado puede ser representada
9

grficamente en un diagrama de estado.

En circuitos secuenciales de reloj, la transicin del Hay dos

estado presente al estado siguiente es activada por la presencia de un pulso de reloj.

tipos de circuitos secuenciales y su clasificacin depende de las seales de tiempo, son los circuitos secuenciales asincrnicos y sincrnicos 1.4.1 CIRCUITO SECUENCIAL ASINCRNICO Los circuitos asincrnicos del tipo compuerta son bsicamente circuitos de combinacin con rutas de retroalimentacin, lo que hace que el sistema pueda en algunas veces volverse inestable, causando muchas dificultades, por tanto son poco utilizados en los computadores digitales 1.4.2 CIRCUITO SECUENCIAL SINCRNICO Es un sistema que utiliza compuertas y dispositivos de almacenamiento de bits denominado Flip-Flops a los que le permite cambiar su valor almacenado por otro solo en instantes discretos de tiempo. La sincronizacin se logra por un dispositivo de tiempo denominado generador de pulsos de reloj. Los pulsos de reloj del generador son distribuidos a travs del sistema de tal manera que los flip-flops son afectados solamente con la llegada del pulso de sincronizacin. Estos sistemas sincrnicos de reloj, no presentan problemas de inestabilidad y su sincronizacin de tiempo se puede desdoblar fcilmente en pasos independientes discretos, cada uno de los cuales se puede considerar separadamente. 1.4.3 R EGISTROS Es un grupo de celdas de almacenamiento binario que son utilizadas para retener informacin. Un grupo de flip-flops constituye un registro, que tambin puede tener algunas compuertas de combinacin que realizan ciertas tareas de procesamiento de datos, as los flip-flops retienen la informacin binaria mientras que las compuertas controlan cundo y como debe transferirse la informacin a los registros. El nmero de flip-flops en un registro indica el nmero de bits que puede almacenar. Se tiene transferencia de carga paralela cuando todos los bits de un registro se cargan simultneamente y transferencia de carga serie, cuando los bits del registro se cargan de uno en uno con un desplazamiento bien sea a derecha o izquierda. Al igual que en los flip-flops esta carga puede ser sincronizada por un nivel, un flanco de subida ( ) o flanco de bajada ( ) de un reloj maestro.

10

1.4.3.1 Registro de desplazamiento


Es un registro capaz de desplazar su informacin binaria a la derecha o a la izquierda. Un registro de desplazamiento de n bits consta de n flip-flops y de las compuertas que controlan la operacin de desplazamiento. Generalmente poseen una entrada serie que va a la entrada del

flip-flop que est ms hacia la izquierda del registro, una salida serie que es una lnea del fli-flop que esta ms a la derecha del registro y una entrada de control de desplazamiento. 1.4.4 DECODIFICADORES Es una funcin digital que convierte informacin binaria de una forma codificada a otra, formando un circuito de combinacin con n variables de entrada y 2 variables de salida. Para cada combinacin de entrada binaria de 1s y 0s hay una, y solamente una, lnea de salida que adquiere el valor de 1. Un decodificador tiene tantas salidas cuantas combinaciones de entradas binarias sean posibles. La informacin binaria almacenada en un registro se dice que es

decodificada si existen 2 lneas distintas de salida, una para cada uno de los estados que puede asumir el registro. 1.4.5 MULTIPLEXOR Es una funcin digital que recibe informacin binaria de 2 lneas y transmite informacin a

una sola lnea de salida. La nica lnea de entrada que es seleccionada se determina a partir de la combinacin de bits de las n lneas de seleccin. Un multiplexor tambin se le denomina un

selector de datos puesto que selecciona una de las mltiples lneas de entrada de datos y dirige la informacin binaria a una lnea de salida. 1.4.6 DEMULTIPLEXOR Es una funcin digital que recibe informacin en una sola lnea y transmite esta informacin en una de las 2 posibles lneas de salida. La lnea de salida que es seleccionada se determina de la combinacin de bits de las n lneas de seleccin. Realiza la operacin inversa a un multiplexor. 1.4.7 CONTADORES BINARIOS Es un registro que progresa a travs de una secuencia predeterminada de estados despus de la aplicacin de pulsos de entrada, se implementan con flip-flops conectados en cascada. Los

pulsos de entrada pueden ser pulsos de reloj o pueden originarse de una fuente externa. Puede
11

ocurrir a intervalos uniformes de tiempo o al azar.

Son utilizados para contar el nmero de

ocurrencia de un evento, generar seales de tiempo, controlar la secuencia de operacin de un computador etc. Los contadores pueden ser operados sincrnica o asincrnicamente. En el caso de los contadores sincrnicos todos los flip-flops reciben el mismo pulso de reloj, cambiando de estado sincrnicamente con el pulso. Existen contadores que pueden tener cuenta ascendente o descendente, controlada por una lnea de seleccin. 1.4.8 MEMORIAS Es una coleccin de registros de almacenamiento, junto con los circuitos asociados necesarios para transferir informacin dentro y fuera de los registros. La celda de almacenamiento binario (flip-flop) es el bloque de construccin bsico de una unidad de memoria. Una unidad de

memoria almacena informacin binaria en grupos de bits denominados palabra. Una palabra en una memoria es una entidad de n bits que se mueve dentro y fuera de la unidad de memoria, y puede representar un nmero, un cdigo de instruccin, un carcter alfanumrico, o cualquier otra informacin codificada en binario. La comunicacin entre la unidad de memoria y su ambiente se lleva a cabo a travs de lneas de control, lneas de seleccin de direccin y lneas de salida y entrada de datos. Las seales de control especifican la direccin de la transferencia requerida. Las lneas de direccin especifican la palabra particular elegida de los cientos o miles disponibles. Las lneas de entrada

proporcionan la informacin que se debe almacenar en la memoria y las lneas de salida suministran la informacin que sale de la memoria. . Una memoria se especifica por el nmero de palabras que contiene y el nmero de bits en cada una de las palabras.

1.4.8.2 Memorias de acceso aleatorio RAM o RWM (Read/Write Memory)


Es una memoria que permite tener acceso a sus registros para transferencia de informacin bien sea para lectura o para escritura, de esto deriva su nombre. Algunas veces poseen una sola lnea para el control leer/escribir, de tal manera que con un estado binario especifica la operacin leer y con el otro escribir. Existen dos tipos de memoria RAM: La RAM esttica que esta construida con flip-flops y la RAM dinmica que es una forma mas simple de la celda de memoria, dado

12

que est basada en capacitancias, por tal motivo las celdas deben ser refrescadas cientos de veces por segundo.

1.4.8.3 Memoria de solo lectura ROM (Read Only Memory)


Es una unidad de memoria que solo realiza la operacin de lectura, no tiene la capacidad de escribir. Esto implica que la informacin binaria almacenada en una ROM se realiza durante la produccin fsica de la unidad no pudiendo ser alterada escribiendo palabras diferentes en ella. Una ROM m por n es un arreglo de celdas binarias organizadas en m palabras de n bits cada una, con k lneas de direccin. A diferencia de la RAM no necesita lnea de control, puesto que en un instante dado, las lneas de salida automticamente proporcionan los 1s y los 0s de los n bits de la palabra seleccionada por el valor de la direccin, por esto es clasificada como un circuito combinacional.

1.4.8.4 Memoria PROM


Es una versin de ROM programable de construccin, posee en todos sus registros 1s o 0s, de tal manera que cada una de sus celdas posee un enlace que puede ser fundido por la aplicacin de un pulso de corriente elevada. As un enlace roto en una celda define un estado binario y uno que no esta roto representa el otro estado. El proceso normalmente es irreversible y una vez fundida la salida para algn bit su estado es permanente

1.4.8.5 Memorias EPROM


Es una memoria semejante a la PROM pero borrable por el usuario acercando rayos ultravioleta de alta intensidad a travs de una ventana transparente especial ubicada en la parte superior del circuito integrado.

1.4.8.6 Memoria EEPROM


Es una memoria EEPROM que puede ser borrada y programada por el usuario con un equipo especial que borra la memoria elctricamente. 1.5. CIRCUITOS INTEGRADOS Muchas funciones digitales construidas apartir de los conceptos vistos en los anteriores numerales, se encuentran comercialmente en pequeos paquetes denominados circuitos
13

integrados. Un circuito integrado es un cristal pequeo de semiconductor de silicio denominado pastilla que contiene componentes electrnicos tales como diodos, resistencias, condensadores y transistores, que se interconectan dentro de la pastilla para formar un circuito electrnico. La

pastilla es montada en un paquete plstico o de metal y las conexiones se sueldan a patas externas para formar el circuito integrado. Existen circuitos integrados anlogos que operan con formas

de onda continuas para proporcionar funciones electrnicas tales como amplificadores operacionales, reguladores de voltaje etc. Los circuitos integrados digitales operan con seales

binarias y proporcionan funciones digitales con compuertas, flipflops, registros, contadores, sumadores, memorias etc. que sirven como bloques de construccin para los computadores digitales o cualquier sistema digital. 1.5.1 FAMILIAS LGICAS DE INTEGRADOS Es un grupo de dispositivos digitales que comparten una tecnologa comn de fabricacin, teniendo estandarizadas sus caractersticas de entradas y salidas. importantes de un circuito integrado digital, son: El fan-out: Es un parmetro que especifica el nmero de cargas estndares que puede excitar la salida de una compuerta estndar sin daar su operacin normal. Una carga estndar se define usualmente como la carga (cantidad de corriente) necesaria para una entrada de una compuerta similar. La velocidad: Mide la rapidez de respuesta de las salidas de un circuito digital a cualquier cambio de sus entradas, parmetro muy importante en dispositivos que trabajan con seales de alta frecuencia. Consumo de potencia: Mide la cantidad de corriente o de potencia que consume un circuito digital en operacin, importante en dispositivos alimentados con baterias. Inmunidad al ruido: ambiental. Mide la sensibilidad de un circuito digital al ruido electromagntico Las caractersticas ms

De importancia en circuitos que operan en automviles, mquinas y circuitos de

control industrial. Confiabilidad: Mide el perodo til de servicio de un circuito digital.

14

Cada familia lgica tiene su propio circuito bsico electrnico apartir del cual se desarrollan funciones y circuitos ms complejos. comercialmente; las ms populares son: La TTL o bipolar: Implementa su lgica interna exclusivamente, a partir de transistores NPN y PNP, diodos y resistencias. Esta familia se divide en las siguientes categoras : TTL estndar, TTL Schottky (S), TTL de baja potencia (L), TTL Schottky de baja potencia (LS), TTL de alta velocidad (H), TTL Schottky avanzada (AS) y TTL Schottky de baja potencia avanzada (ALS). Las caractersticas ms notables de esta familia son: Alta velocidad (hasta de 20Mhz.), alta disipacin de potencia, tensiones de alimentacin de 5 voltios, niveles de voltaje de 0 a 0.8 V. para el estado bajo y de 2.4 a 5 v. para el estado alto La familia CMOS: (Complementary Metal Oxide Semiconductor semiconductores complementarios de xido metlico) Utiliza transistores MOSFET complementarios (canal N y canal P) como elementos bsicos de conmutacin. Las subfamilias bsicas de los Muchas familias lgicas han sido introducidas

integrados fabricados con esta tecnologa son: CMOS estndar, CMOS de alta velocidad (HC), CMOS compatible con TTL (HCT), CMOS equivalente a TTL (C). Las principales caractersticas son: buena velocidad de operacin (hasta de 10Mhz.), baja disipacin de potencia, alta inmunidad al ruido, amplios mrgenes de tensin de alimentacin (de 3 a 15v), niveles de voltaje de 0 a 0.3 para el estado bajo y de 0.7Vdd a Vdd para el voltaje alto, siendo Vdd el voltaje de la fuente. 1.5.2 DISPOSITIVOS DE TRES ESTADOS Existen diferentes aplicaciones en los que se requiere conectar la salida de una compuerta, un registro u otro dispositivo a un mismo punto como puede ser una lnea comn compartida o bus. En este caso se deben usar dispositivos de tres estados. Los dispositivos de tres estados tienen estados de salida de 0 lgico, 1 lgico y un estado especial de alta impedancia (estado de alta Z) que es habilitada o deshabilitada por una tercera entrada de habilitacin. Cuando alguno de estos dispositivos esta en estado de alta Z, su salida es efectivamente desconectada del bus. Se dice que el voltaje de salida est flotando en funcin de las condiciones externas de la lnea comn. Entonces habr una seal que habilitar la salida de cada compuerta y el dispositivo estar
15

conectado al bus.

Posteriormente se podr presentar la habilitacin de otro dispositivo, Los elementos constitutivos de un computador,

permitindose solo un dispositivo a la vez.

poseen en sus registros de salida dispositivos triestado (Three-state), ya que estn unidos por medio de buces o lneas comunes. 1.5.3 DISPOSITIVOS DE COLECTOR ABIERTO OC ( OPEN COLECTOR) Son una variante tcnica de las compuertas TTL comunes. Se caracterizan, entre otras cosas, por manejar voltajes de salida superiores al de alimentacin y por que se pueden conectar en paralelo. Se utilizan como amplificadores de corriente y para formar compuertas de varias Esta aplicacin se conoce en

entradas con compuertas sencillas de una o dos entradas. electrnica digital como lgica alambrada.

En una salida de colector abierto, una salida baja hace que la salida del transistor final de salida de la compuerta interior al circuito integrado sea conductora, creando una baja resistencia del pin de salida a tierra. Una salida alta requiere que una resistencia (pull-up) externa al circuito que lleve la salida a alto, para que el nivel lgico alto sea vlido, de lo contrario la salida quedara flotante, es decir no sera alto ni bajo. La funcin de la resistencia es permitir que esta salida pueda ser alta (+Vdd.) o baja (0V.) en un momento dado. Esta resistencia se elige de tal forma que no exceda la corriente mxima admitida por la compuerta. 1.5.4 COMPUERTAS SCHMITT-TRIGGER Estas compuertas operan como compuertas comunes, pero se caracterizan por poseer una propiedad llamada histeresis que las hace inmunes al ruido y les permiten trabajar con seales digitales no ideales. Son utilizadas para convertir seales imperfectas, lentas y con ruido en

seales digitales bien definidas, rpidas y sin ruido. La caracterstica de histeresis, significa que los dispositivos Schmitt-trigger slo responden cuando los voltajes aplicados a sus entradas superan unos valores lmites preestablecidos, llamados umbrales. 1.6. SISTEMAS DIGITALES Es una interconexin de mdulos de hardware digitales que realizan tareas de procesamiento de informacin especfica, tales como registros, decodificadores, elementos aritmticos, memorias y lgica de control. Estos mdulos se interconectan con rutas de control y datos comunes para

formar un sistema de computador digital.


16

Cada mdulo digital se define mejor por medio de los registros que contiene y de las operaciones que realiza en los datos almacenados en ellos. Las operaciones ejecutadas en los

datos almacenados en los registros se denominan micro-operaciones, esta es una operacin elemental realizada durante un pulso de reloj en la informacin almacenada en uno o ms registros. El resultado de la operacin puede reemplazar la informacin binaria previa de un

registro o puede transferirse a otro registro. Algunas de estas micro-operaciones son cargar un registro, desplazamiento a derecha o izquierda de un registro, incrementar una cuenta, sumar el contenido del registro A con el contenido del registro B y almacenarlo en el registro A, B o en el registro C, realizar operaciones lgicas (AND, OR, complemento, etc) entre registros, poner en cero los registros (reset) etc. La implementacin del Hardware de micro-operaciones lgicas requiere que las compuertas lgicas sean insertadas segn la operacin a realizar, en cada uno de los bits de el o los registros a los que se les va a realizar la funcin lgica requerida. Estas micro-operaciones lgicas se

implementan, algunas con flip-flops y otras con compuertas lgicas derivadas de la teora de circuitos secuenciales. La sincronizacin del tiempo para todos los registros de un sistema digital sincrnico, es controlada por un generador de reloj maestro, cuyos pulsos de reloj se aplican a todos los flipflops en el sistema. Los pulsos de reloj continuos aplicados a los registros, no cambian el estado del registro a no ser que su funcin especfica sea habilitada. Las variables binarias que controlan las entradas habilitadoras de los registros se denominan funciones de control. La red de control de hardware que genera las funciones de control puede implementarse de tres maneras: 1. Como un circuito secuencial, donde requiere que la red de control sea especificada por un diagrama o tabla de estado y diseada por medio de mtodos de teora de circuitos secuenciales. 2. Como una secuencia de seales de tiempo acoplada con otras diversas condiciones de control para generar las funciones de control requeridas. 3. Por medio de una unidad de memoria especial (generalmente una ROM) para generar los 1s y los 0s de las funciones de control de todos los registros. Leyendo las palabras de esta memoria en una secuencia prescrita es posible activar los registros necesarios y ejecutar las
17

micro-operacins para el sistema.

La programacin de 1s y 0s para las palabras de una Este mtodo es el mas utilizado

memoria de control es denominada microprogramacin. dada su eficiencia.

La organizacin interna de un sistema digital se define por una secuencia de micro-operaciones que se realizan en los datos almacenados en sus registros. Se pueden tener sistemas digitales de propsito especial y de propsito general. 1.6.1 SISTEMA DIGITAL DE PROPSITO ESPECIAL En este sistema la secuencia de micro-operaciones es determinada por el hardware y el sistema realiza la misma tarea especfica cada vez, su secuencia de micro-operaciones no esta sujeta a alteraciones. Un ejemplo de este sistema es el que controla la lectura o escritura de informacin en el disco duro de un computador, el sistema no puede realizar otra operacin diferente a la de leer o escribir datos en el disco duro. 1.6.2 SISTEMA DIGITAL DE PROPSITO GENERAL Es un sistema capaz de ejecutar diversas micro-operaciones y adems, puede ser instruido sobre la secuencia de operaciones especficas que debe realizar. El usuario de un sistema de estos

puede controlar el proceso por medio de un programa que es un conjunto de instrucciones que especifican las operaciones, operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento. La tarea de procesamiento de datos puede alterarse simplemente especificando

un nuevo programa con instrucciones diferentes o con las mismas instrucciones pero con datos diferentes Una instruccin es un es un cdigo binario que especifica una secuencia de micro-operaciones. Los cdigos de instrucciones junto con los datos son almacenados en una memoria, El control lee cada instruccin de la memoria y la coloca en un registro de control. El control interpreta el cdigo binario de la instruccin y procede a ejecutar la instruccin emitiendo una secuencia de funciones de control. Cada sistema de propsito general tiene su repertorio propio nico de instrucciones. La

habilidad para almacenar y ejecutar instrucciones y la cantidad de programa que puede almacenar, son las propiedades ms importantes de un sistema digital de propsito general. Un computador personal o PC es un claro ejemplo de un sistema digital de propsito general.
18

Un cdigo de instrucciones es un grupo de bits que la dice a un sistema digital que realice una operacin especfica. Usualmente se divide en partes, cada una tiene su interpretacin particular. La parte bsica de un cdigo de instruccin es su cdigo de operacin, que son un grupo de bits que definen operaciones tales como suma, resta, multiplicacin, desplazamiento y complemento. El conjunto de operaciones formuladas por un computador depende del procesamiento que se intente llevar a cabo. El nmero total de operaciones as obtenidas determina el conjunto de las operaciones de mquina El nmero de bits requeridos por parte de una operacin de instruccin es una funcin del nmero total de operaciones que el sistema puede realizar. Consta de por lo menos n bits para 2 operaciones diferentes dadas. Una operacin es parte de una instruccin almacenada en la memoria que consta de un cdigo binario que le dice al sistema digital que realice una operacin especfica. La unidad de control recibe la instruccin de la memoria e interpreta los bitas del cdigo de operacin, de acuerdo con este emite un mensaje de las funciones de control que realiza micro-operaciones en los datos almacenados en la memoria y/o en los registros internos del sistema digital. Por tanto un cdigo de instruccin especifica la operacin, los registros y/o las palabras de memoria en donde los operandos se deben encontrar y los registros o palabras de memoria donde el resultado se almacena. Para cada cdigo de operacin el control emite una secuencia de micro-operaciones para la implementacin del hardware de la operacin especial. Por tanto a un cdigo de

operacin sele puede llamar una macro-operacin, por que especifica un conjunto de microoperaciones. Los formatos de cdigo de instruccin, se conciben por los diseadores de cdigos de instrucciones quienes especifican la arquitectura del sistema digital, para el caso de los computadores, hay tantos formatos de cdigo de instruccin como computadores en el mercado. Las instrucciones en el computador, son normalmente almacenadas en localizaciones

consecutivas de la memoria y son ejecutadas secuencialmente una por una. Un computador debe tener un conjunto de instrucciones que le permita al usuario realizar cualquier tarea concebible de procesamiento de datos, para esto se deben tener instrucciones en las siguientes categoras: 1. Instrucciones aritmticas y de desplazamiento.
19

2. Instrucciones para mover informacin hacia y de la memoria y registros de procesador. 3. Instrucciones que verifican el estatus de la informacin para proporcionar capacidades de toma de decisin. 4. Instrucciones de entrada salida. 5. Capacidad para parar el computador. Un computador no es de utilidad si no se puede comunicar con el ambiente externo. La

instruccin y datos almacenados en la memoria deben salir de algn dispositivo de entrada. Los resultados de clculo deben transmitirse al usuario a travs de algn dispositivo de salida. Por lo tanto los computadores requieren de dispositivos, adaptadores de seales de entrada-salida llamados perifericos, ejemplo de ello son el teclado, el monitor de video, el mouse, los puertos de impresora o paralelos y los puertos RS232 o puertos serie. Un sistema de computador completo incluye tanto hardware como software. consta de los componentes fsicos y todo el equipo asociado. programas que son escritos para el computador. Para escribir un programa de un computador, se tiene que especificar directa o indirectamente, una secuencia de instrucciones de mquina. Las instrucciones de maquina dentro del El hardware

El software se refiere a los

computador, forman un patrn binario que es difcil sino imposible, para que la gente lo trabaje y lo entienda. Es preferible escribir programas con smbolos ms familiares del conjunto de Como consecuencia, hay necesidad de traducir los programas

caracteres alfanumricos.

simblicos orientados al usuario en programas binarios que sean reconocidos por el hardware. Hay varios tipos de lenguaje de programacin que uno puede escribir para un computador, pero el computador puede ejecutar solamente programas cuando ellos se presentan internamente en forma binaria, por tanto los programas escritos en cualquier otro lenguaje deben ser traducidos a la representacin binaria de instrucciones antes de que puedan ser ejecutados por el computador. Los programas escritos para un computador deben estar en una de las siguientes categorias: 1. Cdigo binario: Es una secuencia de instrucciones y operaciones en binario que enumera la representacin exacta de instrucciones como aparecen en la memoria del computador.

20

2. Cdigo octal o hexadecimal: representacin octal o hexadecimal.

Esta es una traduccin equivalente del cdigo binario a

3. Cdigo simblico: Se emplean smbolos (tales como letras, nmeros o caracteres especiales) para la parte de operacin, la parte de direccin y otras partes del cdigo de instruccin. Cada instruccin simblica puede traducirse en una instruccin codificada en binario, hecha por un programa especial denominado ensamblador. lenguaje ensamblador. 4. Lenguajes de programacin de alto nivel: Son lenguajes especiales de desarrollo para Normalmente seles llama programa de

reflejar los procedimientos utilizados en la solucin de un problema antes que preocuparse por el comportamiento del hardware del computador. El programa que traduce un programa de lenguaje de alto nivel a binario se denomina un compilador. 5. El sistema de software de un computador consta de una coleccin de programas operativos cuyo fin es hacer ms eficiente el uso del computador. Los programas incluidos en un

sistema de software son denominados programas del sistema o Firmware. 1.7. CDIGOS DIGITALES Es un grupo de smbolos que representan algn tipo de informacin reconocible. En los

sistemas digitales los cdigos se utilizan para manipular datos y representar nmeros, letras, signos y otros caracteres en forma binaria, es decir como una combinacin equivalente de 1s y 0s, ya que los smbolos 0 y 1 representan para el sistema binario utilizado por las computadoras, lo que los smbolos 0, 1, 2, a, b, c, d etc. representa para el sistema alfanumrico utilizado por los humanos. Por medio de la codificacin se establece una relacin entre las informaciones

alfanumricas de audio, vdeo o cualquier otra naturaleza utilizada por el hombre y los 0s y 1 s con los que opera el computador. Se llama cdigo a la tabla de correspondencia (o frmula) que relaciona la informacin alfanumrica, de audio y vdeo etc. con la informacin binaria. Existen varios cdigos digitales, algunos de estos se enumeran a continuacin: 1.7.1 CDIGO OCTAL Es un cdigo de 3 bits para representar los nmeros del 0 al 8. Ver tabla 1.3a.

21

1.7.2 CDIGO HEXADECIMAL Es un cdigo de 4 bits utilizada para representar los nmeros del 0 al 15. Ver tabla 1.3c 1.7.3 CDIGO DECIMAL CODIFICADA EN BINARIO (BCD) Es un cdigo de 4 bits que se utiliza para representar solamente los nmeros del 0 al 9, es semejante a los primeros 10 cdigos hexadecimales. 1.3b 1.7.4 CDIGO ASCII: (AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE ): Es un cdigo de 7 bits para representar 128 piezas de informacin diferentes, Incluyendo letras, nmeros, signos de puntuacin, instrucciones y caracteres especiales (#, $, *, etc).

22

Tabla 1.2. Cdigos Digitales BCD, Octal y Hexadecimal

Cdigo Octal
Decimal

Cdigo BCD A 0 1 0 1 0 1 0 1
Decimal

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

D 0 0 0 0 0 0 0 0 1 1

C 0 0 0 0 1 1 1 1 0 0 b)

B 0 0 1 1 0 0 1 1 0 0

A 0 1 0 1 0 1 0 1 0 1

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8 9

a) Hexadecimal
Decimal Hexa decimal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F

D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 c)

C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1.7.5 CDIGO ASCII E XTENDIDO Es un cdigo semejante al ASCII de 7 bits pero incorpora una mayor cantidad de smbolos grficos y caracteres de control. El cdigo ASCII extendido, es el utilizado habitualmente en los sistemas ms modernos por el sistema operativo DOS del PC. Ver tabla 1.3

23

Tabla 1.3: Smbolos del Cdigo ASCII extendido

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

** ** ** **

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 160 161 162 163 164 165 166 167 168 169 170

[espacio] ! 65 " 66 # 67 $ 68 % 69 & 70 ' 71 ( 72 ) 73 * 74 + 75 , 76 77 . 78 / 79 0 80 1 81 2 82 3 83 4 84 5 85 6 86 7 87 8 88 9 89 : 90 ; 91 < 92 = 93 > 94 ? 95 [espacio] 193 194 195 196 197 198 199 200 201 202

64 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 192

@ 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 225 226 227 228 229 230 231 232 233 234

96 a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 224

128 129 130 131 132 133 134 135 136 137 138

24

139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

1.8. COMPONENTES BSICOS DE UN P.C Con los elementos antes mencionados en este captulo, se pueden llegar a realizar circuitos que son capaces de realizar operaciones matemticas entre nmeros binarios (ALU, unidad aritmtica-lgica), manejar, procesar y tomar decisiones (CPU, unidad central de proceso), almacenar informacin alfanumrica (memorias RAM o ROM). Los elementos antes descritos,

conforman las unidades bsicas de las que estn constituidas las computadoras, como lo muestra la figura 3. A l s funciones orgnicas de las partes de esta figura, se les denomina arquitectura a del computador Para que el computador se til se debe instalar en la memoria de programas una lista de instrucciones que la deben indicar a la CPU lo que debe hacer. A la preparacin de esta lista de instrucciones se le llama programacin, a la lista de instrucciones se le llama programa; este es almacenado momentanea o permanentemente en la memoria de programacin. La informacin

manejada por estos programas se llama datos y al conjunto de programas se les designa como software.

25

Figura 3. Microcomputador Bsico

1.8.1 LA CPU Es la principal unidad de funcionamiento de una computadora, pues se encarga de realizar el volumen de operaciones de procesamiento de datos. hardware para procesar las instrucciones y los datos. Se compone de una unidad de control y de una unidad procesadora que juntos supervisan e implementan las diversas tareas de procesamiento de datos en la parte central de un sistema de computador. Contiene elementos de almacenamiento llamados registros, circuitera de cmputo La CPU contiene las componentes de

llamada ALU, circuitera de decodificacin de instrucciones y una seccin de control y manejo de tiempo. Las principales funcines de la CPU son: 1. Seleccionar, decodificar y ejecutar instrucciones de programa en el orden adecuado. 2. Transferir datos hacia y desde la memoria, y hacia y desde las secciones de entrada/salida. 3. Responder a las interrupciones externas.
26

4. Proporcionar las seales de control y de tiempo necesarias para la totalidad del sistema. 1.8.2 CIRCUITOS DE CONEXIN O BUSES La CPU lleva a cabo las anteriores funcione entre los distintos dispositivos conectados gracias a una serie de lneas que lo interconectan con los dems dispositivos llamadas buses. En un P.C. existen bsicamente 3 tipos de buses:

1.8.2.7 Bus de direcciones


A travs del cual el microprocesador selecciona cada una de las posiciones de memoria, puerto de acceso o puerto de salida con la que se requiere comunicar. Este bus es de 32 circuitos para los procesadores 386, 486 y Pentium. En la figura 3 se ilustra en color rojo.

1.8.2.8 Bus de datos


El cual transporta la informacin que el microprocesador intercambia con el exterior, constituyendo una va de doble sentido para la transferencia de datos, pudiendo enviar o recibir datos provenientes de la memoria o algn otro dispositivo seleccionado en el bus de direcciones. Este bus consta de 32 circuitos (lneas) en los procesadores 386 y 486, en el Pentium es de 64 circuitos. En la figura 3 se ilustra en color azul.

1.8.2.9 Bus de control


El cual consiste de un nmero de circuitos o lneas a travs de las cuales el microprocesador controla los distintos dispositivos con los que se relaciona. En la figura 3 se ilustra en color verde. 1.8.3 EL ADAPTADOR DE INTERFACES Es el que adecua las seales recibidas y generadas entre la CPU y los dispositivos perifricos para que sean correctamente entendidas, ya que muchas de estos dispositivos manejan formatos de informacin diferente, por lo que se hace necesario realizar conversiones de cdigo, adaptar los niveles de tensin y generar nuevas seales de control entre otras. En este adaptador estn los puertos paralelos o de impresora, los puertos serie o RS 232, la interfaz con el teclado, el adaptador para conectar el monitor etc.

27

1.8.4 LA ROM Almacena programas de carcter permanentes, se usa en equipos a los que se les asigna una labor especfica, cumple una misin muy importante cuando se prende o se reinicia un computador. 1.8.5 LA MEMORIA RAM Almacena los datos y los programas de carcter temporal. En sntesis, el computador trabaja as: el programa y los datos se introducen a la CPU y este los transfieren a sus correspondientes lugares de memoria. Al iniciarse la ejecucin del programa, la CPU lee las primeras instrucciones del programa de memoria y la ejecuta; estas instrucciones pueden ser tan simples como sumar un nmero con otro, invertir un dato, cambiarle de posicin en la memoria o mostrar una posicin de memoria por el puerto I/O. Despus de haber manejado esta informacin, se pasa a la unidad de salida del computador y nuevamente el comportamiento de la CPU es regido por el programa. Los microprocesadores utilizados por los PC actualmente son capaces de manejar ms de 8 bits simultneamente; por ejemplo: el microprocesador de Intel 486DX maneja hasta 32 bits, el PENTIUM en el bus interno de datos maneja 64 bits.

28

2. CAPT ULO 2 EL PC Y LAS COM UNICACIONES


2.1. COMUNICACIN PARALELO Y SERIE Independientemente de la capacidad que tenga el microprocesador para manejar informacin, el computador siempre se comunica con el mundo exterior estructurando su informacin en bytes. Si queremos comunicar dos computadores que estn cerca uno de otro (menos de 15 metros), entonces podemos utilizar un cable con al menos 8 hilos, por tanto podemos transmitir 8 bits simultneos, uno por cada hilo. A este tipo de comunicacin se le llama comunicacin paralelo. Sin embargo, en largas distancias no resulta econmico utilizar cables de tantos hilos. Sistemas como la red telefnica, al igual que la mayora de los sistemas de larga distancia slo disponen de dos hilos, lo que quiere decir que nicamente pueden transmitir un bit simultneamente. En este caso el computador dispone de un circuito llamado UART (Universal Asynchronous Reseiver Transmotter o transmisor receptor asncrono universal), que convierte cada byte (8bits) en una serie de bits, y viceversa. A este tipo de comunicacin se le conoce como comunicacin serie. Los computadores utilizan internamente tecnologa TTL, con tensin de 5V. para el estado 1 y de 0V para el estado 0. En la comunicacin paralelo se dispone de estas tensiones en el puerto de salida, para el caso de la comunicacin serie, la UART se encarga de convertir estas tensiones de 0 y 5 voltios en tensiones de +3 a +25 y 3 a 25 voltios. De esta manera, la informacin 1 sale al exterior como un nivel de tensin superior a +3 voltios y la informacin 0 sale al exterior como un nivel de tensin inferior a los 3 voltios, dependiendo de la norma a utilizar. En cualquier caso, si tenemos en cuenta que los cables, por su propia naturaleza, presentan cierta impedancia (resistencia, inductancia y capacidad), cualquier seal elctrica que es introducida por uno de sus extremos se distorsiona por el cable, siendo esta distorsin mayor cuanto mayor sea la longitud del mismo.

29

Para los niveles de tensin de las seales manejadas por los puertos de comunicaciones del computador, la distorsin introducida por un cable de mas de 15 metros sera suficiente como para producir errores de interpretacin. mayores, existen dos posibles soluciones: 1. La primera solucin consiste en utilizar cada cierta distancia unos equipos repetidores que reconstruyan la seal digital original. Estos equipos reciben el nombre de regeneradores. Independiente de otras valoraciones, el inconveniente que tiene esta solucin es que no puede ser utilizado cuando transmitimos datos por redes pblicas, como la lnea telefnica, ya que el usuario no puede introducir regeneradores en la red. 2. La segunda solucin, compatible con los equipos de la red telefnica existente, consiste en convertir las seales procedentes del computador (seales digitales) al tipo de seales para las que fue diseada la lnea telefnica; esto es, a seales analgicas (seales de voz de 300Hz a 3400Hz). 2.2. EL MODEM Al proceso de conversin de seales digitales en seales analgicas se le conoce con el nombre de modulacin. De la misma forma, el proceso contrario, convierte las seales analgicas en El equipo que realiza la Para hacer realizables las comunicaciones a distancias

digitales, se conoce con el nombre de demodulacin.

modulacindemodulacin recibe el nombre de mdem. Por tanto el mdem permite establecer comunicacin entre computadores distantes. De acuerdo a lo anterior para transmitir datos slo hace falta un par de computadores, un par de mdems y un cable o una lnea telefnica que los una. Esto esta esquematizado en la figura 4. Sin embargo cuando hablamos de transmisin de datos en general, no siempre es un computador el que es origen o destino de la informacin, sino que a veces el terminal destino de la informacin es una simple impresora, o un compilador actuador de un sistema de telecontrol. De la misma forma, no siempre es un equipo modulador-demodulador el utilizado para adaptar la seal a la lnea de transmisin. Por ese motivo, cuando se habla de forma general de la

transmisin de datos, la terminologa ms exacta para hacer referencia a los elementos que intervienen en el sistema son las siguientes:

30

ETD: Equipo terminal de datos, llamado en ingles DCE o Data Communications Equipment. Este trmino hace referencia a cualquier equipo que sea fuente o destino final de los datos. Se trata de un concepto muy amplio que puede englobar a muchos dispositivos distintos. Tambin es misin del ETD el controlar la comunicacin. Un computador puede ser un ETD.

Figura 4. Circuito de Transmisin de Datos

ETCD:

Equipo de terminacin del circuito de datos.

Llamado en ingles DCE o Data

Communication Equipment.

Este termino hace referencia al equipo que se encarga de

transformar las seales portadoras de la informacin procedentes del ETD en otras que sean susceptibles de ser enviadas hasta el ETD distante a travs de los medios de comunicacin existentes. Un mdem es un ETCD.

LINEA:

Se le da el nombre de lnea a cualquier medio de transmisin que une los dos

ETCD. El trmino general de lnea se le puede aplicar tanto a un simple cable como a un circuito de la red telefnica. Se caracteriza por un conjunto de parmetros que la habilitan o no para algunas transmisiones. internacionales. La calidad de una lnea est regulada a travs de normas

31

ED: Enlace de datos. Se le aplica este trmino al conjunto de medios que une la fuente original y el destino final de los datos transmitidos. El enlace de datos est formado por los controladores de la comunicacin (que tienen la funcin de gobierno sobre los eventos ocurridos en cualquiera de sus comunicaciones, es el programa), el ETCD y la lnea.

CD:

Circuito de datos:

Formado por los elementos necesarios para entregar en el ETD

destino los datos emitidos por el ETD origen. El CD se refiere al conjunto formado por los ETCD y las lneas. En cualquier terminal de transmisin de datos podemos diferenciar dos partes: La fuente o colector de los datos y el controlador de la informacin. La fuente de la

informacin es el lugar del terminal emisor donde est almacenada la informacin original que pretendemos transmitir. El colector es el lugar del terminal receptor donde se guardarn los El controlador de la informacin es el

datos que se van recibiendo del terminal distante.

programa encargado de llevar a cabo la transmisin; este software existe tanto en el terminal emisor como en el receptor. Los controladores de la comunicacin de los terminales emisor y receptor, son responsables de que la transmisin se realice de una forma eficaz y sin que haya errores. Para poder hacer esto ambos controladores se intercambian informacin de control que no hace parte de la informacin original a transmitir. La informacin de control (protocolo) es introducida por el controlador

emisor en el propio mensaje transmitido, y es eliminada por el controlador receptor antes de entregar dicha informacin al colector. 2.3. VELOCIDADES DE TRANSMISIN La velocidad de transmisin de informacin es medida por el nmero de bits transmitidos en un segundo. Esta medida recibe el nombre de bits por segundo o bps. Segn las explicaciones

anteriores, existen dos posibles medidas de transmisin. Por u lado, se puede medir la velocidad n con la que son transmitidos los bits de la fuente; a esta medida se le llama velocidad de transferencia de datos, y representa la cantidad de informacin (sin tener en cuenta la de control) que se transmite por unidad de tiempo. Por otro lado se puede medir la velocidad con la que son transmitidos los bits por el terminal; a esta medida sele llama velocidad de transmisin serie y representa la cantidad de bits de informacin y de control que el terminal, el computador,
32

le entrega al mdem por unidad de tiempo. La velocidad de transmisin serie es siempre mayor que la velocidad de transferencias de datos, siendo esta diferencia mayor o menor, dependiendo de la eficiencia del protocolo. Desde el punto de vista terico, la medida que interesa es la velocidad de transferencia de datos, pero esa medida es difcil de realizar, ya que depende del protocolo utilizado. Desde el punto de vista prctico la medida que siempre se utiliza es la velocidad de transmisin serie, ya que no solo representa la velocidad con la que el computador tiene que enviar los datos al mdem sino tambin la velocidad con la que el mdem tiene que transmitir dichos datos. La velocidad de

transmisin serie es la que siempre se utiliza para configurar un programa de comunicaciones o para definir las caractersticas del mdem. Esto se ilustra en la figura 5.

Figura 5. Velocidad de Transferencia de Datos y Velocidad de Transmisin Serie

Todos los medios de comunicacin que envan seales a largas distancias utilizan sistemas especiales de transmisin para asegurar que las seales introducidas por un extremo de una simple lnea, una lnea telefnica o algn circuito alquilado punto a punto, lleguen al otro extremo en buenas condiciones. Anteriormente todos los equipos de transmisin eran analgicos, siendo una de sus caractersticas la capacidad para transmitir frecuencias, as una lnea telefnica es capaz de transmitir cualquier frecuencia entre 300 y 3400 Hz por dicha lnea, una frecuencia que se transmita y no este en este rango, no aparece en el otro extremo. Para medir la capacidad de transmisin de un medio analgico, se utiliza la capacidad de ancho de banda. El ancho de

banda es la diferencia entre la frecuencia mayor y la frecuencia menor que puede ser transmitida, para la lnea telefnica es de 3100Hz.
33

Actualmente se instalan mayores medios de comunicacin digitales que se caracterizan por recibir informacin binaria en un extremo y la transmite al otro extremo. Algunos de estos medios son: la fibra ptica y transmisores digitales va radio, cable o satlite. La capacidad de un medio de transmisin digital se mide en bits por segundo, encontrando capacidades en el caso de la fibra ptica de 140 o 512 Megabits por segundo (Mbps). Para encontrar la relacin existente entre un medio de transmisin analgico y uno digital, sea la relacin entre el ancho de banda en Hz y la capacidad en bps, existe la ley de Shannon, que nos dice:
S C = W log 2 1 + R

Siendo C la capacidad mxima en bps, W es el ancho de banda en Hz, S/R relacin seal a ruido que es la relacin entre la potencia de la seal S y la potencia del ruido R de la lnea utilizada. Para una lnea telefnica con una relacin seal /ruido de 1000, el mayor numero de bits que se pueden transmitir es de 31000 bps. 2.4. MODALIDADES DE TRANSMISIN Hablando de comunicacin en general, no solo de transmisin de datos, se puede decir que existen tres formas de llevar a cabo una comunicacin, ilustrado en la figura 6:

Figura 6. Comunicacin Simplex, SemiDuplex y Duplex

34

1. Smplex: En la que la comunicacin de informacin se realiza en un solo sentido. Tambin llamada unidireccional, algunas de ellas son las emisiones de los canales de televisin, estaciones de radio comercial etc. 2. Semidplex (half-duplex): En el que la comunicacin de la informacin se lleva a cabo en ambos sentidos, pero no simultaneamente, es decir la informacin circula en un sentido o en el otro, pero no en los dos a la vez. .Un ejemplo de estas es la comunicacin entre radioaficionados o con walkie-talkie. 3. Dplex (full-duplex): La comunicacin se puede producir en ambos sentidos

simultneamente, como en el caso de las comunicaciones telefnicas donde las dos persona pueden hablar en forma simultanea. Cuando el equipo terminal de datos (ETD) de un emisor quiere desplazar informacin a travs de un circuito de datos, debe emplear un cdigo concreto con el que da significado a los datos, siendo ms comn el uso del cdigo ASCII. Dos computadores pueden ponerse en comunicacin en modo serie o en modo paralelo. El

modo paralelo es utilizado cuando los computadores estn prximos el uno al otro, el modo serie es mas adecuado en comunicaciones donde interviene una red publica, esto es, para grandes distancias. 2.5. SINCRONIZACIN Uno de los procesos ms importantes que intervienen en la transmisin de datos en modo serie es la coordinacin de la transmisin y la recepcin de los datos. Son tres factores a tener en cuenta: 1. Los bits son enviados por el t rminal de origen en forma secuencial y con cierta cadencia. e Si el terminal destino tiene un mnimo error en la cadencia de lectura, puede llegar a leer un mismo bit dos veces o saltarse algn bit sin leer. 2. El terminal receptor recibe los bits uno tras otro, por lo que tiene que tener algn

procedimiento para diferenciar cada uno de los caracteres o bits que componen la informacin transmitida. Este problema no lo tiene la transmisin paralelo, donde los bits son transmitidos de ocho en ocho, y no queda dudas de la asociacin de dichos bits para formar dicho carcter.
35

3. Cuando se tienen que transmitir grandes volmenes de informacin, esta no se transmite toda de una vez, ya que de provocarse un error, se tendra que retransmitir todo desde un principio. Para evitar eso, la informacin no se transmite de un solo golpe, sino que se

divide en secciones ms pequeas (grupos de por ejemplo, 512 1024 caracteres), llamados tramas, bloques o paquetes. Eso quiere decir que hay que establecer un procedimiento que nos permita identificar que carcter, de todos los recibidos, es el primero de cada trama. Una comunicacin entre computadores debe contar con procedimientos que le permitan segregar los bits, los caracteres (bytes) y las tramas. La tcnica que nos permite llevar a cabo esta segregacin se conoce con el nombre de Sincronismo. El sincronismo es un procedimiento

mediante el cual un emisor y un receptor se ponen de acuerdo sobre el instante preciso en que comienza o acaba una informacin que se ha puesto en el medio de transmisin empleado. Por lo tanto requiere la definicin comn de una base de tiempo sobre la que se medirn los distintos eventos que ocurrirn durante toda la transmisin. Un error en el sincronismo implicar la

imposibilidad de interpretar correctamente la informacin apartir de las seales que viajan por el medio. Existe el sincronismo de bit (segregacin de bit), el sincronismo de carcter

(segregacin de caracteres) y sincronismo de trama (segregacin de trama). El sincronismo de bit es responsabilidad del mdem, mientras que el sincronismo de carcter y trama es responsabilidad del protocolo de comunicaciones (el software). Existen dos mtodos para llevar a cabo el sincronismo de bit: el mtodo asncrono (tambien llamado arranque y p arada o startstop) y el mtodo sncrono. 2.5.1 T RANSMISIN ASNCRONA Una transmisin es asncrona cuando el proceso de sincronizacin entre emisor y receptor se realiza en cada palabra de cdigo transmitida. Esto se lleva a cabo a travs de un bit especial que ayuda a definir el entorno de cada cdigo. Al iniciar una comunicacin serie, la lnea de transmisin esta en reposo con un nivel lgico 1. Una manera de informar al receptor de que va a llegar un carcter es anteponer a ese carcter un bit de arranque, (bit de start), con el valor lgico cero. Cuando este bit llegue al receptor, ste disparar un reloj interno y se quedar esperando por los sucesivos bits que contendrn la informacin del carcter transmitido. Una vez recibidos todos los bits informativos, se aadir

uno o ms bits de parada (bits de stop) de nivel lgico 1 que reponder en su estado inicial la
36

lnea de datos, dejndola preparada para la transmisin del siguiente carcter. Este bit de parada puede ser de 1, 1.5 o 2 veces el tiempo que tarda un bit de la informacin. Es comn que para transmisiones por debajo de 300bps el bit de parada dure el doble del tiempo de un bit de informacin (o equivalente a dos bits de informacin), y solo uno cuando se transmite entre 300 y 1200bps, adems, normalmente se adicionan algunos bits con el propsito de detectar algn error introducido durante la transmisin (cosa que ms adelante veremos) llamados bits de paridad. Entre dos caracteres cualesquiera es posible mantener la lnea en reposo tanto t empo como sea i necesario, puesto que la sincrona de la transmisin se restaura en cada carcter por tanto este sistema es poco sensible a los problemas que produce la falta de sincronismo. En la figura 7 se presenta un sistema de transmisin asncrono con 1 bit de start, 8 bits informativos (carcter ASCII), 1 bit de paridad y 2 bits de stop, se tendran rfagas de transferencia de 12 bits por cada carcter transmitido. Una falta de sincrona afectar como mucho los 12 bits, pero la llegada del siguiente carcter, con su nuevo bit de start, producir una resincronizacin del proceso de transmisin.

Figura 7. Formato bsico de la Informacin Transmida en serie para el modo asncrono

2.5.2 T RANSMISIN SINCRNIC A En estas transmisiones los bits transmitidos se envan a un ritmo constante. Exige la transmisin tanto de los datos como de una seal de reloj que marque la cadencia del envo con el fin de sincronizar emisor y receptor. Esta seal puede ser generada indistintamente por el receptor o

por el emisor. Lo nico indispensable es que la base de tiempo sea comn, de lo contrario se producirn faltas de sincronismo y se impedira la comunicacin. En las transmisiones sncronas
37

se suelen utilizar caracteres especiales para evitar los problemas de prdida de sincrona en los caracteres informativos transmitidos. Por ejemplo, el carcter SYN del cdigo ASCII (0010110) es muy utilizado porque es irrepetible por desplazamiento de sus bits. De esta forma los datos o corrientes de bits en serie viajando por la lnea, se transmiten tras cdigos de estos caracteres sincronizantes intercalados en bloques compuestos de un cierto nmero de bytes; o ms an entre byte y byte. Es decir, los datos a transmitir, contenidos en un conjunto predeterminado de caracteres, quedan limitados por uno o dos caracteres sincronizantes de 8 bits cada uno, en ambos extremos. Bsicamente, en una memoria de la unidad de transmisin se forma un armazn o entrada de bloques con un numero grande de caracteres, el mximo permitido en cada caso llamado en el mundo de las redes de comunicacin entre computadores ventana de datos sin confirmacin intermedia de validez de transmisin, se recomienda que cada armazn quede dividido en campos, donde cada campo pueda componerse con un cierto nmero de byts. El armazn

(completo de bits) se enva como un torrente discreto de bits en serie, comenzando con los byts de sincronizacin. errores. El receptor remoto, como respuesta dentro de un protocolo establecido, enva de regreso otro entramado de caracteres (o slo un mensaje de confirmacin para as optimizar el uso de la lnea), en el cual informa al transmisor que debe retransmitir el entramado anterior porque hubo errores, o bien, que prosiga con el proceso de transmisin por que no los hubo. La sincronizacin necesaria entre unidad transmisora y receptora se lleva a cabo bajo control de osciladores que tienen los ETCD (mdem) proporcionando as la base de tiempo o seal de reloj, con la cual se transmite un bit por cada pulso de reloj. Ver figura 8. Correspondiendo al dispositivo o sistema receptor comprobar si hay o no

38

Figura 8. Formato para transmisin sncrona en serie por bits y por caracteres

La prdida de informacin no significa que la informacin sea enviada por el emisor y no sea nunca recibida por el destinatario de la misma. Mas bien significa cambios improvistos y no

deseados en la informacin. En el caso de informacin digital y binaria, cambios en el valor de los bits, es decir, algn bit o bits que sean 1 se convierten en 0 o viceversa. Se han diseado muchos sistemas de deteccin de errores siendo uno de los ms utilizados el de paridad. 2.6. DETECCIN Y CORRECCIN DE ERRORES Los mtodos de correccin y deteccin de errores, se basan en enviar junto con la informacin una serie de bits que indican cualidades de los datos que se estn transmitiendo. Al llegar la

informacin a su destino se detectar el posible error introducido durante la transmisin por comparacin con estos bits especiales de paridad, ya que en caso de error la informacin que llega no corresponder con las cualidades especificadas por los bits de paridad introducidos antes de salir del transmisor. Existe paridad simple y paridad de bloque: 2.6.1 LA PARIDAD SIMPLE Consiste en aplicar el operador ORexclusivo entre los bits del mensaje (caracter ASCII), el bit resultante se ubica generalmente en el bit ms significativo. Este es llamado bit de paridad. Hay dos tipos de paridad simple: paridad par e impar. La paridad par utiliza el resultado obtenido directamente despus de aplicar el operador OR-exclusivo a la informacin, que en resumidas cuentas se calcula contando el numero de unos que contiene el carcter, si este nmero es par, el bit de paridad vale 0, si el nmero es impar el bit de paridad vale 1. La paridad impar es
39

semejante a la par, solo invierte el valor del bit. Ejemplo: como se ve en la figura 9 se tiene el carcter 10001001 a transmitir, la ORexclusivo entre 1, 0, 0, 0, 1, 0, 0, 1 es 1; si se habla de paridad par el bit de paridad es 1, si se habla de paridad impar es 0. Al llegar el mensaje el sistema de paridad simple recalcula la paridad par o impar del mensaje recibido comparando el resultado con el que se adiciono en la transmisin, si el mensaje se altera un numero impar de bits el receptor detectar que hubo un error, mas no podr corregirlo, porque el mtodo no brinda informacin de la posicin de l o los bits alterados. As es como al ORexclusivo de 1, 0, 0, 1, 0, 0, 0 es 0 diferente al recibido en la transmisin que es 1. Si se alteran dos bits, la

ORexclusivo de 1, 0, 0, 0, 0, 0, 0, 0 es 1 igual al recibido en el receptor, no detectndose el error.

Figura 9. Deteccin de error usando paridad simple par

La eleccin de paridad par o impar la hace el usuario, pero ambos equipos deben estar de acuerdo en la eleccin por fijacin de parmetros previamente establecidos. En las transmisiones asncronas, lo mas habitual es transmitir un bit de paridad con cada carcter. 2.6.2 LA PARIDAD DE BLOQUE Es un caso especial de la paridad simple. Tambin puede ser par o impar. La informacin es organizada por bloques, componiendo una tabla de n x m bits, donde cada uno de los byte de la informacin a transferir se ubica por filas. De esta se extraen los bits de paridad por filas y por
40

columnas y por ltimo se enva por la lnea de transmisin los bits de paridad calculados junto con la informacin. Cuando el mensaje llega al receptor este reconstruye la tabla y verifica que los cdigos de paridad sean correctos. En el caso de que algn bit de la tabla se altere durante la transmisin, su posicin puede ser detectada analizando la correspondiente posicin cambiada al comparar la informacin de paridad enviada de la fila y columna y la obtenida en el receptor actualmente. De esta manera el error puede ser detectado y corregido. En el caso de que se pierdan varios bits en la secuencia, este mtodo es capaz de detectarlos pero no de corregirlos. En la figura 10 es presentado un ejemplo con lo dicho anteriormente.

Figura 10. Deteccin y correccin de error usando paridad de bloque

La transmisin de datos entre computadores, se requiere de ciertas normas que regulen dicho proceso, en este caso las normas son establecidas por organismos internacionales de normalizacin, y son aplicadas por las computadores de acuerdo con el protocolo (software) que se est utilizando. Estos protocolos deben ser muy estrictos y deben tener en cuenta todas los posibles casos que se puedan presentar en una comunicacin, sin dejar nada al azar. Las comunicaciones entre computadores estn divididas en los tres casos siguientes: 1. Establecimiento: Durante el cual, por un lado, se establece la conexin fsica de los

terminales, y por otro, ambos sistemas se ponen de acuerdo en cuanto al procedimiento empleado para el intercambio de informacin.

41

2. Transmisin de informacin: enlace establecido.

En la que ambos sistemas intercambian datos a travs del

Durante esta fase los terminales llevan a cabo una comprobacin de la

informacin transmitida/recibida para que en el caso de que exista un error de transmisin poder detectarlo y corregirlo. 3. Terminacin: En la que se da por terminada la comunicacin. 2.7. DEFINICIN DE PROTOCOLO Un protocolo de comunicaciones no es ms que un conjunto de reglas que emplean dos equipos informticos para dialogar entre s, de tal forma que puedan establecer y mantener una comunicacin libre de errores. Son programas que se instalan tanto en el terminal origen como en el terminal destino de la comunicacin, este programa aade unos datos de control a la

informacin original que se quiere transmitir. Estos datos de control son incluidos en el terminal emisor y suprimidos por el terminal receptor antes de entregar la informacin. Actualmente el proceso de comunicacin se estructura en varias capas o niveles, donde cada capa esta jerarquizada y cada una se construye sobre su predecesora. Quiere decir esto que hay una clara diferencia entre los procedimientos necesarios para poner en contacto dos terminales (nivel de enlace), los procedimientos necesarios para detectar posibles bloqueos os fallas en la lnea (nivel de transporte) o los procedimientos necesarios para identificar el terminal llamante, pedir las claves de acceso, etc. (nivel de sesin). Todos estos procedimientos, normalizados de forma independiente, estn integrados en un mismo software (hardware) de comunicaciones y utilizados en los distintos equipos que intervienen en la comunicacin. La organizacin internacional de normalizacin , ISO (International Standard organization), propuso un modelo de comunicacin llamado OSI (Open System Interconnection, interconexin de sistemas abiertos), que esta basado en la existencia de siete niveles que son : nivel fsico, nivel de enlace, nivel de red, nivel de transporte, nivel de sesin, nivel de presentacin y nivel de aplicacin. Estos niveles estn esquematizados en la figura 11.

42

Figura 11. Jerarqua de Capas del Modelo OSI

43

3. CAPT ULO 3 LAS FIBRAS PT ICAS


3.1. NATURALEZA DE LA LUZ La luz se comporta como una onda electromagntica y pertenece al espectro electromagntico (EEM). La luz visible tiene una frecuencia alrededor de 2.3 10 e14 ciclos por segundo. Como se ilustra en la figura 12, las frecuencias de la luz son mucho ms altas que otras frecuencias de ondas electromagnticas, como las ondas de radio y televisin.

Figura 12 Espectro electromagntico

La longitud de onda electromagntica es la longitud en metros correspondiente a un ciclo de una onda. La longitud de onda de la luz visible est en el rango que va desde 770 109 metros a 330 109 metros.
= c frecuencia

Existe una relacin matemtica entre la frecuencia y la longitud de onda,

donde

c es la velocidad de la luz en el material en el cual se propaga.

La luz se

caracteriza normalmente por el valor de su longitud de onda en nanmetros ms que por su frecuencia. La luz que se utiliza para las comunicaciones por fibra ptica se sita en la regin infrarroja, justo por debajo de la luz visible. Las ventanas del espectro de comunicaciones por fibra ptica
44

estn en 1.550, 1310 y 850 nm. La luz visible al ojo humano empieza alrededor de 770 nm (color rojo) y termina en 330 nm (color azul); por tanto la luz que se utiliza en las fibras pticas no es visible generalmente para el ojo. La naturaleza de alta frecuencia de la luz utilizada en la fibra ptica permite que la luz lleve informacin a velocidades muy altas. Actualmente los equipos de transmisin pueden modular la luz a 2.4 Gbps. Esta velocidad es mucho mayor que le que soportan medios de transmisin

elctricos convencionales y no es la mxima que se puede conseguir. 3.1.1 PROPAGACIN DE LA LUZ De nuestra experiencia cotidiana respecto al comportamiento de la luz, notamos que cuando un haz de luz incide en la superficie de separacin entre dos medios, puede ocurrir: El haz de luz es absorbido si incide sobre una superficie negra (Absorcin) Si incide sobre una superficie relativamente rugosa a una escala comparable con la longitud de honda, el haz se refleja en muchas direcciones (Dispersin). Si incide en un metal pulido se refleja en una sola direccin (Reflexin Especular). Si desde el aire pasa a una superficie de vidrio o agua, una parte se refleja hacia el aire y otra parte es transmitida al otro medio (Refraccin). El estudio riguroso del anterior comportamiento de la luz, viene descrito por las ecuaciones de Maxwell; la resolucin de estas ecuaciones puede resultar complicada y a menudo la informacin detallada que proporciona no es necesaria. En muchas ocasiones el comportamiento de la luz puede estudiarse partiendo de un mtodo ms simple llamado ptica geomtrica; esta fue desarrollada antes de que la luz se describiera como onda electromagntica. La experiencia ha demostrado que la ptica geomtrica proporciona

aproximadamente los mismos resultados que se obtienen apartir de las ecuaciones de Maxwell, siempre y cuando la longitud de onda sea mucho menor que longitud de los objetos con los que la luz interactua.

3.1.1.10

ptica geomtrica

Describe de dos maneras muy tiles la representacin de una onda:

45

Por frentes de onda, que son superficies de fase constante de la onda luminosa y se asemejan a la cresta de una onda de agua. Por rayos de luz que se describen por una lnea que seala la direccin de propagacin de la onda. Si la velocidad de la luz es la misma en todas las direcciones, la velocidad de propagacin es perpendicular al frente de onda. La ptica geomtrica se rige por las siguientes leyes: 1. Ley de propagacin rectilnea. En un medio homogneo, l s rayos de luz se propagan en o lnea recta. 2. Ley de reflexin. Una onda que incide sobre la superficie de separacin entre dos medios, se refleja (parcialmente). El rayo incidente y la normal a la superficie determinan el plano de incidencia. Si el rayo incidente forma un ngulo 1con la normal, el rayo reflejado tambin est contenido en el plano de incidencia, al otro lado de la normal, y formando con este el mismo ngulo: 1 = 2. En otras palabras el ngulo de incidencia es igual al ngulo de

refraccin. Esto se ilustra en la figura 13.

Figura 13 Reflexin de la luz

3. Ley de refraccin. El rayo refractado est contenido en el plano de incidencia, en el segundo medio, y formando un ngulo 2 con la normal de la interfase. El ngulo 2 es dado por la ley de Snell segn la ecuacin: n1 Sen 1 = n2 Sen 2 donde n1 y n2 son propiedades de los dos medios.

46

Figura 14 Refraccin de la luz

Al cociente n1 /n2 se le denomina ndice de refraccin y esta relacionado con la velocidad de la luz en ambos medios. El principio de Huygens , establece que la propagacin de una onda luminosa, puede determinarse suponiendo que en cada punto del frente de onda, surge un nuevo frente de onda esfrica concentrada en dicho punto; el nuevo frente de onda, es la superficie e xterna tangente a estas ondas resultantes. Huygens se tiene: Sen1 /(v 1 * t 1 )= Sen2 /(v 1 * t 2 ) Si se compara con el principio de Snell, llegamos a: n1 /n2 = v 1 /v 2 Se deduce que la luz viaja ms despacio en ndices de refracciones mayores. La definicin de ndice de refraccin en un medio cualquiera, requiere de un convenio, y el convenio usado es que el ndice de refraccin del vaco es exactamente igual a 1. Dado que la velocidad de la luz en el vaco es la constante c, el ndice de refraccin n para una sustancia dada viene dado por n = c/v, donde v es la velocidad de la luz en el material. El ndice de refraccin de un compuesto depende de alguna manera de la longitud de onda de la luz utilizada. Por ello si un rayo de luz compuesto por muchas longitudes de onda se refracta, dicho rayo se dispersar en varios rayos cuyas direcciones dependen de los valores de ndices de A partir de ella se infiere la ley de propagacin rectilnea. Segn

47

refraccin para las distintas longitudes de ondas. La variacin de n con las distintas longitudes de ondas se denomina dispersin. Cuando los rayos de luz se desplazan desde un medio de ndice n mayor a un medio de n ms bajo, todos ellos se separan de la normal. El ngulo de incidencia para el que el ngulo de refraccin es de 90 se denomina ngulo crtico c. Los rayos que se aproximan a la frontera desde el medio de mayor ndice de refraccin formando un ngulo de incidencias menor que el ngulo crtico son parcialmente reflejados y parcialmente refractados. Los rayos que se aproximan a la frontera desde el medio de ndice mayor y formando un ngulo de incidencia superior al ngulo crtico, son totalmente reflejados, no existiendo en este caso el rayo refractado. A este fenmeno se le denomina reflexin total interna y es el que posibilita la propagacin de la luz por el interior de una fibra ptica. 3.2. LA FIBRA PTICA Una fibra ptica consiste en un material transparente cilndrico y largo que confina y propaga una onda luminosa. Esta compuesto de tres capas diferentes: el ncleo central que lleva la luz, el revestimiento que cubre el ncleo y confina la luz dentro del ncleo, y el recubrimiento que dota de proteccin al revestimiento. Esto es ilustrado en la figura 15.

Figura 15 Representacin de una fibra ptica

Las capas del ncleo de slice y del revestimiento difieren ligeramente en su composicin, debido a pequeas cantidades de material, como boro o germanio, que son aadidos durante el proceso de fabricacin. Esto altera las caractersticas del ndice de refraccin de ambas capas,
48

dando lugar a las propiedades de confinamiento de la luz necesarias para la propagacin de los rayos. El ndice de refraccin del slice tiene un valor alrededor de 1.5 y el del revestimiento es ligeramente menor, alrededor de 1.48 (el ndice de refraccin del aire es 1.003). Las fibras

pticas pueden tambin estar hechas completamente de plstico o de otros materiales; estas fibras son generalmente menos caras pero tienen una atenuacin mayor (prdidas) y una aplicacin limitada. La luz puede entrar en la fibra ptica si esta mantenida dentro de cierto ngulo o cono de aceptacin que se define como apertura numrica (AN), siendo sta la funcin de los ndices de refraccin de la fibra. El rayo de luz, se introduce en la fibra ptica en un ngulo, que segn el tipo de fibra adoptada, puede variar desde 15 a 130, hasta que incide en la superficie existente entre el ncleo de la fibra y su revestimiento. Este rayo se propaga en el interior del ncleo con un ngulo reducido que mantiene relacin con el eje ptico y se adapta hasta cierto limite a las curvaturas. En el interior del ncleo se genera una reflexin total interna absoluta debido a que el ndice de refraccin del revestimiento sobrepasa al del aire, aun cuando es inferior al ncleo de mayor densidad. De esta manera la energa radiante pasa por el interior de una gua totalmente

reflectora, cuyo ndice de refraccin sobrepasa la unidad. Esto se ilustra en la figura 16

Figura 16 Reflexin total interna en una gua de onda y cono de aceptacin

49

El ngulo de acuerdo con el cual se introduce la luz en la fibra se conoce con el nombre de ngulo de admisin, en tanto que el de salida de la luz es designado como ngulo de emisin. 3.2.1 PRDIDAS DE POTENCIA PTICA Mediante el trmino atenuacin se define la perdida de potencia ptica del haz de luz que discurre por la fibra. Esta atenuacin esta directamente relacionada con la longitud de onda y el material por el que se propaga. Para el slice las longituds de onda ms cortas son las que ms se atenan, las perdidas ms bajas se encuentran para una longitud de 1.550nm, que se usa frecuentemente para transmisiones de larga distancia. Las perdidas de luz en una fibra ptica estn causadas por varios factores y se pueden clasificar en prdidas intrnsecas como perdidas por curvatura, por conexin y empalme, y perdidas extrinsecas que son: perdidas inherentes a la fibra, perdidas que resultan de la fabricacin de la fibra y por reflexin de Fresnel.

3.2.1.11

Prdidas por Curvatura


Si el radio de curvatura es mayor que el radio de curvatura

Ocurren en todas l s curvas de una fibra ptica debido al cambio de ngulo de incidencia en la a frontera ncleo-revestimiento.

mnimo de la fibra, las perdidas son despreciables y, por tanto ignoradas. Curvas pronunciadas del ncleo de una fibra en desplazamiento de unos pocos milmetros o menos, causan por la proteccin exterior de la fibra, la fabricacin, el procedimiento de instalacin, etc., pueden causar tambin perdidas de potencia. Estas perdidas se denominan prdidas por microcurvaturas y

pueden ser significativas para grandes distancias.

3.2.1.12

Prdidas por conexin y empalme

Ocurridas en todos los empalmes. Los empalmes mecnicos tienen generalmente las mayores prdidas, a menudo en el rango que va desde 0,2 db a 1.0 db, dependiendo del tipo de empalme. Los empalmes por fusin tienen unas perdidas ms bajas, generalmente menores a 0,2 db. Las perdidas se pueden atribuir a un gran nmero de factores, incluyendo un mal corte, el desplazamiento de los ncleos de la fibra, burbujas de aire, contaminacin, desadaptacin del ndice de refraccin, desadaptacin del dimetro del ncleo, etc.

50

Las perdidas de los conectores de fibra ptica estn frecuentemente en el rango que va desde 0,3 db a 1.5 db, y dependen en gran medida del tipo de conector usado. Otros factores que

contribuyen a las prdidas por conexin incluyen la suciedad o los contaminantes en el conector, la instalacin impropia del conector, una cara daada del conector, un corte pobre, desalineamiento de los ncleos de la fibra etc.

3.2.1.13

Prdidas inherentes a la fibra

Las perdidas de luz en una fibra que no se pueden eliminar durante el proceso de fabricacin se deben a las impurezas en el vidrio y a la absorcin de la luz a nivel molecular. Las perdidas de luz debidas a las variaciones en la densidad ptica, composicin y estructura molecular se denominan dispersin de Rayleigh. Los rayos de luz que encuentren estas variaciones e

impurezas se dispersan en muchas direcciones y se pierden. La absorcin de la luz a nivel molecular en una fibra se debe principalmente a los contaminantes en el vidrio, tales como las molculas de agua (OH-). La difusin de las

molculas de OH- dentro de una fibra ptica es uno de los factores fundamentales que contribuyen al incremento de la atenuacin de la fibra cuando sta envejece. Tambin contribuye a las perdidas de luz la absorcin debida a la resonancia molecular de vidrio slice (SiO2). Las irregularidades en el proceso de fabricacin de la fibra pueden dar lugar a perdidas de rayos luminosas, por ejemplo un cambio de 0.1% en el dimetro del ncleo pueden significar unas perdidas de 10dB por km. Las reflexion de Fresnel ocurre en cualquier frontera donde cambie el ndice de refaccin, causando que una parte de los rayos incidentes sean reflejados al primer medio. El extremo de una fibra es un buen ejemplo de este hecho. La luz que viaja del aire al ncleo de la fibra se refracta al ncleo, sin embargo parte de la luz, alrededor del 4%, es reflejada de vuelta al aire. En un conector de fibra la cantidad de potencia luminosa reflejada se sita alrededor del 8%. Esto se puede ver fcilmente en la traza de un reflectmetro ptico en el dominio del tiempo OTDR. Se puede reducir la potencia de luz reflejada usando mejores conectores, como los PC (phisical contact) que estn diseados para minimizar esta reflexin. La atenuacin se mide en decibelios por kilometro (dB/km) y se ha podido determinar que, en longitudes de onda concretas, puede considerarse como extremadamente reducidas. Estas

longitudes se designan con el nombre de ventanas y la primera de ellas corresponde


51

aproximadamente, a 850nm, la segunda en 1300nm y la tercera en 1500nm. La figura 17 muestra la curva de atenuacin de las fibras de slice.

Figura 17. Curva de atenuacin de fibras de slice.

3.2.2 ANCHO DE BANDA DE LA FIBRA Una excitacin luminosa conforme va pasando por la fibra se va distorsionando y ensanchando. Este fenmeno recibe el nombre de dispersin total. Para evitar que esto ocurra, los pulsos se deben transmitir a una frecuencia menor, reduciendo con esto la capacidad de transmisin de datos. La dispersin total se pueden dividir en dos categoras: dispersin cromtica y dispersin modal o multimodo.

3.2.2.14

Dispersin modal

Afecta slo a la fibra multimodo y esta causada por los diferentes caminos o modos que sigue un rayo de luz en la fibra, esto da como resultado que los rayos recorran distancias diferentes y lleguen al otro extremo de la fibra en tiempos diferentes. Un pulso transmitido se ensanchar

debido a este efecto y reducir en consecuencia la mxima velocidad de transmisin efectiva de datos.
52

3.2.2.15

Dispersin cromtica

Ocurre porque el ndice de refraccin de una fibra varia con la longitud de onda de la luz. Dado que la fuente de luz est compuesta d un espectro de ms de una longitud de onda, los rayos de e luz de diferentes longitudes de onda viajan a diferentes velocidades, dando como resultado un ensanchamiento del pulso. El ancho de banda total de una fibra multimodo est especificado por el fabricante como producto de la distancia por el ancho de banda nodal normalizado (MHz *km), este producto da cuenta solo del ensanchamiento del pulso debido a la dispersin modal. Para determinar el ancho de banda total de una fibra deben se tambin considerados los efectos de la dispersin cromtica. El ancho de banda de una fibra monomodo esta limitada nicamente por la dispersin cromtica de la lnea, que se especifica en la forma picosegundos/(nanmetro * kilometro). Hay disponible fibras monomodo convencionales a longitudes de onda de 1.310 nm con dispersin casi nula (soporta anchos de banda ms elevados). Tambin hay fibras pticas con Hay

dispersin casi nula a 1.550 nm que se conocen cono fibras de dispersin desplazada.

tambin fibras con dispersin casi nula tanto a 1.310 como 1.550nm y se conocen como fibras de dispersin plana. Para operar a la velocidad de transmisin de datos ms alta, la fibra

monomodo debera tener dispersin nula a la longitud de onda de operacin del equipo. 3.2.3 T IPOS DE FIBRA PTICA El perfil de ndice indica la variacin del ndice de refraccin en el dimetro de una seccin de gua ptica. y su forma determina la trayectoria de la luz en la fibra, as como sus caractersticas de transmisin (atenuacin y ancho de banda o dispersin), de igual manera la cantidad de modos o caminos diferentes por los que discurre la luz en su propagacin a lo largo de la fibra. Existen 3 tipos fundamentales de fibra que son:

3.2.3.16

Fibras multimodo

Es una fibra que puede propagar ms de un modo de luz. El nmero mximo de modos de luz que pueden existir en el ncleo de una fibra se puede determinar matemticamente por la siguiente expresin
M = 1 + 2D n12 n 2 2

0 .5

53

Donde D = dimetro del ncleo n1 = ndice de refraccin del ncleo n2 = ndice de refraccin del revestimiento = longitud de onda Para una fibra multimodo el nmero de modos puede ser fcilmente superior a mil. El nmero de modos que existe realmente depende de otras caractersticas de la fibra y se puede reducir durante la propagacin. Una fibra multimodo, se usa comnmente en aplicaciones de comunicacin de corta distancia (unos pocos kilmetros). La electrnica del equipo terminal es ms barata y es de simple diseo, como fuente de luz se usa normalmente un LED. Debido al gran tamao del ncleo es ms fcil de conectar y tiene una mayor tolerancia a componentes de menor precisin. Existen dos tipos de fibra multimodo: la fibra de ndice escaln y la fibra de ndice gradual. Difieren en los perfiles del ndice de refraccin de su ncleo y revestimiento.

3.2.3.17
uniformes. refraccin.

Fibras de ndice escalonado


En la frontera ncleo-revestimiento hay un cambio abrupto en el ndice de El comportamiento de la luz en cualquier fibra de ndice escaln se debe a las Los rayos de luz viajan por

Es una fibra ptica con ndices de refraccin del ncleo y el revestimiento diferentes pero

propiedades de reflexin en la frontera ncleo revestimiento.

caminos muy diferentes en el ncleo de la fibra debido a que la distancia de viaje de cada rayo debe diferir, llegarn a su destino en tiempos diferentes segn se ilustra en la figura 18. Esto trae como consecuencia que un pulso transmitido se ensanche en el tiempo. Esta distorsin de la seal se conoce como dispersin modal (o multimodo)

54

Figura 18 propagacin de la luz en una fibra ptica de ndice escaln

Este ensanchamiento del pulso ilustrado en la figura 19, restringe la velocidad de transmisin de datos debido a que sta es inversamente proporcional a la anchura del pulso. Un pulso ms ancho significa que se pueden enviar menos pulsos por segundo, lo que resulta en una disminucin del ancho de banda de transmisin. Este es el factor principal que limita la velocidad de transmisin de datos en una fibra multimodo: Velocidad de transmisin de datos = 1/ anchura del pulso

Figura 19 Dispersin de una fibra multimodo de ndice escaln

55

3.2.3.18

Fibra de ndice gradual

El ndice de refraccin del ncleo de esta fibra decrece desde el centro hasta el exterior. El ndice de refraccin del revestimiento es uniforme. La fibra de ndice gradual curva los rayos de luz en caminos sinuosos, debido a que el ndice de refraccin del ncleo no es uniforme, esto se ilustra en la figura 20.

Figura 20 Propagacin de la luz en una fibra de ndice gradual

La regin exterior del ncleo tiene un ndice de refraccin ms bajo que el centro. La luz viaja ms rpido en un material con ndice de refraccin mas bajo. Los rayos de luz de la regin

exterior del ncleo viajan una distancia mayor y requieren ms tiempo para llegar al final de la fibra. Sin embargo, debido a que la luz viaja ms rpido en la regin exterior que en el centro del ncleo, el mayor tiempo causado por la distancia se compensa parcial mente con una mayor velocidad de rayo. Esto reduce la cantidad de ensanchamiento del pulso entre los rayos de luz del centro del ncleo y de la regin exterior, por lo que se reduce la dispersin modal, esto le da mayor ancho de banda de transmisin que una fibra de ndice escaln.

3.2.3.19

Fibra monomodo

Es una fibra ptica en la que solo se propaga un solo modo de luz (un camino para los rayos de luz por el centro de la fibra ilustrado en la figura 21). Esto se logra reduciendo el dimetro del ncleo de la fibra hasta un tamao que solo permite un modo de propagacin, comprendido entre 8 y 10 m.
56

Figura 21 Propagacin de la luz en una fibra monomodo

El perfil de ndice de refraccin de una fibra monomodo, es similar al de una fibra multimodo de ndice escaln. Debido al pequeo tamao del ncleo de la fibra se usa como fuente de luz un lser de estado slido y para las conexiones y empalmes de la fibra, se deben utilizar componentes de precisin mayor. Puesto que se propaga por la fibra un nico modo, se elimina el ensanchamiento del pulso debido a la dispersin modal esto permite velocidades de transmisin de datos mucho mayores sobre distancias ms largas. Velocidades de transmisin por encima de 2 Gbps son bastante

frecuentes con fibras monomodo. 3.3. SISTEMA DE COMUNICACIN POR FIBRA PTICA

Figura 22 Sistema de comunicacin por fibra ptica y repetidor ptico

En su forma ms simple, un sistema de comunicacin por fibra ptica est constituido por 3 elementos ilustrados en la figura 22, estos son:
57

a) Un modulo de emisin, que tiene como funcin transformar la informacin en forma de seal elctrica a informacin en forma de luz, contiene la fuente de luz, que puede ser un diodo electroluminicente o un diodo lser. A este modulo se le llamar emisor ptico. b) Un canal de transmisin de luz, que es la fibra ptica, puede contener conectores que le permiten acoplar dos fibras entre s. c) Un modulo de recepcin, que tiene como funcin transformar la informacin ptica recibida en informacin con la forma de seal elctrica; contiene un detector ptico que puede ser un fotodiodo o un fototransistor. Sele llama receptor ptico. Las transmisiones a distancias demasiado grandes pueden necesitar la utilizacin de uno o varios repetidores, cuya funcin es amplificar la seal ptica. Un repetidor esta constituido por un receptor ptico seguido por un emisor ptico, ver figura 311 3.4. FUENTES DE LUZ Las fuentes pticas son transductores que generan una onda portadora ptica que ser modulada por las seales elctricas procedentes de un equipo analgico o digital. Estas han de emitir luz a una longitud de onda concordante con una de las ventanas de bajas prdidas en la fibra (en el caso de las usadas para fibras monomodo a 1300 nm la anchura tpica espectral no excede los 50 nm) y tambin deben cumplir otros requisitos no menos importantes como: Bajo consumo. Alta fidelidad con los cambios de temperatura. Pequeo tamao. Alta potencia de salida y pureza espectral suficiente en los casos de largas secciones de regeneracin. La fuente debe admitir en su interior la modulacin a la velocidad de transmisin del sistema, aunque ltimamente puede obviarse esta condicin acudiendo a moduladores exteriores a la propia fuente. Las fuentes que se emplean en la tecnologa ptica son de dos tipos: diodos

electroluminiscentes LED y diodos lser LD. La radiacin de cualquiera de estos dos tipos de

58

diodos se consigue inyectando huecos o electrones en una unin p-n con fuerte polarizacin directa. 3.4.1 EL DIODO LED: En un semiconductor, los distintos estados energticos posibles de los electrones estn cuantificados en escalones, crendose bandas energticas permitidas separadas por saltos o bandas prohibidas. El salto energtico fundamental, de valor Eg, separa la banda de valencia ocupada ms alta de la banda de conduccin ms baja sin ocupar. La ocupacin inicial de las bandas se altera mediante la polarizacin externa del semiconductor, incluyendo electrones en la parte inferior de la banda de conexin a travs de un contacto resistivo o extrayndolos de la parte superior de la banda de valencia, lo que equivale a inyectar huecos en esta ltima. Estas bandas de energa se ilustran en la figura 23.

Figura 23 Bandas de energa en una unin p-n

La corriente inyectada provocar la recombinacin de .huecos de la banda de valencia con electrones de la banda de conduccin, lo que, a su vez, es causa de la emisin de fotones cuya energa equivale al salto energtico del electrn que pasa de la banda de conduccin a la banda de valencia para recombinarse. En los diodos LED, la emisin en la unin p-n es espontnea y aleatoria. Al tratarse de una emisin de este tipo, no es de esperar que las ondas emitidas estn en fase entre s, ya que cada
59

emisin es independiente de cualquier otra en su generacin; esto lleva consigo que unas anulen total o parcialmente a otras, y la potencia neta de salida se vea reducida con respecto a la que tendra de no ocurrir este fenmeno de interferencia. Este fenmeno es similar al que ocurre en una emisin por incandescencia. A pesar del fenmeno de interferencia, la potencia de salida no es notablemente menor que la del lser, su ancho de banda espectral mucho ms amplio y velocidad de modulacin permisible ms pequea, limitndose a un ancho de banda de pocos cientos de MHz * km.

Figura 24. Diferentes estructuras de diodos LED

La citada recombinacin tiene lugar alrededor de la zona de unin y los fotones emitidos emergern en todas las direcciones posibles de acuerdo con su direccin inicial y con los diferentes ndices de refraccin de los medios que circundan la zona activa, por lo que para controlar la emisin se utilizan heterouniones simples o dobles basadas en revestir el semiconductor activo con otro u otros de banda prohibida ms ancha: el incremento en el valor del escaln energtico resultante entre los bordes de las bandas de valencia y de conduccin se
60

encargar de confinar los huecos o electrones inyectados en la regin activa, impidiendo que la recombinacin ocurre fuera de ella. En la figura 24 se muestran los esquemas correspondientes a distintas estructuras de LED. Los materiales que se usan para cada una de estas zonas son los especificados en la tabla 3.1, pertenecientes a los grupos III V. Como se puede apreciar, cuando las fuentes trabajan en segunda y tercera ventanas, el aluminio se s ustituye con mejores resultados por combinaciones de indio y fsforo. Cuando a la longitud de onda de emisin, se controle dosificando adecuadamente las proporciones de galio (Ga) y aluminio (Al) de la capa activa en la banda de 800 a 900 nm y las de indio (In) a Ga y de arsnico (As) a fsforo (P) para diodos que deben trabajar en segunda y tercera ventanas. Esta longitud de onda, dependiente del intervalo o salto energtico se expresa como: Eg (Eg = h f) Entre bandas es:
= h c Eg

Donde h = constante de Planck (6.627 1034 jul*seg) Los valores de Eg estn comprendidos entre 0.2 y 0.3 eV. El diodo LED se utilizar en aquellas aplicaciones donde no sean crticas la atenuacin y la dispersin en la lnea, as como para los casos de pequeas velocidades de informacin. 3.4.2 EL LSER: El lser usado en la tcnica ptica (diodo lser LD) no es un lser convencional, sino otro basado en los fenmenos de emisin que ocurre en una unin p en determinadas circunstancias. -n En los LD, la luz generada por el proceso de conversin electroptico se amplifica en una cavidad resonante de modo selectivo, produciendo una potencia de salida elevada concentrada en un pequeo margen de longitudes de onda (ver figura 25). Tal nivel de potencia se debe a que las radiaciones estimuladas que aparecen a su salida constituyen frentes de onda coherentes es decir los trenes de onda que emergen de l estn siempre en fase, independiente de cual sea su
61

ancho espectral (que siempre es mucho ms reducido que en los LED, hasta en dos ordenes de magnitud), a dems dichos frentes de onda tienen la misma polarizacin

Figura 25 Longitud de la cavidad resonante en un lser

Los fotones lanzados en direcciones diferentes a las contenidas en el plano mayor de la capa activa son absorbidos por las otras capas, de modo que slo pueden salir los contenidos en planos paralelos a ste; siendo en las paredes laterales se absorbe la radiacin, excepto en la de salida, que es parcialmente reflectante, se conseguir que salgan parte de los fotones que inciden en esta ltima tras choques sucesivos. Pero tambin cabe pensar si es posible que este amplificador de luz se automantenga mediante una realimentacin positiva, o sea, se convierta en un oscilador, de modo anlogo a lo que ocurre en los osciladores convencionales. En efecto: ha de conseguirse que los fotones producidos aparezcan para su utilizacin como fuente de luz, pero al mismo tiempo debe reservarse una parte de ellos para realimentar el proceso de radiacin forzada. Si la distancia entre las caras extremas del eje de propagacin es un nmero entero de semilongitudes de onda de la radiacin emitida, aquellos fotones que no escapen y sufran sucesivas reflexiones estarn en fase con los incidentes y podrn crear nuevos fotones. Cuando la generacin neta de un fotn que recorre un circuito completo se hace igual a la unidad, la reaccin de una cadena se hace critica y se produce el efecto lser. La corriente necesaria para el proceso se automantenga es la llamada corriente umbral, por debajo de la cual se extingue y comporta como un LED.
62

Las condiciones, para tanto para que se produzca el efecto lser son: Existencia de una fuente de bombeo del diodo. Corriente superior al umbral. Dimensiones adecuadas de la cavidad resonante. 3.5. DETECTORES DE LUZ Los detectores pticos, demodulan la portadora ptica recibida a travs de la fibra, recuperando la seal elctrica de informacin como primera parte del proceso de recuperacin; a continuacin la seal se regenera (con un proceso de amplificacin, filtrado etc.) bien para llevarla a un equipo terminal o para ser incorporada a la siguiente etapa de un repetidor ptico. a lo que se somete posterior mente a en el receptor. Los detectores han de tener: Alta sensibilidad (potencia mnima necesaria en la entrada del detector para obtener una tasa de error menor que una prefijada). Bajo consumo y pequeo tamao. Una baja tasa de error (tpicamente menos de 10 Exp10) para permitir la recuperacin de la seal original. Bajo ruido. Alta eficiencia cuntica (rendimiento) en la conversin optoelctrica. Los sistemas que operan actualmente incorporan la deteccin directa de una seal que modul en intensidad a la portadora de la fuente lser; el detector se limita a obtener una foto corriente a partir de la luz modulada incidente, por lo que esta corriente ser proporcional a la potencia recibida, y corresponder a la forma de onda de la moduladora. En principio, el tipo ms sencillo de detector corresponde a la unin p-n de un semiconductor cuyo intervalo de energa entre las bandas de valencia y conduccin sea pequeo, lo que permitir que un fotn que incida en la unin tenga suficiente energa para permitir la creacin de un par electrn-hueco. Ambos portadores circularn en sentidos opuestos, creando una

fotocorriente sobre el circuito externo.

63

La deteccin de un haz de luz de longitud de onda exige la utilizacin de un material en el detector cuyo salto energtico sea menor que la energa hc/. Para longitudes de onda de la primera ventana el material ms adecuado es el silicio, con un salto energtico de 1.1 eV. En la segunda ventana (mayores longitudes de onda) se precisaran elementos de menor salto energtico, como el germanio (0.7 eV), que presenta el inconveniente de una alta corriente de oscuridad y alta sensibilidad a la temperatura para su empleo en la tercera ventana. Los

compuestos de los perodos III y V, como In, Ga, As y P constituyen semiconductores ptimos para la tercera ventana. 3.5.1 DETECTORES PIN: Se puede mejorar la eficacia del detector simple p-n con una estructura PIN, donde la regin activa (ahora llamada intrnseca) se sita entre las otras dos ,p y n segn la figura 26.

Figura 26 Campo elctrico en un fotodiodo PIN

Si a un dispositivo como ste se le aplica una tensin de polarizacin, se vaca totalmente de portadores la regin intrnseca (deplexin o empobrecimiento), generando un alto valor de campo elctrico en la misma que acelera las cargas en ella. El campo impulsa a los portadores

generados hacia fuera con pocas o ninguna recombinaciones, debido a la gran aceleracin que les imprime por efecto de su alto valor. La generacin de portadores fuera de esta zona y su

posterior difusin puede sin embargo, ocasionar prdidas por recombinacin, afectando al tiempo del detector e influyendo, por tanto, en el ancho de banda mximo admisible.

64

Las caracterstica tensin de polarizacin inversa-corriente de un diodo PIN se muestran en la figura 27, se puede observar en ella que:

Figura 27 Caractersticas de un diodo PIN

La corriente de portadores mayoritarios aumenta con la potencia ptica incidente y dentro de cada potencia su margen de variacin es pequeo hasta alcanzar la tensin de ruptura. A partir de determinada tensin la fotocorriente aumenta bruscamente a consecuencia de la alta energa que en el campo existe (unos 30 V/m) produce en los portadores minoritarios, formados en la zona de deplexin. Estos portadores, de alta energa cinetica, provocan en su choque con la estructura atmica de la regin intrnseca de nuevos portadores, sometidos a su vez, al mismo campo, lo que constituye un fenmeno acumulativo. aprovecha en los diodos APD. Este efecto se

65

Cuando no existe luz incidente, el detector origina una pequea corriente parsita, o de oscuridad, cuyo ruido asociado queda siempre como fondo y es conveniente conocer. La corriente de oscuridad se debe fundamentalmente a la difusin de portadores minoritario de origen trmico generados fuera de la regin intrnseca, y en estos detectores es particularmente baja: del orden de algunos picoamperios a 25C. El ancho de banda queda limitado por el tiempo empleado por las cargas en atravesar la regin de deplexin y es proporcional a la velocidad de los portadores en la misma, consiguiendose valores prximos a 500 MHz. 3.5.2 DETECTORES APD: Funciona segn el principio de avalancha electrnica, polarizando inversamente un diodo de unin p-n en un punto cercano al de ruptura de la unin. El elevado campo elctrico producido por la tensin aplicada da lugar a que los electrones y huecos generados en la colisin fotnica generen nuevos portadores por efecto de la alta energa cintica adquirida en el campo elctrico; esto es el impacto de un electrn originado en la zona intrnseca con otro electrn har que este ltimo pase de la banda de valencia a la de conduccin al transferirle aquel su energa, de modo que la fotocorriente de avalancha ser:
I /p = M I p

Siendo M la ganancia de corriente. La naturaleza estadstica de la avalancha da origen a un proceso de ruido que se puede caracterizar por un factor F, factor de ruido en exceso (>1), y que multiplica a M a efectos de ruido generado por el proceso. Esto lleva consigo la existencia de un valor ptimo de M, sobre pasado el cual se pierden los beneficios de la ganancia en aras de un mayor ruido. En un detector, el mximo ancho de banda est en ltimo caso limitado por el tiempo de trnsito de los portadores en la regin de deplexin, igual que en los fotodiodos PIN. Cuando hay ganancia, el ancho de banda se reduce debido al tiempo necesario para formarse la avalancha. El tiempo de respuesta tambin depende del grado de ionizacin alcanzada por impacto de los portadores.

66

Son 3 los tipos de APD existentes: de silicio (presentan bajo ruido y rendimiento hasta del 90% trabajando en primera ventana), de germanio (aptos para trabajar con longitudes de onda entre 1000 y 1300 nm y rendimiento del 70%) y detectores del grupo III-V. 3.6. CONECTORES La fibra ptica para conectarse tanto al receptor como al transmisor requiere de uniones removibles, stas se logran por medio de conectores. Existe un conjunto de diferentes conectores tanto para fibra monomodo como multimodo. Entre los ms usados estn los bicnicos, de

abrazadera de precisin, de bolas, de lente, de plastico etc. Una ilustracin de un conector de abrazadera de precisin bicnico se presenta en la figura 28

Figura 28 Conector de abrazadera de precisin y bicnico

Las atenuaciones tpicas introducidas por diferentes conectores a la fibra multimodo y monomodo se ilustran en la tabla 3.1

67

Tabla 3.1 Atenuaciones tpicas introducidas por diferentes conectores

3.7. EMPALMES La unin permanente entre dos secciones de fibras pticas (Empalmes) se realiza por medio de diferentes tcnicas: fusin o con adhesivo. Tambin se emplean diferentes mtodos para alinear las fibras tales como camisas, ranuras, varillas, etc. en la figura 29 se ilustran diferentes tcnicas de realizar empalmes.

68

Figura 29 Diferentes maneras de realizar empalmes en fibra ptica monomodo y multimodo

3.7.1 EL EMPALME POR FUSIN Proporciona la conexin de prdidas ms bajas. Para realizar el empalme de la fibra esta

tcnica utiliza un dispositivo denominado Empalmadora de fusin. La empalmadora de fusin alinea con precisin las dos fibras, generando un pequeo arco elctrico para soldar las dos fibras. Una buena empalmadora de fusin proporcionar empalmes consistentes, con bajas prdidas, generalmente menores que 0.1 dB para fibras monomodo o multimodo. Al realizar empalmes y conexiones se introducen atenuaciones causadas por diferentes factores: desalineamiento de ejes, inclinacin de las caras, diferencia del dimetro de los ncleo, diferencia entre los ndices de refraccin de los ncleos, entre otros. En un empalme o conexin pueden estar presentes uno o varios factores que introducen atenuacin. Niveles tpicos de atenuacin introducida por los factores antes mencionados se introducen la tabla 3.2.

69

Tabla 3.2 Atenuaciones tpicas introducidas por desalineamientos, inclinacin, diferencia de dimetro e ndice en los ncleos

3.7.2 EL EMPALME MECNICO Es una tcnica alternativa de empalmado que no requiere una empalmadora de fusin. Utiliza un pequeo empalme mecnico, aproximadamente de 6 cm de largo y de 1 cm de dimetro que une permanentemente las dos fibras pticas. Un empalme mecnico es un conector de fibra

pequeo que conecta dos fibras desnudas de manera precisa y que la asegura mecnicamente. Para amarrar permanentemente la unin se utilizan cubiertas con resorte (snap), cubiertas adhesivas o ambas. Hay disponibles empalmes mecnicos para fibras monomodo o multimodo, pero con mayores perdidas por empalme que las de los empalmes por fusin (generalmente en el
70

rango de 0.1 a 0.8dB). Son pequeos, fciles de usar y convenientes para reparaciones rpidas o instalaciones permanentes.

71

4. CAPTULO 4 CONOCIM IENT O BSICO DEL PUERT O PARALELO

Figura 30. El puerto paralelo en el PC

El adaptador de interfaces, es un trmino genrico dado a los dispositivos que hacen que el PC se pueda comunicar con otros dispositivos electrnicos o perifricos, tales como el teclado, el monitor de vdeo y los puertos de entrada y salida de datos como son: los puertos paralelo (resaltado en la figura 30), los puertos serie y el puerto del joystick. El puerto de impresora o puerto paralelo tambin llamado Centronics, fue diseado en un principio para ser una interfaz con la impresora; no obstante, las ocho salidas de datos, las cinco entradas y cuatro lneas bidireccionales del puerto, adems la facilidad de programacin de estas lneas a travs del ROM BIOS o del MS-DOS con lenguajes como C o QBASIC, hacen la interfaz muy flexible permitindole ser utilizada para una gran variedad de aplicaciones distintas
72

como: tareas bsicas de monitoreo y control, transferencia de datos, interconexin de dos computadores, conexin de pequeos robots, y otras aplicaciones, hacindolo ideal para experimentar con circuitos, programas y sistemas de control por medio de un PC. 4.1. SEALES DEL PUERTO PARALELO El puerto paralelo posee varias seales que se pueden clasificar en cuatro grupos: salida de datos por 8 lneas de datos (Data), entradas de protocolo por 5 lneas de estado (status), salidas de protocolo por 4 lneas de control ( ontrol) que son bidireccionales y tierras. La tabla 4.1 c esquematiza las seales del puerto paralelo.
Tabla 4.1. Conector y Seales del Puerto Paralelo PIN PC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18-25 * * * * SEAL I /O REGISTRO BIT INVERTIDO CONECTOR IMPRESORA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 32 31 36 19-30,33 16 17 18 34,35 DESCRIPCIN

/STR D0 D1 D2 D3 D4 D5 D6 D7 /ACK BSY PAP OFON /ALF /FEH /INI /DSL GND 0 v. CHASIS 5 v. *

I /O O O O O O O O O I I I I I /O I I /O I /O

CONTROL DATOS DATOS DATOS DATOS DATOS DATOS DATOS DATOS STATUS STATUS STATUS STATUS CONTROL STATUS CONTROL CONTROL

0 0 1 2 3 4 5 6 7 6 7 5 4 1 3 2 3

Y N N N N N N N N N Y N N Y N N Y

ACTIVACIN DE TRANSF. DE DATOS BIT DE DATO 0 BIT DE DATO 1 BIT DE DATO 2 BIT DE DATO 3 BIT DE DATO 4 BIT DE DATO 5 BIT DE DATO 6 BIT DE DATO 7 TRANSF. DE DATOS CORRECTA IMPRESORA OCUPADA SIN PAPEL INDICADOR DE IMPRESORA EN LNEA ALIMENTACIN DE LNEA AUTOMATICA ERROR INICIALIZACIN DE IMPRESORA SELECCIN DE IMPRESORA TIERRA 0V. TIERRA PRTOTEGIDA SIN USAR

4.1.1 BUS DE DATOS Transporta informacin desde el PC hacia el perifrico, lo hace en grupos de ocho bits en forma simultanea siendo esta la principal caracterstica de este puerto, en algunos PC este puerto es bidireccional. Utiliza los terminales del 2 al 9 del conector DB-25 hembra, siendo el pin 2 el D0

73

el correspondiente al bit LSB y en orden ascendente respectivamente hasta el pin 9 el D7 que es el correspondiente al bit MSB. 4.1.2 BUS DE ESTADO Son cinco entradas que son ledas en un registro de estado el que se localiza en la direccin base mas 1h; este registro es slo de lectura, los bits 0, 1 y 2 de este registro no se utilizan, las lneas usan los bits del 3 al 7 y son usados los pines 15 para S3, 13 para S4, 12 para S5, 10 para S6 y 11 para S7; de el conector DB25 hembra. Las seales de este puerto son interpretadas por el PC as: /BSY Ocupado. = 1 Impresora disponible. 0 Impresora ocupada, fuera de lnea o error. /ACK Aceptar. = 1 Transferencia de datos en progreso. 0 Transferencia de datos completa. OFON En lnea = 1 Impresora en lnea. 0 Impresora fuera de lnea. PAP Papel. = 1 No hay papel. 0 Papel disponible.

/FEH Error.

1 No hay error. 0 Error

4.1.3 BUS DE CONTROL Posee 4 lneas que pueden ser utilizadas como entradas o como salidas, la direccin de este registro es la direccin del puerto base mas 2h, estas lneas utilizan los bits del 0 al 3 de este registro, el pin 1 para C0, 14 para C1, 16 para C2 y 17 para C3, ver figura 13. El bit 4 se usa para interrupciones de hardware del puerto paralelo cuando esta en alto cosa que exige instalar una rutina de interrupcin que responda a las interrupciones asignadas al puerto, por lo tanto se debe mantener en cero, los bits restantes no son utilizados en la mayora de los puertos paralelos. Sus
74

seales son interpretadas as: IRQ Peticin de interrupcin de hardware. = 1 Habilitado 0 Inhabilitado DSL Seleccin de impresora. = 1 Impresora seleccionada. 0 Impresora no seleccionada. /INI Inicializacin de impresora = 1 Operacin normal. 0.Inicializar. ALF Alimentacin de lnea automtica = 1 Alimentacin de lnea por Impresora.
0 Alimentacin de lnea por

computador STR Activacin de transferencia (strobe) = 1 Transferir datos a impresora. 0 No transferir. 4.1.4 LAS LNEAS DE TIERRA Tiene por objeto unir los niveles de referencia entre el PC y el perifrico, por otro lado realiza el blindaje de las seales contra ruidos externos al cable y evita interferencias entre las distintas seales que generalmente van por un mismo cable ribbon. Desde el punto de vista fsico se accede al puerto paralelo por medio del conector DB-25 hembra ubicado en la parte trasera del PC, cuya distribucin de pines se esquematiza en la figura 31.

75

Figura 31. Distribucin de los pines en el conector DB25 Hembra del puerto paralelo

Desde el punto de vista electrnico, los bits del puerto paralelo estn representados por niveles de voltaje TTL: una seal entre 0 y 0.8 voltios es un 0 o nivel bajo y entre 2.5 y 5 es un 1 o nivel alto. De igual forma requiere de estos niveles para validar sus entradas. El bus de control y algunos buses de datos bidireccionales, tienen en cada bit de salida un dispositivo de colector abierto, esto hace que cuando el bus de control vaya a ser utilizado como entrada de datos, requiera que por software sus 4 lneas de salida sean puestas a niveles altos. 4.2. PROGRAMACIN DEL PUERTO PARALELO En cuanto a la parte lgica, es posible tener hasta tres puertos paralelos en un computador LPT1 (Line Printer 1), LPT2, LPT3. Cuando queremos programar estos puertos para que cumpla una misin diferente de enviar datos a una impresora, debemos conocer las direcciones de cada uno de los registros anteriormente vistos para poderlos manipular a nuestra conveniencia. Cada uno de los puertos paralelos del PC tiene grabada en al rea de datos de la BIOS una direccin base. Para el LPT1 la direccin 3BCh, para el LPT2 es 378h y 278h para LPT3.
Tabla 4.2. Direccines de los Regustros de Cada Puerto Paralelo REGISTRO DE LOS BUSES DEL PUERTO 0 1 2 3 4 5 6 PUERTO LPT2

LPT1 7

LPT3

BIT DATOS ESTADO

D0 D1 D2 D3 D4 D5 D6 D7 S3 S4 S5 S6 S7

CONTROL C0 C1 C2 C3

3BCh 3BDh 3BEh

378h 379h 37Ah

278h 279h 27Ah

DIRECCIN BASE DIRECCIN BASE + 1 DIRECCIN BASE + 2

76

La direccin del registro de datos es la direccin base del puerto que voy a utilizar, la direccin del registro estado es la direccin base ms uno y la direccin del registro de control, es la direccin base ms dos. Las direcciones de los registros para los 3 puertos se muestran en la tabla 4.2. 4.2.1 PROGRAMACIN DEL REGISTROS DE DATOS Enviar informacin por las lneas del bus de datos, es posible enviando la informacin al registro de datos, cuya direccin es la direccin base del puerto a utilizar, para el lenguaje QBASIC se utiliza la instruccin OUT as: OUT Direccin base, Dato. Ejemplo: si deseo que en el bus de datos del puerto paralelo LPT1 aparezca 10101010 que en hexadecimal sera AAh tenemos. OUT 3BCh, AAh 4.2.2 PROGRAMACIN DEL REGISTRO DE ESTADO Para leer los datos que ingresan por el bus de estado, es necesario leer el registro estatus, cuya direccin es direccin base + 1. En QBASIC leemos el registro estado con la funcin INP asi: Variable = INP(Direccin base + 1h) Donde variable es el nombre de la variable en la cual se desea almacenar el valor ledo. El valor que se lee no es exactamente igual al valor lgico del conector, el puerto internamente invierte el bit 7, por lo tanto esta variable contendr el bit 7 invertido. Para recuperar el valor real se utiliza el operador booleano XOR que facilita invertir uno o ms bits de un byte, para esto se hace un byte mscara en la cual los bits a invertir son uno y los bits a no invertir son ceros, todo esto es explicado por la tabla 4.3. En este caso, al valor ledo le aplicamos al operador XOR con el byte mascara 10000000 80h as:

77

Tabla 4.3. Mscara de Bits TABLA DE VERDAD DEL OPERADOR XOR A 0 0 1 1 B 0 1 0 1 A XOR B XOR 0 1 1 0 SI A ES EL BYTE MSCARA 10000001 Y B ES EL BYTE 11110000 TENDREMOS: 10000000 11110000 01110000

COMPLEMENTA LOS BITS EN CUYA POSICION LA MASCARA TIENE UNOS

Variable = INP(Direccin base +1) Variable = Variable XOR 80h Para enviar informacin por el bus de control, la escribimos en el registro de control cuya direccin es direccin base + 2 con la instruccin OUT de QBASIC, semejante al manejo dado al las lneas de datos solo cambia la direccin as: OUT Direccin base + 2, dato 4.2.3 PROGRAMACIN DEL REGISTRO DE CONTROL Este bus de control posee los bytes C0, C1 y C3, invertidos, en este caso tambin utilizamos el byte mascara antes visto que en este caso son 00001011 0Bh as: OUT Direccin base + 2h , Dato XOR 0Bh Ejemplo: para escribir en el bus de control del puerto LPT1 el valor 11001100 CCh debo escribir: OUT 3BEh, CCh XOR 0Bh Para utilizar el puerto de control como entrada debo leer el mismo registro de control. Es

recomendable que los circuitos que se conecten externamente a estas lneas, sean circuitos cuyas salidas sean de colector abierto. Esto para evitar problemas de corrientes excesivas por los

elementos que pueden ocasionar daos en el puerto. Antes de cualquier lectura, debo poner todos los bits del registro de control en alto, o sea escribir en el puerto de control 00001111 0Fh, que despus de pasar por el byte mscara ser 00000100 04h. En adelante podr leer datos por estas lneas, teniendo en cuenta que los bits 0,
78

1 y 3 estn invertidos. Esto obliga a usar el correspondiente Byte mscara para su correcta lectura; as: OUT Direccin base + 2, 04h Variable = INP(Direccin base + 2) Variable = Variable XOR 0Bh

79

5. CAPTULO 5 CONOCIM IENT O DEL M DULO DE COM UNICACIONES

Figura 32. Plano mmico del mdulo de comunicaciones

5.1. EXPLICACIN DEL MMICO DEL EQUIPO Este captulo pretende explicar de una manera sencilla el funcionamiento del mdulo de comunicaciones teniendo como base el mmico del equipo, de la figura 32 que se encuentra en escala real en el plano PL6, anexado al final de la obra. Se da informacin referente al orden de las seales en los diferentes conectores de entrada o salida e informacin sobre el m odo de operar

80

del equipo en su parte interna. Si se desea una informacin ms tcnica remtase a los anexos 1, 2, 3, 4 y 5. En el mmico, las entradas o salidas de seal son monitoreadas por grupos de 8 leds (es de aclarar que fsicamente se tiene un bloque con 10 leds de los que solo se utilizan 8), que registran constantemente el estado de los bits del bus sobre el que estn ubicados. La entrada o salida de datos a los buses principales se indica con una flecha de entrada o salida a cada bus. La

transferencia de datos se efecta cuando se recibe la orden por parte de las lneas del decodificador respectivo y es visualizada en la mayora de los casos por medio el diodo led al que apunta la lnea de habilitacin al llegar a su destino prendiendo de color verde. El mdulo Sistema Bsico de Comunicacin por Fibra ptica es un circuito digital de propsito especial orientado a la enseanza de las comunicaciones. Fue diseado para ser

conectado al puerto de impresora de un computador y de esta forma aprovechar la versatilidad de este puerto. El acople fsico entre el equipo y el puerto paralelo del PC, se realiza utilizando un cable de impresora (DB25 macho en un extremo y DB37 macho en el otro extremo). El equipo esta constituido por 11 circuitos diferentes, ellos son: Un circuito de acople entre los buses del puerto paralelo y los del mdulo. Un circuito de verificacin de seales internas o puerto de verificacin. Un circuito oscilador central. Cuatro circuitos de entrada de seal anloga. Cuatro circuitos de entrada de datos en forma digital. Un circuito transmisor y receptor de seales digitales por fibra ptica. Un mdulo externo de insercin de bits. Cuatro circuitos de salida de seal anloga. Cuatro circuitos de salida de seal digital. Un generador de funciones.

81

Fuente de alimentacin. 5.2. ACOPLE ENTRE LAS LNEAS DEL PUERTO PARALELO DEL PC Y LAS DEL MDULO DE
COMUNICACIONES

El mdulo de comunicaciones posee 3 buses principales que son manejados desde el circuito ACOPLE CON PC. Este circuito es manejado por los buses del puerto paralelo que ingresan al mdulo por la parte inferior derecha representada en el mmico por un bus de color negro. Desde este circuito se controlan 3 buses principales en el interior del equipo representados en el mmico de color rojo (DATOin), verde (DATOout) y azul (DIRECCIONES). Este circuito

permite: direccionar el bus de control del puerto paralelo para que sirva como entrada o salida de datos por el puerto de verificacin y adems realizar un puente entre los buses DATOin y DATOout del equipo. Exceptuando el generador de funciones, los dems circuitos pueden intercambiar informacin entre ellos o con el PC por medio del circuito de acople. unidireccionales y se explican a continuacin: 1. Bus de DATOin o bus recolector: Este bus maneja un byte de informacin, esta marcado en el mmico de color rojo y tiene como funcin: recibir los datos de las diferentes entradas anlogas y digitales (ubicadas en toda la parte derecha del equipo), el dato proveniente del circuito receptor de la seal enviada por la fibra ptica y la cuenta del nmero de bits transmitidos en una transmisin entre otros. Finalmente entrega la informacin a otro bus o al PC por medio del circuito de acople cuando recibe las correspondientes instrucciones por las lneas del decodificador del primer nibble de direcciones. Las lneas de este bus se Los tres buses principales son

encuentran conectadas en forma directa al puerto de verificacin para validar sus seales o conectar posteriormente otro equipo. 2. Bus de DATOout o bus repartidor: Maneja un byte de informacin y est marcado en el mmico de color verde, tiene como funciones: programar la frecuencia del reloj maestro; entregar los datos recibidos del PC a los diferentes dispositivos de salida de datos; programar las frecuencias de muestreo de las seales anlogas y enviar informacin al circuito transmisor de seal por fibra ptica. Todo lo anterior, es llevado acabo cuando recibe la

correspondiente instruccin por las lneas del decodificador de segundo nibble. Estas lneas

82

tambin estan presentes en forma permanente en el puerto de verificacin, donde se pueden validar sus seales o conectar otros equipos. 3. Bus de DIRECCIONES: Es un bus de 8 bits que en el circuito ACOPLE CON PC, se divide en dos para alimentar dos decodificadores, que manejan simultneamente las rdenes de operacin que se deben realizar con los datos de los buses DATOin y DATOout por medio de los decodificadores de primer y segundo nibble ubicados en la parte central superior del mmico. El primer y segundo nibble del bus DIRECCIONES, entran a los decodificadores de primer y segundo nibble en forma independiente. Cada decodificador, dispone de 16 vas o lneas de instruccin que pueden realizar: carga y recepcin de datos, iniciar transmisin serie; adems acciones de programacin y control. Las instrucciones enviadas con cada cdigo en el primero y segundo nibble del bus DIRECCIONES son listadas en las tablas 5.1 y 5.2. En el mmico aparece en cada lnea de salida de los decodificadores su correspondiente cdigo hexadecimal con los que el equipo selecciona las operaciones a realizar. Esta

programacin es transparente para el usuario del equipo, ya que tan solo con configurar las entradas y salidas por software, estas se programan en su forma y secuencia correcta automticamente. De esta manera se ejecutan dos instrucciones con cada byte cargado en el bus DIRECCIONES. Bsicamente el decodificador de primer nibble maneja las acciones a

realizar en el bus DATOin y el decodificador de segundo n ibble las acciones sobre el bus DATOout.

83

Tabla 5.1 Cdigo de instrucciones enviadas en el primer nibble del bus DIRECCIONES.
Binario Hexadecimal Instruccin

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

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

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

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

0h 1h 2h 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh

Lee registro.de la entrada INAD1 Lee registro.de la entrada INDD1 Lee registro.de la entrada INAD2 Lee registro.de la entrada INDD2 Lee registro de la entrada INAD3 Lee registro de la entrada INDD3 Lee registro de la entrada INAD4 Lee registro de la entrada INDD4 Programa registro para programar el muestreo de la entrada INAD1 Programa registro para programar el muestreo de la entrada INAD2 Programa registro para programar el muestreo de la entrada INAD3 Programa registro para programar el muestreo de la entrada INAD4 Programa registro de programacin del oscilador central CK Maestro Lee reg. De desplazamiento del receptor de seales de la F.O. Lee el contador del # de bits transmitidos de 1 byte por la F.O. Programa circuitos para tener el bus de control del PC como entrada.

Tabla 5.2 Cdigo de instrucciones enviadas en el segundo nibble del bus DIRECCIONES.
Binario Hexadecimal Instruccin

D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0h 1h 2h 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh

Carga registro del dispositivo de salida OUTDA1 Carga registro del dispositivo de salida OUTDD1 Carga registro del dispositivo de salida OUTDA2 Carga registro del dispositivo de salida OUTDD2 Carga registro del dispositivo de salida OUTDA3 Carga registro del dispositivo de salida OUTDD3 Carga registro del dispositivo de salida OUTDA4 Carga registro del dispositivo de salida OUTDD4 Carga reg. de desplazamiento del transmisor de seales por F.O. Inicia la transmisin de 1 byte por la F.O. Carga registro de reloj para la transmisin de seales por F.O. Carga registro o memoria intermedia de control. ** Instruccin libre disponible en el puerto de verificacin Instruccin libre disponible en el puerto de verificacin Instruccin libre disponible en el puerto de verificacin Programa circuitos para tener el bus de control del PC como entrada.

Los bytes de datos presentes en cada uno de los 3 buses del equipo, son monitoreados en forma permanente por 3 grupos de leds ubicados en la parte central del mmico sobre el bus respectivo. El circuito ACOPLE CON PC se ilustra en la figura 33 y se describe acontinuacin:

84

El equipo posee 8 lneas para los datos que ingresan (DATOSin), 8 lneas de datos de salida (DATOSout) y 8 lneas para direcciones (DIRECCIONES), para un total de 24 lneas. El puerto paralelo del P.C. posee 8 lneas de salida (Datos), 5 lneas de entrada (Status) y 4 lneas bidireccionales (control) que en total son 17 lneas. Para unir estos buses, se requiere conmutar las 8 lneas del bus de datos del puerto, entre los buses DATOSin y DIRECCIONES del mdulo, y las 4 lneas del bus Estado del puerto entre el primer y segundo nibble del bus DATOSout del mdulo. El proceso se realiza en dos tiempos as: 1. En un primer tiempo la conmutacin se realiza entre el bus Datos del puerto con el registro del bus DATOSin y entre las 4 lneas del bus Estado del puerto con los separadores (buffers) del segundo nibble del bus DATOSout del mdulo. 2. En el segundo tiempo la conmutacin se realiza entre el bus Datos del puerto y el registro del bus DIRECCIONES, y entre las del bus Estado del puerto y los separadores (buffers) del primer nibble del bus DATOSout del mdulo. Cuando el bus de control del puerto paralelo se programa como salida de datos por el puerto de verificacin, se utiliza la primera lnea C0 para realizar las conmutaciones anteriores por medio de un circuito interno de control. Cuando se programa como entrada de datos, el circuito interno de control, se queda en la conmutacin descrita en el segundo tiempo, ignorando las seales de la primera lnea del bus de control. O sea todo bit que sale por el bus de datos es interpretado por el circuito acople con PC como una direccin. El ltimo bit del bus de estado (S7) del puerto paralelo, se conecta a la mayor frecuencia de muestreo de las entradas anlogas con el propsito de sincronizar el mdulo y el PC.

Figura 33. Circuito de Acople entre los buses del PC y el mdulo

85

86

5.2.1 CIRCUITO INTERNO DE CONTROL

Figura 34. Circuito de Control interno

Este circuito posee 4 seales de entrada y 11 seales de salida de control que manejan: La carga de los datos en el registro correspondiente de cada bus (con un flanco de subida de la seal de reloj). La activacin de la transferencia de la informacin de los registros a los buses (maneja el tercer estado de los registros con un nivel bajo.) Activacin de la transferencia de datos entre buses internos. La activacin de los pilotos que confirman acciones en el mmico del equipo.

La primera parte del circuito de control posee las entradas A, A, B y las salidas r, y, u, p, s, w, x, t, de la figura 34. La operacin de esta primera parte se muestra en la tabla 5.3 Este circuito tiene como funcin manejar las conmutaciones necesarias par el intercambio de datos entre el mdulo y el puerto paralelo. De la tabla 5.3 podemos observar que cuando la seal interna (proveniente de la instruccin Fh de cualquiera de los dos decodificadores de direcciones) que dispone los circuitos para usar el bus de control como entrada esta en cero, el control de las conmutaciones se realiza desde el primer bit C0 del bus de control, permitiendo las conmutaciones explicadas en el numeral anterior. Cuando esta seal interna esta en uno, ignora la seal de C0 quedndose conmutado en la accin del segundo tiempo, utilizando como seal de
87

carga de datos, los flancos de subida de un oscilador exterior que posee una frecuencia de 2Mhz conformado por el inversor H.
Tabla 5.3 Seales y lgica de la primera parte del circuito de control B 0 0 0 0 1 1 1 1 A 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 r 1 1 0 0 1 0 1 0 t 1 1 0 0 1 1 1 1 u P s 0 0 0 0 0 0 0 0 w 0 0 0 0 1 1 1 1 x 1 1 1 1 0 0 0 0 y 0 0 0 0 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 Donde

A A B r u p t s x w z

Seal de 2Mz.de oscilador auxiliar Primer bit del bus de control Co Seal interna que programa bus de control como entrada. Seal de carga de datos en el bus de DIRECCIONES. Seal que maneja el tercer estado del primer nibble del bus de DATOin. Seal de carga de datos en el bus de DATOout. Seal que maneja el tercer estado del segundo nibble del bus de DATOin. Seal que maneja el tercer estado del bus de DIRECCIONES. Seal que activa los buffers para tener el bus de control del puerto como entrada. Seal que activa los buffers para tener el bus de control del puerto como salida. Seal de visualizacin en el mmico de bus de control como entrada.

La segunda parte de este circuito posee la entrada C y las salidas v, q y z de la figura 34. En la tabla 5.4 esta descrita su operacin. Bsicamente tiene como funcin manejar el tercer estado de los buffers que manejan el acople entre los buses DATOin y DATOout, y los buffers entre el bus DATOin con el bus Datos de puerto, de tal manera que en ningn momento estn activados simultneamente. La sealizacin de este hecho se realiza por medio de un led ubicado en la

parte central del mmico sobre el puente que une los dos buses, que prende de color rojo cuando se activa dicho puente.

88

Tabla 5.4 Seales y lgica de la segunda parte del circuito de control

C
0 1 Donde

v 1 0

q 0 1

z 0 1

C Seal interna (direccion Fh de cualquiera decodificador) para unir DATOin con DATOout. q v z Seal que habilita el tercer estado de los buffers que acoplan DATOin con DATOout. Seal que habilita el tercer estado de los buffers que acoplan DATOout con Datos del P.C. Seal de visualizacin por led del acople entre buses internos.

5.3. PUERTO DE VERIFICACIN Se trata de un terminal DB 37 hembra ubicado en el lado izquierdo de la caja ACOPLE CON PC que dispone de 37 seales internas al mdulo tales como: las seales de los 3 buses principales, seales de tres lneas del decodificador de segundo nibble, seales de voltajes de la fuente etc. listadas en la tabla 5.5. Este puerto tiene como finalidad verificar por medio de un osciloscopio, multmetro etc., las seales internas al mdulo, adems como punto de conexin de otro dispositivo externo como el mdulo de insercin de bits. En la tabla 5.5 se puede observar que en el puerto de verificacin se encuentran en forma separada las 4 lneas del bus de control como entrada y como salida ya que estas son separadas internamente en el equipo. Aunque estas lneas son fijas en el puerto de verificacin, solo tienen sentido si con anterioridad se programaron para la funcin de entrada o salida requerida.
Tabla 5.5 Seales del puerto de Verificacin Pin 1 2 3 4 5 6 7 8 9 10 11 12 Referencia (GND) Bit 0 del bus DATOin Bit 1 del bus DATOin Bit 2 del bus DATOin Bit 3 del bus DATOin Bit 4 del bus DATOin Bit 5 del bus DATOin Bit 6 del bus DATOin Bit 7 del bus DATOin Bit 0 del bus DATOout Bit 1 del bus DATOout Bit 2 del bus DATOout 89 Seal

Pin 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Seal Bit 3 del bus DATOout Bit 4 del bus DATOout Bit 5 del bus DATOout Bit 6 del bus DATOout Bit 7 del bus DATOout Divisin de frecuencia del oscilador central para transmisin serie. Oscilador central Ck Maestro. Pulso de inicio de la transmisin serie. Seleccin de puerto de control como entrada o salida de datos. Bit C0 del bus de control del PC para manejo como entrada. Bit C1 del bus de control del PC para manejo como entrada. Bit C2 del bus de control del PC para manejo como entrada. Bit C3 del bus de control del PC para manejo como entrada. Bit C0 del bus de control del PC para manejo como salida. Bit C1 del bus de control del PC para manejo como salida. Bit C2 del bus de control del PC para manejo como salida. Bit C3 del bus de control del PC para manejo como salida. Bit 3 de memoria intermedia. Bit 4 de memoria intermedia. Direccin Ch del segundo nibble Direccin Dh del segundo nibble Direccin Eh del segundo nibble Fuente de alimentacin + 12V. Fuente de alimentacin 12V. Frecuencia de muestreo mayor de la entrada anloga INAD1

Es importante advertir que por hardware se han invertido dentro del mdulo, los bits C0, C1, C3 y S7; pues estos bits que son invertidos al salir por el puerto paralelo son de esta forma llevados de nuevo a su estado original sin necesidad de invertirlos por software en la programacin. Sin embargo, s deben ser tenidos en cuenta en el momento de poner las lneas de control en alto con el fin de programar este bus como entrada. Para proteger los circuitos internos que tienen lneas en el puerto de verificacin se han conectado en serie con cada lnea una resistencia de 90 exceptuando las lneas de referencia (GND) y las de voltaje (+12 y 12). 5.4. CIRCUITO DEL OSCILADOR CENTRAL CK MAESTRO: Es un oscilador que tiene como propsito servir de base de tiempo para las seales de muestreo en los convertidores A/D y del reloj de transmisin en el circuito Transmisor/Receptor de seales por fibra ptica. El oscilador central posee dos rangos de frecuencias que son ajustados desde la memoria intermedia en forma automtica por el software. As se tienen cdigos digitales de
90

programacin para alta frecuencia y para baja frecuencia.

Cuando el bit 1 de la memoria

intermedia esta en 0 el oscilador trabaja en baja frecuencia, y cuando esta en 1 trabaja en alta frecuencia. Este ajuste se realiza automticamente al escribir un valor para el CK Maestro en el programa. Los cdigos digitales y las frecuencias seleccionadas para el CK Maestro se listan en la tablas 5.6 y 5.7.
Tabla 5.6 Valores en KHz. y cdigos asignados para el rango de alta frecuencia del CK Maestro.
Val. Deci. Val. Hexad. 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 14.35 13.71 12.54 11.86 11.26 10.55 9.939 9.273 8.612 8.000 7.334 6.633 5.968 5.270 4.644 4.518 7.212 6.467 5.800 5.145 4.354 9.817 9.108 8.489 7.793 8.324 7.627 6.963 6.261 5.635 4.937 4.231 4.144 5.510 4.937 4.067 8.942 13.00 12.38 11.71 11.06 10.39 1 1 2 2 3 3 14.22 13.57 4 4 5 5 6 6 7 7 14.07 13.46 12.85 12.22 11.55 10.90 10.26 9.533 8.819 8.116 7.421 6.796 6.135 5.387 8 8 9 9 10 A 13.97 13.35 12.70 12.06 11.43 10.74 10.10 9.409 11 B 12 C 13 D 13.86 13.24 14 E 15 F

Tabla 5.7. Valores en Hz. y cdigos asignados para el rango de baja frecuencia del CK Maestro.
Val. Deci. Val. Hexad. 00 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 3127 2990 2866 2716 2442 2300 2147 2000 1854 1711 1566 1422 1278 1126 991 973 2567 2425 2274 2120 1981 1836 1684 1395 1250 1108 956 1 1 2 2 3 3 3100 2974 2840 2691 2541 2396 2247 2100 1954 1809 1657 1511 1368 1224 1082 938 4 4 5 5 6 6 2949 2814 2664 2514 2371 2220 2075 1927 1782 1638 1494 1350 1205 1063 920 7 7 3070 2795 2646 2496 2345 2200 2048 1900 1755 1611 1466 1323 1178 1046 903 1027 884 8 8 9 9 10 A 3048 2908 2770 2629 2469 2326 2174 2030 1882 1737 1585 1440 1296 1152 1000 867 11 B 12 C 13 D 3023 2882 2744 2600 14 E 15 F 0

91

Como se observar de las tablas 5.6 y 5.7 los valores del reloj maestro son discretos y no poseen cdigos consecutivos; esto se ha realizado por facilidad de programacin, de tal forma que si se programa en el software un valor de frecuencia que no se encuentre en estas tablas, el valor de frecuencia se aproximar al valor ms prximo disponible en ellas. 5.5. CIRCUITOS DE ENTRADA DE SEAL ANLOGA Las entradas de seal anloga se ubican en la parte derecha del mmico intercaladas con las entradas de seal digital. En cada una de ellas se describe en forma grfica los diferentes

procesos por los que pasa la seal antes de llegar al convertidor A/D y pasar al bus DATOSin. Estos circuitos admiten seales de entrada de 0 a 3 voltios, en un rango de frecuencias de 0 a 1 KHz y convierten seales anlogas a digitales en formatos paralelo de 8 bits. La entrada de la seal se realiza por medio de conectores tipo banana hembra. A su entrada la seal pasa por un proceso de adecuacin. Inicialmente es llevada a un potencimetro que sirve para regular el nivel (en magnitud) de la seal de entrada; luego se tiene la posibilidad de adicionarle un nivel D.C. donde se puede adecuar la seal al formato requerido de 0 a +3V, si lo requiere. Los mximos y mnimos de la seal son monitoreados por dos LED ubicados en la parte superior e inferior de un cuadro con una figura seno en su interior ubicada sobre la lnea de entrada de la seal. Estos leds cambian de color verde a rojo cuando la seal ha sobrepasado algunos de los lmites establecidos, indicando que se debe adecuar la seal de entrada, bien sea rebajando intensidad a la seal (si estn rojos los dos leds) o segn el caso adicionar o restar nivel D.C. (si solo se tiene encendido un solo led). La seal de entrada se encuentra con sus

parmetros adecuados para ingresar al convertidor A/D cuado los dos leds descritos anteriormente estn encendidos de color verde. Luego de salir la seal del proceso anteriormente descrito, pasa por un suiche que es manejado por el circuito de muestreo cuya frecuencia es una divisin del oscilador central. La

visualizacin en el mmico del cierre de este suiche se efecta por medio de un led verde ubicado en el centro de este. La programacin de la frecuencia de muestreo, se realiza por software escribiendo un valor igual a la divisin de la frecuencia del reloj maestro entre un valor que debe ser 2, 4, 8, 16, 32, 64, 128 o 256. Si la divisin no es exacta, se aproximar automticamente al valor ms prximo del que dispone segn el valor del reloj maestro.
92

Para sincronizar el PC y el mdulo de comunicaciones, se program por software que la frecuencia de muestreo mayor siempre sea asignada a la entrada INAD1. Esta marca el

sincronismo entre la frecuencia del mdulo y el PC. Cuando no se tiene sincronismo se sealiza con un pequeo BEEP en el parlante del PC, indicando que se debe reducir la frecuencia del reloj maestro o la frecuencia de muestreo del INAD1. La visualizacin del valor digital de la seal anloga que se est cuantificando, es visualizada en el conjunto de leds que aparecen en el mmico sobre el bus de salida del correspondiente A/D; debajo de este arreglo de leds existe un led adicional verde que indica las veces que este valor es transferido al bus DATOSin. 5.6. CIRCUITO DE ENTRADA DE SEALES DIGITALES: Se trata de cuatro circuitos que manejan cada uno 1 byte de entrada con niveles de voltaje TTL lgica positiva y con una frecuencia inferior o igual al frecuencia de muestreo de la entrada INAD1, ya que esta es la velocidad con la que son ledos cargados los datos de las entradas y salidas digitales Estos bytes son transferidos al bus DATOin en forma paralela (todos a la vez). Luego de ser enviados por las lneas del primer nibble del bus DIRECCIONES, las habilitaciones correspondientes segn el caso. La entrada de datos se efecta por medio de los conectores DB9 macho ubicados en la parte derecha del mdulo. L seales de cada uno de los pines de este conector se listan en la tabla as 5.9. La disposicin de las seales elctricas de estos pines coinciden con la de los circuitos de las salidas digitales que veremos ms adelante.
Tabla 5.9. Seales elctricas del conector BD 9 para la entrada y salida de seales digitales Pin 1 2 3 4 5 6 7 8 9 Seal Bit 1 (LSB) Bit 2 Bit 3 Bit 6 Bit 5 Bit 8 (MSB) Bit 7 Bit 4 Seal de referencia (GND). 93

La visualizacin de estos bits se realiza por medio de un arreglo d leds organizados en bloque e sobre cada bus de entrada de seal digital, la lectura de estos datos es monitoreada por medio de un led verde ubicado en la parte inferior de cada arreglo de leds. Para la entrada de seales digitales en forma manual, se dispone de la caja de entrada de seales digitales que se explicaran en lo referente a los accesorios en la parte final 5.7. CIRCUITO TRANSMISOR - RECEPTOR DE SEALES POR LA FIBRA PTICA El bloque Transmisor - Receptor de seales por fibra ptica aparece en la parte superior del mmico. En su parte derecha se encuentra un bloque de leds que registrara uno a uno el

desplazamiento izquierdo del registro transmisor de datos por la fibra ptica y en su parte izquierda el bloque de leds que registra el desplazamiento izquierdo de los bits de llegada. Al igual que en los otros casos la habilitacin de carga lectura de datos se efectua cuando el decodificador respectivo lo habilite, monitoreado por los leds Carga TX y Lee RX ubicados a lado izquierdo y derecho del bloque de leds respectivos. La transmisin de los datos en forma serial se realiza con cada pulso del reloj de transmisin ubicado en la parte central entre los grupos de leds monitores de los registros de entrada y salida. El reloj de transmisin es manejado desde los circuitos CONTADOR DE TX y CK TRANSMISOR, a los que llegan las seales de habilitacin respectivas para cada caso. Electrnicamente el transmisor y receptor de seales por fibra ptica consta de: dos registros de desplazamiento izquierdo, un contador, un circuito divisor de frecuencia y dos interfaces con la fibra. El primer registro de desplazamiento toma 1 byte de datos en formato paralelo del bus DATOSout y lo convierte a formato serie (de uno en uno). Estos bits llegan a una interface

electro-ptica (que se detalla en el anexo 7) donde son convertidos a seales de luz para poder ser transmitidos a travs de la fibra ptica. El desplazamiento del registro transmisor y receptor se efecta hacia la izquierda con la intervencin del reloj de transmisin CK TX/RX que solo permite el paso de 8 pulsos por cada byte a transmitir. Este reloj define la frecuencia de

transmisin y es programado como una divisin entera del oscilador central, de la misma forma como se programaron las frecuencias de muestreo para las entradas INAD; pero en este caso el rango de frecuencias es mucho mayor y no depende de la mayor frecuencia de muestreo.
94

El inicio de la transmisin se da con una orden del segundo nibble, el reloj de transmisin enva un tren de 8 pulsos, que son contados uno a uno por un circuito contador (contador TX de la parte superior del mmico), cuyo valor equivale al nmero de bits que se han transmitido de cualquier byte que este en proceso de transmisin. En este se verifica constantemente el contenido del

contador con el fin de cargar el nuevo dato a transmitir solo en el momento que se ha transmitido el ltimo de los 8 bit. De esta manera no se sobreponen los bits y no se causan errores en la comunicacin. Por medio de este contador se tiene control sobre el proceso de transmisin paso por paso, y por otro lado indica el momento de leer los datos del segundo registro de desplazamiento receptor. Este ltimo registro recibe los bits del conversor electro-ptico de

llegada de la fibra ptica y convierte los bits que llegan en forma serial nuevamente a formato paralelo para ser puestos en el bus DATOin. En el mmico tambin encontramos la visualizacin por leds del reloj de transmisin CK Tx/Rx, el bit que se est transmitiendo a travs de la fibra ptica Tx y el bit que se est recibiendo por la fibra ptica Rx. El mdulo tiene la posibilidad de usar el sistema de transmisin convencional por lneas de cobre u otro material conductor, para esto dispone de un conector del tipo DB9 hembra ubicado en la parte superior cerca a los conectores de fibra ptica con la seal de salida y entrada de datos correspondientes. La distribucin de los pines de este conector se expone en la tabla 5.10
Tabla 5.10. Seales elctricas del conector BD 9 hembra del transmisor serie Pin 1 2 3 4 5 6 7 8 9 Seal Entrada de seal serie Terminal libre de potencial de salida de seal serie Terminal libre de potencial de salida de seal serie Seal de referencia (GND). Seal de referencia (GND). Seal de voltage de - 5 voltios. Seal de voltage de - 5 voltios. Seal de voltage de + 5 voltios. Seal de voltage de + 5 voltios.

Los pines 2 y 3 de la tabla anterior, son los terminales de un suiche electrnico que estn libres de potencial para acomodarse a las necesidades del usuario. El circuito transmisor cierra

internamente este suiche cuando enva un 1 y lo abre cuando enva un 0 de tal manera que si

95

se quiere utilizar este suiche se debe conectar una resistencia a + 5V cuya corriente no exceda las 30 mA. La seal de entrada por el pin 1 de la tabla anterior debe ser TTL. 5.8. CIRCUITOS DE CONVERSIN DE SEAL DIGITAL A ANLOGA Las salidas de seal anloga se encuentran intercaladas con las salidas digitales en la parte izquierda del mmico. Con la habilitacin respectiva del decodificador de segundo nibble, el

registro de cada salida OUTAD, recibe el dato del bus DATOout; dato que es monitoreado por un bloque de led ubicados sobre el bus de llegada al D/A respectivo. Luego de la conversin digitalanloga, esta seal puede tomarse de los conectores tipo banana hembra dispuestos en la margen izquierda del mdulo. Esta seal esta conformada por varios escalones, dependiendo de la cantidad de muestras entregadas al convertidor, para una mayor aproximacin de esta seal a l real, se ha dispuesto un a suiche que conmuta un filtro en paralelo con la seal de salida. Este suiche se representa en el mmico encerrado en una caja a la salida del D/A respectivo. El voltaje de la seal de salida es de 3Vp-p y de 1Vp-p con el filtro. 5.9. CIRCUITO DE SALIDA DE SEALES DIGITALES Envan informacin digital en formato de 1 byte al exterior por medio de los conectores DB9 hembra ubicado en la parte izquierda del mdulo. Las seales en los pines del conector de salida se exponen en la tabla.5.9. Las seales en los conectores de entrada y salida de datos se pueden conectar por medio de un cable estndar DB9. Las seales en estos puertos de salida digital son retenidas por unos registros que reciben la informacin proveniente del bus DATOout y la almacena hasta la llegada de un nuevo valor. El contenido de este registro es visualizado mediante un bloque de leds ubicados sobre el bus de salida individual, de igual manera es monitoreada la carga de este registro mediante el led ubicados en la parte inferior del mismo. 5.10. GENERADOR DE FUNCIONES El generador de funciones esta ubicado en la parte inferior del mmico y es totalmente independiente de las seales internas del mdulo de comunicaciones con excepcin de la fuente de alimentacin que es comn a todos los circuitos.

96

Este circuito genera una seal seno, triangular y cuadrada a unos rangos de frecuencia entre 0.3 a 16Hz. y de 20 a 1000 Hz. Estos rangos son seleccionados mediante un suiche tipo codillo ubicado en la parte inferior del mmico y un potencimetro que ajusta la frecuencia deseada; adems se cuenta con una seal DC variable. A estas cuatro seales se accede mediante 4

conectores tipo banana ubicados en la parte inferior del mmico y diferenciados por el grfico de la correspondiente seal en la parte inferior de cada conector. Los rangos de voltaje para las diferentes seales son de 3 y +3V para la seal seno y triangular, 12 y +12V para la seal cuadrada y 0 y +5 V para la seal DC. 5.11. MDULO EXTERNO DE INSERCIN DE BITS Se trata de un circuito que se conecta en la trayectoria de la fibra ptica con el fin de simular errores en la transmisin de la seal y poder estudiar los mtodos de deteccin y correccin de errores de diferentes tipos expuestos en el captulo II. Este mdulo posee: un terminal receptor electro-ptico de color negro (donde se acopla la fibra ptica que proviene del mdulo de comunicaciones); un terminal transmisor electo-ptico (de color azul que enva las seales pticas de regreso al mdulo de comunicaciones); dos eds monitores de la seal de entrada y l salida; un bloque de 10 leds (de los que solo se utilizan 8); 8 suiches pequeos tipo disuich y un suiche tipo codillo selector de la modificacin que se pretende efectuar. En la parte superior del mdulo de insercin de bits, se puede visualizar por leds el bit de ingreso, el bit que se enva y la ubicacin de este bit en el byte que se est operando. O sea si se trata del bit MSB ocupa el primer puesto (marcado con el nmero 1), los dems bits ocuparn puestos en forma ascendente hasta llegar al bit LSB que ocupara el octavo puesto (marcado con el nmero 8). Frente a estos leds se ubicaron los 8 disuiches con los que se puede sealar la posicin de los bits que se quieren intervenir. Ubicando estos suiches en la posicin ON, es

posible intervenir cualquier grupo de los 8 bits, dependiendo del error que se quiera generar. A estas posiciones seleccionadas se les puede programar la inversin del bit existente, el ignorarlo e insertar un 1 o un 0, cosa que se selecciona mediante un suiche tipo codillo de tres posiciones (posiciones: 1 inserta 1, 2 inserta 0, 3 invierte el bite) ubicado en la parte superior derecha de este mdulo. A medida que se va efectuando la transmisin, se va encendiendo en el arreglo de leds, el led correspondiente a la posicin que ocupa el bite en el formato paralelo

97

Este pequeo mdulo se conecta a la fibra ptica que sale del mdulo de comunicaciones por el conector azul, entra al mdulo de insercin por el conector negro, sale de este por el conector azul para ingresar al mdulo de comunicaciones por el conector negro. Elctricamente se conecta al puerto de verificacin del mdulo de comunicaciones por medio de un cable que tiene en un extremo un conector DB37 macho y en el otro extremo un conector DB9 hembra, este ltimo se acopla a un conector DB9 macho que posee el mdulo de insercin en la parte superior (estos conectores se detallan en el anexo 5). 5.12. FUENTE DE ALIMENTACIN La fuente de alimentacin es externa al mdulo, se conecta a este por medio de un conector redondo de 5 pines y recibe alimentacin a 120V AC. Entrega al mdulo voltajes de DC de +12V(1A.), -12V(100mA.), +5V(7.5A), -5V(500mA) y GND, posee un sistema de inicio (start) ubicado en la parte frontal que requiere ser pulsado para que esta funcione en forma correcta, cuando por algn motivo se efectua un corto bien sea dentro del mdulo o externamente, la fuente se protege apagndose, requiriendo un nuevo pulso para su reinicio. 5.13. ACCESORIOS EXTERIORES El mdulo posee dos accesorios exteriores adicionales, que sirven como auxiliares en el caso de trabajar entradas y salidas de seal digital. La caja de entrada de seal digital esta conformada por 8 suiches, 8 conectores tipo banana hembra y 8 leds de color verde; van enumerados segn el bit que le corresponde, en orden ascendente empezando con el bit LSB primero a la derecha y terminando con el bit MSB ultimo a la izquierda. Esta caja permite el ingreso de datos digitales en forma manual, para esto requiere ser conectada a los +5V. de la fuente DC. del generador de funciones del mdulo. La caja de salida de seal digital, es conformada por 8 conectores tipo banana hembra y 8 leds verdes, ubicados con la misma disposicin y numeracin de la caja anterior. Por medio de estas cajas se pueden ingresar o tomar datos digitales de circuitos externos

98

6. CAPTULO 6 CONOCIM IENT O DEL SOFT WARE DE M ANEJO DEL M DULO DE COM UNICACIONES
Este captulo pretende dar a conocer el manejo del software del mdulo de comunicaciones. El programa se llama MODCOM.BAS y esta constituido por un programa principal, 12 procedimientos y 22 subrutinas. Est escrito en lenguaje QBASIC 4.5 cuyo cdigo fuente se encuentra en el anexo 6. Para ejecutar el software, se procede a inicializar la aplicacin QBASIC 4.5, disponible en cualquier versin de Windows. Dicha aplicacin se ejecuta desde el men inicio, con el comando QB.EXE. Finalmente, se abre el archivo MODCOM.BAS, desde el directorio donde se encuentre ubicado el mismo. Para correr el programa, oprimir la tecla F5. El programa tiene la funcin de configurar, graficar y ejecutar un programas escritos en un archivo de programacin. Desde el PC, se configuran: el nmero de puerto paralelo al que se conectar el equipo, frecuencia del reloj maestro, nmero de entradas y salidas, frecuencias de muestreo y frecuencia de transmisin serie. Esto requiere un archivo que contenga la

configuracin y programacin del equipo, archivo que puede ser creado o abierto en la ventana de configuracin y puede ser guardado en una unidad de disco, para que pueda se utilizado por el usuario cada que lo prefiera. De esta manera podemos tener una cantidad de prcticas de laboratorio en archivos diferentes. A este archivo lo llamaremos archivo de programacin. Es importante saber que siempre que se utilice el mdulo de comunicaciones, se debe crear o abrir un archivo de configuracin que al salir del programa se puede guardar o borrar; sin este archivo no se permite entrar a las ventanas de graficacin y edicin de programa. Es permitido tener una configuracin y ningn programa a ejecutar, caso que se da cuando solo nos interesa mirar grficamente seales de entrada. El programa almacenado en el archivo de programacin, contiene tanto la configuracin del mdulo como el programa a ejecutar, este ltimo se almacena con un mximo de 20 lneas de

99

caracteres, estas lneas son traducidas a un cdigo de ejecucin que es ejecutado por el programa, cada vez que el PC interactua con el mdulo de comunicacin. 6.1. RECOMENDACIONES GENERALES Como se m encion en el captulo anterior, el mdulo de comunicaciones va conectado al puerto paralelo de un PC. Es la velocidad del procesador del P.C. quien impone la velocidad con la que el equipo puede trabajar en forma correcta, ya que se trabaja en tiempo real y cada vez que el P.C. interactua con el equipo para ingresar y enviar datos se ejecuta el cdigo de ejecucin de programa que: realiza operacin matemtica con cada una de las seales programadas, grafica los valores de las seales elegidas para visualizar, se comunica con el puerto paralelo para intercambiar datos y luego reinicia un nuevo proceso. As el tipo de procesador, la cantidad de programa y las grficas a realizar, afectan las frecuencias de muestreo y por ende las frecuencias de las seales de entrada, de tal manera que para un archivo de programa dado, a mayor velocidad de procesamiento del PC, mayores frecuencias se pueden procesar en el mdulo.. Si se trabaja con frecuencias de muestreo mayores a la velocidad de ejecucin del programa, el equipo se reportar como fuera de sincronismo, con una seal auditiva beep en cuyo caso se debe rebajar la frecuencia del reloj maestro o la frecuencia del muestreo mayor que siempre el software la asigna a la primera entrada de seal anloga (INAD1). E entrada es la que marca sta la velocidad con la que va a trabajar el equipo. As que para un correcto sincronismo la

frecuencia de muestreo de INAD1, debe ser inferior a la velocidad de ejecucin del programa por parte del P.C. Teniendo en cuenta que el software fue elaborado en Qbasic, el equipo puede operar con un P.C con un procesador 80286 o superior con las condiciones de tener un puerto paralelo y un monitor VGA o SVGA. 6.2. VENTANAS DEL PROGRAMA. Tratando de hacer el programa lo ms amigable posible, se disearon una serie de ventanas para que el usuario de una manera ms cmoda pueda configurar y escribir ms fcilmente su programa. Estas ventanas poseen una serie de botones con diferentes funciones que son

seleccionados con la tecla Tab para escoger y Enter para tener acceso al servicio. Al pisar la tecla Tab la ventana a la que puede entrarse cambia su marco de un color verde a un color rojo.
100

El programa consta de 5 ventanas principales, la mayora con un botn de ayuda, donde se obtiene la informacin necesaria de cada una. Estas son: 6.2.1 VENTANA DE BIENVENIDA . Esta ventana se ilustra en la figura 35, posee tres botones de seleccin que son:

Figura 35. Ventana de Bienvenida al programa

Botn de ayuda: Suministra una informacin bsica acerca del equipo. Boton seguir: Permite el acceso a la ventana de configuracin del equipo. Botn salir:
Si se tiene algn archivo cargado nos conduce a la ventana de salida,

posibilitando guardar los cambios que se hayan efectuado y si no se tiene archivo cargado sale del programa directamente.

101

6.2.2 VENTANA DE CONFIGURACIN. En la figura 36 ilustra la ventana de configuracin del equipo; posee 6 botones con las siguientes funciones:

Figura 36. Ventana de configuracin de equipo

Botn REGRESAR: Permite regresar al cuadro anterior de bienvenida.

Botn NUEV/ABR:

Permite crear o abrir un archivo de programacin. Cuando se

selecciona este botn aparece en la parte superior el mensaje ESCRIBA EL NOMBRE DEL ARCHIVO A CREAR O ABRIR, sea que el archivo exista o sea nuevo se d escribir algn ebe nombre y pulsar la tecla Enter. El programa verifica la existencia del archivo, en el caso de no existir aparecer el aviso DESEA CREAR EL ARCHIVO NOMBRE S/N". Con la opcin S se crear un archivo genrico con este nombre, que contiene una entrada de seal anloga. Ahora se requiere seleccionar el botn CORREGIR para dar la configuracin deseada al equipo. Si se

102

selecciona la opcin N, se regresar al botn REGRESAR. Es importante saber que si se va a crear o abrir un archivo de la unidad de disco A, se debe iniciar con A:NOMBRE (sin el espacio).

Botn GUAR/ELI: Este botn permite guardar o eliminar el archivo de programa que esta
abierto en ese momento, si no hay archivo abierto en el momento se retornar al botn regresar. Al ser seleccionado aparecer en la parte superior el mensaje DESEA GUARDAR ESTA CONFIGURACIN? S/N. Con la opcin S aparecer el mensaje ESCRIVA EL NOMBRE CON EL QUE VA A GUARDAR ESTA CONFIGURACIN. Si se desea guardar este archivo en la unidad de disco A, se debe digitar A:NOMBRE. Si no se escribe nada y se da enter la nueva configuracin se actualizar con el nombre del archivo que esta abierto en el momento. Con la opcin N aparece el mensaje DESEA ELIMINAR EL ARCHIVO DE

PROGRAMACIN NOMBRE S/N?, Con la pocin S el archivo es completamente eliminado, con la opcin N simplemente se retorna al botn regresar para una nueva seleccin.

Botn ACEPTAR:

Permite seguir al cuadro grfico solo si se tiene un archivo de

programacin abierto, de lo contrario se retorna al botn regresar.

Botn AYUDA: Da ingreso al cuadro de ayudas correspondiente al cuadro de configuracin,


all encontrar informacin pertinente al llenado de cada uno de los campos del cuadro grfico.

Botn CORREGIR: Permite modificar los campos del cuadro de configuracin. Solo
permite el acceso si se tiene un archivo de programacin abierto. A cada campo se accede por medio de la tecla Tab, donde de inmediato cambia el color de la primera letra ( a un color verde) o a un smbolo de interrogacin; se debe digitar la informacin requerida en cada campo y solo es recibida si despus de digitada la informacin se pulsa la tecla Enter, de lo contrario aparecer la informacin inicial. Es importante tener en cuenta que en cada campo solo se activarn las teclas vlidas para cada espacio con el fin de evitar errores por parte del usuario. Los campos a llenar en el cuadro de configuracin son: Espacio LPT?: En este espacio se debe escribir el numero del puerto al que esta conectado el equipo bien sea 1,2 o 3. Espacio F. CK. MAES: captulo anterior. Permite programar el reloj maestro del equipo explicado en el

El nmero que se escriba es llevado al valor de frecuencia de reloj

maestro ms prximo de la tabla 5.6 y 5.7 del captulo anterior. Cuando se tiene que ajustar
103

el valor por problemas de sincronismo es conveniente disminuir le frecuencia del reloj maestro ya que permite ajustes ms pequeos y las frecuencias de muestreo disminuirn inmediatamente ajustndose a la divisin de frecuencia correspondiente. DATOin = DATOout: Permite conectar directamente por hardware los buses DATOin y DATOout. Esta tendr utilidad en proyectos posteriores, en este momento se encuentra

deshabiliada esta opcin. Control OUT: Esta opcin permitir en un futuro utilizar las ventajas de la bidireccionalidad del puerto de control. En este momento esta deshabilitada. Espacio #INAD ? : Configura el nmero de canales de seal anloga de entrada a utilizar, siempre se ordenan en forma ascendente y en todo momento estar el primer canal INAD1 ya que como se explic en el primer prrafo, la frecuencia de muestreo de esta entrada determina la velocidad de trabajo del mdulo. Es importante anotar que este canal siempre tendr la frecuencia de muestreo mayor o igual que las otras tres seales. Los nmeros admitidos son 0, 1, 2, 3 o 4 Espacio #INDD?: Determina el nmero de canales digitales de entrada que se van a utilizar. Los nmeros admitidos son 0, 1, 2, 3 4 Espacio TX/RX: Desde all se habilita el transmisor y receptor de seales va fibra ptica. Los nmeros admitidos son 1 0 Espacio #OUTDA ?: Configura el nmero de salida de seal anloga. Los nmeros

admitidos son 0, 1, 2, 3 4 Espacio #OUTDD ?: Configura el nmero de salidas de seal digitales. Los nmeros

admitidos son 0, 1, 2, 3 4 Campos Nombre: Estos espacios conforman una columna donde se le puede asignar un

nombre a cada canal de tal manera que puede servir para identificar con mayor facilidad las seales en los grfico. Permitiendo mximo 9 caracteres. Campos Fcia. Muest Tx: dgitos
104

Permite escribir la frecuencia de muestreo para las entradas Admite hasta 5

anlogas y la frecuencia de transmisin de los bits por la fibra ptica.

Campos VISUALIZAR:

Permite elegir cuales seales se quieren visualizar.

Es posible

visualizar tanto seales anlogas de entrada o salida como diagramas temporales de seales digitales. La nica seal que no se permite graficar es la del TX. El nmero de grficas esta limitado a cinco con la limitacin mxima de tres canales anlogos y dos digitales o dos canales anlogos y tres canales digitales. Permite escribir S o N. 6.2.3 VENTANA DE GRAFICACIN Esta ventana esta ilustrada en la figura 37, y como se puede apreciar est constituida por 6 botones que tienen las siguientes funciones:

Figura 37: Ventana de graficacin

Botn REGRESAR: Permite regresar al cuadro de configuracin. Botn ABRIR P: Permite ingresar al cuadro de edicin de programa, donde se tiene la
posibilidad de visualizar o modificar el programa. En esta ventana se estudiar mas adelante

105

Botn INI / DET:. Inicia o detiene al ejecucin del programa y activa el equipo para que
funcione de acuerdo a la configuracin del archivo de programacin

Botn AYUDA:. Suministra informacin concerniente a las funciones de cada botn de la


pantalla grfica.

Botn PROG.EXT: Permite que un programa exterior, sea el que maneje el equipo con la
configuracin que se tiene en el momento. Esto con el fin de permitir que se realicen programas en otros lenguajes de programacin ms veloces como C o Ensamblador.

Botn SALIR: Si se tiene algn archivo cargado nos conduce a la ventana de salida,
posibilitando guardar los cambios que se hayan efectuado, si no se tiene archivo cargado, sale del programa directamente. 6.2.4 VENTANA DE EDICIN Permite escribir o corregir un programa. La figura 38 ilustra dicha ventana con un programa tpico. Esta ventana posee 3 botones que son:

Botn REGRESAR: Permite regresar al cuadro grfico. Botn CORREGIR: Da acceso a la correccin o edicin del programa que se desea.
En la edicin de un programa, se tienen una serie de ayudas que aparecen sobre el texto en cajas de dilogo, siguiendo una serie de reglas de escritura bsicas como: Encabeza una lnea de escritura una letra que identifica el tipo de lnea a escribir. Se pueden escribir lneas para escribir operaciones anlogas encabezadas por A:, lneas para escritura de operaciones digitales encabezadas por D: y lneas con operaciones de control C:

106

Figura 38. Ventana de edicin de programa

Lneas para escritura de operaciones anlogas: Permiten operaciones de multiplicacin (*), exponente (^), divisin real (/), divisin entera ( mdulo de una divisin (Mod), suma (+), resta \), (-) igualdad (=);.son permitidas las funciones matemticas de Raz cuadrada (SQR), mximo entero (INT) y valor absoluto (ABS), al igual que las funciones trigonomtricas: Seno (SEN), Coseno (COS), Tangente (TAN), Cotangente (ANT). Son permitidos los parntesis para indicar el orden de la operaciones matemticas. Lneas con operaciones lgicas o digitales: son permitidas operaciones entre compuertas bsicas AND, OR, XOR y XNOR, en estas lneas no son permitidos los parntesis. Lneas de control: Permiten la escritura de la sentencia de control IF de una sola lnea segn el formato: IF Op1 Signo de igualdad o desigualdad Op2 THEN Op3 signo de igualdad Op4. Donde los Op1, Op2, Op3 y Op4 pueden ser variables o nmeros reales. No son permitidas operaciones matemticas, solo se permite un trmino, los signos de igualdad o desigualdad pueden ser: menor que (<), menor o igual que (<=), igualdad (=), mayor o igual (>=) y mayor
107

que (>), solo son permitidos entre el primer y segundo operando (Op1 y Op2), con excepcin del signo de igualdad que es el nico que se permite entre el tercer y cuarto operador (Op3 y Op4). Las operaciones de cada lnea se deben escribir en forma correcta siguiendo las normas de escritura matemtica o el formato IF explicado en las lneas de control. Buscando evitar errores en la escritura del programa, se dise una forma particular de escritura. Con solo pulsar la primera letra del trmino, signo o funcin a escribir, este se escribe en forma inmediata en la pantalla; para aquellos trminos que comparten la o las primeras letras, el programa escribe las primeras letras que tienen en comn y se espera con el signo de interrogacin (?) la prxima letra o nmero que las diferencia. Es as como para escribir la

funcin Seno, al pulsar la tecla S aparecer S?, el signo de interrogacin pide pulsar la tecla E o la tecla Q ya que se puede tratar de SEN o de SQR. Cada entrada o salida de seal del mdulo de comunicaciones, es representada en el programa por el nombre de dicha entrada o salida que aparece en el mmico del equipo tales como INAD1, INDD1, INAD2, INDD2, INAD3, INDD3, INAD4, INDD4, RX, OUTDA1, OUTDD1, OUTDA2, OUTDD2, OUTDA3, OUTDD3, OUTDA4, OUTDD4 y TX. Cuando quiera utilizar una entrada o una salida del mdulo de comunicaciones, simplemente se programa en el cuadro de configuracin y se les carga o recibe datos escribindolas en el programa con los mismos nombres. El programa dispone de 9 variables auxiliares llamadas Vaux1, Vaux2, Vaux3, Vaux4, Vaux5, Vaux6, Vaux7, Vaux8 y Vaux9, que pueden ser utilizadas en la escritura del programa y puede almacenar cualquier nmero real entre 3.4E + 38 y 3.4E+38. Tambin se pueden escribir nmeros reales de hasta 6 dgitos directamente en el programa, pero con 20 nmeros mximo por programa. El signo de igualdad solo es permitido despus del primer trmino en las lneas de escritura anloga y siempre se escribe en forma automtica. Como primer termino solo se permiten una variable INAD*, INDD*, RX, OUTDA*, OUTDD*, TX o Vaux*, siendo * cualquier nmero permitido segn el caso. Se permiten 5 operaciones como mximo por lnea de programa.
108

Se permiten mximo 20 lneas de programa. Los cuadros de dilogo tienen la funcin de facilitar la escritura del programa no permitiendo que se escriba el programa con errores de escritura. En la figura 21 se ilustra la ventana de edicin con un programa tpico. El programa permite utilizar las teclas de desplazamiento arriba y abajo para movimiento entre filas, Bakspace para borrar trminos y Enter para terminar una fila o salir del programa cuando se pulsa al inicio de una fila.

Botn AYUDA: Da ingreso al cuadro de ayudas correspondiente al cuadro de edicin del


programa, all encontrar informacin pertinente a la escritura del programa 6.2.5 VENTANA DE SALIDA . Esta ventana se ilustra en la figura 39 y permite guardar el archivo de programacin con los cambios que se hallan realizado durante la ejecucin del programa, posee tres botones, que son:

Botn REGRESAR: Retorna al cuadro de donde vino. Puede ser el cuadro de bienvenida o
el cuadro grfico.

Botn GUARDAR: Guarda bajo el mismo nombre, el archivo de programa cargado en el


momento y concluye la ejecucin del programa principal.

Botn SALIR:
programacin.

Termina la ejecucin del programa principal, sin salvar el archivo de

109

Figura 39 Ventana de salida

110

7. CAPTULO 7 PRCT ICAS DE LABORAT ORIO


En este captulo se presentan seis prcticas de laboratorio que pretenden afianzar algunos conceptos elementales referentes a las comunicaciones expuestos en los captulos I, II, III y IV. Se pretende hacer uso de la riqueza visual del software d equipo que permite visualizar seales el anlogas, diagramas temporales de seales digitales y graficacin mltiple de varias seales a la vez. Las practicas se realizan con seales del orden de 1 Hz, con el fin de que se pueda seguir paso a paso el proceso de la seal para que el aprendizaje sea ms conceptual y de observacin que de cuantificacin. 7.1. PRACTICA #1: ANLISIS DEL TEOREMA DEL MUESTREO. 7.1.1 OBJETIVOS 1. Analizar en forma visual, la calidad de diferentes seales de salida al muestrear una seal de entrada con diferentes frecuencias de muestreo. frecuencia de muestreo recomendada en la prctica. 2. Analizar el proceso de conversin de una seal anloga a digital. Desarrollo de la prctica El teorema de muestreo establece que una seal de banda limitada a Fm Hz, (o sea una seal cuya transformada de Fourier es igual a cero para todo >2 Fm) queda determinada unvocamente por sus valores a intervalos uniformes con separacin menor de Fm segundos. Es decir, una seal de banda limitada a Fm puede reconstruirse a partir de sus muestras tomadas uniformemente a una razn no menor de 2 Fm muestras por segundo. Al trmino 2 Fm se le conoce como ndice de muestreo de Nyquist. La seal as muestreada permite ser reconstruida cuando se hace pasar por un filtro pasa bajas con un ancho de banda Fm. Analizar el teorema de Nyquist y la

111

As que cuando se pretende llevar informacin del dominio analgico al digital es importante cumplir con algunos requisitos: Tomar las muestras temporales en forma regular o sea a intervalos de tiempo igualmente espaciados. El seguimiento discreto de la seal continua no debe ser ni demasiado a menudo, por que se cae en redundancia prctica de valores sucesivos (econmicamente prohibitivo por necesidades de almacenamiento excesivo), ni demasiado lento porque se pierde contenido de informacin verdadera (en el sentido de anlisis y reconstitucin ideal de formas de onda), siendo este ultimo mas grave. Idealmente el intervalo entre muestras independientes debe se t <= 1/(2Fm) con t = tiempo entre muestras y Fm = Frecuencia mxima con amplitud considerable que est presente en la forma de onda continua. Esto es terico para seales senoidales puras, que en la prctica no satisface; es por ello que se recomienda hacer t <= 1/(5Fm). La seal muestreada hasta ahora es todava analgica y en algunos casos donde se tiene la necesidad de procesamiento y anlisis de gran cantidad de datos, puede ser ms ventajoso llevarlo a cabo por medios digitales. A la sucesin de: muestreo, cuantificacin y codificacin se

agrupan bajo el concepto general de conversin analgica a digital (A/D). Durante el proceso de cuantificacin se asigna a los impulsos de amplitud un nmero limitado de intervalos de cuantificacin discretos. Para ello se divide el margen de amplitudes de la seal en una cantidad igual de intervalos, en el caso de que un valor de amplitud se encuentre situado entre los lmites de un intervalo, se le asignar a este valor el intervalo mencionado. En el

momento de recuperar la seal para que el error de cuantificacin permanezca lo menos posible, se reproduce este valor con un valor analgico que esta situado en la mitad (centro) de este intervalo de cuantificacin, llegando a ser el mximo error igual a la mitad del intervalo. Por

codificacin se sobreentiende un convenio por el cual cada uno de los intervalos individuales se numeran correlativamente con el cdigo binario apropiado. Para un convertidor A/D de cuatro

bits se tienen diecisis intervalos o divisiones de la amplitud mxima de la seal, para uno de ocho bits tenemos 255 intervalos y en general tendremos 2 intervalos, siendo n el nmero de

bits de la conversin A/D. De donde podemos decir que a mayor nmero de bits del convertidor
112

A/D, menores sern la amplitudes de los intervalos de cuantizacin y por lo tanto menor error de cuantizacin se tendr al recuperar la seal (mayor fidelidad). 7.1.2 ANLISIS VISUAL DE UNA SEAL MUESTREADA A DIFERENTES FRECUENC IAS. En esta primera prctica se ingresa una seal anloga por las entradas INAD1, INAD2 y INAD3 del modulo de comunicaciones, sean muestrea a diferentes frecuencias y estas se visualizarn en forma individual o colectiva en el monitor del PC. En este caso se usa la entrada INAD1 como patron de referencia, con una frecuencia de muestreo mucho mayor (con respecto a las dems) que permite hacer comparaciones entre ellas. Procedimiento: 1. Conecte a las entradas INAD1, INAD2 e INAD3 la seal triangular de 1Hz o inferior (puede ser la frecuencia minina), del generador de funciones del mdulo de comunicaciones. Calibre las entradas con los potenciometros de nivel D.C (si la seal senoidal es bipolar se debe ubicar este potenciometro aproximadamente a 1,5 voltios) y control de magnitud hasta que no haya ninguno de los leds de la caja de calibracin de la seal en rojo. 2. Conecte el P.C. al mdulo de comunicaciones, y cargue el programa Modcom.bas desde la aplicacin QBasic. 3. Cargue el programa con el archivo de programa PRAC1A, este aparece en la tabla 7.1. En esta primera parte no se requiere de programa a ejecutar ya que no se requiere utilizar ninguna salida. 4. Ejecute el programa. 5. Haga sus observaciones. 6. Aumente la frecuencia de la seal de entrada en un rango prudente y observe el comportamiento de la seal muestreada. 7. Conecte ahora la seal seno del generador de funciones del modulo, y repita el paso anterior. 8. Si lo desea puede modificar las frecuencias de muestreo en el cuadro grfico. 9. Saque sus propias conclusiones.

113

Tabla 7.1. Configuracin del archivo de programa PRAC1A

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC1A LPT 1 #INAD 3 CANAL INAD1 INAD2 INAD3 F. CK MAES. 1000 #INDD 0 NOMBRE S.PATRON 7 HZ DE MUES 15 HZ DE MUEST DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR S S S

#OUTDA 0

FCIA. MUES-TX 250 7 15

7.1.3 ANLISIS DEL PROCESO DE CONVERSIN DE UNA SEAL ANLOGA A DIGITAL Para este anlisis ingresamos la seal DC variable del generador de funciones del mdulo, a una salida digital, la seal DC; esta seal se ira variando y se podr ir visualizando en el monitor en una forma lenta, la grfica anloga de la seal DC y el diagrama temporal de la misma al ser cuantificada a 8 bytes. Procedimiento: 1. Conecte a la entrada anloga INAD1 la seal DC del generador de funciones del mdulo, calibre dicha entrada, de tal manera que cuando se tenga la seal DC en 0 el led inferior de la caja de calibracin este a punto de pasar a rojo, para esto lleve el potenciometro de control de nivel DC a 0 voltos. 2. Cargue el archivo de programa PRAC1B, cuyo programa se lista a continuacin y su configuracin se lista en la tabla 7.2 Programa a ejecutarse con PRAC1B: A: OUTDD1 = INAD1
Tabla 7.2 Configuracin del archivo de programa PRAC1B

114

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC1B LPT 1 #INAD 1 CANAL INAD1 OUTDD1 3. Ejecute el programa 4. Observe como al variar el voltaje de entrada con la perilla de la fuente DC, los leds del bus de salida de la seal INAD1 varan al igual que en los grficos digital y anlogo, donde se lleva un registro temporal del proceso. Para un mejor anlisis utilice la tecla PAUSA del teclado del PC con el fin de detener temporalmente la ejecucin del programa. Es de mucha utilidad la lnea de barrido color gris que indica en cada grfico el punto equivalente entre los dos grficos. Para continuar la ejecucin, presione la tecla ENTER. 5. Saque sus propias conclusiones. Elementos a utilizar: 1. El mdulo de comunicaciones. 2. Un computador con procesador 486 o superior. F. CK MAES. 1000 #INDD 0 NOMBRE S. DC S. DC.DIGITAL DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 1 VISUALIZAR S S

#OUTDA 0

FCIA. MUES-TX 15

115

7.2. PRCTICA #2: APLICACIONES CON SEALES DE ENTRADA Y SALIDA DIGITALES. 7.2.1 OBJETIVOS: 1. Realizar las operaciones lgicas bsicas y la combinacin de algunas de ellas 2. Realizar un multiplexior anlogo de cuatro canales. 3. Realizar un demultiplexor anlogo de cuatro vas. 4. Analizar el diagrama de tiempo de un contador binario de cuatro bits. Desarrollo de la practica El anlisis terico de esta prctica se desarrollo en e primer captulo. Es importante aclarar que l para escribir una lnea de programa digital se debe iniciar con la letra D:, y que los nmeros hexadecimales se deben escribir en forma decimal. entrada y salida de seal digital (vista en el capitulo V). 7.2.2 T ABLAS DE VERDAD DE LAS PRINCIPALES COMPUERTAS. Se programa para los suiches 1 y 2 de la caja de entrada de seal digital (corresponden a los bits menos significativos), las operaciones AND, NAND, OR, NOR, XOR y XNOR cuyos valores aparecern en su respectivo orden en los leds de monitoreo 1, 2, 3, 4, 5 y 6 de la caja de salida de seal digital. Procedimiento: 1. Conecte la caja de entrada de seal digital a la entrada INDD1 del mdulo de comunicaciones (recuerde conectar el cable de alimentacin a 5V DC del generador de funciones), de igual manera conecte la caja de salida de seal digital a la salida OUTDD1. 2. Conecte el P.C. al mdulo de comunicaciones, al P.C y cargue el programa Modcom.bas desde la aplicacin Qbasic. 3. Cargue el archivo de programa PRAC2A, su programa aparece a continuacin y su configuracin de equipo se lista en la tabla 7.3 Programa a ejecutarse con PRAC2A:
116

En esta prctica utilizamos las caja de

D: Vaux1 = INDD1 AND 1 D: Vaux2 = INDD1 AND 2 D: Vaux3 = Vaux1 AND Vaux2 D: Vaux4 = Vaux3 XOR 1 A: Vaux4 = Vaux4 * 2 D: OUTDD1 = Vaux3 OR Vaux4 D: Vaux3 = Vaux1 OR Vaux2 D: Vaux4 = Vaux3 XOR 1 A: Vaux3 = Vaux3 * 4 A: Vaux4 = Vaux4 * 8 D: OUTDD1 = OUTDD1 OR Vaux3 OR Vaux4 D: Vaux3 = Vaux1 XOR Vaux2 D: Vaux4 = Vaux1 XNOR Vaux2 A: Vaux3 = Vaux3 * 16 A: Vaux4 = Vaux4 * 32 D: OUTDD1 = OUTDD1 OR Vaux3 OR Vaux4 4. Ejecute el programa.
Tabla 7.3. Configuracin del archivo de programa PRAC2A

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC2A LPT 1 #INAD 1 CANAL INAD1 F. CK MAES. 1000 #INDD 1 NOMBRE DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 1 VISUALIZAR N
117

#OUTDA 0

FCIA. MUES-TX 15

INDD1 OUTDD1

BITS.1,2 COMPUERTAS

S S

5. Vare los dos primeros suiches de la caja de entrada de seal digital y analice los diagramas temporales de la seal digital que aparecen en el monitor del P.C, al igual que el monitoreo que hacen los leds de los diferentes bytes de la salida OUTDD1 en la caja de salida de seal digital. 6. Verifique el cumplimiento de las tablas de verdad de cada una de las compuertas expuestas en el capitulo I. 7.2.3 COMBINACIN DE COMPUERTAS LGICAS. Ahora utilicemos los suiches 1, 2, 3 y 4 de la caja de entrada de seal digital, para programar una compuerta AND de cuatro entradas que se visualizara por el led 1 de la caja de salida digital y una compuerta OR de cuatro entradas que se visualizara 8 de la misma caja. Procedimiento: 1. Conecte a la entrada INDD1 la caja de entrada de seal digital, al igual que a la salida OUTDD1 la caja de salida de seal digital. 2. Abra el archivo de programa PRAC2B, a continuacin exponemos su programa y su configuracin de equipo en la tabla 7.4.
Tabla 7.4. Configuracin del archivo de programa PRAC2B

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC2B LPT 1 #INAD 1 CANAL INAD1 INDD1 S. DIGITAL F. CK MAES. 1000 #INDD 1 NOMBRE DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 1 VISUALIZAR N S

#OUTDA 0

FCIA. MUES-TX 15

118

OUTDD1

S. DIGITAL

Programa a ejecutarse con PRAC2B: D: Vaux1 = INDD1 AND 1 D: Vaux2 = INDD1 AND 2 A: Vaux2 = Vaux2 / 2 D: Vaux3 = INDD1 AND 4 A: Vaux3 = Vaux3 / 4 D: Vaux4 = INDD1 AND 8 A: Vaux4 = Vaux4 / 16 D: OUTDD1 = Vaux1 AND Vaux2 AND Vaux3 AND Vaux4 D: Vaux1 = Vaux1 OR Vaux2 OR Vaux3 OR Vaux4 A: Vaux1 = Vaux1 * 128 D: OUTDD1 = OUTDD1 OR Vaux1 3. 4. Ejecute el programa. Verifique que se cumplan las tablas de verdad en los dos casos.

7.2.4 MULTIPLEXOR DE CUATRO CANALES. En el captulo I se estudiaron los multiplexores. Son selectores de datos que posee un cierto nmero de lneas de entrada (llamadas comnmente canales), un cierto nmero de lneas de seleccin (que son proporcionales al nmero de canales) y una lnea nica de salida que dirige o enruta una informacin desde una de sus entradas hasta la salida de acuerdo al cdigo presente en sus lneas de seleccin. Se configurara el equipo para que realice la multiplexacin con cuatro canales anlogos, una lnea de salida anloga. Se utilizan como lneas de seleccin, los dos primeros botones de la caja de entrada de seal digital que va conectada al INDD1.C 1. Cargar el archivo de programa PRAC2C, su configuracin de equipo se lista en la tabla 7.5 y su correspondiente programa a continuacin:
119

Programa a ejecutarse con PRAC2C: D: INDD1 = INDD1 AND 3 C: IF INDD1 = 0 THEN OUTDA1 = INAD1 C: IF INDD1 = 1 THEN OUTDA1 = INAD2 C: IF INDD1 = 2 THEN OUTDA1 = INAD3 C: IF INDD1 = 3 THEN OUTDA1 = INAD4
Tabla 7.3:Configuracin del archivo de programa PRAC2C

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC2C LPT 1 #INAD 4 CANAL INA1 INDA2 INDA3 INDA4 INDD1 OUTDA1 F. CK MAES. 1000 #INDD 1 NOMBRE SEAL 1 SEAL 2 SEAL 3 SEAL 4 SELECTOR SELECCIN DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR N N N N S S

#OUTDA 1

FCIA. MUES-TX 62 62 62 62

2. Conecte a una frecuencia de 1Hz o inferior las seales seno a la entrada INAD1, la triangular a INAD2 la cuadrada al INAD3 y la D.C a INAD4; acondicione correctamente las seales a las entradas. 3. Conecte la carga de entrada de seal digital a la entrada INDD1. 4. Inicie la ejecucin del programa. 5. Observe la conmutacin de las seales al variar el cdigo de entrada por medio de los dos primeros suiches de la caja.
120

6. Saque sus propias conclusiones. 7.2.5 DEMULTIPLEXOR DE CUATRO VAS El demultiplexor o distribuidor de datos realiza la funcin contraria de un multiplexor o selector de datos. Posee una lnea de entrada, un cierto numero de lneas de seleccin y un cierto numero de lneas de salida o vas que de acuerdo con un cdigo aplicado a las lneas de seleccin, transfiere el dato presente en la entrada a una de sus salidas. Realicemos la demultiplexin de una seal anloga que ingresa por la entrada INAD1 y puede salir por cualquiera de las cuatro salidas de seal anlogas disponibles en el modulo. Como

lneas de seleccin utilizaremos las mismas lneas d la entrada digital INDD1 conectada a la caja e de entrada de seal digital igual que en el caso anterior con los suiches 1 y 2. Procedimiento 1. Conecte a la entrada INAD1 cualquiera de las seales del generador de funciones a una frecuencia de 1Hz, calibre la entrada para que no se tengan recortes en la seal. 2. Conecte la caja de entrada de seal digital a la entrada INDD1. 3. Abra el programa PRAC2D, expuesto en el programa siguiente y la configuracin del equipo en la tabla 7.6. Programa a ejecutarse con PRAC2D. D: INDD1 = INDD1 AND 3 A: OUTDA1 = 0 A: OUTDA2 = 0 A: OUTDA3 = 0 A: OUTDA4 = 0 C: IF INDD1 = 0 THEN OUTDA1 = INAD1 C: IF INDD1 = 1 THEN OUTDA2 = INAD1 C: IF INDD1 = 2 THEN OUTDA3 = INAD1 C: IF INDD1 = 3 THEN OUTDA4 = INAD1
121

Tabla 7.6: Configuracin del archivo de programa PRAC2D

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC2D LPT 1 #INAD 1 CANAL INAD1 INDD1 OUTDD1 OUTDD2 OUTDD3 OUTDD4 4. Ejecute el programa 5. Observar los resultados al cambiar los cdigos de seleccin por medio de los suiches 1 y 2 de la caja de entrada de seal digital. 6. Haga su propio anlisis. 7.2.6 DIAGRAMAS DE TIEMPO DE LOS CONTADORES BINARIOS. Los contadores son dispositivos digitales que utilizan flip-flops conectados en cascada para contar pulsos. Este comportamiento puede ser programado en el modulo de comunicaciones F. CK MAES. 1000 #INDD 1 NOMBRE SEAL SELECTOR VIA 1 VIA 2 VIA 3 VIA 4 DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR N S S S S N

#OUTDA 4

FCIA. MUES-TX 62

utilizando como fuente se pulso la entrada 1 de la caja de entrada de seal digital, bien sea entrando los pulsos manual mente o conectando a esta entrada la seal cuadrada del generador de funciones del modulo. As que se requiere una entrada anloga INAD1 (esto para efectos de

sincronismo), una entrada digital INDD1 y una salida digital OUTDD1 Procedimiento. 1. Conecte la caja de entrada de seal digital a la entrada INDD1 y la caja de salida de seal digital a la salida OUTDD1.
122

2. Cargue el archivo de programa PRAC2E, cuyo programa aparece a continuacin y su configuracin de equipo en la tabla 7.7 Programa a ejecutarse con PRAC2E: C: IF INDD1 = 0 THEN Vaux1 = 1 D: Vaux2 = Vaux1 AND INDD1 C: IF INDD1 = 1 THEN Vaux1 = 0 A: OUTDD1 = OUTDD1 + Vaux2 C: IF OUTDD1 = 16 THEN OUTDD1 = 0 3. Ejecute el programa. 4. Pulse manualmente el suiche 1 para entrar los pulsos de reloj, si lo desea conecte a esta entrada la seal cuadrada del generador de funciones. 5. Observe el diagrama de tiempo de cada bit de la seal de salida. 6. Observe como el cambio de cada bit depende del cambio del bit inmediatamente inferior en peso. 7. Saque sus propias conclusiones.
Tabla 7.7: Configuracin del archivo de programa PRAC2E

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC2E LPT 1 #INAD 1 CANAL INAD1 INDD1 OUTDD1 F. CK MAES. 1000 #INDD 1 NOMBRE SEAL RELOJ CONTADOR DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR N S S

#OUTDA 0

FCIA. MUES-TX 15

123

Elementos a utilizar: Mdulo de comunicaciones Computador con procesador 80486 o superior.

124

7.3. PRCTICA #3: TRANSMISIN DE DATOS DIGITALES ATRAVEZ DE LA FIBRA PTICA. 7.3.1 OBJETIVOS: 1. Analizar el diagrama temporal de las seales de salida en un registro de corrimiento a izquierda de 7 bits. 2. Transmitir una seal digital a travs de la fibra ptica a diferentes velocidades. Desarrollo de la prctica: La transmisin de datos en paralelo y en serie se analizo en el captulo II, y Los fundamentos de transmisin de seales por la fibra ptica se estudiaron en el capitulo III. algunos conceptos elementales de estos con el fin de afianzar mas el conocimiento. 7.3.2 ANLISIS TEMPORAL DE LAS SEALES A LA SALIDA DE UN REGISTRO DE CORRIMIENTO. Para visualizar en el diagrama de tiempo, el movimiento que cada bit hace a izquierda en un registro de corrimiento, utilice la caja de entrada de seal digital, con el suiche 1 entraremos manualmente las seales de reloj y con los otros suiches 2, 3, 4, 5, 6, 7 y 8 entraremos un dato de siete bits cualquiera. Esta caja se conecta a la entrada INDD1, y la caja de salida de seal digital se conecta a la salida OUTDD1, en ella se visualizaran el movimiento de los bits. Procedimiento: 1. Conecte la caja de entrada de seal digital a la entrada INDD1 y la caja de salida de seal digital a la salida OUTDD1. 2. Escriba un dato digital de siete bits con los suiches de la caja de entrada de seal digital (recomiendo 0000001) 3. Conecte el P.C. al mdulo de comunicaciones, y cargue el programa Modcom.bas desde la aplicacin QBasic. 4. Cargue el programa PRAC3A, se lista a continuacin y la configuracin del equipo en la tabla 7.8 Aqu visualizaremos

125

Programa a ejecutarse con PRAC3A D: Vaux1 = INDD1 AND 1 C: IF Vaux2 = 0 THEN Vaux2 = INDD1 A: Vaux2 = Vaux2 AND 254 C: IF Vaux1 = 0 THEN Vaux3 = 1 A: Vaux2 = Vaux2 + Vaux2 * Vaux3 C. IF Vaux1 = 1 THEN Vaux3 = 0 D. Vaux2 = Vaux2 AND 254
Tabla 7.8 Configuracin del archivo de programa PRAC3A

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC3A LPT 1 #INAD 1 CANAL INAD1 INDD1 OUTDD1 5. Ejecute el programa, 6. Pulse continuamente al suiche 1 y observe el movimiento de la luz en los pilotos de la caja de salida digital. 7. Si lo prefiere puede conectar la seal cuadrada con una frecuencia de 1 Hz. del generador de funciones del mdulo de comunicaciones. 8. Cambie el cdigo digital escrito en los pulsadores y observe nuevamente su movimiento. 9. Saque sus propias conclusiones. F. CK MAES. 1000 #INDD 1 NOMBRE SEAL RELOJ REGISTRO DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 1 VISUALIZAR N S S

#OUTDA 0

FCIA. MUES-TX 15

126

7.3.3 T RANSMISIN DE UNA SEAL DIGITAL A TRAVS DE UNA FIBRA PTICA El modulo dispone de dos registros de corrimiento a izquierda con los que realiza la comunicacin serie por la fibra ptica. El bit MSB del registro transmisor va acoplado a un

fotodiodo que enva la seal en el rango de luz infrarrojo por una fibra ptica monomodo de 1000m. En el lado receptor se tiene un fotodetector a coplado al bit LSB del registro receptor, que recupera de nuevo la seal con cada pulso del reloj transmisor (para ms detalles de los componentes pticos remitirse al anexo 7). estudiados en al capitulo III. El TX/RX (transmisor y receptor) se encuentra en la parte superior del mmico del equipo. En el programa, simplemente se usa TX como variable de salida de seal o que transmite el dato y RX como variable que recibe el dato proveniente del enlace con la fibra ptica. Durante la ejecucin del programa la transmisin es permanente y no permite solapamientos de las tramas de las seales, de esta forma no admite un nuevo dato a transmitir hasta no haber terminado de desplazar el ltimo bit del registro. Inicialmente se envia por la salida TX y la fibra ptica, una seal DC proveniente del INAD1, la que recibida por la entrada RX, se enva a la salida anloga OUTDD1. Para una mejor Los temas referentes a la fibra ptica fueron

conceptualizacin, el proceso se efecta a baja velocidad de tal forma que permita hacer seguimiento a la seal; posteriormente en va una seal seno a una velocidad de transmisin mayor. Procedimiento: 1. Conecte la fibra ptica monomodo en los terminales marcados como Transmisor de fibra ptica y Receptor de fibra ptica de la parte superior del mmico. 2. Conecte una seal la seal DC de 1.5V a la entrada INAD1, calibre dicha entrada. 3. Cargue el archivo de programa PRAC3B, su programa se lista a continuacin y la configuracin del equipo en la tabla 7.9. Programa que se ejecuta con PRAC3B A: TX = INAAD1 A = OUTDA1 = RX
127

Tabla 7.9: Configuracin del archivo de programa PRAC3B

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC3B LPT 1 #INAD 1 CANAL INAD1 TX/RX OUTAD1 4. Ejecute el programa. 5. Haga un seguimiento de la seal y cambie el voltaje de entrada en un rango prudente. 6. Conecte a INAD1 una seal seno de 1 Hz proveniente del generador de funciones. 7. Entrar a la ventana de configuracin del equipo y aumente la frecuencia de transmisin a 125 Hz. y luego a 500Hz, ejecutando cada vez el programa. 8. Observar la seal y sacar sus propias conclusiones. Elementos a utilizar: Mdulo de comunicaciones Un computador con procesador 80486 o superior F. CK MAES. 1000 #INDD 0 NOMBRE TRANSMITIDA TX/RX RECIBIDA DATOin = DATOout N TX/RX 1 CONTROL OUT N #OUTDD 0 VISUALIZAR S N S

#OUTDA 1

FCIA. MUES-TX 62 3

128

7.4. PRCTICA #4: MODIFICACIN DE LA TRAMA DE UNA SEAL DIGITAL MEDIANTE UN ELEMENTO DE HARDW ARE. 7.4.1 OBJETIVOS: 1. Alterar la trama de una seal que viaja por la fibra ptica generar en ella errores de diferentes tipos y analizar sus consecuencias. 2. Implementar el sistema detector de errores utilizando paridad simple par Desarrollo de la practica: Esta prctica se fundamenta en los conceptos tericos del captulo II y capitulo IV. Se

introducir un elemento perturbador en la seal que viaja por la fibra ptica, para analizar las consecuencias y se programa un sencillo algoritmo de deteccin de error por el mtodo de paridad simple. Para esto se utiliza un elemento de hardware llamado mdulo de insercin de

bits, que va conectado al puerto de verificacin del modulo de comunicaciones. A este pequeo modulo llega por el conector negro la fibra que sale por el TX (conector azul) del mdulo de comunicaciones. Regresa la seal saliendo por el conector azul y entrando al acoplador de

entrada RX del modulo de comunicaciones (conector negro). Este modulo de insercin de bits, posee en la parte superior 8 disuiches que seleccionan en forma manual l o los bits que se quieren intervenir. En la parte superior derecha tenemos un suiche selector de tres posiciones que en la primera posicin hacia arriba inserta la inversin de l o los bits seleccionados con los disuiches, en la posicin central inserta unos y en la posicin inferior inserta ceros, solo en las posiciones seleccionadas. Se tienen dos leds monitores de la seal que llega al mdulo de insercin de bits por la fibra ptica y la seal que sale de este hacia el mdulo de comunicaciones respectivamente. De igual manera podemos monitorear por medio de 8 leds la posicin que

ocupa el bit que se esta procesando en ese instante. 7.4.2 INSERCIN DE BITS EN LA TRAMA DE UNA SEAL DIGITAL Para aprender a utilizar de una forma adecuada del modulo de insercin de bits, conecte a la entrada INDA1 una seal DC, se transmite por la salida TX ala fibra ptica a baja velocidad. En su trayecto se conectara el modulo de insercin de bits y luego la seal recibida por RX se llevara a la salida OUTDA1.

129

Se pretende transmitir inicial mente a baja frecuencia para poder comprender paso por paso el proceso que sufre la seal. Posterior mente se transmitir una seal seno para analizar en forma clara la accin de los errores sobre la seal. Procedimiento: 1. Conecte a la entrada INAD1 una seal D.C DE 1.5 V del generador de funciones del modulo de comunicaciones; calibre dicha entrada. 2. Conecte el mdulo de insercin de bits con los disuiches en OFF al puerto de verificacin de seales y la fibra ptica segn se describi en la parte inicial. 3. Conecte el P.C. al mdulo de comunicaciones, y cargue el programa Modcom.bas mediante la aplicacin QBasic. 4. Cargue el archivo de programa PRAC4A, cuyo programa se lista a continuacin y la configuracin del equipo en la tabla 7.10 Programa a ejecutarse con PRAC4A: A: TX = INAD1 A: OUTDA1 = RX 5. Ejecute el programa. 6. Siga paso a paso el proceso de la seal. 7. Ponga en ON cualquiera de los suiches y mueva cada posicin del suiche selector de insercin para observar en forma lenta la accin del mdulo sobre el bit de la posicin seleccionada y observe la consecuencia sobre la seal en el grfico del monitor del P.C. 8. Una vez comprendida la accin del mdulo de insercin de bits, configure un muestreo de 62 Hz para INAD1 y frecuencia de transmisin TX/RX a 500Hz. 9. Conectar a INAD1 la seal seno del generador de funciones con una frecuencia de 1Hz, y calibre esta entrada para que no tenga distorsin.

130

Tabla 7.10: Configuracin del archivo de programa PRAC4A

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC4A LPT 1 #INAD 1 CANAL INAD1 TX OUTDA1 F. CK MAES. 1000 #INDD 0 NOMBRE ENVIADA TX/RX RECIBIDA DATOin = DATOout N TX/RX 1 CONTROL OUT N #OUTDD 0 VISUALIZAR S N S

#OUTDA 1

FCIA. MUES-TX 62 3

10. Ejecute nuevamente el programa con la nueva configuracin. 11. Inserte con el mdulo de insercin de bits errores de diferentes tipos. 12. Evaluar las consecuencias al comparar la seal de entrada con l seal de salida en el grfico a de la seal en el monitor del P:C. Verifique como dependiendo de la posicin del bit intervenido, se causa mayor o menor dao a la seal de salida. 7.4.3 DETECCIN DE ERRORES POR EL MTODO DE PARIDAD SIMPLE PAR Para realizar la correccin y deteccin de errores en una seal utilizando el mdulo de comunicaciones, necesitamos desplazar a la izquierda los bits de la seal a transmitir, para insertar en el byte MSB el bit de paridad. Es de aclarar que este artificio se realiza solo al utilizar el mdulo de comunicaciones ya que la salida de seal por la fibra ptica se realiza en formato de 8 bits, sin posibilidad de enviar un noveno bit; en las transmisiones reales no se afecta de ninguna manera la seal original. Es claro que eliminar el bit LSB le quitar calidad a la seal de salida, cosa que para nuestro propsito de visualizar de alguna manera la deteccin de un error, no es muy relevante. El procedimiento de programacin se realiza as: inicialmente el dato de entrada INAD1 se desplaza a la derecha una posicin, se evala paridad entre sus bits componentes y el resultado se inserta en el bit MSB. Posteriormente se enva el dato a travs de la fibra ptica por la salida TX, en el trayecto de la fibra ptica se tiene el mdulo de insercin de bytes que con sus disuiches
131

puede modificar cualquier bit de la trama de la seal. Al llegar al mdulo de comunicaciones por la entrada RX, se separa el bit MSB donde viene la informacin de parida, y se evala la paridad los restantes bits para verificar si coincide con la informacin del bit de paridad, en caso afirmativo se desplaza a la derecha una posicin llenando con cero el bit LSB y se lleva a la salida OUTDA1, si no la cumple a esta salida se llevara un cero, hasta que termine el error. De esta forma cada vez que se detecte un error de paridad (un numero de bits pares cambiados) se detectara en la grfica un cambio abrupto a cero. Esto se efecta en este caso particular por programacin como una forma de detectar que el algoritmo s esta en operacin correcta. Procedimiento: 1. Conecte la seal seno del generador de funciones ajustado a la frecuencia mnima a la entrada INAD1, calibre dicha entrada para evitar recortes de la seal. 2. Conecte el mdulo de insercin de bits segn recomendaciones iniciales, con los disuiches en OFF. 3. Cargue el archivo de programa PRAC4C; este se expone en la tabla 6.10 y su correspondiente programa a continuacin: Programa a ejecutarse con PRAC4C: A: INAD1 = INAD1 /2 A: Vaux2 = INAD1 / 2 D: Vaux1 = INAD1 XOR Vaux2 A: Vaux2 = Vaux1 / 4 D: Vaux1 = Vaux1 XOR Vaux2 A: Vaux2 = Vaux1 / 16 D: Vaux1 = Vaux1 XOR Vaux2 D: Vaux1 = Vaux1 AND 1 A: Vaux1 = Vaux1 * 128 D: TX = INAD1 OR Vaux1

132

D: Vaux3 = RX AND 128 A: Vaux2 = RX / 2 D: Vaux1 = RX XOR Vaux2 A: Vaux2 = Vaux1 / 4 D: Vaux1 = Vaux1 XOR Vaux2 A: Vaux2 = Vaux1 / 16 D: Vaux1 = Vaux1 XOR Vaux2 D: Vaux1 = Vaux1 AND 1 A: OUTDA1 = RX * 2 C: IF Vaux1 <> Vaux3 THEN OUTDA1 = 0 4. Ejecute el programa. 5. Accione los disuiches de la caja de insercin de bytes para generar errores de diferentes tipos. 6. Observe los resultados y saque sus propias conclusiones.
Tabla 7.11: Configuracin del archivo de programa PRAC4B

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC4B LPT 1 #INAD 1 CANAL INAD1 TX OUTDA1 F. CK MAES. 1000 #INDD 0 NOMBRE ORIGINAL TX/RX TRANSMITIDA DATOin = DATOout N TX/RX 1 CONTROL OUT N #OUTDD 0 VISUALIZAR S N S

#OUTDA 1

FCIA. MUES-TX 32 250

133

Elementos a utilizar: Mdulo de comunicaciones Computador con procesador 80486 o superior.

134

7.5. PRCTICA #5: MODULACIN AM, PAM Y ASK. 7.5.1 OBJETIVOS: 1. Realizar modulacin AM, partiendo de la multiplicacin de dos seales anlogas 2. Realizar modulacin PAM, partiendo de la multiplicacin de una seal anloga y una seal digital constante. 3. Realizr modulacin ASK partiendo de la multiplicacin de una seal anloga constante y una seal digital. Desarrollo de los objetivos: Las seales de banda base producidas por diferentes fuentes de informacin no son siempre adecuadas para la transmisin directa a travs de un canal dado. Estas seales son en ocasiones fuertemente modificadas para facilitar su transmisin. Este proceso de conversin se conoce como Modulacin. En este proceso se utiliza la seal de banda base para modificar algn

parmetro de una seal portadora de alta frecuencia. Segn el comportamiento en el tiempo de la seal portadora a modular se habla de modulacin continua en el tiempo o discreta en el tiempo (muestreo). En el caso de modulacin continua, la portadora es una senoide de alta frecuencia, y u de sus no parmetros (tales como amplitud, frecuencia o la fase) se vara en proporcin al la seal en banda base. De acuerdo con esto se obtiene la modulacin en amplitud (AM), modulacin en

frecuencia (FM) o modulacin en fase (MP). En el receptor la s eal modulada debe pasar a travs de un proceso inverso que se llama demodulacin con el fin de recuperar la seal de banda base. En una modulacin discreta en el tiempo se tiene una seal impulsiva a la que se le varia en forma semejante a la modulacin continua los parmetros de amplitud, o frecuencia, por medio de la seal de banda base. Un ejemplo de ella es la modulacin por impulso de amplitud MIA o en ingls PAM, Ahora no nos referiremos a la portadora de modulacin sino a la a modular, hay que distinguir, en lo que se refiere a su margen de valores, si son continuos discretos. En el caso de que un valor discreto tenga su origen en una seal cuyo valor es continuo, se trata de una cuantificacin con la
135

caracterstica de que la seal recibida puede liberarse ampliamente de las perturbaciones de la transmisin (distorsin o ruido de cuantificacin) dentro de ciertos lmites. Para concluir tenemos portadoras de modulacin continuas en el tiempo y discretas en el tiempo y por otra parte valores continuos y valores discretos de la seal moduladora. De aqu surgen las diferentes formas de transmitir una seal de un lugar a otro y dependiendo de la naturaleza de la seal a transmitir y las condiciones del medio de transmisin se opta por utilizar una u otra tcnica. En esta prctica implementaremos solo tres de las modulaciones mas representativas 7.5.2 MODULACIN AM: Modular en AM una seal triangular o seno de 1Hz proveniente del generador de funciones del mdulo de comunicaciones con otra seal seno de 10 Hz. de un generador exterior, utilizando dos entradas anlogas y una salida anloga. Para una correcta visualizacin de la modulacin, se

deben tener bien calibradas las seales de entrada de tal forma que aparezcan bien centrados en el cuadro grfico. Se realiza un artificio matemtico en la programacin de la modulacin entre

estas dos seales ya que el mdulo de comunicaciones representa toda la amplitud de la seal pico a pico en un dato de 8 bits o sea valores positivos entre 0 y 255. Por tanto se requiere en algunas operaciones adicionar o restar un valor de 128 que corresponde al centro del grfico o el 50% en la escala vertical. Procedimiento: 1. Conecte a la entrada INAD1 una seal seno o triangular con una frecuencia de 1Hz del generador de funciones del mdulo de comunicaciones; calibre dicha seal de tal manera que no se recorte. 2. Conecte a la entrada INAD2 una seal seno con una frecuencia de 10Hz de un generador externo de 3Vpp, calibre la entrada de tal manera que la seal de entrada no se recorte. 3. Conecte el PC al mdulo de comunicaciones, y cargue el programa Modcom.bas, mediante la aplicacin QBasic. 4. Cargue el archivo de programa PRAC5A que contiene el programa siguiente y lista la configuracin del equipo en la tabla 7.12

136

Programa a ejecutarse con el programa PRAC5A. A: INAD1 = INAD1 - 128 A: OUTDA1 = ( 1 - ABS ( INAD1 / 128 ) * ( INAD2 128 ) A: OUTDA1 = OUTDA1 + 128
Tabla 7.12: Configuracin del archivo de programa PRAC5A

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC5A LPT 1 #INAD 2 CANAL INAD1 INAD2 OUTDA1 5. Ejecute el programa. 6. Para una correcta visualizacin de la modulacin AM, lleve los potencimetros control de magnitud de las entradas activas INAD1 e INAD2 a su mnimo y ajuste los potencimetros que manejan el nivel DC de las mismas entradas hasta que la grfica en cada pantalla dibuje una lnea horizontal ubicada al 50% del eje vertical. 7. Mueva los potencimetros de control de magnitud hasta que la seal no se recortada en sus extremos mximos y mnimos. 8. Vare la seal moduladora (INAD1) para que verifique los diferentes niveles de modulacin o si lo prefiere, conecte a esta entrada la seal DC del generador de funciones para que variando la amplitud de esta seal la visualizacin de la modulacin se realice en forma ms lenta y bajo su control. 9. Saque sus propias conclusiones. F. CK MAES. 1000 #INDD 0 NOMBRE MODULADORA PORTADORA A.M. DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR S S S

#OUTDA 1

FCIA. MUES-TX 125 125

137

7.5.3 MODULACIN PAM En la modulacin por impulso de amplitud, se toman muestras de la seal continua (normalmente en forma estrictamente peridica) y solamente se transmiten estas muestras, con ayuda de un dispositivo de muestreo. Para este caso se tiene la seal a transmitir que puede ser la seal

triangular del generador de funciones del mdulo a 1Hz, y como seal impulsiva, se conecta una seal cuadrada de un generador exterior al terminal de la caja de entrada de seal digital que a su vez va conectada a INDD1, esta seal ser de 10 Hz, 3Vpp. En caso de no tener este generador se pueden entrar pulsos en forma manual por medio del primer suiche de la misma caja. La seal modulada es llevada a la salida OUTDA1. Procedimiento: 1. Conecte a la entrada INAD1 una seal triangular con una frecuencia de 1Hz del generador de funciones del modulo de comunicaciones; calibre dicha seal de tal manera que la seal de entrada no se recorte. 2. Conecte la caja de entrada de seal digital a INDD1 y al terminal 1 de dicha caja, conecte una seal cuadrada de 10 Hz y 3Vpp. 3. Cargue el archivo de programa PRAC5B que se lista en la tabla 7.13 y en el programa que le sigue. Programa a ejecutarse con PRAC5B D: INDD1 = INDD1 AND 1 A: OUTDA1 = INDD1 * (INAD1 128 ) A: OUTDA1 = OUTDA1 + 128 4. Ejecute el programa. 5. Para una correcta visualizacin de la modulacin MIA, lleve el potencimetro control de magnitud de la entrada INAD1 a su mnimo y ajuste el potencimetro que manejan el nivel DC de las mismas entradas hasta que la grfica en la pantalla dibuje una lnea horizontal ubicada al 50% del eje vertical. 6. Mueva el potencimetro de control de magnitud hasta que la seal no se recorte en sus extremos mximos y mnimos.
138

7. Si lo prefiere elija en el cuadro de configuracin solo ver la grfica de la seal modulada. 8. Saque sus propias conclusiones.
Tabla 7.13: Configuracin del archivo de programa PRAC5B

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC5B LPT 1 #INAD 1 CANAL INAD1 INDD1 OUTDA1 F. CK MAES. 1000 #INDD 1 NOMBRE PORTADORA MODULADORA MOD. MIA DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR S S S

#OUTDA 1

FCIA. MUES-TX 125

7.5.4 MODULACIN ASK En esta forma de modulacin, la amplitud de la portadora se vara entre dos niveles predeterminados en correspondencia con la seal binaria de dato. Usualmente uno de los niveles coincide con cero (condicin OFF) por lo cual en este caso suele denominarse modulacin ON OFF (O.O.K.). Se utiliza una seal seno de 5 Hz y 3Vpp como portadora conectada a la entrada INAD1, y una seal cuadrada de 1 Hz como moduladora conectada a la terminal 1 de la caja de entrada de seal digital que va conectada a INDD1, la seal modulada es enviada a la salida OUTDA1. Procedimiento: 1. Conecte a la entrada INAD1 una seal seno de 5 Hz del generador de funciones del mdulo de comunicaciones. 2. Conecte al terminal 1 de la caja de entrada de seal digital, una seal cuadrada de un generador exterior con una frecuencia de 1Hz, o si lo prefiere entre manual mente los pulsos moduladores por medio del suiche nmero 1.

139

3. Cargue el archivo de programa PRAC5C, que contiene la configuracin de la tabla 7.14 y el programa siguiente: Programa a ejecutarse con PRAC5C: D: INDD1 = INDD1 AND 1 A: OUTDA1 = INDD1 * (INAD1 128 ) A: OUTDA1 = OUTDA1 + 128 4. Ejecute el programa. 5. Para una correcta visualizacin de la modulacin ASK, lleve el potencimetro control de magnitud de la entrada INAD1 a su mnimo y ajuste el potencimetro que manejan el nivel DC de las mismas entradas hasta que la grfica en la pantalla dibuje una lnea horizontal ubicada al 50% del eje vertical. 6. Mueva el potencimetro de control de magnitud hasta que la seal no se recorte en sus extremos mximos y mnimos. 7. Visualice las tres grficas o si lo prefiere elija en el cuadro de configuracin solo ver la grfica de la seal modulada. 8. Saque sus propias conclusiones.
Tabla 7.14: Configuracin del archivo de programa PRAC5C

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC5C LPT 1 #INAD 1 CANAL INAD1 INDD1 OUTDA1 F. CK MAES. 1000 #INDD 1 NOMBRE PORTADORA MODULADORA MOD. ASK DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR S S S

#OUTDA 1

FCIA. MUES-TX 125

140

Elementos a utilizar: 1. Mdulo de comunicaciones 2. Computador con procesador 80486 o superior. 3. Generador de funciones con seales seno y cuadrada con frecuencias desde 5 Hz:

141

7.6. PRCTICA #6: MODULACION FM, PSK, Y MSK. 7.6.1 OBJETIVOS: 1. Realizar modulacin FM generando la portadora seno en el interior del mdulo y utilizando como moduladora una seal anloga del generador de funciones del mdulo. 2. Realizar modulaciones PSK y FSK, generando la portadora internamente y usando como moduladora la seal cuadrada del generador de funciones del mdulo de comunicaciones. Desarrollo de los objetivos: Esta practica esta fundamentada en las bases tericas expuestas en la prctica 5. El mdulo de comunicaciones puede generar por programacin ondas peridicas utilizando una variable auxiliar que se programa para que tenga un incremento X (elegido segn la calidad que se quiera de la onda de salida) cada vez que sea evaluado el programa escrito por el usuario (realmente este programa se evala a la velocidad de la frecuencia de muestreo). Esta variable auxiliar se debe estar evaluando y reiniciando cada que llegue a determinado valor, para evitar desbordamientos de los valores numricos permitidos por el programa. Esta variable se incluye en el argumento de una funcin trigonomtrica y de esta forma se obtiene una onda a una frecuencia igual a: Frec. salida = (Frec. mx de muestreo Incremento de la variable auxiliar) / 360 7.6.2 MODULACIN FM. Generar una seal seno de 5 Hz por programacin en el mdulo de comunicaciones y modularla en FM con una seal moduladora anloga seno o triangular de 0.5 Hz del generador de funciones del equipo. Procedimiento 1. Conecte a la entrada INAD1 una seal seno o triangular del generador de funciones con su mnima frecuencia. 2. Conecte el P.C. al mdulo de comunicaciones, y cargue el programa Modcom.exe. 3. Cargue el archivo de programa PRAC6A. Este se expone a continuacin y la configuracin del equipo en la tabla 7.15

142

Tabla 7.15. Configuracin del archivo de programa PRAC6A

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC6A LPT 1 #INAD 1 CANAL INAD1 OUTDA1 F. CK MAES. 1000 #INDD 0 NOMBRE MODULADORA MOD. FM DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR
S

#OUTDA 1

FCIA. MUES-TX 125

Programa a ejecutarse en PRAC6A: A: Vaux1 = INAD1 / 8 A: Vaux2 = Vaux2 + Vaux1 + 10 C: IF Vaux1 >= 360 THEN Vaux2 = 0 A: OUTDA1 = 120 * SEN ( Vaux2 ) + 128 4. Ejecute el programa. 5. Lleve el potencimetro control de magnitud de la entrada INAD1 a su mnimo y ajuste el potencimetro que manejan el nivel DC de las mismas entradas hasta que la grfica en la pantalla dibuje una lnea horizontal ubicada al 50% del eje vertical. 6. Mueva el potencimetro de control de magnitud hasta que la seal no se recorte en sus extremos mximos y mnimos. 7. Cambie levemente la frecuencia de la seal moduladora o si lo prefiere, conecte a esta entrada la seal DC del generador de funciones para que variando la amplitud de esta seal la visualizacin de la modulacin se realice en forma ms lenta y bajo su control. 8. Observe las grficas y saque sus propias conclusiones.

143

7.6.3 MODULACINES PSK En este tipo de modulacin la informacin se codifica en la fase de una portadora de amplitud constante, utilizando como moduladora una seal discreta. Como en el caso anterior se genera una portadora seno de 5 Hz. en el equipo y se utiliza como moduladora una seal cuadrada que ingresa al terminal 1 de la caja de entrada de seal digital conectada a INDD1. La seal modulada se lleva a la salida OUTDD1. Procedimiento: 1. Lleve al conector 1 de la caja de entrada de seal digital, la seal cuadrada de el generador de funciones con la frecuencia ms baja, o si lo prefiere entre los pulsos en forma manual por medio del suiche 1. 2. Cargue el archivo de programa PRAC6B, este se presenta en la tabla 6.16 y a continuacin el respectivo programa Programa a ejecutarse con PRAC6B: D: INDD1 = INDD1 AND 1 A: Vaux1 = 0 C: IF INDD1= 1 THEN Vaux1 = 180 A: Vaux2 = Vaux2 + 20 C: IF Vaux2 >= 360 THEN Vaux2 = 0 A: OUTDA1 = 120 * SEN ( Vaux1 + Vaux2) + 128
Tabla 7.16. Configuracin del archivo de programa PRAC5C

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC6B LPT 1 #INAD 1 CANAL F. CK MAES. 1000 #INDD 1 NOMBRE DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR

#OUTDA 1

FCIA. MUES-TX

144

INAD1 INDD1 OUTDA1 MODULADORA MOD. PSK

125

N S S

3. Ejecute el programa. 4. Observe el cambio de fase de la seal con cada cambio de la seal modulada. 5. Saque sus propias conclusiones. 7.6.4 MODULACINES FSK En esta modulacin la informacin se codifica en la frecuencia de una portadora de amplitud constante, utilizando como moduladora una seal discreta. Con las mismas condiciones externas de la modulacin anterior se realizar modulacin FSK para la misma seal digital, la configuracin no cambia, solo el programa. 1. Conecte al primer terminal de la caja de entrada de seal digital la seal cuadrada de generador de funciones con la frecuencia ms baja que tenga, o si lo prefiere entre los pulsos en forma manual por medio del suiche 1. 2. Cargue el archivo de programa PRAC6C, su configuracin de equipo se presenta en la tabla 7.16 y a continuacin el respectivo programa Programa a ejecutarse con PRAC6C: D: INDD1 = INDD1 AND 1 A: Vaux1 = 0 C: IF INDD1= 1 THEN Vaux1 = 10 A: Vaux2 = Vaux2 + 10 + Vaux1 C: IF Vaux2 >= 360 THEN Vaux2 = 0 A: OUTDA1 = 120 * SEN ( Vaux2 ) + 128 3. Ejecute el programa.
145

Tabla 7.16. Configuracin del archivo de programa PRAC5C

ESPECIFICACIONES GENERALES Y DE CADA CANAL SEGN ARCHIVO DE PROGRAMACION PRAC5B LPT 1 #INAD 1 CANAL INAD1 OUTDA1 F. CK MAES. 1000 #INDD 1 NOMBRE MODULADORA MOD. FSK DATOin = DATOout N TX/RX 0 CONTROL OUT N #OUTDD 0 VISUALIZAR N S

#OUTDA 1

FCIA. MUES-TX 125

4. Observe el cambio de frecuencia de la seal con cada pulso de la seal moduladora. 5. Saque sus propias conclusiones. Elementos a utilizar: 1. Mdulo de comunicaciones 2. Computador con procesador 80486 o superior.

146

CONCLUSIONES

Al concluir el presente trabajo se demuestra la versatilidad y facilidad de programacin del puerto paralelo del computador y su utilizacin en labores de monitoreo y control, diferentes a la de su uso convencional de conexin con la impresora. As, por medio del lenguaje de programacin Quick Basic se puede aprovechar de una manera productiva dicho puerto en labores docentes, ya que la utilizacin de los grficos de las entradas y salidas de las seales del mdulo al igual que las operaciones entre ellas hacen ms accesible el aprendizaje. La utilizacin del mmico en la tapa del equipo presta muy buena informacin sobre el funcionamiento interno del mismo y la forma de interaccin de sus circuitos, pues el seguimiento que se puede hacerse Se logr obtener una ventana de edicion de programa con una particular forma de escritura que gua al usuario por medio de cuadros de dialogo a la escritura del programa en forma correcta, no permitiendo errores gramaticales en la escritura del programa. Se obtuvo la capacidad de crear una serie de archiovos con programaciones diferentes con el fin de disponer en forma rpida y facil de una serie de practicas de laboratorio. Para facilitar el uso del programa al usuario, se dispuso en todas las ventanas del programa un botn de ayuda que sirve de orientacin al usuario para la correcta utilizacin de la ventana.

147

ANEXO 1 TARJETA #1, TARJETA PRINCIPAL DE CONT ROL


Un primer estudio sobre el modulo de comunicaciones se realizo en el capitulo V en el que se estudiaron algunos circuitos de la tarjeta de control; ahora se tratar de hacer una descripcin de la tarjeta desde el punto de vista electrnico teniendo como base el plano PL1 anexado en la parte final de esta obra. La tarjeta de control se pueden describir mediante cinco circuitos bsicos: CIRCUITOS DE ACOPLE ENTRE EL PC Y EL MDULO Estos circuitos acoplan los buses del puerto paralelo del PC con los buses del mdulo. Haciendo un seguimiento de las seales en el plano electrnico del circuito iniciamos observando como el bus de Datos del Puerto paralelo entra al amplificador de corriente IC4 (74LS244), que sirve como acoplador de impedancias entre los dos circuitos, las lneas de salida de este circuito entran a los integrados IC5 y IC8 que son dos registros de almacenamiento (74HC374) cuyas ordenes de carga y entrega del datos se efectan desde el circuito de control. El circuito de

control con un flanco de subida en el pin 11 del IC8 carga los datos del puerto paralelo en el registro DATOout, el dato ya almacenado puede ser entregado al bus DATOout cada que el IC8 reciba un nivel bajo en el pin 1. El proceso es el mismo para el IC5 que maneja el registro de Direcciones y el bus DIRECCIONES. La informacin ya disponible en los dos buces (en uno como DATOout y en el otro como DIRECCINES), es llevada directamente a su destino. El bus DATOout lleva sus lneas al

puerto de verificacin por los conectores J1.2 y J1.3 y a las tarjetas del modulo por los conectores J1.4, J1.5,.J1.6 y J1.7. Estos conectores se pueden ubicar en la figura A1.1 en la parte final del anexo. El bus DIRECCIONES lleva sus lneas a los decodificadores de primer y segundo nibble presentes en la misma tarjeta. El contenido de los dos buses es monitoreado en forma permanente por los dos grupos d leds e de los integrados IC7 e IC10 (Bloque de 10 leds de catodo comun), para esto las lneas de los dos buces son llevadas a dos amplificadores de corriente IC6 e IC9 (dos 74HC244), cuyas lneas de salida manejan los leds de dichos integrados, estos aparecen en el mmico en la parte central sobre los buses DATOout y DIRECCIONES.

148

El bus de DIRECCIONES divide su byte en dos partes, el primer nibble (grupo de cuatro bits) posee los bits menos significativos y va al decodificador de direcciones del primer nibble conformado por el IC12 (74LS154), que directa o indirectamente (algunas son invertidas por el IC15) utiliza 14 lneas de decodificacin para manejar la lectura y programacin de las tarjetas de entrada de datos (tarjetas #2 y #4) y dos lneas son utilizadas para configuracin del equipo. La decodificacin del segundo nibble de Direcciones, la efecta el IC13 (74LS154) que toma el nibble mas significativo del bus de DIRECCIONES, lo decodifica y utiliza 10 lneas (en su mayor parte en forma invertida por los IC16, IC17 e IC18 que son 74HC14) para activar las tarjetas de salida de datos (tarjetas #3 y #4), tres lneas son enviadas al puerto de verificacin (Pnes 23,24 y 25 del conector J1.2 y estos a 32, 33 y 34 del puerto de Verificacin) y tres lneas cumplen labores de configuracin de equipo en la misma tarjeta de control. Las seales enviadas por los decodificadores de primer y segundo nibble a los diferentes dispositivos, son listadas en la tabla 5.1 y 5.2 del capitulo 5. El IC1 (74HC244) es un amplificador de corriente que acopla la impedancia entre el bus DATOin del equipo y las primeras cuatro lneas (que salen por el puerto) de bus Estado del puerto paralelo del PC (Bits S3, S4, S5 y S6). Para ello conmuta dichas lneas del bus Estado con el primer y segundo nibble del bus.DATOin. Esta conmutacin es manejada desde el circuito de control manipulando los pines 1 y 19 del IC1. Las lneas del bus DATOin son monitoreadas

tambin por medio del bloque de leds del IC3 (Bloque de 10 leds de ctodo comn) luego de ser amplificadas por los buffers del IC2 (74HC244). El bit S7 del bus Estado, cumple labores de sincronizacin de tiempos entre el modulo y el PC, esto lo logra enviando permanentemente al puerto paralelo la seal de muestreo ms rpida, que por software se asigna al INAD1, de tal manera que el programa que se desarrolla en el PC en forma cclica por cada seal de entrada, debe durar un tiempo menor o igual al tiempo de muestreo mas rpido, para poder garantizar un correcto funcionamiento, de lo contrario se reportara con unos Beep en el parlante del PC indicando que la programacin se esta ejecutando en forma muy lenta en comparacin con la frecuencia de muestreo, surgiendo como soluciones: disminuir frecuencia de CK Maestro, programar tiempos de muestreo mas lentos, suprimir algunas lneas de programacin o utilizar un PC de mayor velocidad.

149

EL CIRCUITO DE CONTROL Esta conformado por algunas compuertas de los integrados IC7, IC14, IC16, IC18 (74HC14), IC19 (74LS08) e IC20.(74LS32), que se encargan de controlar los procesos de almacenamiento de la informacin en los registros DATOout y DIRECCIONES igualmente que manejar la conmutacin de las lneas del bus de Estado con las del bus DATOin entre otras. El elemento que marca la pauta en la conmutacin es la lnea C0 del bus bidireccional de Control del puerto paralelo cuando esta operando como salida de datos del PC. Cuando este bit esta en cero (esto por software ya que en realidad el puerto invierte este bit y enva un uno, el modulo lo lleva a su estado original por medio de un inversor del IC22) permite cargar el contenido del bus de Datos del PC en el registro DATOout, al igual que conmuta el primer nibble del bus DATOin con las primeras cuatro lneas del bus Estado del puerto paralelo. Cuando C0 esta en uno carga el contenido del bus de Datos en el registro DIRECCIONES y conmuta el segundo nibble del bus DATOin con las primeras cuatro lneas del bus Estado. Lo anteriormente descrito, es la operacin normalmente utilizada para capturar un dato de cualquier dispositivo de entrada de seal al modulo (dispositivo que se elige con una direccin especifica), ingresarlo al PC por el puerto paralelo (lneas del bus Estado) procesarlo y luego enviarlo de regreso al modulo (por el bus de Datos del puerto) para ser direccionado a una salida cualquiera. El circuito de control permite que se ingresen datos del puerto de verificacin al PC por medio del bus de Control del puerto paralelo, esta operacin se realiza gracias al circuito de acople conformado por los integrados IC21 (buffer de corriente 74LS244), IC22 e IC23 (inversores open colector 74LS05). Los circuitos que manejan el bus de Control del puerto paralelo en el interior del modulo lo configuran como bus de entrada de datos al modulo, cuando el circuito de control enva un nivel bajo al pin uno y un nivel alto al pin 19 del IC2 (es el estado que normalmente maneja por defecto); aqu el sistema de control obedece al bit C0 del bus Control del puerto, caso relatado en el parrafo anterior. Es posible configurar el circuito que maneja el bus de Control como salida de datos hacia el puerto paralelo. Esta configuracin se efecta cuando se mantiene la direccin FH en cualquiera de los dos decodificadores de direccines o en los dos a la vez, esto permitir que se de un nivel uno en el pin 1 y un nivel cero en el pin 19 del IC21. Aqu el circuito de control ignorara el
150

bit C0 e interpretara toda la informacin salida por el bus Datos del puerto como DIRECCINES (el bus DATOout conserva su valor) y las cuatro lneas del bus Estado quedan conmutadas al primer nibble del bus DATOin. As el PC puede leer del bus de Control la informacin que le puede entrar por el puerto de verificacin. Es importante tener en cuenta que antes de usar el bus Control como entrada, se debe previamente poner por software las lneas del bus de Control en uno. Para volver a la operacin normal vasta con escribir en el registro de direcciones un valor diferente de Fh en cualquiera de los dos nibbles. La configuracin de las lneas del bus de Control en el modulo de comunicaciones es visualizada por el DL2 (diodo led de doble polaridad) ubicado en el centro del bus de control que va al puerto de verificacin en el mmico, este cuando esta en color verde indica que el bus de control puede operar como salida de datos hacia el puerto de verificacin (o recibe informacin del PC.) y en color rojo indica que puede operar como entrada de datos por el puerto de verificacin (o enva informacin al PC.). Aunque las cuatro lneas del bus Control son bidireccionales, en el puerto de verificacin aparecen en forma independiente las cuatro entradas (pines 26, 27, 28 y 29) y las cuatro salidas (pines 22, 23, 24 y 25). El circuito de control tambin permite efectuar un puente entre los buses DATOin y DATOout, por medio del IC11 (74HC244). Esto se realiza cuando el segundo bit en un registro llamado memoria intermedia (veremos ms adelante) se programa con un uno, este hace que el circuito de control ponga en estado bajo los pines 1 y 19 del IC11 (74HC244) y coloque en el tercer estado (alta impedancia) las salidas del registro DATOout (IC8). De esta manera la informacin del bus DATOin pasa directamente al bus DATOout sin necesidad de entrar al PC. Este caso es ilustrado con un puente entre los dos buses ubicado en la parte central del mmico, cuya transferencia de informacin es indicada por medio del DL4 (diodo led) que enciende en un color rojo y esta ubicado en el centro de dicho puente. CIRCUITO DE MEMORIA INTERMEDIA Se trata de un registro que con la instruccin BH del segundo nibble de DIRECCIONES, guarda la informacin que en ese momento posee el bus DATOout. El registro lo compone el IC24

(74HC374) y los bits de salida de este registro, manejan seales importantes para el funcionamiento del sistema. Con el bit cero se maneja el rango de frecuencias a las que va a
151

operar el reloj maestro, este bit maneja la base del TR1 (transistor 2N2222) que energza el RL1 (relevo de 12 voltios), que cuando esta desenergizado conmuta al circuito del reloj maestro el condensador C24 de 0.1F para un rango de frecuencias entre 867Hz y 3127 Hz; cuando esta energizado conmuta el condensador C23 de 330pF para un rango de 4067 Hz a 14350 Hz. As con un estado bajo en este bit indica que el reloj maestro funcione en el rango de baja frecuencia y con un estado alto que funcione en el rango de alta frecuencia. El bit uno no es utilizado. El bit dos habilita por medio del circuito de control el puente entre DATOin y DATOout, al mismo tiempo que pone en el tercer estado el registro DATOout (IC8) visto en el parrafo anterior. Los bits tres y cuatro estn disponibles en el puerto de verificacin (pines 30 y 31 respectivamente) para su posterior utilizacin. CIRCUITO DEL RELOJ MAESTRO Conformado por el registro IC25 (74HC374) que carga un byte con el valor de la frecuencia del reloj maestro cuando se enva la direccin CH en el primer nibble de DIRECCIONES (poniendo en estado alto el pin 11 de este integrado). Este byte almacenado pasa al IC26 (DAC0808)

convertidor digital anlogo, configurado para una salida anloga (por el pin 4) en un rango de 3.9 a 10.5 voltios; este voltaje es amplificado en corriente por el primer amplificador operacional del IC27 (1/2 LF353), que acopla la seal con el pin nueve del circuito VCO (oscilador controlado por voltaje) del IC28 (ICL8038). Es as como la frecuencia de este oscilador, es manejada por el voltaje anlogo existente a la salida del convertidor digital anlogo. El rango de trabajo de este oscilador es controlado por el condensador que se conmuta entre el pin 10 del VCO (IC28) y Vcc (12V.), cosa realizada por el relevo RL1 ya explicado en el parrafo anterior. Los valores digitales para las diferentes frecuencias tanto en rango de baja frecuencia como de alta frecuencia se listan en las tablas 5.6 y 5.7 del capitulo 5. CIRCUITO DE DIVISIN DE FRECUENCIA PARA LA TRANSMISIN SERIE La seal del reloj maestro llega al pin 14 del IC32 (XR2240) que esta configurado como sintetizador de frecuencias; posee ocho salidas que son las divisiones del reloj maestro (que entra por el pin 14) entre 2, 4, 8, 16, 32, 64, 128 y 255. La seleccin de una de estas frecuencias se realiza con los suiches anlogos de los circuitos integrados IC30 e IC31 (CD4066 ambos), que son manejados por los bits almacenados en el registro IC29 (74LS374). Cuando se da la direccin AH en el segundo nibble de Direcciones este registro almacena el contenido del bus DATOout,
152

de tal manera que cada lnea de salida de este registro maneja un suiche anlogo, as el dato que se almacena en el registro contiene la ubicacin del suiche que se sierra para obtener una frecuencia especifica. Este registro, solo admite un bit en uno por dato, ya que de serrarse mas de un suiche al mismo tiempo, la seal de salida podra presentar discontinuidades. La divisin de frecuencia obtenida del suiche que se serr en los pines 2, 3, 9 y 11 de los IC30 e IC 31, llega al conector J1.6 (pin 6) para llegar a su destino en la placa #4 TX/RX. CIRCUITO DEL GENERADOR DE FUNCIONES Lo constituye el integrado IC33 (ICL8038) que genera seales de onda seno, triangular y cuadrada. La frecuencia de trabajo es determinada por el potenciometro externo a la tarjeta RV3 (10K.) que va conectado entre los pines 3, 4 y 5 del conector J1.8, y aparece en la parte inferior del mmico marcado como ajuste de frecuencia. El rango de frecuencia de trabajo es elegido por medio de un suiche externo S1 (suiche tipo codillo de un polo dos posiciones, conectado entre los pines 14, 15 y 16) que conmuta dos valores diferentes de condensadores, C27 de 4,7F para un rango de frecuencias entre 0.3Hz. y 16Hz y C26 de 0,47F para un rango entre 20Hz y 1kHz. El reostato RV1 (de 1K) sirve para calibrar la simetra vertical y el reostato RV2 (de 200K) la horizontal Por el pin dos del IC33 se genera la onda seno, es amplificada por uno de los

operacionales del IC34 (1/4 LM324) que le da ganancia de corriente e invierte la seal, saliendo por el pin 12 del conector J1.8 para que sea usada por el usuario en la parte inferior del mmico. La onda triangular se genera por el pin 3 del IC33 y tiene idntico proceso que la onda seno pero por el pin 10 del J1.8. La onda cuadrada se genera por el pin 9 del IC33, es amplificada e invertida por un operacional del IC34 y sale p el pin 8 de J1.8 hacia el mmico. Esta seal es or reamplificada por otro operacional del IC34 para manejar el led DL6 (diodo led de doble polaridad) que como piloto indica que el oscilador esta en funcionamiento, este piloto esta ubicado en la parte del generador de funciones inferior el mmico, SEALES Y DESTINO DE LOS DIFERENTES CONECTORES: Las tablas A1.1 y A1.2 listan las seales presentes en cada conector.
Tabla A1.1 Seales en los diferentes conectores de la tarjeta de control (Primera Parte) PIN 1 2 J1.1 Bit 0 Bus Datos P.P. Bit 7 Bus Datos P.P. J1.2 +5v. -5v. J1.3 GND Reloj maestro. J1.4 Prog mues. INAD1 Prog mues. INAD2 153

PIN 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

J1.1 Bit 1 Bus Datos P.P. Bit 6 Bus Datos P.P. Bit 2 Bus Datos P.P. Bit 5 Bus Datos P.P. Bit 3 Bus Datos P.P. Bit 4 Bus Datos P.P. Bit 6 Bus Status P.P. Bit 3 Bus Status P.P. Bit 4 Bus Status P.P. Bit 5 Bus Status P.P. Bit 7 Bus Status P.P. Bit 1 Bus Control P.P. Bit 3 Bus Control P.P. Bit 0 Bus Control P.P. Bit 2 Bus Control P.P. GND Piloto GND GND

J1.2 Bit 7 DATOout Bit 0 DATOout Bit 6 DATOout Bit 1 DATOout Bit 5 DATOout Bit 2 DATOout Bit 4 DATOout Bit 3 DATOout Seal bus control In Bit 0 Bus Control In Bit 1 Bus Control In Bit 2 Bus Control In Bit 3 Bus Control In Bit 1 Bus Control Out Bit 2 Bus Control Out Bit 3 Bus Control Out Bit 0 Bus Control Out Bit 3 de Memoria intermedia GND GND Seal D del Dec. Nibb. 2 () Seal E inv.del Dec. Nibb. 2 () Seal C inv del Dec. Nibb. 2 () Bit 4 de Memoria intermedia

J1.3 Bit 0 DATOin Bit 7 DATOin Bit 6 DATOin Bit 1 DATOin Bit 5 DATOin Bit 2 DATOin Bit 4 DATOin Bit 3 DATOin

J1.4 Prog mues. INAD3 Prog mues. INAD4 +5v +5v Lee INAD1 Lee INDD1 Lee INAD2 Lee INDD2 Bit 7 DATOin Bit 0 DATOin Bit 1 DATOin Bit 6 DATOin Bit 2 DATOin Bit 5 DATOin Bit 3 DATOin Bit 4 DATOin Lee INAD3 Lee INDD3 Lee INAD4 Lee INDD4 -5v Ck Maestro GND GND

J1.1 Ingresa a la tarjeta los buces del puerto paralelo, correa 1. J1.2 Enva seales al puerto de verificacin correa 2. J1.3 Enva seales al puerto de verificacin correa 3. J1.4 Enva seales a las tarjetas #2 INAD - INDD a conector J2.4, correa 4.
Tabla A1.2 Seales en los diferentes conectores de la tarjeta de control (Segunda Parte) PIN 1 2 3 4 5 6 7 J1.5 Carga OUTDA1 Carga OUTDD1 Carga OUTDA2 Carga OUTDD2 Carga OUTDA3 Carga OUTDD3 Carga OUTDA4 J1.6 GND GND +5v +5v Lee recept. de tx CK de Tx Bit 7 DATOin J1.7 GND GND Bit 4 DATOout Bit 3 DATOout Bit 5 DATOout Bit 2 DATOout Bit 6 DATOout J1.8 +5V. GND Pin 1 pot deFcia. Gen. Fun. Pin 2 pot deFcia. Gen. Fun. Pin 3 pot deFcia. Gen. Fun GND NC J1.9 +5V. +5V. -5V. GND GND GND +12V. 154 J1.10 CK muestreo INAD1 CK muestreo INAD1

PIN 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

J1.5 Carga OUTDD4 Bit 4 DATOin Bit 3 DATOin Bit 5 DATOin Bit 2 DATOin Bit 6 DATOin Bit 1 DATOin Bit 7 DATOin Bit 0 DATOin +5v. GND +12V. -5V.

J1.6 Bit 0 DATOin Bit 1 DATOin Bit 6 DATOin Bit 2 DATOin Bit 5 DATOin Bit 3 DATOin Bit 4 DATOin Bit 4 DATOout Bit 3 DATOout Bit 5 DATOout Bit 2 DATOout Bit 6 DATOout Bit 1 DATOout Bit 7 DATOout Bit 0 DATOout Seal de inicio de Tx. Carga de transmisor Lee # de bits transm. 5V.

J1.7 Bit 1 DATOout Bit 7 DATOout Bit 0 DATOout

J1.8

J1.9

J1.10

Seal Cuadrada 12V. Piloto gen. Fun. Seal Triangular GND Seal Senoidal GND Pin 2 suiche de Fcias. Pin 1 suiche de Fcias. Pin 3 suiche de Fcias.

J1.5 Enva seales a las tarjetas #3 OUTDA - OUTDD, conector J3.3, correa 5 J1.6 Enva seales a la tarjeta #4 TX/Rx, conector J4.1, correa 6. J1.7 Enva seales a las tarjetas #2 INAD INDD, conector J2.5, correa 7 J1.8 Enva y recibe seales del mmico en la parte del generador de funciones, correa 8. J1.9 Recibe la fuente de alimentacin, correa 9. J1.10 Recibe de la tarjeta #2 (conector J2.3) la frecuancia de muestreo, correa 10. LISTA DE LOS ELEMENTOS QUE CONFORMAN LA TARJETA DE CONTROL R27 = 1K a1/8 de W. R29, R31, R32 = 4.7K a 1/8 de w. R2, R3, R4, R5 = 20 a de w. R1, R8, R23, R24, R25, R34, R35 = 270 a de w. R19 = 680 a de w. R9, R13, R20, R33 = 1K a de w. R10, R28 = 2.2K a de w.
155

R26 = 3.3K a de w. R6, R7, R11, R12, R14, R15, R16, R18, R21, R22 = 4.7K a de w. R19 = 10K a de w. R17, R30 = 27K a de w. RV1 = Restato de 1K. RV2 = Restato de 200K. RV3 = Potencimetro de 10K. RV4 = Potencimetro de 5K. AR6, AR7, AR8 = Bloque de 9 resistencias de 680 a 1/8 de watio con un punto comn. AR1 = Bloque de 9 resistencias de 1K a 1/8 de watio con un punto comn. AR2, AR3, AR9 = Bloque de 9 resistencias de 5.6K a 1/8 de watio con un punto comn. AR4 = Bloque de 5 resistencias de 5.6K a 1/8 de watio con un punto comn. AR5 = Bloque de 5 resistencias de 4.7K a 1/8 de watio con un punto comn. AR10, AR11 = Bloque de 4 resistencias de 5.6 K a 1/8 de watio con un punto comn. D1 = Diodo 4004. D2 = Diodo 1N914 DL1, DL2, DL3, DL4, DL5, DL6 = Diodo led de doble polaridad color verde y rojo. Dz1 = 2.4V. Dz2 = 3.9V. Dz3 = 5.1V. C22, C15 = 100PF. C23, C32 = 330PF. C14 = 680PF. C26 = 0.47F. C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 = 0.1F. C11, C12, C16, C19, C21, C24, C28, C29, C30, = 0.1F. C27 = 4.7F. C25 = 1F./50V. C17, C18 = 100F. C20 = 470F. C13, C31 = 2200F./16V. Tr1, Tr2 = Transistor 2N2222.
156

IC1, IC2, IC6, IC9, IC11 = 74HC244 IC4, IC21 = 74LS244 IC3, IC7, IC10 = Bloque de 10 leds catodo comun color verde. IC5, IC8, IC24, IC25, IC29 = 74HC374 IC12, IC13 = 74LS154 IC14, IC15, IC16, IC17, IC18 = 74HC14 IC19 =74HC08 IC20 =74LS32 IC22, IC23 = 74LS05 IC26 =DAC0808 IC27 = LF353 IC28 = ICL8038C IC30, IC31 = CD4066 IC32 = XR2240 IC33 = ICL8038 IC34 = LM324 RL1 = Relevo de 12voltios DC. dos polos 8 pines. S1 = Suiche tipo codillo de dos polos dos posiciones. J1.1, J1.5 = Conector tipo ribbon macho, doble hilera de 20 pines. J1.2, J1.4, J1.6 = Conector tipo ribbon macho, doble hilera de 26 pines. J1.3, J1.7 = Conector tipo ribbon macho, doble hilera de 10 pines. J1.8 = Conector tipo ribbon macho doble hilera de 16 pines. J1.9 = Conector en ngulo de 8 pines. J1.10 = Conector de dos pines blanco En la tabla A.1.3 se listan las diferentes correas que interconectan las diferentes tarjetas del mdulo, con la tarjeta de control.
Tabla A.1.3. Lista de correas con las que se interconectan las tarjetas del modulo

Correa Conector extremo 1 (Tarjeta de control) 1 2 BD37 de impresora hembra * Ribbon hembra dos hileras 26 pines **

Conector extremo 2 y # de ellos Ribbon hembra dos hileras 20 pines, 1 Parte de BD37 hembra (Puerto de V.)

Cable y # de hilos Ribbon de 20 hilos Ribbon de 26 hilos

157

Correa Conector extremo 1 (Tarjeta de control) 3 4 5 6 7 8 9 10 Ribbon hembra dos hileras 10 pines ** Ribbon hembra dos hileras 26 pines Ribbon hembra dos hileras 20 pines Ribbon hembra dos hileras 26 pines Ribbon hembra dos hileras 10 pines Ribbon hembra dos hileras 16 pines Conector redondo de 5 pines macho Conector de 2 pines

Conector extremo 2 y # de ellos Parte de BD37 hembra (Puerto de V.) Ribbon hembra dos hileras 26 pines, 4 Ribbon hembra dos hileras 20 pines, 8 Ribbon hembra dos hileras 26 pines, 1 Ribbon hembra dos hileras 10 pines, 4 Terminales en el mmico (Gen. Fun.) Conector en ngulo 8 pines, 1 Conector de 2 pines, 2

Cable y # de hilos Ribbon de 10 hilos Ribbon de 26 hilos Ribbon de 20 hilos Ribbon de 26 hilos Ribbon de 10 hilos Ribbon de 16 hilos Vehiculo # 18 Ribbon de 2 hilos

*Nota #1: En la correa 1 las 8 lneas del bus de Datos y las 4 lneas del bus de Control, llevan en serie un filtro RC ilustrado en la figura A1.1 con Rs = 90, Rp = 12K y Cp = 470PF. Este con fin de compensar la impedancia de la lnea de transmisin entre el PC y el modulo. La tabla A1.4 lista la conexin entre los terminales de la correa 1.

Figura A1.1. Filtro de Compensacin de impedancias entre PC y mdulos Tabla 1.4 Conexin entre los pines de los conectores de la correa 1

DB36 hemba de impresora que va al chasia del mdulo Pin 2, Bit 0 bus de Datos (D0) Pin 9, Bit 7 bus de Datos (D7) Pin 3, Bit 1 bus de Datos (D1) Pin 8, Bit 6 bus de Datos (D6)

Conector ribbon 20 que va al J1.1 de la placa #1 Pin 1, Bit 0 Bus Datos P.P. Pin 2, Bit 7 Bus Datos P.P. Pin 3, Bit 1 Bus Datos P.P. Pin 4, Bit 6 Bus Datos P.P.
158

DB36 hemba de impresora que va al chasia del mdulo Pin 4, Bit 2 bus de Datos (D2) Pin 7, Bit 5 bus de Datos (D5) Pin 5, Bit 3 bus de Datos (D3) Pin 6, Bit 4 bus de Datos (D4) Pin 10, Bit 6 bus de Status (S6) Pin 32, Bit 3 bus de Status (S3) Pin 13, Bit 4 bus de Status (S4) Pin 12, Bit 5 bus de Status (S5) Pin 11, Bit 7 bus de Status (S7) Pin 14, Bit 1 bus de Control (C1) Pin 36, Bit 3 bus de Control (C3) Pin 1, Bit 0 bus de Control (C0) Pin 31, Bit 2 bus de Control (C2) Pin 33, GND Pines 19-28, GND Pines 19-28, GND
Tabla A.1.5. Conexin entre los pines de la correa 2 De J1.2 Pin 1, +5v. Pin 2, -5v. Pin 3, Bit 7 DATOout Pin 4, Bit 0 DATOout Pin 5, Bit 6 DATOout Pin 6, Bit 1 DATOout Pin 7, Bit 5 DATOout Pin 8, Bit 2 DATOout Pin 9, Bit 4 DATOout Pin 10, Bit 3 DATOout Pin 11, Seal bus control In/Out. Pin 12, Bit 0 Bus Control Out Pin 13, Bit 1 Bus Control Out

Conector ribbon 20 que va al J1.1 de la placa #1 Pin 5, Bit 2 Bus Datos P.P. Pin 6, Bit 5 Bus Datos P.Paralelo.. Pin 7, Bit 3 Bus Datos P.Paralelo. Pin 8, Bit 4 Bus Datos P.Paralelo. Pin 9, Bit 6 Bus Status P.Paralelo. Pin 10, Bit 3 Bus Status P.Paralelo. Pin 11, Bit 4 Bus Status P.Paralelo. Pin 12, Bit 5 Bus Status P.Paralelo. Pin 13, Bit 7 Bus Status P.Paralelo. Pin 14, Bit 1 Bus Control P.Paralelo. Pin 15, Bit 3 Bus Control P.Paralelo. Pin 16, Bit 0 Bus Control P.Paralelo. Pin 17, Bit 2 Bus Control P.Paralelo. Pin 18, GND Piloto PC conectado Pin 19, GND Pin 20, GND

Conector DB37 hembra puerto de verificacin Pin 35, Fuente de alimentacin +5V. Pin 36, Fuente de alimentacin -5V. Pin 17, Bit 7 del bus DATO out Pin 10, Bit 0 del bus DATO out Pin 16, Bit 6 del bus DATO out Pin 11, Bit 1 del bus DATO out Pin 15, Bit 5 del bus DATO out Pin 12, Bit 2 del bus DATO out Pin 14, Bit 4 del bus DATO out Pin 13, Bit 3 del bus DATO out Pin 21, Control como entrada (en 1) o salida (en 0). Pin 22, Bit C0 bus de Control como salida.. Pin 23, Bit C1 bus de Control como salida..

159

De J1.2 Pin 14, Bit 2 Bus Control Out Pin 15, Bit 3 Bus Control Out Pin 16, Bit 1 Bus Control In Pin17, Bit 2 Bus Control In Pin 18, Bit 3 Bus Control In Pin 19, Bit 0 Bus Control In Pin 20, Bit 3 de Memoria intermedia Pin 21, GND Pin 22, GND Pin 23, Seal D del Dec. Nibb. 2 Pin 24, Seal E inv.del Dec. Nibb. 2 Pin 25, Seal C inv del Dec. Nibb. 2 Pin 26, Bit 4 de Memoria intermedia

Conector DB37 hembra puerto de verificacin Pin 24, Bit C2 bus de Control como salida.. Pin 25, Bit C3 bus de Control como salida.. Pin 27, Bit C1 bus de Control como entrada. Pin 28, Bit C2 bus de Control como entrada. Pin 29, Bit C3 bus de Control como entrada. Pin 26, Bit C0 bus de Control como entrada. Pin 30, Bit 3 de memoria intermedia. Pin 1, Referencia (GND) Pin 1, Referencia (GND) Pin 33, Direccin D del segundo nibble Pin 34, Direccin E del segundo nibble Pin 32, Direccin C del segundo nibble Pin 31, Bit 4 de memoria intermedia.

De J1.3 Pin 1, GND Pin 2, Reloj maestro. Pin 3, Bit 0 DATOin Pin 4, Bit 7 DATOin Pin 5, Bit 6 DATOin Pin 6, Bit 1 DATOin Pin 7, Bit 5 DATOin Pin 8, Bit 2 DATOin Pin 9, Bit 4 DATOin Pin 10, Bit 3 DATOin Pin 1, Referencia (GND) Pin 19, Oscilador central. Pin 2, Bit 0 del bus DATO in Pin 9, Bit 7 del bus DATO in Pin 8, Bit 6 del bus DATO in Pin 3, Bit 1 del bus DATO in Pin 7, Bit 5 del bus DATO in Pin 4, Bit 2 del bus DATO in Pin 6, Bit 4 del bus DATO in Pin 5, Bit 3 del bus DATO in

De J2.3 Pin 1, Seal de muestreo INAD1. Pin 37, Seal de muestreo INAD1.

De J4.5 Pin 1, Inicia TX. Pin 2, Pulsos del Ck de TX. Pin 20, Pulso de inicio de TX. Pin 18, Reloj de transmisin serie.

** Nota 2: Las seales que entran o salen por el puerto de verificacin llevan en sus lneas una resistencia en serie de 90, con excepcin de las seales de la fuente (+5, -5 y GND). Las conexiones entre los pines de los conectores J1.2, J1.3 (de la tarjeta #1 Control), J2.3 (de la
160

tarjeta #2 INAD - INDD), J4.5 (de la tarjeta #4 TX/RX) y el conector DB37 hembra del puerto de verificacin se listan en la tabla A1.5.
Tabla A.1.6. Cable 1: Interconexin entre el PC y el Mdulo de comunicaciones

SEAL

Conector BD25 macho ( a PC)

Conector Impresora macho (a Mdulo)

Bit 0 bus de Control (C0) Bit 0 bus de Datos (D0) Bit 1 bus de Datos (D1) Bit 2 bus de Datos (D2) Bit 3 bus de Datos (D3) Bit 4 bus de Datos (D4) Bit 5 bus de Datos (D5) Bit 6 bus de Datos (D6) Bit 7 bus de Datos (D7) Bit 6 bus de Status (S6) Bit 7 bus de Status (S7) Bit 5 bus de Status (S5) Bit 4 bus de Status (S4) Bit 1 bus de Crontrol (C1) Bit 3 bus de Status (S3) Bit 2 bus de Crontrol (C2) Bit 3 bus de Crontrol (C3) GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18-25 * * * *

1 2 3 4 5 6 7 8 9 10 11 12 13 14 32 31 36 19-30,33 16 17 18 34,35

La tabla A1.6 lista las conexiones entre pines del cable 1 o cable de impresora que une el puerto paralelo del PC con el mdulo de comunicaciones.

161

Figura A1.2. Disposicin fsica de los elementos en la tarjeta #1 162

Figura A1.3. Lado de soldadura de la Tarjeta # 1

163

ANEXO 2 TARJETA # 2, CONVERSIN DE SEAL ANLOGA A DIGITAL Y DIGITAL A DIGITAL (INAD - INDD)
El mdulo de comunicaciones posee cuatro de estas tarjetas, el plano PL2 que se presenta al final de esta obra presenta el plano electrnico de la misma. podemos dividir en dos circuitos: CIRCUITO DE CONVERSIN DE SEAL ANLOGA A DIGITAL Este circuito recibe la seal anloga por los terminales tipo banana hembra ubicados en la parte derecha del mmico y marcadas como Entrada INAD. De all es llevada al potencimetro Rv1 (de 1K exterior a la tarjeta, marcado en el mmico como control de magnitud) que permite atenuar o controlar la magnitud de la seal de entrada (debe estar entre 0 y 3 Voltios). La seal ingresa a la tarjeta por el conector J2.1 llegando a un amplificador operacional IC1 ( LF353) configurado como inversor de ganancia unitaria que acopla la entrada y la amplifica en corriente; luego pasa a otro amplificador operacional del IC1 ( LF353) configurado como inversor de ganancia unitaria pero con la posibilidad de adicionar a la seal un nivel DC que puede ir desde 3.5V a +3.5V seleccionable mediante el potencimetro RV2 de 5K exterior a la tarjeta, conectado por J2.2 y marcado en el mmico como nivel de DC. La seal que sale de este circuito entra por medio de R5 (resistencia de 270) al convertidor anlogo a digital IC3 (ADC0808) por el pin 26. La tarjeta posee un circuito que monitorea la seal que esta entrando al INAD e indica cuando esta seal esta por fuera de los rangos de trabajo del A/D. Este monitoreo lo realiza por medio de los dos amplificadores operacionales del IC2 (LF353) trabajando como comparadores de magnitud. Por medio del cambio de color de uno o los dos leds nombrados como DL1 y DL2 de verde a rojo indican que: la seal esta por debajo de 0 voltios (cuando cambia a rojo el DL2), o por encima del voltaje mximo de entrada de 3 voltios (cuando cambia a rojo DL1), de esta manera el usuario accionar los potencimetros RV1 (control de magnitud de entrada) y RV2 (control de nivel DC) segn sea el caso hasta el momento en que los dos leds estn de color verde indicando que la seal de entrada esta en el rango de 0 a 3v. Estos dos leds aparecen en el
164

Para una mejor descripcin la

mmico en la parte superior e inferior de un cuadro con una onda seno en su interior ubicado a la izquierda del potencimetro de control de magnitud. De esta manera se puede manejar la seal y llevarla a los rangos de trabajo del convertidor A/D, cuya seal de referencia negativa es de 0 voltios y referencia positiva ajustable mediante el Tr1 (trimer de10K) ubicado en al mmico en la parte superior del potencimetro control de magnitud de la seal y marcado como Ajuste A/D, que se debe calibrar internamente para 3V. La frecuencia del reloj maestro es recibida por el circuito IC14 (XR2240), este integrado posee un circuito que dividen la frecuencia de entrada entre 2, 4, 6, 8, 16, 32, 64, 128 y 255 por pines diferentes (1, 2, 3, 4, 5, 6, 7 y 8 respectivamente), se obtiene alguna de estas seales por medio del sierre de un suiche anlogos de los IC8 e IC9 (CD4066 ambos) que son manejados por el registro temporal latch del IC10 (74LS374). El registro que contiene el cdigo con el suiche a serrar, se carga en IC10 despus de algunas de las direcciones 8, 9, A o B (segn el INAD) del segundo nibble de direcciones. De esta forma, cada bit de este registro maneja un suiche anlogo que entregar la frecuencia del reloj maestro con la correspondiente divisin. El cierre de dos suiches en forma simultnea ocasionar en algunos casos trenes de pulsos que no son permitidos, por tanto solo se permite el cierre de un suiche por cdigo cargado. El convertidor anlogo digital luego de recibir el p ulso de inicio de parte del circuito de muestreo, entrega el byte de la conversin al IC5 (74LS374) que es un registro temporal latch, cuya seal de carga (Ck pin 11) y transferencia de datos (baja impedancia de las salidas pin 1), la recibe de las lneas del decodificador de primer nibble de direcciones cuando se enva una de las direcciones 0, 2, 4 o 6 (segn sea la INAD). Con estos cdigos el pin 1 del respectivo registro se pone en un nivel bajo y su contenido es transferido al bus DATOin por medio del conector J2.4, este hecho es visualizado por medio del DL4 (diodo led) que en el mmico aparece marcado como lee INAD que enciende de color verde cuando se esta haciendo la transferencia del byte. EL byte que sale del INAD tambin entra a los amplificadores de corriente (buffers) del IC4 (74LS244) que alimenta el bloque de leds del IC6 (Bloque de 10 leds) donde puede se visualizado el byte de salida.

165

CIRCUITO DE ENTRADA DIGITAL Este circuito recibe un byte de datos provenientes del exterior por medio del conector DB9 macho marcado en el mmico como INDD e ingresa a la tarjeta por el conector J2.6 para entrar a los amplificadores de corriente del IC12 (74LS244) y ser visualizado por el IC13 (Bloque de 10 leds). Los pulsos del reloj maestro cargan en el registro IC11 (74LS374) el byte de entrada y con alguna de las direcciones 1, 3, 5 o 7 (segn INDD) del primer nibble de direcciones entrega dicho byte al bus DATOin. Al igual que en la primera parte la transferencia de datos entre el registro y el bus DATOin es visualizada por medio del led DL5 (diodo led de color verde) marcado en el mmico como lee INDD, prende de color verde en el momento de la transferencia de la informacin. Los niveles de voltaje de cada bit de entrada deben ser del tipo TTL. CONFIGURACIN DE LAS TARJETAS INAD INDD

Figura A2.1 Configuracin de las tarjetas INAD - INDD

Los circuitos INAD INDD estn contenidos en una misma tarjeta, en tal son 4 tarjetas para los 8 circuitos. Estas tarjetas requieren ser configuradas por hardware por medio de puentes sobre el circuito. La figura A2.1 esquematiza la configuracin necesaria para cada caso.

166

Los puntos 1, 2, 3 y 4 al igual que A y B se sealan en el esquema de componentes de la tarjeta en la figura A2.2 DESTINO Y SEALES DE LOS DIFERENTES CONECTORES DEL LA TARJETA A/D-D/D: La tabla A.2.1 lista las seales en los pines de cada conector de la tarjeta#2 INAD - INDD.

Tabla A.2.1. Seales en los diferentes conectores de la tarjeta#2 INAD - INDD PIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 J1 J2 J3 J4 J5 GND GND Bit 4 DATOout Bit 3 DATOout Bit 5 DATOout Bit 2 DATOout Bit 6 DATOout Bit 1 DATOout Bit 7 DATOout Bit 0 DATOout J6 GND IN a D/D bit 4 IN a D/D bit 5 IN a D/D bit 3 IN a D/D bit 2 IN a D/D bit 6 IN a D/D bit 1 IN a D/D bit 7 IN a D/D bit 0 GND J7 +5v GND -5v

IN Pin 1 RV2 Muestreo Prog mues. INAD1 GND Pin 2 RV2 Muestreo Prog mues. INAD2 Pin 3 RV2 Prog mues. INAD3 Prog mues. INAD4 +5v +5v Lee INAD1 Lee INDD1 Lee INAD2 Lee INDD2 Bit 7 DATOin Bit 0 DATOin Bit 1 DATOin Bit 6 DATOin Bit 2 DATOin Bit 5 DATOin Bit 3 DATOin Bit 4 DATOin Lee INAD3 Lee INDD3 Lee INAD4 Lee INDD4 -5v Ck Maestro GND GND

J2.1 Recibe la seal anloga que entra por el mmico. J2.2 Recibe al seal del RV2 para sumar un nivel DC a la seal. J2.3 Enva a la tarjeta de control y al puerto de verificacin la seal se muestreo (esto en INAD1). J2.4 Recibe de la tarjeta de control la correa #4. J2.5 Recibe de la tarjeta de control la correa #7
167

J2.6 Recibe del mmico el byte que va al INDD: J2.7 Alimenta la tarjeta con conductores de mayor calibre. La tabla A.2.2 lista las seales en el conector DB9 macho de entrada de datos digitales a la entrada INDD provenientes del mmico, la figura A.2.3 muestra el orden de los pines en este conector.
Tabla A2.2 Seales en DB9 macho de entrada de seal digital al INDD. PIN 1 2 3 4 5 6 7 8 9 DB9 Macho IN a D/D bit 0 IN a D/D bit 1 IN a D/D bit 2 IN a D/D bit 5 IN a D/D bit 4 IN a D/D bit 7 IN a D/D bit 6 IN a D/D bit 3 GND

Figura A.2.2. Orden de los pines en el conector DB9 macho

LISTA DE LOS ELEMENTOS DE LA TARJETA #2 INAD - INDD R11 =150 a de W. R12, R13, R14 R19, R20 = 1K a de W. R17 = 2.2K a de W. R5, R9, R10, R15, R16, R21, = 270 a de W. R1, R2, R3, R4, R6, R8, R18, = 10K a de W. R7 = 100K a de W. AR1, AR2 = Bloque de 8 resistencias de 270 a de watio con un punto comn. AR3, AR4 = Bloque de 4 resistencias de 1K a de watio con un punto comn. RV1 = Potencimetro de 1K. RV2 = Potencimetro de 5K. TR1 = Trimer de 10K y 15 vueltas.
168

D2, D3, D5 = Diodo 1N4004. D1, D6 = Diodo de suicheo. D4 = Diodo zener de 3 voltios, watio. DL1, DL2, DL3, DL4, DL5 = Diodo led de doble polaridad de colores rojo y verde. C14 = 100pF. C3 = 0.001F. C1,C5, C8, C9, C10, C11, C12, C13, C16, C17 = 0.1F/50v. C2, C4, C6, C7, C15 = 100F/50v. IC1, IC2, = LF353. IC3 = DAC0808. IC4, IC12 = 74LS244. IC5, IC10, IC11, = 74LS374. IC7 = 74HC14. IC8, IC9 = CD4066. IC14 = XR2240. IC6, IC13 = Bloque de 10 leds ctodo comn de color verde. S1 = Suiche tipo codillo de dos polos dos posiciones. J2.1, J2.3 =Conector de 2 pines. J2.2, J2.7 = Conector de 3 pines. J2.4 = Conector tipo ribbon macho, doble hilera de 26 pines. J2.5, J2.6 = Conector tipo ribbon macho, doble hilera de 10 pines. La tabla A.2.3 indica las conexiones de la correa A/D-D/D1que une el conector J2.6 con el DB9 macho de entrada de datos marcado en el mmico como entrada INDD. Es importante destacar que la correa A/DD/D1 posee en el conector DB9 dos bloques de resistencias que le dan una impedancia de entrada de 1k a cada lnea con respecto a tierra.
Tabla A2.3 Correa A/D-D/D1 Conector ribbon de 10 pines doble hilera hembra Pin 1 GND Pin 2 INDD bit 4 Tarj.#2 Pin 3 INDD bit 5 Tarj.#2 Pin 4 INDD bit 3 Tarj.#2 Pin 5 INDD bit 2 Tarj #2 Pin 6 INDD bit 6 Tarj #2 Pin DB9 Macho

Pin 9 GND Pin 5 de INDD bit 4 Pin 4 de INDD bit 5 Pin 8 de INDD bit 3 Pin 3 de INDD bit 2 Pin 7 de INDD bit 6 169

Conector ribbon de 10 pines doble hilera hembra Pin 7 INDD bit 1 Tarj #2 Pin 8 INDD bit 7 Tarj #2 Pin 9 INDD bit 0 Tarj #2 10 GND

Pin DB9 Macho Pin 2 de INDD bit 1 Pin 6 de INDD bit 7 Pin 1 de INDD bit 0 A bloque de R.de 1K

Figura A2.3. Disposicin fsica de los elementos en la tarjeta #2

170

Figura A2.4. Lado de soldadura de la Tarjeta # 2

171

ANEXO 3 TARJETA #3 CONVERSIN DE SEAL DIGITAL A ANLOGA Y DIGITAL A DIGITAL (OUT DA OUT DD)
El mdulo de comunicaciones posee 4 de estas tarjetas, cuyo plano electrnico se expone en el PL3 de los planos anexos en la parte final de esta obra. La descripcin electrnica de esta tarjeta se puede realizar en dos partes: CIRCUITO CONVERSOR DE SEAL DIGITAL A ANLOGA Con algunas de las instrucciones 0, 2, 4 6 (segn sea el OUTDA) del segundo nibble de direcciones se carga en el registro IC1 (74LS374) el byte presente en el bus DATOout. El

contenido del byte cargado en este registro es visualizado por medio del IC3 (Bloque de 10 leds) que se encuentra en la parte izquierda del mmico, estos leds son manejados por el amplificador de corriente IC2 (74LS244). Bajo este bloque de leds se encuentra el DL1 (diodo led) marcado en el mmico como carga OUTDA que indica con una luz de color verde cada que es cargado un dato en el registro. Las lneas de salida del registro IC1 llevan el byte almacenado al convertidor Digital/Anloga IC4 (DAC0808). Con el reostato RV1 (reostato de 1K) se calibra el nivel mximo de la seal anloga de salida (referencia positiva) y con RV2 (reostato de 1K) el nivel mnimo o referencia negativa. De este integrado sale la seal anloga por el pin cuatro y entra a un amplificador

operacional del IC5 (1/2 LF353), que permite modificar la ganancia de la seal con el reostato RV4 (reostato de 5K) y modificar el nivel DC de la misma por medio del RV3 (reostato de 5K). La seal as obtenida tiene la posibilidad de pasar por un filtro de aplanamiento RC

(conformado por R6 y C9), mediante el suiche S1 (suiche tipo codillo de dos polos dos posiciones, externo al modulo) que es conmutado a voluntad por el usuario en el mmico. La

seal anloga de salida esta disponible en las borneras tipo banana ubicadas en la parte izquierda del mmico y marcadas como OUTDA.

172

CIRCUITO CONVERTIDOR DE SEAL DIGITAL A DIGITAL Tiene la capacidad de entregar por el conector J3.4 (de salida de la terjeta) un byte cargado del bus DATOout en el IC6 (73LS374) luego de algunas de las Direcciones 1, 3, 5 7 (segn el OUTDD) del segundo nibble de direcciones. Este byte sale por el conector DB9 hembra que aparece en la parte izquierda del mmico como OUTDD, gracias a la correa que une este conector con el J3.4 (correa D/A-D/D1). Este byte, tambin es monitoreado por medio el bloque de leds del IC9 (Bloque de 10 leds), que son manejados por el amplificador de corriente IC7 (74LS244). El led marcado en el mmico como carga OUTDD que indica con un luz de color verde el momento en que se esta cargando el dato en el registro IC6. CONFIGURACIN DE LAS TARJETAS: Al igual que en la tarjeta INAD INDD en este caso tambin tenemos 2 los circuitos en una misma tarjeta para un total de 4 tarjetas con 8 circuitos. Estas tarjetas se deben configurar segn la figura A3.1. Los puntos 1, 2, 3, 4, 5, 6, 7, 8, A y B se encuentran en la figura A3.3 que muestra la disposicin fsica de los componentes de las tarjeta #3.

Figura A3.1 Configuracin de la Tarjeta #3 OUTDA - OUTDD

173

DESTINO Y SEALES EN LOS DIFERENTES CONECTORES DE LA TARJETA #3, OUTDA OUTDD Las seales de cada conector de la tarjeta #3 se listan en la tabla A3.1.
Tabla A3.1 Seales en los diferentes conectores de la tarjeta #3, OUTDA - OUTDD PIN J1 J2 J3 Carga OUTDA1 Carga OUTDD1 Carga OUTDA2 Carga OUTDD2 Carga OUTDA3 Carga OUTDD3 Carga OUTDA4 Carga OUTDA4 Bit 4 DATOout Bit 3 DATOout Bit 5 DATOout Bit 2 DATOout Bit 6 DATOout Bit 1 DATOout Bit 7 DATOout Bit 0 DATOout +5v GND +12v -5v J4 GND Salida OUTDD bit 0 Salida OUTDD bit 7 Salida OUTDD bit 1 Salida OUTDD bit 6 Salida OUTDD bit 2 Salida OUTDD bit 5 Salida OUTDD bit 3 Salida OUTDD bit 4 GND

1 Carga OUTDA1 S. Anloga 2 Carga OUTDD1 GND 3 Carga OUTDA2 4 Carga OUTDD2 5 Carga OUTDA3 6 Carga OUTDD3 7 Carga OUTDA4 8 Carga OUTDD4 9 Bit 4 DATOout 10 Bit 3 DATOout 11 Bit 5 DATOout 12 Bit 2 DATOout 13 Bit 6 DATOout 14 Bit 1 DATOout 15 Bit 7 DATOout 16 Bit 0 DATOout 17 +5v 18 GND 19 +12v 20 -5v

J3.1 Recibe de la tarjeta de control la correa #5. J3.2 Enva la seal anloga de salida al mmico. J3.3 Recibe de la tarjeta de control la correa #5. J3.4 Enva al mmico el byte de salida del OUTDD. La tabla A.3.2 lista las seales en el conector DB9 hembra que entrega en el mmico el byte del D/D y la figura A.3.2 muestra la distribucin fsica de los pines.
Tabla A3.2 Seales en DB9 hembra de salida de seal del OUTDD PIN 1 2 3 4 5 6 7 8 DB9 Macho Salida de OUTDD bit 0 Salida de OUTDD bit 1 Salida de OUTDD bit 2 Salida de OUTDD bit 5 Salida de OUTDD bit 4 Salida de OUTDD bit 7 Salida de OUTDD bit 6 Salida de OUTDD bit 3 174

PIN 9

DB9 Macho GND

Figura A3.2 Disposicin fsica de los pines del conector DB9 hembra

LISTA DE LOS ELEMENTOS DE LA TARJETA #3 D/A-D/D R2, R5, R9 = 270 a de W. R6, R10, R11, R12, R13, R14, R15, R16, R17 = 680 a de W. R1, R3 = 1K a de W. .R7, R8 = 4.7K a de W. R4 = 5.6K a de W. RV1, RV2 = Reostato de 1k. RV3, RV4 = Reostato de 5k. AR1, AR2 = Bloque de 8 resistencias de 270 a de watio con un punto comn. DL1, DL2 = Diodo led de doble polaridad colores rojo y verde. C1, C4, C5, C6, C9 = 0.1F. C7, C8 = 10F/25V. C2, C3, C9, C10 = 100F/16V. IC1, IC6, = 74LS374. IC2, IC7 = 74LS244. IC4 = DAC0808. IC5, IC8 = LF353. IC3, IC9 = Bloque de 10 leds catodo comun de color verde. J3.1, J3.3 = Conector tipo ribbon macho, doble hilera de 20 pines. J3.2 = Conector de 2 pines. J3.4 = Conector tipo ribbon macho, doble hilera de 20 pines. S1 = Suiche tipo codillo de dos polos dos posiciones. La tabla A.3.3 lista el orden de conexin entre los diferentes pines de los conectores DB9 hembra y ribbon hembra 10 pines doble hilera que conforman la correa D/A-D/D1.

175

Tabla A3.3 Correa D/A-D/D1 Pin conector ribbon macho 10pines Pin 1 GND Pin 2 Conector j4 salida digital bit 0 Pin 3 Conector j4 salida digital bit 7 Pin 4 Conector j4 salida digital bit 1 Pin 5 Conector j4 salida digital bit 6 Pin 6 Conector j4 salida digital bit 2 Pin 7 Conector j4 salida digital bit 5 Pin 8 Conector j4 salida digital bit 3 Pin 9 Conector j4 salida digital bit 4 Pin 10 GND Pin DB9 Hembra Out D/D

Pin 1 Salida de OUTDD bit 0 Pin 6 Salida de OUTDD bit 7 Pin 2 Salida de OUTDD bit 1 Pin 7 Salida de OUTDD bit 6 Pin 3 Salida de OUTDD bit 2 Pin 4 Salida de OUTDD bit 5 Pin 8 Salida de OUTDD bit 3 Pin 5 Salida de OUTDD bit 4 Pin 9 GND

Figura A3.3. Disposicin fsica de los elementos en la tarjeta #3, OUTDA - OUTDD

176

Figura A3.4. Lado de soldadura de la Tarjeta # 3

177

ANEXO 4 TARJETA # 4 DE T RANSM ISIN Y RECEPCIN DE SEALES VIA FIBRA PT ICA (T X/RX)
El plano anexo PL4 muestra el plano electrnico de esta tarjeta. Como se observa esta tarjeta recibe la informacin del bus DATOout y almacena el primer nibble (los cuatro bites menos significativos) en el IC1 y el segundo en el IC2 (ambos 74LS194, se dispusieron dos integrados en cascada ya que cada integrado solo maneja 4 bits,). Estos integrados estn configurados como registros de desplazamiento a la izquierda (el primer bit en salir del MSB), almacenan la informacin a desplazar cuando reciben un nivel alto en el pin 10 de cada uno de ellos ocasionado por la instruccin 8 del segundo nibble de direcciones. Una vez almacenado el byte esperan la seal de reloj por el pin 11 para iniciar el desplazamiento. El contenido del registro que se va desplazando, es visualizado en todo momento en el bloque de leds del IC14 que en el mmico esta ubicado en la parte superior derecha y que son manejados directamente por los IC1 e IC2. Por el pin 12 del IC2 salen los bits almacenados en forma serial hasta uno de los amplificadores operacionales del IC3 (1/2 LF353), este excita la base del TR1 (transistor 2N2222) que maneja el convertidor electro-ptico transmisor (Tx) que enva la seal por la fibra ptica. La seal que sale por la fibra ptica es monitoreada por medio del led DL1 que en el mmico aparece en la lnea que comunica el bloque de leds con el convertidor electro-ptico transmisor. Al pin 1 del IC3, tambin esta conectado el control de tres suiches anlogos (pines 5, 12 y 13) del IC4 (CD4066), el primer y segundo extremo de estos suiches (pines 2, 3, 11 y 1, 4, 10 respectivamente) son llevados al exterior del modulo por el conector J4.2 en los pines dos y tres, esto con el fin de tener en el exterior del modulo un contacto libre de potencial que se sierra con cada bit transmitido, til en posteriores conexiones al modulo. Por el conector J4.4 ingresan las seales provenientes del convertidor electro-ptico receptor (Rx) a un amplificador inversor de corriente de uno de los operacionales de IC3; a la salida de este se conectan el led piloto DL2 que monitorea la recesin de la seal (en el mmico ubicado en la lnea que une el convertidor electro-ptico Rx con el bloque de l ds del registro receptor) y el e
178

pin 1 del IC5 (74LS164). El IC5 esta configurado como registro de desplazamiento izquierdo y con cada pulso de reloj recibido por el pin 8 desplaza su registro un bit a la izquierda capturando de esta forma el bit serial que ingresa por el pin 1. El contenido de este registro es amplificado en corriente por el IC6 (74HC244) y visualizado en todo momento por medio del bloque de leds del IC15 ubicado en la parte superior izquierda del mmico. El byte contenido en el IC5, es almacenado con cada pulso del reloj en un registro Con la instruccin Dh del primer nibble de

conformado por el IC7 (74 LS374), registro. direcciones entrega sus datos al bus DATOin.

El pin 1 del conector J4.2 maneja al control (pin 6) de un suiche anlogo del IC4, este suiche tiene en uno de sus extremos la resistencia R4 (1K) conectado a tierra y el otro extremo conectado al pin 6 del IC3 que recibe la seal del receptor electro-optico. De esta manera al ingresar un nivel alto por el pin 1 del J4.2 el suiche se activara y el sistema recibir una seal como si fuera procedente del receptor electro-ptico, siendo una forma alternativa de transmisin de seal. El conector J4.2 enva y recibe seales provenientes del mmico por medio de la correa Tx/Rx1, que tiene como salida el conector DB9 hembra que enva y recibe seales elctricas de la transmisin paralela, esta ubicado en el frente superior del modulo. Las seales en cada uno de los pines y la disposicin fsica de los pines de este conector se listan en la tabla A4.2 y la figura A4.1. La seal de reloj maneja el desplazamiento de los dos registros, esta seal es tomada del circuito de reloj de transmisin TX/RX de la tarjeta de control y mediante un conteo de pulsos efectuado por el IC8 (XR2240), permite que a estos integrados les llegue trenes de ocho pulsos por sus entradas de reloj, para ello utiliza un circuito combinacional elaborado con algunas compuertas de los integrados IC12 e IC11. El circuito contador de pulsos de reloj debe ser iniciado por software con la instruccin 9 del segundo nibble de direcciones, esta coloca los bits del registro de recepcin (IC5) en estado bajo y al mismo tiempo las lneas del IC8 (XR2240) Cuando las lneas del IC8 estn en ceros, el circuito combinacional conectado a ellas permiten el paso de ocho pulsos del reloj TX/RX hacia las lneas de reloj de los circuitos transmisor y receptor para que estos efecten los desplazamientos de los registros antes explicados, al llegar el octavo pulso las primeras tres lneas del IC8 (pines 1, 2 y 3) se ponen en uno y el circuito combinacional

179

bloquea el paso del reloj TX/RX hasta que sea reiniciado de nuevo por la direccin 9h del segundo nibble de direcciones. El IC9 (74LS244) por medio de la instruccin Eh del primer nibble de direcciones, entrega al bus DATOin, la informacin referente a la cantidad de bits que se han transmitido despus de la ltima orden de inicio de transmisin, de esta manera el PC puede conocer el momento en que llega el ultimo bit de un byte transmitido en forma serial y proceder a su lectura sin incurrir en errores. DESTINO Y SEALES DE LOS DIFERENTES CONECTORES DE LA TARJETA TX/RX:
Tabla A4.1 Seales en los diferentes conectores de la tarjeta de Tx/Rx PIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 J4.1 J4.2 J4.3 J4.4 J4.5

GND Seal de entrada datos serie GND Term. 1 seal de salida serie +5v Term. 2 seal de salida serie +5v NC Lee recept. de tx -5v. CK de TX/RX -5v. Bit 7 DATOout +5v. Bit 0 DATOout +5v. Bit 1 DATOout GND Bit 6 DATOout GND Bit 2 DATOout Bit 5 DATOout Bit 3 DATOout Bit 4 DATOout Bit 4 DATOin Bit 3 DATOin Bit 5 DATOin Bit 2 DATOin Bit 6 DATOin Bit 1 DATOin Bit 7 DATOin Bit 0 DATOin Seal de inicio de Tx. Carga de transmisor Lee contador de bits transm. 5V.

1 Electro-ptico Tx 1 Electro-ptico Rx Inicio TX 2 Electro-ptico Tx 2 Electro-ptico Rx Tren Ck Tx

Por el conector J4.5 se enva al puerto de verificacin las seales de inicio de transmisin (pin uno) y el tren de ocho pulsos que marca el desplazamiento de los registros (pin dos); seales que

180

son necesarias en el modulo de insercin de bits que se conectar a este posteriormente. De la tabla A4.1 tenemos: J4.1 Enva y recibe seales a la tarjeta de control. J4.2 Enva y recibe seales elctricas de la transmisin serie procedentes del exterior del modulo. J4.3 Enva seales al conversor elctro-ptico transmisor. J4.4 Recibe seales del conversor elctro-ptico receptor. J4.5 Enva seales al puerto de verificacin.
Tabla A4.2 Seales elctricas de entrada y salida de seal serie enviadas por la fibra ptca Pin 1 2 3 4 5 6 7 8 9 Conector DB9 hembra Seal de entrada datos serie * Term. 1 seal de salida serie ** Term. 2 seal de salida serie ** GND GND -5v. -5v. +5v. +5v.

Figura A4.1 Orden de los pines en el conector DB9 hembra de entrada y salida de seal serie.

Nota #1: La seal que entra por este pin debe ser invertida y en un rango de cero a cinco voltios. Nota #2: Estos pines no poseen ningn tipo de seal, se trata de los extremos de un contacto que se sierra con cada estado alto que se transmita. La distribucin fsica de los pines del conector DB9 hembra se muestra en la figura A.4.1. LISTA DE ELEMENTOS DE LA TARJETA TX/RX: R3 = 150 a de w.
181

R1, R6, R8, R9, R10 = 680 a de w. R4, R7, R11 = 1K a de w. R2 = 2.2K a de w. R5, R13, R14, R15, R16, R18 =4.7K a de w. R12 =10K a de w. R19 = 27K a de w. R17 = 150K a de w. AR1, AR2 = Bloque de 9 resistencias de 680 a 1/8 de watio con un punto comn. RV1 = Reostato variable de 50K. D1, D2, D3 = Diodo de suicheo. DL1, DL2, DL3, DL4, DL5 = Diodo led de doble polaridad colores rojo y verde. C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C13, C14 =0.1F. C11 =10F/25v. C12 = 2200F/16v. C15 = 100PF. C16 = 100F/16v.. IC1, IC2 =74LS194 IC3 = LF353 IC4 = CD4066 IC5 = 74LS164 IC6, IC9 = 74HC244 IC7 = 74LS374 IC8 = XR2240 IC10 = 74LS32
182

IC11 = 74HC14 IC12, IC13 = 74HC08 IC14, IC15 = Bloque de 10 leds catodo comun color verde. Conversor electro-ptico transmisor = Diodo led emisor infrarrojo con carcaza y sistema de agarre de la fibra ptica con tornillo, cuyas caractersticas se encuentran en el anexo 7 Conversor electro-ptico receptor = Receptor infrarrojo con carcaza y sistema de agarre de la fibra ptica con tornillo, cuyas caractersticas se encuentran en el anexo 7 J4.1 = Conector tipo ribbon macho, doble hilera de 26 pines. J4.2 = Conector tipo ribbon macho, doble hilera de 10 pines. J4.3, J4.4 y J4.5 = Conector blanco de dos pines. La tabla 4.3 indica la conexin entre los conectores Ribbon hembra doble hilera diez pines y DB9 hembra de la correa TX/RX1.
Tabla A.4.3 Correa TX/RX1 Conector ribbon hembra 10 pines Pin 1 Seal de entrada datos serie Pin 2 Term. 1 seal de salida serie Pin 3 Term. 2 seal de salida serie Pin 4 NC Pin 5 -5v. Pin 6 -5v. Pin 7 +5v. Pin 8 +5v. Pin 9 GND Pin 10 GND Conrctor DB9 hembra Pin 1 Seal de entrada datos serie Pin 2 Term. 1 seal de salida serie Pin 3 Term. 2 seal de salida serie NC. Pin 6 -5v. Pin 7 -5v. Pin 8 +5v. Pin 9 +5v. Pin 4 GND Pin 5 GND

183

Figura A4.1. Disposicin fsica de los elementos en la tarjeta #4

184

Figura A4.2 Lado de soldadura de la tarjeta#4

185

ANEXO 5 TARJETA #5 M DULO DE INSERCIN DE BIT S


Este circuito es externo al modulo de comunicaciones, se conecta al puerto de verificacin por medio de la correa Inser1; el plano electrnico de esta tarjeta se ilustra en el PL5 de la parte final de la obra. DESCRIPCIN DE LA TARJETA El modulo de insercin de bits, recibe por su conversor elctro-ptico receptor, las seales luminosas (en el infrarrojo) de la fibra ptica provenientes del conversor elctro-ptico transmisor del modulo de comunicaciones. Esta seal llega a uno de los amplificadores

operacionales del IC1 (1/2 LF353), donde es amplificada e invertida (de esta manera la seal vuelve a su estado original ya que el conversor de entrada la invierte). El reostato RV1 (de

50K) sirve para dar mayor o menor sensibilidad a la deteccin de la seal de entrada, este marca una referencia de comparacin. La seal de salida de este operacional (pin 7) va a tres partes: al led de monitoreo DL1 ( diodo led color rojo); a un amplificador operacional inversor del IC1 (1/2 IC353, pin dos) cuya seal de salida va al pin tres del suiche S1 (suiche tipo codillo de un polo, tres posiciones); y a R3 (resistencia de 4.7K). Por la resistensia R3 se transmite la seal a los terminales de ocho suiches electrnicos anlogos de los IC2 e IC3 (ambos CD4066), a R4 (resistencia de 10K) que maneja la base del Tr1 (transistor 2N2222) amplificador de corriente del conversor electro-ptico transmisor de la tarjeta. En paralelo con este esta conectado un led monitor de transmisin DL2 (Diodo led de color rojo). De esta manera si ninguno de los suiches de los IC2 e IC3 se sierran, la seal

transmitida seria la misma seal de entrada. En el otro extremo de los suiche anlogos (pines 1, 4, 8 y 11 de los IC2 e IC3), tenemos el centro del suiche selector S1 que conecta en la posicin uno el extremo de los suiches anlogos al voltaje de la fuente de cinco voltios; en la posicin dos (centro) no se conecta a ninguna parte que dando por R13 (de 680) con una resistensia de 680 a tierra; en la posicin tres (ultima) conecta a los suiches anlogos al pin uno del IC1 que tiene la inversin de la seal de entrada.
186

As si uno de los suiches anlogos se sierra, dependiendo de la posicin de suiche S1 se tendr en el conversor elctro-optico transmisor y en el DL2 un nivel alto (led encendido) con la posicin uno; un nivel bajo (led apagado) con la posicin dos y la inversin de la seal de entrada con la posicin tres. La posicin del bit que se quiere modificar se selecciona con el bloque de suiches S2 (ocho disuiches) que maneja las seales de control de los suiches anlogos del IC2 e IC3. El IC4 es un contador de dcadas que recibe del conector J5.1 (pines 1 y 2), las seales de inicio (que coloca en cero el contador) y las seales de reloj de transmisin (que son los ocho pulsos que en la tarjeta # 4 TX/RX, manejan el desplazamiento de los registros en la transmisin serie de un byte). En las ocho primeras posiciones de salida del IC4 (pines 3, 2, 4, 7, 10, 1, 5 y 6 respectivamente) se encuentran conectados ocho leds del IC5 (bloque de 10 leds), con cada pulso del reloj de transmisin que le llega por el pin 14, desplaza una posicin a la derecha un nivel alto (led encendido) en los led del IC5. De esta manera por la ubicacin del led encendido en el IC5 puedo conocerse el bit que se esta transmitiendo. Este nivel positivo que se desplaza con cada pulso del reloj de transmisin en aprovechado por el bloque de disuiches S2 que en un extremo de sus suiches tienen conectado los terminales de salida del IC4 y en el otro extremo, los pines (pines 5, 6, 12,y 13) de control de cada uno de los suiches anlogos de los IC2 e IC3. De esta manera si no se sierra ninguno de los disuiches del S2, ningn suiche anlogo se serrara y la seal de entrada sera igual a la seal de salida. Si por ejemplo se sierra el segundo disuiche del S2, al llegar el segundo pulso del reloj de transmisin indicando que se esta transmitiendo el segundo bit, el p in 2 del IC4 estar en alto, el disuich dos activara el correspondiente suiche anlogo del IC2 (pin de activacin 5 y extremos del suiche en los pines pines 4 y 3) y de esta manera la seal de salida del segundo bit depende de la posicin del S1 (uno, cero o invertida). En este caso, solo afecta el segundo bit ya que solo tengo activado el segundo suiche de S2. De esta manera es posible intervenir cualquiera de los bits de un byte que se este transmitiendo desde el modulo. La conexin del mdulo de insercin de bits al puerto de verificacin del modulo de comunicaciones se realiza por medio del cable Inser1 (tabla 5.2). La fibra ptica que sale del modulo de comunicaciones (conector azul) se lleva al conector de entrada del modulo de

187

insercin de bits (conector negro); y el conector de salida del modulo de insercin de bits (conector azul) se lleva al conecto de entrada del modulo de comunicaciones (conector negro). Para operar el mdulo de insercin de bits se selecciona primero el bit o los bits a intervenir por medio de los suiches del bloque S2 y luego se elige por medio de S1 si se quieren insertar unos, ceros o invertir el bit. Es importante tener en cuenta que esta operacin se realizara en forma permanente para todos los bytes que se transmitan mientras exista la configuracin elegida. SEALES EN EL CONECTOR J5.1 DE LA TARJETA DEL MODULO DE INSERCIN DE BITS: La siguiente tabla ilustra la disposicin de las seales entre el conector J5.1 y DB9 de la tarjeta de insercin de bits.
Tabla A5.1 Seal en el conectores J5.1 o DB9 hembra de la tarjeta del modulo de insercin de bits PIN 1 2 3 4 5 6 7 8 9 10 J5.1 o DB9 macho Pin 1 Seal de Inicio transmisin Pin 2 Seal de reloj de transmisin * Pin 3 +5v. Pin 4 -5v. Pin 5 GND Pin 6 NC Pin 7NC Pin 8 NC Pin 9 NC Pin 10 +5v.

Nota #1: Se trata del tren de ocho pulsos que maneja el desplazamiento de los bites en los registros de transmisin y recepcin. La disposicin fsica de los pines del conector DB9 macho, se expuso en el anexo 2 figura A.2.3.
Tabla A5.1 Seal en el conectores J5.1 o DB9 hembra de la tarjeta del mod. de insercin de bits PIN 1 2 3 4 5 6 7 J5.1 o DB9 macho Pin 1 Seal de Inicio transmicin Pin 2 Seal de reloj de transmisin * Pin 3 +5v. Pin 4 -5v. Pin 5 GND Pin 6 NC Pin 7NC 188

PIN 8 9 10

J5.1 o DB9 macho Pin 8 NC Pin 9 NC Pin 10 +5v.

Nota #1: Se trata del tren de ocho pulsos que maneja el desplazamiento de los bites en los registros de transmisin y recepcin. La disposicin fsica de los pines del conector DB9 macho, se ilustro en el anexo 2 figura A.2.3. LISTA DE ELEMENTOS DE LA TARJETA #5 R7 = 150 a de W. R12 = 470 a de W. R2, R6, R13 = 680 a de W. R8, R10 = 1K a de W. R3 = 4.7K a de W. R4 = 10K a de W. R9, R11 = 18K a de W. R5 = 39K a de W. R1 = 150K a de W. AR1 = Bloque de 9 resistencias de 5.6K a 1/8 de watio con un punto comn. RV1 = Reostato de 50K D1 = 1n4004 DL1, DL2 = Diodo led de color rojo C1, C3, C4 = 0.1F. C2 = 100F. IC1 = LF353 IC2, IC3 = CD 4066 IC4 = HEF4017 IC5 = Bloque de 10 leds catodo comun de color verde. TR1 = Transistor 2N2222 S1 = suiche tipo codillo de un polo tres posiciones. S2 = Bloque de ocho disuiches J5.1 = Conector DB9 macho.

189

Conversor electro-ptico transmisor = Diodo led emisor infrarrojo con carcaza y sistema de agarre de la fibra ptica con tornillo (color azul), con caractersticas en el anexo 7 Conversor electro-ptico receptor = Diodo led receptor infrarrojo con carcaza y sistema de agarre de la fibra ptica con tornillo (color negro). con caractersticas en el anexo 7 La tabla A5.2 lista la conexin entre el conector DB9 hembra y DB37 macho del cable Inser1.
Tabla A.5.2 Cable Inser1 Conector DB9 hembra Pin 1 Seal de Inicio transmicin Pin 2 Seal de reloj de transmisin Pin 3 +5v. Pin 4 -5v. Pin 5 GND Pin 6 NC Pin 7NC Pin 8 NC Pin 9 NC Pin 10 +5v. Conector DB37 macho Pin 20 Pulso de inicio de transmisin Pin 18 Div. de frec. del Ck maestro para Tx. Pin 35 +5v. Pin 36 -5v. Pin 1 GND. N.C. N.C. N.C. N.C. Pin 35 +5v.

Figura A5.1 Distribucin fsica de los elementos de la tarjeta #5

190

Figura A5.2 Lado de soldadura de la tarjeta #5

191

ANEXO 6 CDIGO FUENT E DEL PROGRAM A M ODCOM

PROGRAMA PRINCIPAL
' ** Software del equipo sistema basico de comunicacion por fibra optica ** ' *************************** Programa principal ************************** DECLARE SUB Cuadro (Cu%, s%, Archivo$) DECLARE SUB Botonselec (s%, Cu%, Aux%, Archivo$) DECLARE SUB Vizcuadroconfi (Archivo$) DECLARE SUB Llenadocuadroconfi (Archivo$) DECLARE SUB FILTRO (Xc%, Yc%, F$, Cant%, Nom$, dir%) DECLARE SUB Ayuda (Cu%, s%, Aux%) DECLARE SUB Crearabrirarchivo (s%, Aux%, Archivo$) DECLARE SUB Ejecucionprog (Totalgraficos%, Ga%, Totallineas%) DECLARE SUB Editordetexto (Totallineas%) DECLARE SUB Mensage (Corr%, Grupoant%, Anterior$) TYPE TipoRegistro Nombre AS STRING * 8 Fciamues AS STRING * 6 Visual AS STRING * 1 Conficuadro AS STRING * 6 Codtext AS STRING * 69 END TYPE DIM SHARED Archi AS TipoRegistro DEFSTR A-Z COMMON Da%, Sa%, Ca% SCREEN 12 OPTION BASE 1 DIM SHARED Xcoorcu(6, 2) AS INTEGER'Coordenada X para dibujar el cuadro DIM SHARED Ycoorcu(6, 2) AS INTEGER'Coordenada Y para dibujar el cuadro DIM SHARED Xcoort(6, 2) AS INTEGER 'Coordenada X para titulo en el cuadro DIM SHARED Ycoort(6, 2) AS INTEGER 'Coordenada Y para titulo en el cuadro DIM SHARED Xcoorb(6, 7) AS INTEGER 'Coordenada X para un boton en el cuadro DIM SHARED Ycoorb(6, 7) AS INTEGER 'Coordenada Y para un boton en el cuadro DIM SHARED Tb(6) AS INTEGER 'Total de botones en un cuadro DIM SHARED Tit(6, 2) AS STRING 'Titulo de un cuadro DIM SHARED Nb(6, 6) AS STRING 'Nombre del boton DIM SHARED Maux(5, 21) AS STRING 'Matriz auxiliar para manejar un registro DIM SHARED Mnueva(5, 21) AS STRING 'Matriz por defecto DIM SHARED Xccon(17) AS INTEGER 'X para un registro en cuadro de visual DIM SHARED Nccon(18) AS STRING 'Nombres de campos en cuadro de visual DIM SHARED F(6) AS STRING DIM SHARED Xg(5) AS INTEGER DIM SHARED Yg(5) AS INTEGER 'Valor de Xninima en cuadro 'Valor de Yninima en cuadro 192

DIM DIM DIM DIM DIM DIM DIM DIM DIM DIM DIM DIM DIM

SHARED SHARED SHARED SHARED SHARED SHARED SHARED SHARED SHARED SHARED SHARED SHARED SHARED

Xmin(6) AS INTEGER 'Valor de Xninima en cuadro grafico Ymin(6) AS INTEGER 'Valor de Yninima en cuadro grafico Xmax(6) AS INTEGER 'Valor de Xmaxima en cuadro grafico Ymax(6) AS INTEGER 'Valor de Xmaxima en cuadro grafico Nombra(5) AS STRING 'Nombre para cuadro grafico analogo Nombrd(5) AS STRING 'Nombre para cuadro grafico digital ms(6) AS SINGLE 'Valor de escala en eje x grafico grafico(5) AS INTEGER 'Indica numero graficos Comun(5) AS INTEGER 'Graficas multiples Paso(6) AS INTEGER 'Tamao de la cuadricula en el eje x Col(5) AS INTEGER 'Color con el que se va a graficar Multiplicador(6) AS SINGLE 'Da el factor escala de la grafica Avance(6) AS INTEGER 'Avance en la realizacion del grafico

DIM SHARED Dato(17) AS INTEGER 'Valores datos de programa de usuario DIM SHARED Inst(17) AS INTEGER 'Matriz de instrucciones DIM SHARED X(5) AS INTEGER DIM SHARED OUTDA(4) AS INTEGER DIM SHARED OUTDD(17) AS INTEGER DIM SHARED Numck(163) AS STRING 'Frecuencias del reloj maestro DIM SHARED Codck(163) AS INTEGER 'Codigos binarios para fc. CK. maestro. DIM SHARED Coddivck(8) AS INTEGER 'Codigos binarios Div. CK maestro DIM SHARED Codprogdivck(9) AS INTEGER'Codigos hexadecimales para programacion de diviciones de frecuencia DIM SHARED Instotal(9) AS INTEGER 'Instrucciones de salida para programacion DIM SHARED Datoout(9) AS INTEGER 'Matriz de datos de salida DIM SHARED Datoin(9) AS INTEGER 'Matriz de datos de entrada DIM SHARED Datooutr(10) AS INTEGER 'Matriz de datos de salida rela DIM SHARED Datoinr(9) AS INTEGER 'Matriz de datos de entrada real DIM SHARED Datoinant(9) AS INTEGER 'Guarda el datoin ultimo graficado DIM SHARED Datooutant(9) AS INTEGER'Guarda el datoout ultimo graficado DIM SHARED Progencar(22) AS STRING 'Contiene el programa en caracteres DIM SHARED Arr(11000) AS INTEGER 'Visualizar mensages de error DIM SHARED Codigo(25) AS STRING 'Programa usuario en codigo numerico DIM SHARED Codigoexe(25) AS STRING 'Programa usu. cod. numerico de ejecucion DIM SHARED Mprog(58) AS SINGLE 'Matriz de variables de programa ERASE Maux Archivo$ = "" ' *********** Coordenadas para dibujar los diferentes cuadros ************ ' ************************ Primero portada principal ********************* Xcoorcu%(1, 1) = 75: Ycoorcu%(1, 1) = 78 Xcoorcu%(1, 2) = 562: Ycoorcu%(1, 2) = 390 Xcoort%(1, 1) = 35: Ycoort%(1, 1) = 13: Tit$(1, 1) = "BIENVENIDOS" Xcoort%(1, 2) = 17: Ycoort%(1, 2) = 15 Tit$(1, 2) = "SISTEMA BASICO DE COMUNICACION POR FIBRA OPTICA" Tb%(1) = 3 Xcoorb%(1, 1) = 21: Ycoorb%(1, 1) = 23: Nb$(1, 1) = " AYUDA " Xcoorb%(1, 2) = 36: Ycoorb%(1, 2) = 23: Nb$(1, 2) = " SEGUIR " Xcoorb%(1, 3) = 52: Ycoorb%(1, 3) = 23: Nb$(1, 3) = "CANCELAR" ' *********************** Segundo configuracion ************************ Xcoorcu%(2, 1) = 35: Ycoorcu%(2, 1) = 3 Xcoorcu%(2, 2) = 602: Ycoorcu%(2, 2) = 460 Xcoort%(2, 1) = 19: Ycoort%(2, 1) = 2 Tit$(2, 1) = "ESPECIFICACIONES GENERALES Y DE CADA CANAL" Xcoort%(2, 2) = 22: Ycoort%(2, 2) = 3 Tit$(2, 2) = "SEGUN EL ARCHIVO DE PROGRAMACION " Tb%(2) = 6 193

Xcoorb%(2, 1) = 8: Ycoorb%(2, 1) = 28: Nb$(2, 1) = "REGRESAR" Xcoorb%(2, 2) = 20: Ycoorb%(2, 2) = 28: Nb$(2, 2) = "NUEV/ABR" Xcoorb%(2, 3) = 31: Ycoorb%(2, 3) = 28: Nb$(2, 3) = "GUAR/ELI" Xcoorb%(2, 4) = 42: Ycoorb%(2, 4) = 28: Nb$(2, 4) = "ACEPTAR" Xcoorb%(2, 5) = 53: Ycoorb%(2, 5) = 28: Nb$(2, 5) = " AYUDA" Xcoorb%(2, 6) = 65: Ycoorb%(2, 6) = 28: Nb$(2, 6) = "CORREGIR" ' ************************* Tercero graficas **************************** Xcoorcu%(3, 1) = 7: Ycoorcu%(3, 1) = 7 Xcoorcu%(3, 2) = 632: Ycoorcu%(3, 2) = 472 Xcoort%(3, 1) = 17: Ycoort%(3, 1) = 2 Tit$(3, 1) = "VISUALIZACION GRAFICA DE LOS CANALES SELECCIONADOS" Xcoort%(3, 2) = 34: Ycoort%(3, 2) = 3: Tit$(3, 2) = "SEGUN PROGRAMA" Tb%(3) = 6 Xcoorb%(3, 1) = 8: Ycoorb%(3, 1) = 28: Nb$(3, 1) = "REGRESAR" Xcoorb%(3, 2) = 20: Ycoorb%(3, 2) = 28: Nb$(3, 2) = "ABRIR P." Xcoorb%(3, 3) = 31: Ycoorb%(3, 3) = 28: Nb$(3, 3) = "INI/DET" Xcoorb%(3, 4) = 42: Ycoorb%(3, 4) = 28: Nb$(3, 4) = " AYUDA " Xcoorb%(3, 5) = 53: Ycoorb%(3, 5) = 28: Nb$(3, 5) = "PROG.EXT" Xcoorb%(3, 6) = 65: Ycoorb%(3, 6) = 28: Nb$(3, 6) = " SALIR " ' ******************************* Cuarto ayudas ************************* Xcoorcu%(4, 1) = 75: Ycoorcu%(4, 1) = 78 Xcoorcu%(4, 2) = 562: Ycoorcu%(4, 2) = 390 Xcoort%(4, 1) = 15: Ycoort%(4, 1) = 7 Tit$(4, 1) = "AYUDAS Y SUGERENCIAS PARA EL CORRECTO FUNCIONAMIENTO" Xcoort%(4, 2) = 19: Ycoort%(4, 2) = 8 Tit$(4, 2) = "DEL MODULO DE COMUNICACION POR FIBRA OPTICA" Tb%(4) = 1 Xcoorb%(4, 1) = 37: Ycoorb%(4, 1) = 23: Nb$(4, 1) = "ACEPTAR" ' ***************************** Quinto salida *************************** Xcoorcu%(5, 1) = 75: Ycoorcu%(5, 1) = 78 Xcoorcu%(5, 2) = 562: Ycoorcu%(5, 2) = 390 Xcoort%(5, 1) = 16: Ycoort%(5, 1) = 13 Tit$(5, 1) = "SI DECEA GUARDAR EL ARCHIVO DE PROGRAMACION " Xcoort%(5, 2) = 19: Ycoort%(5, 2) = 15 Tit$(5, 2) = "PARA UNA POSTERIOR UTILIZACION ELIJA GUARDAR" Tb%(5) = 3 Xcoorb%(5, 1) = 21: Ycoorb%(5, 1) = 23: Nb$(5, 1) = "REGRESAR" Xcoorb%(5, 2) = 36: Ycoorb%(5, 2) = 23: Nb$(5, 2) = "GUARDAR" Xcoorb%(5, 3) = 52: Ycoorb%(5, 3) = 23: Nb$(5, 3) = " SALIR " ' *********************** Sexto edicion de programa ********************* Xcoorcu%(6, 1) = 30: Ycoorcu%(6, 1) = 30 Xcoorcu%(6, 2) = 610: Ycoorcu%(6, 2) = 465 Xcoort%(6, 1) = 27: Ycoort%(6, 1) = 4: Tit$(6, 1) = "EDICION DEL PROGRAMA" Xcoort%(6, 2) = 34: Ycoort%(6, 2) = 3: Tit$(6, 2) = "" Tb%(6) = 3 Xcoorb%(6, 1) = 24: Ycoorb%(6, 1) = 28: Nb$(6, 1) = "REGRESAR" Xcoorb%(6, 2) = 37: Ycoorb%(6, 2) = 28: Nb$(6, 2) = "CORREGIR" Xcoorb%(6, 3) = 50: Ycoorb%(6, 3) = 28: Nb$(6, 3) = " AYUDA " '******** Coordenadas para visualizar un registro en la pantalla ******** Xccon%(1) = 11: Xccon%(2) = 18: Xccon%(3) = 38: Xccon%(4) = 58 Xccon%(5) = 10: Xccon%(6) = 22: Xccon%(7) = 35: Xccon%(8) = 47 Xccon%(9) = 61: Xccon%(10) = 13: Xccon%(11) = 27: Xccon%(12) = 41 Xccon%(13) = 58: Xccon%(14) = 12: Xccon%(15) = 25: Xccon%(16) = 42 Xccon%(17) = 61: Nccon$(1) = "LTP ": Nccon$(2) = "F.CK MAES. " Nccon$(3) = "DATOin=DATOout ": Nccon$(4) = "CONTROL OUT " Nccon$(5) = "#IN A/D ": Nccon$(6) = "#IN D/D ": Nccon$(7) = "TX/RX " Nccon$(8) = "#OUT D/A ": Nccon$(9) = "#OUT D/D ": Nccon$(10) = "CANAL" 194

Nccon$(11) = "NOMBRE": Nccon$(12) = "FCIA. MUES-TX" Nccon$(13) = "VISUALIZAR": Nccon$(14) = "IN A/D": Nccon$(15) = "IN D/D" Nccon$(16) = "TX/RX": Nccon$(17) = "OUT D/A": Nccon$(18) = "OUT D/D" '********************** Filtros para el ingreso de datos ****************** F$(1) = "123": F$(2) = "0123456789" F$(3) = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" F$(3) = F$(3) + "1234567890+-.,;:*/\#" F$(4) = "SNsn": F$(5) = "01234": F$(6) = "01" '*************************** Matriz generica **************************** Mnueva$(4, 1) = "1": Mnueva$(4, 2) = "602": Mnueva$(4, 3) = "N" Mnueva$(4, 4) = "N": Mnueva$(4, 5) = "1": Mnueva$(4, 6) = "0" Mnueva$(4, 7) = "0": Mnueva$(4, 8) = "0": Mnueva$(4, 9) = "0" Mnueva$(1, 1) = "A/D#1": Mnueva$(1, 2) = "A/D#2": Mnueva$(1, 3) = "A/D#3" Mnueva$(1, 4) = "A/D#4": Mnueva$(1, 5) = "IND/D#1": Mnueva$(1, 6) = "IND/D#2" Mnueva$(1, 7) = "IND/D#3": Mnueva$(1, 8) = "IND/D#4": Mnueva$(1, 9) = "TX/RX" Mnueva$(1, 10) = "OUTD/A#1": Mnueva$(1, 11) = "OUTD/A#2" Mnueva$(1, 12) = "OUTD/A#3": Mnueva$(1, 13) = "OUTD/A#4" Mnueva$(1, 14) = "OUTD/D#1": Mnueva$(1, 15) = "OUTD/D#2" Mnueva$(1, 16) = "OUTD/D#3": Mnueva$(1, 17) = "OUTD/D#4" Mnueva$(2, 1) = "301" FOR Yl% = 2 TO 21 Mnueva$(2, Yl%) = " " Mnueva$(3, Yl%) = "N" Mnueva$(5, Yl%) = "" NEXT Yl% Mnueva$(3, 1) = "S" Mnueva$(5, 1) = "" '****************** Matriz de datos de frecuencia de reloj **************** 'Baja frecuencia Numck$(1) = "867": Numck$(2) = "884": Numck$(3) = "903": Numck$(4) = "920" Numck$(5) = "938": Numck$(6) = "956": Numck$(7) = "973": Numck$(8) = "991" Numck$(9) = "1000": Numck$(10) = "1027": Numck$(11) = "1046" Numck$(12) = "1063": Numck$(13) = "1082": Numck$(14) = "1108" Numck$(15) = "1126": Numck$(16) = "1152": Numck$(17) = "1178" Numck$(18) = "1205": Numck$(19) = "1224": Numck$(20) = "1250" Numck$(21) = "1278": Numck$(22) = "1296": Numck$(23) = "1323" Numck$(24) = "1350": Numck$(25) = "1368": Numck$(26) = "1395" Numck$(27) = "1422": Numck$(28) = "1440": Numck$(29) = "1466" Numck$(30) = "1494": Numck$(31) = "1511": Numck$(32) = "1566" Numck$(33) = "1585": Numck$(34) = "1611": Numck$(35) = "1638" Numck$(36) = "1657": Numck$(37) = "1684": Numck$(38) = "1711" Numck$(39) = "1737": Numck$(40) = "1755": Numck$(41) = "1782" Numck$(42) = "1809": Numck$(43) = "1836": Numck$(44) = "1854" Numck$(45) = "1882": Numck$(46) = "1900": Numck$(47) = "1927" Numck$(48) = "1954": Numck$(49) = "1981": Numck$(50) = "2000" Numck$(51) = "2030": Numck$(52) = "2048": Numck$(53) = "2075" Numck$(54) = "2100": Numck$(55) = "2120": Numck$(56) = "2147" Numck$(57) = "2174": Numck$(58) = "2200": Numck$(59) = "2220" Numck$(60) = "2247": Numck$(61) = "2274": Numck$(62) = "2300" Numck$(63) = "2326": Numck$(64) = "2345": Numck$(65) = "2371" Numck$(66) = "2396": Numck$(67) = "2425": Numck$(68) = "2442" Numck$(69) = "2469": Numck$(70) = "2496": Numck$(71) = "2514" Numck$(72) = "2541": Numck$(73) = "2567": Numck$(74) = "2600" Numck$(75) = "2629": Numck$(76) = "2646": Numck$(77) = "2664" Numck$(78) = "2691": Numck$(79) = "2716": Numck$(80) = "2744" Numck$(81) = "2770": Numck$(82) = "2795": Numck$(83) = "2814" Numck$(84) = "2840": Numck$(85) = "2866": Numck$(86) = "2882" 195

Numck$(87) = "2908": Numck$(88) = "2949": Numck$(89) = "2974" Numck$(90) = "2990": Numck$(91) = "3023": Numck$(92) = "3048" Numck$(93) = "3070": Numck$(94) = "3100": Numck$(95) = "3127" 'Alta frecuencia Numck$(96) = "4067": Numck$(97) = "4144": Numck$(98) = "4231" Numck$(99) = "4354": Numck$(100) = "4518": Numck$(101) = "4644" Numck$(102) = "4771": Numck$(103) = "4937": Numck$(104) = "5145" Numck$(105) = "5270": Numck$(106) = "5387": Numck$(107) = "5510" Numck$(108) = "5635": Numck$(109) = "5800": Numck$(110) = "5968" Numck$(111) = "6135": Numck$(112) = "6261": Numck$(113) = "6467" Numck$(114) = "6633": Numck$(115) = "6796": Numck$(116) = "6963" Numck$(117) = "7212": Numck$(118) = "7334": Numck$(119) = "7421" Numck$(120) = "7627": Numck$(121) = "7793": Numck$(122) = "8000" Numck$(123) = "8116": Numck$(124) = "8324": Numck$(125) = "8489" Numck$(126) = "8612": Numck$(127) = "8819": Numck$(128) = "8942" Numck$(129) = "9108": Numck$(130) = "9273": Numck$(131) = "9409" Numck$(132) = "9533": Numck$(133) = "9817": Numck$(134) = "9939" Numck$(135) = "10100": Numck$(136) = "10260": Numck$(137) = "10390" Numck$(138) = "10550": Numck$(139) = "10740": Numck$(140) = "10900" Numck$(141) = "11060": Numck$(142) = "11260": Numck$(143) = "11430" Numck$(144) = "11550": Numck$(145) = "11710": Numck$(146) = "11860" Numck$(147) = "12060": Numck$(148) = "12220": Numck$(149) = "12380" Numck$(150) = "12540": Numck$(151) = "12700": Numck$(152) = "12850" Numck$(153) = "13000": Numck$(154) = "13240": Numck$(155) = "13350" Numck$(156) = "13460": Numck$(157) = "13570": Numck$(158) = "13710" Numck$(159) = "13860": Numck$(160) = "13970": Numck$(161) = "14070" Numck$(162) = "14220": Numck$(163) = "14350" 'Codigos para las frecuencias del reloj maestro, se corresponden en numero Codck%(1) = 255: Codck%(2) = 253: Codck%(3) = 251: Codck%(4) = 249 Codck%(5) = 247: Codck%(6) = 245: Codck%(7) = 243: Codck%(8) = 241 Codck%(9) = 239: Codck%(10) = 237: Codck%(11) = 235: Codck%(12) = 233 Codck%(13) = 231: Codck%(14) = 228: Codck%(15) = 226: Codck%(16) = 223 Codck%(17) = 220: Codck%(18) = 217: Codck%(19) = 215: Codck%(20) = 112 Codck%(21) = 209: Codck%(22) = 207: Codck%(23) = 204: Codck%(24) = 201 Codck%(25) = 199: Codck%(26) = 196: Codck%(27) = 193: Codck%(28) = 191 Codck%(29) = 188: Codck%(30) = 185: Codck%(31) = 183: Codck%(32) = 177 Codck%(33) = 175: Codck%(34) = 172: Codck%(35) = 169: Codck%(36) = 167 Codck%(37) = 164: Codck%(38) = 161: Codck%(39) = 158: Codck%(40) = 156 Codck%(41) = 153: Codck%(42) = 150: Codck%(43) = 147: Codck%(44) = 145 Codck%(45) = 142: Codck%(46) = 140: Codck%(47) = 137: Codck%(48) = 134 Codck%(49) = 131: Codck%(50) = 129: Codck%(51) = 126: Codck%(52) = 124 Codck%(53) = 121: Codck%(54) = 118: Codck%(55) = 116: Codck%(56) = 113 Codck%(57) = 110: Codck%(58) = 107: Codck%(69) = 105: Codck%(70) = 102 Codck%(61) = 99: Codck%(62) = 96: Codck%(63) = 93: Codck%(64) = 91 Codck%(65) = 88: Codck%(66) = 85: Codck%(67) = 82: Codck%(68) = 80 Codck%(69) = 77: Codck%(70) = 74: Codck%(71) = 72: Codck%(72) = 69 Codck%(73) = 66: Codck%(74) = 62: Codck%(75) = 59: Codck%(76) = 57 Codck%(77) = 55: Codck%(78) = 52: Codck%(79) = 49: Codck%(80) = 46 Codck%(81) = 43: Codck%(82) = 40: Codck%(83) = 38: Codck%(84) = 35 Codck%(85) = 32: Codck%(86) = 30: Codck%(87) = 27: Codck%(88) = 22 Codck%(89) = 19: Codck%(90) = 17: Codck%(91) = 13: Codck%(92) = 10 Codck%(93) = 7: Codck%(94) = 3: Codck%(95) = 0 Codck%(96) = 255: Codck%(97) = 253: Codck%(98) = 251: Codck%(99) = 248 Codck%(100) = 244: Codck%(101) = 241: Codck%(102) = 238: Codck%(103) = 234 Codck%(104) = 229: Codck%(105) = 226: Codck%(106) = 223: Codck%(107) = 220 Codck%(108) = 217: Codck%(109) = 213: Codck%(110) = 209: Codck%(111) = 205 Codck%(112) = 202: Codck%(113) = 197: Codck%(114) = 193: Codck%(115) = 189 196

Codck%(116) = 185: Codck%(117) = 179: Codck%(118) = 176: Codck%(119) = 174 Codck%(120) = 169: Codck%(121) = 165: Codck%(122) = 160: Codck%(123) = 157 Codck%(124) = 152: Codck%(125) = 148: Codck%(126) = 145: Codck%(127) = 140 Codck%(128) = 137: Codck%(129) = 133: Codck%(130) = 129: Codck%(131) = 126 Codck%(132) = 123: Codck%(133) = 116: Codck%(134) = 113: Codck%(135) = 109 Codck%(136) = 105: Codck%(137) = 102: Codck%(138) = 98: Codck%(139) = 93 Codck%(140) = 89: Codck%(141) = 85: Codck%(142) = 80: Codck%(143) = 76 Codck%(144) = 73: Codck%(145) = 69: Codck%(146) = 65: Codck%(147) = 60 Codck%(148) = 56: Codck%(149) = 52: Codck%(150) = 48: Codck%(151) = 44 Codck%(152) = 40: Codck%(153) = 36: Codck%(154) = 30: Codck%(155) = 27 Codck%(156) = 24: Codck%(157) = 21: Codck%(158) = 17: Codck%(159) = 13 Codck%(160) = 10: Codck%(161) = 7: Codck%(162) = 3: Codck%(163) = 0 '******* Matriz codigos binarios de diviciones de frecuencia de reloj ***** Coddivck%(1) = &H1: Coddivck%(2) = &H2: Coddivck%(3) = &H4 Coddivck%(4) = &H8: Coddivck%(5) = &H10: Coddivck%(6) = &H20 Coddivck%(7) = &H40: Coddivck%(8) = &H80 Codprogdivck%(1) = 0 FOR w% = 1 TO 9 Codprogdivck%(w%) = 0 NEXT w% s% = 1: Cu% = 1: Aux% = 0 ' Dispone entrada a los diferentes servicios 'S% Selector de servicio a utilizar 'Cu% Selecciona el cuadro que solicita el servicio 'Aux% Bariable auxiliar para cargar indicadore en los diferentes servicios Xc% = 40: Yc% = 10: Cant% = 15: DO SELECT CASE s% CASE 1 CALL Cuadro(Cu%, s%, Archivo$) IF Cu% = 3 THEN GOSUB Graficador CASE 2 CALL Botonselec(s%, Cu%, Aux%, Archivo$) CASE 3 CALL Ayuda(s%, Cu%, Aux%) CASE 4 CALL Crearabrirarchivo(s%, Aux%, Archivo$) CASE 5 CALL Llenadocuadroconfi(Archivo$) s% = 2: Cu% = 2: Aux% = 0 CASE 6 GOSUB Editordecodexe: CALL Ejecucionprog(Totalgraficos%, Ga%, Totallineas%) s% = 2: Cu% = 3: Aux% = 0 CASE 7 CALL Editordetexto(Totallineas%) FOR y% = 1 TO 21 Maux$(5, y%) = Progencar$(y%) NEXT y% s% = 1: Cu% = 6: Aux% = 0 CASE 10 GOSUB Salirguardar CASE 11 CLS END END SELECT LOOP UNTIL s% = 11 END 197

' ************************ Fin del programa principal ********************** ' **************** Subrutina de salvar el archivio de programa ************* Salirguardar: LOCATE Ycoort%(5, 1), Xcoort%(5, 1): PRINT STRING$(50, CHR$(255)) LOCATE Ycoort%(5, 2), Xcoort%(5, 2): PRINT STRING$(46, CHR$(255)) FOR w% = 0 TO 1600 IF w% = 200 OR w% = 600 OR w% = 1000 OR w% = 1400 THEN COLOR 12 IF w% = 0 OR w% = 400 OR w% = 800 OR w% = 1200 THEN COLOR 0 LOCATE 14, 23: PRINT "SALVANDO ARCHIVO DE PROGRAMA "; Archivo$ NEXT w% COLOR 15 OPEN Archivo$ FOR RANDOM AS #1 LEN = LEN(Archi) FOR y% = 1 TO 21 Archi.Nombre = Maux$(1, y%) Archi.Fciamues = Maux$(2, y%) Archi.Visual = Maux$(3, y%) Archi.Conficuadro = Maux$(4, y%) Archi.Codtext = Maux$(5, y%) PUT #1, y%, Archi NEXT y% CLOSE s% = 11 CLS RETURN ' ******************** Subrutina de graficacion de datos ******************* Graficador: ' *************************** Recoleccion de datos ************************* INGa% = 0: OUTGa% = 0: INGd% = 0: OUTGd% = 0: Totalgraficos% = 0 Nombr1$ = "": Nombr2$ = "": Nombr3$ = "" FOR y% = 1 TO 4 IF Maux$(3, y%) = "S" THEN INGa% = INGa% + 1: Nombra$(INGa%) = "INAD" + STR$(y%) + " " + Maux$(1, y%) Totalgraficos% = Totalgraficos% + 1: grafico%(Totalgraficos%) = y% END IF NEXT y% FOR y% = 10 TO 13 IF Maux$(3, y%) = "S" THEN OUTGa% = OUTGa% + 1 Nombra$(OUTGa% + INGa%) = "OUTDA" + STR$(y% - 9) + " " + Maux$(1, y%) Totalgraficos% = Totalgraficos% + 1: grafico%(Totalgraficos%) = y% END IF NEXT y% FOR y% = 5 TO 8 IF Maux$(3, y%) = "S" THEN INGd% = INGd% + 1 Nombrd$(INGd%) = "INDD" + STR$(y% - 4) + " " + Maux$(1, y%) Totalgraficos% = Totalgraficos% + 1: grafico%(Totalgraficos%) = y% END IF NEXT y% FOR y% = 14 TO 17 IF Maux$(3, y%) = "S" THEN OUTGd% = OUTGd% + 1 Nombrd$(OUTGd% + INGd%) = "OUTDD" + STR$(y% - 13) + " " + Maux$(1, y%) Totalgraficos% = Totalgraficos% + 1: grafico%(Totalgraficos%) = y% END IF NEXT y% 198

FOR G% = 1 TO Totalgraficos% Comun%(G%) = 0 NEXT G% Ga% = INGa% + OUTGa% 'Total graficos analogos Gd% = INGd% + OUTGd% 'Total graficos digitales Ig% = 0 '********************** Informacion de valores Graficador ****************** 'Xg% Coordenada x de el marco del grafico 'Yg% Coordenada y de el marco del grafico 'Xmin% Coordenada x minima para la graficacion 'Ymin% Coordenada y minima para la graficacion 'Xmax% Coordenada x maxima para la graficacion 'Ymax% Coordenada y maxima para la graficacion 'Nombr#$ Nombre del grafico ' ************* Asignacion de colores de los diferentes graficos *********** Col%(1) = 14: Col%(2) = 12: Col%(3) = 10: Col%(4) = 11: Col%(5) = 13 '1****************** Caso 1 o 2 canales analogos y ninguno degital ********* IF Ga% < 3 AND Ga% > 0 AND Gd% = 0 THEN P% = 0: Xmin%(6) = 45: Ymin%(6) = 391: Xmax%(6) = Xmin%(6) + 540 Ymax%(6) = Ymin%(6) - 300: Multiplicador!(6) = (Ymax%(6) - Ymin%(6)) / 255 ms!(6) = (Xmax%(6) - Xmin%(6)) / (18 * VAL(Maux$(2, 1))): Paso%(6) = 0 Xmin%(1) = Xmin%(6): Ymin%(1) = Ymin%(6): Xmax%(1) = Xmax%(6) Ymax%(1) = Ymax%(6): Nombr1$ = Nombra$(1): Comun%(1) = 1: Paso%(1) = 0 IF Ga% = 2 THEN Xmin%(2) = Xmin%(6): Ymin%(2) = Ymin%(6): Xmax%(2) = Xmax%(6) Ymax%(2) = Ymax%(6): Nombr2$ = Nombra$(2): Comun%(2) = 1: Paso%(2) = 0 END IF GOSUB Primercuadro END IF '2***************** Caso 1, 2 o 3 canales digitales y ninguno analogo IF Ga% = 0 THEN Xmin%(6) = 45: Ymin%(6) = 391: Xmax%(6) = Xmin%(6) + 540: Ymax%(6) = Ymin%(6) - 300: Multiplicador!(6) = 20 ms!(6) = (Xmax%(6) - Xmin%(6)) / (18 * VAL(Maux$(2, 1))): Paso%(6) = 36 IF Gd% = 1 THEN P% = 1 Xmin%(1) = Xmin%(6): Ymin%(1) = Ymin%(6) - 14: Xmax%(1) = Xmax%(6) Ymax%(1) = Ymin%(6) - 302: Nombr1$ = Nombrd$(1): Paso%(1) = 36 Multiplicador!(1) = 20: Comun%(1) = 0 ms!(1) = (Xmax%(1) - Xmin%(1)) / (18 * VAL(Maux$(2, 1))) GOSUB Primercuadro ELSEIF Gd% = 2 THEN P% = 2 Xmin%(1) = Xmin%(6): Ymin%(1) = Ymin%(6) - 17: Xmax%(1) = Xmax%(6) Ymax%(1) = Ymin%(6) - 145: Nombr1$ = Nombrd$(1): Paso%(1) = 16 Multiplicador!(1) = 10 ms!(1) = (Xmax%(1) - Xmin%(1)) / (18 * VAL(Maux$(2, 1))): Comun%(1) = 0 Xmin%(2) = Xmin%(6): Ymin%(2) = Ymin%(6) - 174: Xmax%(2) = Xmax%(6) Ymax%(2) = Ymin%(6) - 302: Nombr2$ = Nombrd$(2): Paso%(2) = 16 Multiplicador!(2) = 10 ms!(2) = (Xmax%(2) - Xmin%(2) / (18 * VAL(Maux$(2, 1)))): Comun%(2) = 0 GOSUB Primercuadro ELSEIF Gd% = 3 THEN P% = 3 Xmin%(1) = Xmin%(6): Ymin%(1) = Ymin%(6) - 12: Xmax%(1) = Xmin%(6) + 540 Ymax%(1) = Ymin%(6) - 100: Nombr1$ = Nombrd$(1): Paso%(1) = 11 Multiplicador!(1) = 6 199

ms!(1) = (Xmax%(1) - Xmin%(1)) / (18 * VAL(Maux$(2, 1))): Comun%(1) Xmin%(2) = Xmin%(6): Ymin%(2) = Ymin%(6) - 112: Xmax%(2) = Xmin%(6) Ymax%(2) = Ymin%(6) - 200: Nombr2$ = Nombrd$(2): Paso%(2) = 11 Multiplicador!(2) = 6 ms!(2) = (Xmax%(2) - Xmin%(2)) / (18 * VAL(Maux$(2, 1))): Comun%(2) Xmin%(3) = Xmin%(6): Ymin%(3) = Ymin%(6) - 212: Xmax%(3) = Xmin%(6) Ymax%(3) = Ymin%(6) - 300: Nombr3$ = Nombrd$(3): Paso%(3) = 11 Multiplicador!(3) = 6 ms!(3) = (Xmax%(3) - Xmin%(3)) / (18 * VAL(Maux$(2, 1))): Comun%(3) GOSUB Primercuadro END IF END IF

= 0 + 540

= 0 + 540

= 0

'3 ****************** Caso 3 canales analogos y ninguno digital ********** IF Ga% = 3 AND Gd% = 0 THEN Xmin%(6) = 45: Ymin%(6) = 265: Xmax%(6) = Xmin%(6) + 540 Ymax%(6) = Ymin%(6) - 180: Multiplicador!(6) = (Ymax%(6) - Ymin%(6)) / 255 ms!(6) = (Xmax%(6) - Xmin%(6)) / (18 * VAL(Maux$(2, 1))): Paso%(6) = 0 GOSUB Segundocuadro Ig% = 1: Xmin%(1) = 25: Ymin%(1) = 395: Xmax%(1) = Xmin%(1) + 180 Ymax%(1) = Ymin%(1) - 90: Nombr1$ = Nombra$(1): Comun%(1) = 0 Multiplicador!(1) = (Ymax%(1) - Ymin%(1)) / 255 ms!(1) = (Xmax%(1) - Xmin%(1)) / (10 * VAL(Maux$(2, 1))): Paso%(1) = 0 GOSUB Cuartocuadro Ig% = 2: Xmin%(2) = 228: Ymin%(2) = 395: Xmax%(2) = Xmin%(2) + 180 Ymax%(2) = Ymin%(2) - 90: Nombr1$ = Nombra$(2): Comun%(2) = 0 Multiplicador!(2) = (Ymax%(2) - Ymin%(2)) / 255 ms!(2) = (Xmax%(2) - Xmin%(2)) / (10 * VAL(Maux$(2, 1))): Paso%(2) = 0 GOSUB Cuartocuadro Ig% = 3: Xmin%(3) = 432: Ymin%(3) = 395: Xmax%(3) = Xmin%(3) + 180 Ymax%(3) = Ymin%(3) - 90: Nombr1$ = Nombra$(3): Comun%(3) = 0 Multiplicador!(3) = (Ymax%(3) - Ymin%(3)) / 255 ms!(3) = (Xmax%(3) - Xmin%(3)) / (10 * VAL(Maux$(2, 1))): Paso%(3) = 0 GOSUB Cuartocuadro END IF '4********* Caso 1 o 2 canales analogos y 1, 2 o 3 canales digitales ******* IF Ga% < 3 AND Ga% > 0 AND Gd% <> 0 THEN Xmin%(6) = 38: Ymin%(6) = 395: Xmax%(6) = Xmin%(6) + 360 Ymax%(6) = Ymin%(6) - 314: Multiplicador!(6) = (Ymax%(6) - Ymin%(6)) / 255 ms!(6) = (Xmax%(6) - Xmin%(6)) / (12 * VAL(Maux$(2, 1))): Paso%(6) = 0 IF Ga% = 1 THEN Ig% = 1: Xmin%(1) = Xmin%(6): Ymin%(1) = Ymin%(6) Xmax%(1) = Xmin%(1) + 360: Ymax%(1) = Ymin%(1) - 314 Nombr1$ = Nombra$(1) Comun%(1) = 1: Multiplicador!(1) = (Ymax%(1) - Ymin%(1)) / 255 ms!(1) = (Xmax%(1) - Xmin%(1)) / (10 * VAL(Maux$(2, 1))): Paso%(1) = 0 ELSEIF Ga% = 2 THEN Ig% = 2: Xmin%(1) = Xmin%(6): Ymin%(1) = Ymin%(6) Xmax%(1) = Xmin%(1) + 360: Ymax%(1) = Ymin%(1) - 314: Nombr1$ = Nombra$(1) Comun%(1) = 1: Multiplicador!(1) = (Ymax%(1) - Ymin%(1)) / 255 ms!(1) = (Xmax%(1) - Xmin%(1)) / (10 * VAL(Maux$(2, 1))): Paso%(1) = 0 Xmin%(2) = Xmin%(6): Ymin%(2) = Ymin%(6): Xmax%(2) = Xmin%(2) + 360 Ymax%(2) = Ymin%(2) - 314: Nombr2$ = Nombra$(2) Comun%(2) = 1: Multiplicador!(2) = (Ymax%(2) - Ymin%(2)) / 255 ms!(2) = (Xmax%(2) - Xmin%(2)) / (10 * VAL(Maux$(2, 1))): Paso%(2) = 0 END IF GOSUB Tercercuadro 200

IF Gd% = 1 THEN Xmin% = 432: Ymin% = 385 Ig% = Ig% + 1: Xmin%(Ig%) = Xmin%: Ymin%(Ig%) = Ymin% Xmax%(Ig%) = Xmin%(Ig%) + 180: Ymax%(Ig%) = Ymin%(Ig%) - 304 Nombr1$ = Nombrd$(1): Paso%(Ig%) = 38: Multiplicador!(Ig%) = 28 ms!(Ig%) = (Xmax%(Ig%) - Xmin%(Ig%)) / (10 * VAL(Maux$(2, 1))) Comun%(Ig%) = 0 GOSUB Quintocuadro ELSEIF Gd% = 2 THEN Xmin% = 432: Ymin% = 395 Ig% = Ig% + 1: Xmin%(Ig%) = Xmin%: Ymin%(Ig%) = Ymin% - 17 Xmax%(Ig%) = Xmin%(Ig%) + 180: Ymax%(Ig%) = Ymin%(Ig%) - 128 Nombr1$ = Nombrd$(1): Paso%(Ig%) = 16: Multiplicador!(Ig%) = 10 ms!(Ig%) = (Xmax%(Ig%) - Xmin%(Ig%)) / (10 * VAL(Maux$(2, 1))) Comun%(Ig%) = 0: Ig% = Ig% + 1: Xmin%(Ig%) = Xmin% Ymin%(Ig%) = Ymin% - 182: Xmax%(Ig%) = Xmin%(Ig%) + 180 Ymax%(Ig%) = Ymin%(Ig%) - 128 Nombr2$ = Nombrd$(2): Paso%(Ig%) = 16: Multiplicador!(Ig%) = 10 ms!(Ig%) = (Xmax%(Ig%) - Xmin%(Ig%)) / (10 * VAL(Maux$(2, 1))) Comun%(Ig%) = 0 GOSUB Sextocuadro ELSEIF Gd% = 3 THEN Xmin% = 432: Ymin% = 395 Ig% = Ig% + 1: Xmin%(Ig%) = 432: Ymin%(Ig%) = Ymin% - 4 Xmax%(Ig%) = Xmin%(Ig%) + 180: Ymax%(Ig%) = Ymin%(Ig%) - 80: Yh% = 90 w% = 113: Nombr1$ = Nombrd$(1): Paso%(Ig%) = 10: Multiplicador!(Ig%) = 7 ms!(Ig%) = (Xmax%(Ig%) - Xmin%(Ig%)) / (10 * VAL(Maux$(2, 1))) Comun%(Ig%) = 0 GOSUB Septimocuadro Xmin% = 432: Ymin% = 268: Ig% = Ig% + 1: Xmin%(Ig%) = 432 Ymin%(Ig%) = Ymin% - 4: Xmax%(Ig%) = Xmin%(Ig%) + 180 Ymax%(Ig%) = Ymin%(Ig%) - 80: Yh% = 99: w% = 122 Nombr1$ = Nombrd$(2): Paso%(Ig%) = 10: Multiplicador!(Ig%) = 7 ms!(Ig%) = (Xmax%(Ig%) - Xmin%(Ig%)) / (10 * VAL(Maux$(2, 1))) Comun%(Ig%) = 0 GOSUB Septimocuadro Xmin% = 432: Ymin% = 139 Ig% = Ig% + 1: Xmin%(Ig%) = 432: Ymin%(Ig%) = Ymin% - 4 Xmax%(Ig%) = Xmin%(Ig%) + 180: Ymax%(Ig%) = Ymin%(Ig%) - 80: Yh% = 99 w% = 122: Nombr1$ = Nombrd$(3): Paso%(Ig%) = 10: Multiplicador!(Ig%) = 7 ms!(Ig%) = (Xmax%(Ig%) - Xmin%(Ig%)) / (10 * VAL(Maux$(2, 1))) Comun%(Ig%) = 0 GOSUB Septimocuadro END IF END IF '5*********** Caso 3 canales analogos y 1 o 2 canales digitales ************ IF Ga% = 3 AND Gd% <> 0 THEN Xmin%(6) = 38: Ymin%(6) = 265: Xmax%(6) = Xmin%(6) + 360 Ymax%(6) = Ymin%(6) - 180: Xp% = 30: Nombr1$ = Nombra$(1) Nombr2$ = Nombra$(2): Multiplicador!(6) = (Ymax%(6) - Ymin%(6)) / 255 ms!(6) = (Xmax%(6) - Xmin%(6)) / (12 * VAL(Maux$(2, 1))): Paso%(6) = 0 GOSUB Octavocuadro Ig% = 1: Xmin%(1) = 25: Ymin%(1) = 395: Xmax%(1) = Xmin%(1) + 180 Ymax%(1) = Ymin%(1) - 90: Nombr1$ = Nombra$(1): Comun%(1) = 0 Multiplicador!(1) = (Ymax%(1) - Ymin%(1)) / 255 ms!(1) = (Xmax%(1) - Xmin%(1)) / (10 * VAL(Maux$(2, 1))): Paso%(1) = 0 GOSUB Cuartocuadro 201

Ig% = 2: Xmin%(2) = 228: Ymin%(2) = 395: Xmax%(2) = Xmin%(2) + 180 Ymax%(2) = Ymin%(2) - 90: Nombr1$ = Nombra$(2): Comun%(2) = 0 Multiplicador!(2) = (Ymax%(2) - Ymin%(2)) / 255 ms!(2) = (Xmax%(2) - Xmin%(2)) / (10 * VAL(Maux$(2, 1))): Paso%(2) = 0 GOSUB Cuartocuadro Ig% = 3: Xmin%(3) = 432: Ymin%(3) = 395: Xmax%(3) = Xmin%(3) + 180 Ymax%(3) = Ymin%(3) - 90: Nombr1$ = Nombra$(3): Comun%(3) = 0 Multiplicador!(3) = (Ymax%(3) - Ymin%(3)) / 255 ms!(3) = (Xmax%(3) - Xmin%(3)) / (10 * VAL(Maux$(2, 1))): Paso%(3) = 0 GOSUB Cuartocuadro IF Gd% = 1 THEN Xmin% = 432: Ymin% = 265 Ig% = 4: Xmin%(4) = 432: Ymin%(4) = Ymin% - 13: Xmax%(4) = Xmin%(4) + 180 Ymax%(4) = Ymin%(4) - 168: Nombr1$ = Nombrd$(1): Paso%(4) = 21 Multiplicador!(4) = 16 ms!(4) = (Xmax%(4) - Xmin%(4)) / (10 * VAL(Maux$(2, 1))): Comun%(4) = 0 GOSUB Novenocuadro ELSEIF Gd% = 2 THEN Xmin% = 432: Ymin% = 139 Ig% = 4: Xmin%(4) = 432: Ymin%(4) = Ymin% - 4: Xmax%(4) = Xmin%(4) + 180 Ymax%(4) = Ymin%(4) - 80: Yh% = 90: w% = 113: Nombr1$ = Nombrd$(1) Paso%(4) = 10: Multiplicador!(4) = 7 ms!(4) = (Xmax%(4) - Xmin%(4)) / (10 * VAL(Maux$(2, 1))): Comun%(4) = 0 GOSUB Septimocuadro Xmin% = 432: Ymin% = 268 Ig% = 5: Xmin%(5) = 432: Ymin%(5) = Ymin% - 4: Xmax%(5) = Xmin%(5) + 180 Ymax%(5) = Ymin%(5) - 80: Yh% = 99: w% = 122: Nombr1$ = Nombrd$(2) Paso%(5) = 10: Multiplicador!(5) = 7 ms!(5) = (Xmax%(5) - Xmin%(5)) / (10 * VAL(Maux$(2, 1))): Comun%(5) = 0 GOSUB Septimocuadro END IF END IF RETURN ' *********** Subrutinas para el dibujo de los diferentes cuadros ********** Primercuadro: LINE (Xmin%(6) - 29, Ymin%(6) - 338)-STEP(606, 366), 8, B LINE (Xmin%(6) - 27, Ymin%(6) - 336)-STEP(602, 362), 8, B PAINT (Xmin%(6) - 28, Ymin%(6) - 337), 10, 8 PAINT (Xmin%(6), Ymin%(6)), 1, 8 LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 - 1: PRINT "100%" LOCATE Ymin%(6) / 16 + 1, Xmin%(6) / 8 - 1: PRINT "0" LOCATE Ymin%(6) / 16 + 1, Xmin%(6) / 8 + 70: PRINT "T" LOCATE Ymin%(6) / 16 + 2, Xmin%(6) / 8 + 62 IF ms!(6) >= 1 THEN msf$ = LEFT$(STR$(ms!(6)), 4): PRINT msf$; " S/D" ELSEIF ms!(6) < 1 AND ms!(6) >= .001 THEN msf$ = LEFT$(STR$(ms!(6) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(6) * 1000000), 4): PRINT msf$; "s/D" END IF COLOR 15 IF Nombr2$ = "" THEN LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 + 25: COLOR Col%(1): PRINT Nombr1$ ELSEIF Nombr3$ = "" THEN LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 + 20: COLOR Col%(1): PRINT Nombr1$ LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 + 40: COLOR Col%(2): PRINT Nombr2$ ELSE 202

LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 + 11: COLOR Col%(1): PRINT Nombr1$ LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 + 28: COLOR Col%(2): PRINT Nombr2$ LOCATE Ymin%(6) / 16 - 19, Xmin%(6) / 8 + 45: COLOR Col%(3): PRINT Nombr3$ END IF COLOR 15 IF P% = 0 THEN PSET (Xmin%(1), Ymin%(1) - 304) DRAW " F5 H5 G5 E5 D4 L4 R4" 'FLECHA ARRIBA FOR I% = 1 TO 10 'EJE Y DRAW "D30 L4 R4" NEXT I% FOR J% = 1 TO 18 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (Xmin%(1), Ymin%(1)): DRAW "D4" ELSEIF P% = 1 THEN PSET (Xmin%(1), Ymax%(1)) FOR I% = 1 TO 8 'EJE Y DRAW "D36 L4 R4" NEXT I% PSET (Xmin%(6), Ymin%(6)) FOR J% = 1 TO 18 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (Xmin%(6), Ymin%(6)): DRAW "D4" PSET (Xmin%(1), Ymin%(1)), 12 ELSEIF P% = 2 THEN LOCATE Ymin%(6) / 16, Xmin%(6) / 8 - 2: PRINT "b0" LOCATE Ymin%(6) / 16 - 10, Xmin%(6) / 8 - 2: PRINT "b0" PSET (Xmin%(2), Ymax%(2)) FOR I% = 1 TO 8 'EJE Y DRAW "D16 L4 R4" NEXT I% PSET (Xmin%(2), Ymin%(2)), 12 PSET (Xmin%(1), Ymax%(1)) FOR I% = 1 TO 8 'EJE Y DRAW "D16 L4 R4" NEXT I% PSET (Xmin%(1), Ymin%(1)), 12 PSET (Xmin%(6), Ymin%(6)) FOR J% = 1 TO 18 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (Xmin%(1), Ymin%(1)), 12 PSET (Xmin%(1), Ymin%(1)): DRAW "D4" ELSEIF P% = 3 THEN LOCATE Ymin%(6) / 16, Xmin%(6) / 8 - 2: PRINT "b0" LOCATE Ymin%(6) / 16 - 6, Xmin%(6) / 8 - 2: PRINT "b0" LOCATE Ymin%(6) / 16 - 12, Xmin%(6) / 8 - 2: PRINT "b0" PSET (Xmin%(3), Ymax%(3)) FOR I% = 1 TO 8 'EJE Y DRAW "D11 L4 R4" NEXT I% PSET (Xmin%(3), Ymin%(3)), 12 PSET (Xmin%(2), Ymax%(2)) FOR I% = 1 TO 8 'EJE Y DRAW "D11 L4 R4" 203

NEXT I% PSET (Xmin%(2), Ymin%(2)), 12 PSET (Xmin%(1), Ymax%(1)) FOR I% = 1 TO 8 'EJE Y DRAW "D11 L4 R4" NEXT I% PSET (Xmin%(6), Ymin%(6)) FOR J% = 1 TO 18 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (Xmin%(6), Ymin%(6)): DRAW "D4" END IF RETURN Segundocuadro: 'Caso 3 canales analogos y ninguno digital LINE (16, 53)-(622, 289), 8, B LINE (18, 55)-(620, 287), 8, B PAINT (17, 54), 10, 8 PAINT (20, 57), 1, 8 LOCATE 5, 4: PRINT "100%" LOCATE 17, 5: PRINT "0" LOCATE 17, 76: PRINT "T" LOCATE 18, 68 IF ms!(6) >= 1 THEN msf$ = LEFT$(STR$(ms!(6)), 4): PRINT msf$; " S/D" ELSEIF ms!(6) < 1 AND ms!(6) >= .001 THEN msf$ = LEFT$(STR$(ms!(6) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(6) * 1000000), 4): PRINT msf$; "s/D" END IF LOCATE 5, 20: PRINT "PANTALLA DE GRAFICACION MULTIPLE" COLOR 15 PSET (45, 81) DRAW " F5 H5 G5 E5 D4 L4 R4" 'FLECHA ARRIBA FOR I% = 1 TO 10 'EJE Y DRAW "D18 L4 R4" NEXT I% FOR J% = 1 TO 18 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (45, 265): DRAW "D4" RETURN Tercercuadro: ' Caso 1 o 2 canales analogos y uno, dos o tres digitales LINE (Xmin%(6) - 22, Ymin%(6) - 346)-STEP(401, 368), 8, B LINE (Xmin%(6) - 20, Ymin%(6) - 344)-STEP(397, 364), 8, B PAINT (Xmin%(6) - 21, Ymin%(6) - 345), 10, 8 PAINT (Xmin%(6), Ymin%(6)), 1, 8 LOCATE Ymin%(6) / 16 - 20, Xmin%(6) / 8 - 1: PRINT "100%" LOCATE Ymin%(6) / 16 + 1, Xmin%(6) / 8: PRINT "0" LOCATE Ymin%(6) / 16, Xmin%(6) / 8 + 47: PRINT "T" LOCATE Ymin%(6) / 16 + 1, Xmin%(6) / 8 + 38 IF ms!(6) >= 1 THEN msf$ = LEFT$(STR$(ms!(6)), 4): PRINT msf$; " S/D" ELSEIF ms!(6) < 1 AND ms!(6) >= .001 THEN msf$ = LEFT$(STR$(ms!(6) * 1000), 4): PRINT msf$; "ms/D" ELSE 204

msf$ = LEFT$(STR$(ms!(6) * 1000000), 4): PRINT msf$; "s/D" END IF IF Nombr2$ = "" THEN LOCATE Ymin%(6) / 16 - 20, Xmin%(6) / 8 + 18: COLOR Col%(1): PRINT Nombr1$ ELSEIF Nombr3$ = "" THEN LOCATE Ymin%(6) / 16 - 20, Xmin%(6) / 8 + 9: COLOR Col%(1): PRINT Nombr1$ LOCATE Ymin%(6) / 16 - 20, Xmin%(6) / 8 + 27: COLOR Col%(2): PRINT Nombr2$ END IF COLOR 15 PSET (Xmin%(6), Ymin%(6) - 314) DRAW " F5 H5 G5 E5 D4 L4 R4" 'FLECHA ARRIBA FOR I% = 1 TO 10 'EJE Y DRAW "D31 L4 R4" NEXT I% FOR J% = 1 TO 12 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (Xmin%(6), Ymin%(6)): DRAW "D4" RETURN Cuartocuadro: 'Cuadros pequeos para graficos analogos LINE (Xmin%(Ig%) - 9, Ymin%(Ig%) - 99)-STEP(199, 122), 8, B LINE (Xmin%(Ig%) - 7, Ymin%(Ig%) - 97)-STEP(195, 118), 8, B PAINT (Xmin%(Ig%) - 8, Ymin%(Ig%) - 98), 10, 8 PAINT (Xmin%(Ig%), Ymin%(Ig%)), 1, 8 LOCATE Ymin%(Ig%) / 16 + 1, Xmin%(Ig%) / 8 + 1: COLOR Col%(Ig%) PRINT Nombr1$: LOCATE Ymin%(Ig%) / 16 + 1, Xmin%(Ig%) / 8 + 16 COLOR 15 IF ms!(Ig%) >= 1 THEN msf$ = LEFT$(STR$(ms!(Ig%)), 4): PRINT msf$; " S/D" ELSEIF ms!(Ig%) < 1 AND ms!(6) >= .001 THEN msf$ = LEFT$(STR$(ms!(Ig%) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(Ig%) * 1000000), 4): PRINT msf$; "s/D" END IF PSET (Xmin%(Ig%), Ymin%(Ig%) - 92) DRAW " F2 H2 G2 E2 D2 L2 R2" 'FLECHA ARRIBA FOR I% = 1 TO 5 'EJE Y DRAW "D18 L2 R2" NEXT I% FOR J% = 1 TO 10 'EJE X DRAW "R18 D2 U2" NEXT J% DRAW "R2 H2 F2 G2" 'FLECHA A DERECHA PSET (Xmin%(Ig%), Ymin%(Ig%)): DRAW "D2" RETURN Quintocuadro: '1 CANAL DIGITAL CUANDO HAY MAS DE UNO ANALOGO LINE (Xmin% - 9, Ymin% - 334)-STEP(199, 368), 8, B LINE (Xmin% - 7, Ymin% - 332)-STEP(195, 364), 8, B PAINT (Xmin% - 8, Ymin% - 77), 10, 8 PAINT (Xmin%, Ymin% + 10), 1, 8 LOCATE (Ymin% + 10) / 16 + 1, Xmin% / 8 + 1: COLOR Col%(Ig%): PRINT Nombr1$ LOCATE Ymin% / 16 + 2, Xmin%(Ig%) / 8 + 16: COLOR 15 IF ms!(Ig%) >= 1 THEN msf$ = LEFT$(STR$(ms!(Ig%)), 4): PRINT msf$; " S/D" ELSEIF ms!(Ig%) < 1 AND ms!(Ig%) >= .001 THEN msf$ = LEFT$(STR$(ms!(Ig%) * 1000), 4): PRINT msf$; "ms/D" 205

ELSE msf$ = LEFT$(STR$(ms!(Ig%) * 1000000), 4): PRINT msf$; "s/D" END IF PSET (Xmin%, Ymin% - 304) REM DRAW " F2 H2 G2 E2 D2 L2 R2" 'FLECHA ARRIBA FOR I% = 1 TO 8 'EJE Y DRAW "D38 L2 R2" NEXT I% PSET (Xmin%, Ymin% + 10): DRAW "D2 U2" FOR J% = 1 TO 10 'EJE X DRAW "R18 D2 U2" NEXT J% DRAW "R2 H2 F2 G2" 'FLECHA A DERECHA PSET (Xmin%(Ig%), Ymin%(Ig%)), 12 RETURN Sextocuadro: '2 CANALES DIGITALES CUANDO HAY MAS DE UNO ANALOGO LINE (Xmin% - 9, Ymin% - 346)-STEP(199, 368), 8, B LINE (Xmin% - 7, Ymin% - 344)-STEP(195, 364), 8, B PAINT (Xmin% - 8, Ymin% - 89), 10, 8 PAINT (Xmin%, Ymin%), 1, 8 LOCATE Ymin% / 16 - 10, Xmin% / 8 + 5: COLOR Col%(Ig% - 1): PRINT Nombr1$ LOCATE Ymin% / 16 - 20, Xmin% / 8 + 5: COLOR Col%(Ig%): PRINT Nombr2$ COLOR 15 LOCATE Ymin% / 16 + 1, Xmin% / 8 + 16 IF ms!(Ig%) >= 1 THEN msf$ = LEFT$(STR$(ms!(Ig%)), 4): PRINT msf$; " S/D" ELSEIF ms!(Ig%) < 1 AND ms!(Ig%) >= .001 THEN msf$ = LEFT$(STR$(ms!(Ig%) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(Ig%) * 1000000), 4): PRINT msf$; "s/D" END IF PSET (Xmin%, Ymin% - 310) REM DRAW " F2 H2 G2 E2 D2 L2 R2" 'FLECHA ARRIBA FOR I% = 1 TO 8 'EJE Y DRAW "D16 L2 R2" NEXT I% PSET (Xmin%, Ymin% - 145) FOR I% = 1 TO 8 'EJE Y DRAW "D16 L2 R2" NEXT I% PSET (Xmin%, Ymin%): DRAW "D2 U2" FOR J% = 1 TO 10 'EJE X DRAW "R18 D2 U2" NEXT J% DRAW "R2 H2 F2 G2" 'FLECHA A DERECHA RETURN 'Cuadros pequeos para cuadros digitales Septimocuadro: '3 CANALES DIGITALES CUANDO HAY MAS DE UNO ANALOGO LINE (Xmin% - 9, Ymin% - Yh%)-STEP(199, w%), 8, B LINE (Xmin% - 7, Ymin% - Yh% + 2)-STEP(195, w% - 4), 8, B PAINT (Xmin% - 8, Ymin% - 89), 10, 8 PAINT (Xmin%, Ymin%), 1, 8 LOCATE Ymin% / 16 + 1, Xmin% / 8 + 1: COLOR Col%(Ig%): PRINT Nombr1$ LOCATE Ymin% / 16 + 1, Xmin%(Ig%) / 8 + 16: COLOR 15 IF ms!(Ig%) >= 1 THEN msf$ = LEFT$(STR$(ms!(Ig%)), 4): PRINT msf$; " S/D" ELSEIF ms!(Ig%) < 1 AND ms!(Ig%) >= .001 THEN 206

msf$ = LEFT$(STR$(ms!(Ig%) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(Ig%) * 1000000), 4): PRINT msf$; "s/D" END IF PSET (Xmin%, Ymin% - 84) FOR I% = 1 TO 8 'EJE Y DRAW "D10 L2 R2" NEXT I% PSET (Xmin%, Ymin%): DRAW "D2 U2" FOR J% = 1 TO 10 'EJE X DRAW "R18 D2 U2" NEXT J% DRAW "R2 H2 F2 G2" 'FLECHA A DERECHA RETURN Octavocuadro: 'Caso 3 canales analogos y 1 o 2 canales digitales LINE (Xmin%(6) - 22, Ymin%(6) - 216)-STEP(402, 241), 8, B LINE (Xmin%(6) - 20, Ymin%(6) - 214)-STEP(398, 237), 8, B PAINT (Xmin%(6) - 21, Ymin%(6) - 215), 10, 8 PAINT (Xmin%(6), Ymin%(6)), 1, 8 LOCATE Ymin%(6) / 16 - 12, Xmin%(6) / 8 - 1: PRINT "100%" LOCATE Ymin%(6) / 16, Xmin%(6) / 8 - 1: PRINT "0" LOCATE Ymin%(6) / 16, Xmin%(6) / 8 + 47: PRINT "T" LOCATE Ymin%(6) / 16 + 1, Xmin%(6) / 8 + 40 IF ms!(6) >= 1 THEN msf$ = LEFT$(STR$(ms!(6)), 4): PRINT msf$; " S/D" ELSEIF ms!(6) < 1 AND ms!(6) >= .001 THEN msf$ = LEFT$(STR$(ms!(6) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(6) * 1000000), 4): PRINT msf$; "s/D" END IF LOCATE Ymin%(6) / 16 - 12, Xmin%(6) / 8 + 8 PRINT "PANTALLA DE GRAFICACION MULTIPLE" PSET (Xmin%(6), Ymin%(6) - 184) DRAW " F5 H5 G5 E5 D4 L4 R4" 'FLECHA ARRIBA FOR I% = 1 TO 10 'EJE Y DRAW "D18 L4 R4" NEXT I% FOR J% = 1 TO 12 'EJE X DRAW "R30 D4 U4" NEXT J% DRAW "R5 H5 F5 G5" 'FLECHA A DERECHA PSET (Xmin%(6), Ymin%(6)): DRAW "D4" RETURN Novenocuadro: 'Caso 3 canales analogos 2 canales digitales LINE (Xmin% - 9, Ymin% - 216)-STEP(199, 241), 8, B LINE (Xmin% - 7, Ymin% - 214)-STEP(195, 237), 8, B PAINT (Xmin% - 8, Ymin% - 89), 10, 8 PAINT (Xmin%, Ymin%), 1, 8 LOCATE Ymin% / 16 - 12, Xmin% / 8 + 5: COLOR Col%(Ig%) PRINT Nombr1$: LOCATE Ymin%(Ig%) / 16 + 2, Xmin%(Ig%) / 8 + 16: COLOR 15 IF ms!(Ig%) >= 1 THEN msf$ = LEFT$(STR$(ms!(Ig%)), 4): PRINT msf$; " S/D" ELSEIF ms!(Ig%) < 1 AND ms!(Ig%) >= .001 THEN msf$ = LEFT$(STR$(ms!(Ig%) * 1000), 4): PRINT msf$; "ms/D" ELSE msf$ = LEFT$(STR$(ms!(Ig%) * 1000000), 4): PRINT msf$; "s/D" END IF 207

PSET (Xmin%, Ymin% - 180) FOR I% = 1 TO 8 'EJE Y DRAW "D21 L2 R2" NEXT I% PSET (Xmin%, Ymin%): DRAW "D2 U2" FOR J% = 1 TO 10 'EJE X DRAW "R18 D2 U2" NEXT J% DRAW "R2 H2 F2 G2" 'FLECHA A DERECHA PSET (Xmin%(Ig%), Ymin%(Ig%)), 12 RETURN ' ************* Programa para ingresar las ordenes a ejecutar ************* Editordecodexe: ' ********************** Escritura del programa *************************** ' ********** Busca el numero total de lineas escritas de la matriz ******** Totallineas% = 0 FOR I% = 1 TO 21 IF LEN(Progencar$(I%)) < 1 THEN EXIT FOR Totallineas% = Totallineas% + 1 NEXT I% ' *********** Escritura del programa en primer codigo de ejecucion ******** n% = 39 'Subindice para las variables numericas FOR y% = 1 TO Totallineas% Line$ = Progencar$(y%) + " " Codigo$(y%) = "" Uespacio% = 1 'Mantiene la posicion del espacio anterio DO Espacio% = INSTR(Uespacio% + 1, Line$, " ") 'Busca primer espacio IF Espacio% = 0 THEN EXIT DO Cod$ = MID$(Line$, Uespacio% + 1, Espacio% - Uespacio% - 1) 'Lee caracteres entre espacios Uespacio% = Espacio% 'Actualiza el ultimo espacio para la lectura tt% = 0 IF LEFT$(Cod$, 1) > CHR$(47) OR LEFT$(Cod$, 1) = CHR$(46) THEN tt% = 1 IF LEFT$(Cod$, 1) < CHR$(58) AND tt% = 1 THEN IF n% > 58 THEN Er% = 1: GOSUB Erro 'Envia a subrutina de error por demaciados numeros en el programa Mprog!(n%) = VAL(Cod$) 'Almacena este valor en una variable de programa Cod$ = "Vn " IF n% > 47 THEN Cod$ = "Vn " MID$(Cod$, 3) = LTRIM$(STR$(n% - 38)) 'Ajusta el numero a Vn n% = n% + 1 'Incrementa el subindice de la variable numerica END IF SELECT CASE Cod$ 'Busca codigo para los caracteres leidos CASE "INAD1": Codigo$(y%) = Codigo$(y%) + "01" CASE "INAD2": Codigo$(y%) = Codigo$(y%) + "02" CASE "INAD3": Codigo$(y%) = Codigo$(y%) + "03" CASE "INAD4": Codigo$(y%) = Codigo$(y%) + "04" CASE "INDD1": Codigo$(y%) = Codigo$(y%) + "05" CASE "INDD2": Codigo$(y%) = Codigo$(y%) + "06" CASE "INDD3": Codigo$(y%) = Codigo$(y%) + "07" CASE "INDD4": Codigo$(y%) = Codigo$(y%) + "08" CASE "RX": Codigo$(y%) = Codigo$(y%) + "09" CASE "OUTDA1": Codigo$(y%) = Codigo$(y%) + "10" CASE "OUTDA2": Codigo$(y%) = Codigo$(y%) + "11" 208

CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE CASE

"OUTDA3": "OUTDA4": "OUTDD1": "OUTDD2": "OUTDD3": "OUTDD4": "TX": "Vp1": "Vp2": "Vp3": "Vp4": "Vp5": "Vp6": "Vp7": "Vp8": "Vp9": "Vp10": "Vaux1": "Vaux2": "Vaux3": "Vaux4": "Vaux5": "Vaux6": "Vaux7": "Vaux8": "Vaux9": "Vaux10": "Vn1": "Vn2": "Vn3": "Vn4": "Vn5": "Vn6": "Vn7": "Vn8": "Vn9": "Vn10": "Vn11": "Vn12": "13": "Vn14": "Vn15": "Vn16": "Vn17": "Vn18": "Vn19": "Vn20": CHR$(42): CHR$(47): CHR$(92): "MOD": CHR$(43): CHR$(45): CHR$(60): "<=": CHR$(61): CHR$(62):

Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%)

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%) Codigo$(y%)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

"12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" "59" "60" "61" "62" "63" "64" "65" "66" "67" "68" 209

CASE ">=": Codigo$(y%) = Codigo$(y%) + "69" CASE "<>": Codigo$(y%) = Codigo$(y%) + "70" CASE "NOT": Codigo$(y%) = Codigo$(y%) + "71" CASE "AND": Codigo$(y%) = Codigo$(y%) + "72" CASE "OR": Codigo$(y%) = Codigo$(y%) + "73" CASE "XOR": Codigo$(y%) = Codigo$(y%) + "74" CASE "EQV": Codigo$(y%) = Codigo$(y%) + "75" CASE "SEN": Codigo$(y%) = Codigo$(y%) + "76" CASE "COS": Codigo$(y%) = Codigo$(y%) + "77" CASE "TAN": Codigo$(y%) = Codigo$(y%) + "78" CASE "ATN": Codigo$(y%) = Codigo$(y%) + "79" CASE "INT": Codigo$(y%) = Codigo$(y%) + "80" CASE "ABS": Codigo$(y%) = Codigo$(y%) + "81" CASE "SQR": Codigo$(y%) = Codigo$(y%) + "82" CASE CHR$(94): Codigo$(y%) = Codigo$(y%) + "83" CASE CHR$(40): Codigo$(y%) = Codigo$(y%) + "84" CASE CHR$(41): Codigo$(y%) = Codigo$(y%) + "85" CASE "IF": Codigo$(y%) = Codigo$(y%) + "86" CASE "THEN": Codigo$(y%) = Codigo$(y%) + "87" CASE "ELSE": Codigo$(y%) = Codigo$(y%) + "88" CASE "ENDIF": Codigo$(y%) = Codigo$(y%) + "89" CASE "SELECTCASE": Codigo$(y%) = Codigo$(y%) + "90" CASE "CASE": Codigo$(y%) = Codigo$(y%) + "91" CASE "CASEELSE": Codigo$(y%) = Codigo$(y%) + "92" CASE "ENDSELECT": Codigo$(y%) = Codigo$(y%) + "93" CASE "A:": Codigo$(y%) = "94" CASE "D:": Codigo$(y%) = "95" CASE "C:": Codigo$(y%) = "96" CASE ELSE: Er% = 3: GOSUB Erro END SELECT LOOP NEXT y% ' ******************* Codificacion de ejecucion del programa **************** vp% = 18 ' Subindice para las variables de programa FOR y% = 1 TO Totallineas% Codigoexe$(y%) = "" L1% = 5: L2% = 3 Tipodelinea$ = LEFT$(Codigo$(y%), 2) SELECT CASE Tipodelinea$ CASE "94" GOSUB Primernivela 'Parentesis GOSUB Segundonivela 'SIN COS TAN ATN INT ABS SQR GOSUB Tercernivela ' ^ * / \ Mod GOSUB Cuartonivela ' + GOSUB Quintonivel ' < <= = >= > <> CASE "95" GOSUB Primerniveld 'AND GOSUB Segundoniveld 'OR GOSUB Tercerniveld 'XOR, EQV O XNOR L1% = 3: L2% = LEN(Codigo$(y%)) GOSUB Quintonivel '= CASE "96" GOSUB Sentenciasdecontrol 'IF THEN END END SELECT NEXT y% RETURN Primernivela: 210

FOR L2% = 5 TO LEN(Codigo$(y%)) STEP 2 Pc$ = MID$(Codigo$(y%), L2%, 2) IF Pc$ = "85" THEN 'Pregunta por el primer parentesis cerrado ) FOR L1% = 3 TO LEN(Codigo$(y%)) STEP 2 Pa$ = MID$(Codigo$(y%), L1%, 2) IF Pa$ = "84" THEN L1a% = L1%'Pregunta por el primer parentesis abierto ( IF L1% >= L2% THEN L1% = L1a% IF L2% - L1% <= 5 THEN 'Elimina parentesis con una sola expresion Primeraparte$ = MID$(Codigo$(y%), 1, L1% - 1) Segundaparte$ = MID$(Codigo$(y%), L2% + 2) Codigo$(y%) = Primeraparte$ + MID$(Codigo$(y%), L1% + 2, 2) + Segundaparte$ L1% = 3: L2% = 3 EXIT FOR END IF GOSUB Segundonivela 'SIN COS TAN ATN INT ABS SQR GOSUB Tercernivela ' ^ * / \ Mod GOSUB Cuartonivela ' + L2% = 5 EXIT FOR END IF NEXT L1% END IF NEXT L2% RETURN Segundonivela: ' SIN COS TAN ANT INT ABS SQR FOR E% = L1% TO L2% STEP 2 E$ = MID$(Codigo$(y%), E%, 2) IF VAL(E$) >= 76 AND VAL(E$) <= 82 THEN Op1$ = MID$(Codigo$(y%), E% + 2, 2) IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN Indiced% = VAL(Op1$) ELSE vp% = vp% + 1 IF vp% > 28 THEN Er% = 2: GOSUB Erro 'Error por desbordamiento de memoria Indiced% = vp%: Indiceo% = VAL(Ed$) END IF SELECT CASE E$ CASE "76": Nuevocodigo$ = "76" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'SIN CASE "77": Nuevocodigo$ = "77" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'COS CASE "78": Nuevocodigo$ = "78" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'TAN CASE "79": Nuevocodigo$ = "79" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'ANT CASE "80": Nuevocodigo$ = "80" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'INT CASE "81": Nuevocodigo$ = "81" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'ABS CASE "82": Nuevocodigo$ = "82" + Op1$ + Op1$ + LTRIM$(STR$(Indiced%)) 'SQR END SELECT Primeraparte$ = MID$(Codigo$(y%), 1, E% - 1) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + LTRIM$(STR$(Indiced%)) + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ E% = L1%: L2% = L2% - 2 END IF NEXT E% RETURN Tercernivela: ' ^ * / \ MOD DO FOR E% = L1% TO L2% STEP 2 211

E$ = MID$(Codigo$(y%), E%, 2) IF (VAL(E$) >= 59 AND VAL(E$) <= 62) OR VAL(E$) = 83 THEN Op2$ = MID$(Codigo$(y%), E% + 2, 2) Op1$ = MID$(Codigo$(y%), E% - 2, 2) IF VAL(Op2$) >= 19 AND VAL(Op2$) <= 28 THEN IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN IF VAL(Op2$) > VAL(Op1$) THEN Indiced% = VAL(Op1$) ELSE Indiced% = VAL(Op2$) END IF vp% = vp% - 1 ELSE Indiced% = VAL(Op2$) END IF ELSE IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN Indiced% = VAL(Op1$) ELSE vp% = vp% + 1 IF vp% > 28 THEN Er% = 2: GOSUB Erro 'Desbordamiento de memoria auxiliar Indiced% = vp% END IF END IF SELECT CASE E$ CASE "83": Nuevocodigo$ = "83" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) ' ^ CASE "59": Nuevocodigo$ = "59" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) ' * CASE "60": Nuevocodigo$ = "60" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) ' / CASE "61": Nuevocodigo$ = "61" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) ' \ CASE "62": Nuevocodigo$ = "62" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) 'MOD END SELECT Primeraparte$ = MID$(Codigo$(y%), 1, E% - 3) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + LTRIM$(STR$(Indiced%)) + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ E% = L1%: L2% = L2% - 4 EXIT FOR END IF NEXT E% LOOP UNTIL E% >= L2% RETURN Cuartonivela: ' + DO FOR E% = L1% TO L2% STEP 2 E$ = MID$(Codigo$(y%), E%, 2) IF (VAL(E$) = 63 OR VAL(E$) = 64) THEN Op2$ = MID$(Codigo$(y%), E% + 2, 2) Op1$ = MID$(Codigo$(y%), E% - 2, 2) IF VAL(Op2$) >= 19 AND VAL(Op2$) <= 28 THEN IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN IF VAL(Op2$) > VAL(Op1$) THEN Indiced% = VAL(Op1$) ELSE Indiced% = VAL(Op2$) END IF vp% = vp% - 1 ELSE 212

Indiced% = VAL(Op2$) END IF ELSE IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN Indiced% = VAL(Op1$) ELSE vp% = vp% + 1 IF vp% > 28 THEN Er% = 2: GOSUB Erro 'Desbordamiento de memoria auxiliar Indiced% = vp% END IF END IF SELECT CASE E$ CASE "63": Nuevocodigo$ = "63" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) '+ CASE "64": Nuevocodigo$ = "64" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) 'END SELECT Primeraparte$ = MID$(Codigo$(y%), 1, E% - 3) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + LTRIM$(STR$(Indiced%)) + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ E% = L1%: L2% = L2% - 4 EXIT FOR END IF NEXT E% LOOP UNTIL E% >= L2% RETURN Quintonivel: ' = FOR E% = L1% TO L2% STEP 2 E$ = MID$(Codigo$(y%), E%, 2) IF VAL(E$) = 67 THEN Op2$ = MID$(Codigo$(y%), E% + 2, 2) Op1$ = MID$(Codigo$(y%), E% - 2, 2) Nuevocodigo$ = "67" + Op1$ + Op2$ + Op1$ ' = Primeraparte$ = MID$(Codigo$(y%), 1, E% - 3) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ EXIT FOR ELSE IF E% = L2% THEN Er% = 4: GOSUB Erro END IF NEXT E% RETURN Primerniveld: FOR E% = 3 TO LEN(Codigo$(y%)) STEP 2 E$ = MID$(Codigo$(y%), E%, 2) IF E$ = "72" THEN 'AND Op2$ = MID$(Codigo$(y%), E% + 2, 2) Op1$ = MID$(Codigo$(y%), E% - 2, 2) IF VAL(Op2$) >= 19 AND VAL(Op2$) <= 28 THEN IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN IF VAL(Op2$) > VAL(Op1$) THEN Indiced% = VAL(Op1$) ELSE Indiced% = VAL(Op2$) END IF vp% = vp% - 1 ELSE 213

Indiced% = VAL(Op2$) END IF ELSE IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN Indiced% = VAL(Op1$) ELSE vp% = vp% + 1 IF vp% > 28 THEN Er% = 2: GOSUB Erro 'Desbordamiento de memoria auxiliar Indiced% = vp% END IF END IF Nuevocodigo$ = "72" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) 'AND Primeraparte$ = MID$(Codigo$(y%), 1, E% - 3) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + LTRIM$(STR$(Indiced%)) + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ E% = 3 END IF NEXT E% RETURN Segundoniveld: FOR E% = 3 TO LEN(Codigo$(y%)) STEP 2 E$ = MID$(Codigo$(y%), E%, 2) IF E$ = "73" THEN ' OR Op2$ = MID$(Codigo$(y%), E% + 2, 2) Op1$ = MID$(Codigo$(y%), E% - 2, 2) IF VAL(Op2$) >= 19 AND VAL(Op2$) <= 28 THEN IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN IF VAL(Op2$) > VAL(Op1$) THEN Indiced% = VAL(Op1$) ELSE Indiced% = VAL(Op2$) END IF vp% = vp% - 1 ELSE Indiced% = VAL(Op2$) END IF ELSE IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN Indiced% = VAL(Op1$) ELSE vp% = vp% + 1 IF vp% > 28 THEN Er% = 2: GOSUB Erro 'Desbordamiento de memoria auxiliar Indiced% = vp% END IF END IF Nuevocodigo$ = "73" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%)) Primeraparte$ = MID$(Codigo$(y%), 1, E% - 3) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + LTRIM$(STR$(Indiced%)) + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ E% = 3 END IF NEXT E% RETURN Tercerniveld: FOR E% = 3 TO LEN(Codigo$(y%)) STEP 2 214

E$ = MID$(Codigo$(y%), E%, 2) IF E$ = "74" OR E$ = "75" THEN 'XOR , EQV O XNOR Op2$ = MID$(Codigo$(y%), E% + 2, 2) Op1$ = MID$(Codigo$(y%), E% - 2, 2) IF VAL(Op2$) >= 19 AND VAL(Op2$) <= 28 THEN IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN IF VAL(Op2$) > VAL(Op1$) THEN Indiced% = VAL(Op1$) ELSE Indiced% = VAL(Op2$) END IF vp% = vp% - 1 ELSE Indiced% = VAL(Op2$) END IF ELSE IF VAL(Op1$) >= 19 AND VAL(Op1$) <= 28 THEN Indiced% = VAL(Op1$) ELSE vp% = vp% + 1 IF vp% > 28 THEN Er% = 2: GOSUB Erro 'Desbordamiento de memoria auxiliar Indiced% = vp% END IF END IF SELECT CASE Nd4$ CASE "74": Nuevocodigo$ = "74" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%))'XOR CASE "75": Nuevocodigo$ = "75" + Op1$ + Op2$ + LTRIM$(STR$(Indiced%))'XNOR END SELECT Primeraparte$ = MID$(Codigo$(y%), 1, E% - 3) Segundaparte$ = MID$(Codigo$(y%), E% + 4) Codigo$(y%) = Primeraparte$ + LTRIM$(STR$(Indiced%)) + Segundaparte$ Codigoexe$(y%) = Codigoexe$(y%) + Nuevocodigo$ E% = 3 END IF NEXT E% RETURN Sentenciasdecontrol: E$ = MID$(Codigo$(y%), 3, 2) IF E$ = "86" THEN 'Sentencia IF Op1 Sig Op2 then Op3 = Op4 Op1$ = MID$(Codigo$(y%), 5, 2) Sig$ = MID$(Codigo$(y%), 7, 2) Op2$ = MID$(Codigo$(y%), 9, 2) Op3$ = MID$(Codigo$(y%), 13, 2) Op4$ = MID$(Codigo$(y%), 17, 2) Codigoexe$(y%) = E$ + Sig$ + Op1$ + Op2$ + Op3$ + Op4$ END IF RETURN Erro: BEEP SELECT CASE Er% CASE 1: LOCATE 15, 10: PRINT "Demaciados numeros en el programa" CASE 2: LOCATE 15, 9 PRINT "Desbordamiento por demaciadas operaciones en una misma linea" LOCATE 16, 5 PRINT "No son permitidas mas de 10 operaciones independientes en una linea" CASE 3: LOCATE 15, 23: COLOR 12 PRINT Cod$; : COLOR 15: PRINT " Error en la escritura" 215

CASE 4: LOCATE 15, 18: PRINT "Error en la linea"; y%; "no tiene signo =" CASE 5: LOCATE 15, 25: PRINT "Error en la codificacionexe linea analoga" CASE 6: LOCATE 15, 25: PRINT "Error en la codificacionexe linea de control" END SELECT RETURN

DEFSNG A-Z SUB Ayuda (s%, Cu%, Aux%) PAINT (Xcoorb%(Cu%, 1) * 8 DO IF Aux% = 3 THEN LOCATE 15, 31: PRINT "Listo ELSEIF Aux% = 4 THEN LOCATE 15, 31: PRINT "Listo ELSEIF Aux% = 5 THEN LOCATE 15, 31: PRINT "Listo ELSEIF Aux% = 8 THEN LOCATE 15, 31: PRINT "Listo END IF LOOP UNTIL INKEY$ = CHR$(13) END SUB

18, Ycoorb%(Cu%, 1) * 16 - 21), 12, 8

para ayuda 1": s% = 1: Cu% = 1: Aux% = 0 para ayuda 2": s% = 1: Cu% = 2: Aux% = 0 para ayuda 3": s% = 1: Cu% = 3: Aux% = 0 para ayuda 6": s% = 1: Cu% = 6: Aux% = 0

' ****************** Detecta y maneja los botones de seleccion ************ SUB Botonselec (s%, Cu%, Aux%, Archivo$) IF Archivo$ = "" THEN ' Desbilita boton correccion en el cuadro grafico Tb%(2) = 5 ELSE Tb%(2) = 6 END IF IF Cu% = 2 THEN PAINT (Xcoorcu%(Cu%, 1) - 2, Ycoorcu%(Cu%, 1) - 2), 10, 8 Selecboton% = 1 PAINT (Xcoorb%(Cu%, 1) * 8 - 18, Ycoorb%(Cu%, 1) * 16 - 21), 12, 8 Tecla$ = "" DO Tecla$ = INKEY$ IF Tecla$ = CHR$(9) THEN IF Selecboton% = Tb%(Cu%) THEN Selecboton% = 0 PAINT (Xcoorcu%(Cu%, 1) - 2, Ycoorcu%(Cu%, 1) - 2), 10, 8 END IF Selecboton% = Selecboton% + 1 IF Selecboton% = 1 AND Tb%(Cu%) > 1 THEN PAINT (Xcoorb%(Cu%, 1) * 8 - 18, Ycoorb%(Cu%, 1) * 16 - 21), 12, 8 ww% = Xcoorb%(Cu%, Tb%(Cu%)) * 8 - 18 PAINT (ww%, Ycoorb%(Cu%, Tb%(Cu%)) * 16 - 21), 10, 8 ELSE ww% = Xcoorb%(Cu%, Selecboton%) * 8 - 18 PAINT (ww%, Ycoorb%(Cu%, Selecboton%) * 16 - 21), 12, 8 ww% = Xcoorb%(Cu%, Selecboton% - 1) * 8 - 18 PAINT (ww%, Ycoorb%(Cu%, Selecboton% - 1) * 16 - 21), 10, 8 END IF END IF LOOP UNTIL Tecla$ = CHR$(13) IF Cu% = 1 THEN IF Selecboton% = 1 THEN s% = 1: Cu% = 4: Aux% = 3 216

IF Selecboton% = 2 THEN s% = 1: Cu% = 2: Aux% = 0 IF Selecboton% = 3 THEN s% = 1: Cu% = 5: Aux% = 6 IF Archivo$ = "" THEN CLS : END END IF ELSEIF Cu% = 2 THEN IF Selecboton% = 1 THEN s% = 1: Cu% = 1: Aux% = 0 IF Selecboton% = 2 THEN s% = 4: Cu% = 2: Aux% = 1 PAINT (Xcoorb%(Cu%, 2) * 8 - 18, Ycoorb%(Cu%, 2) * 16 - 21), 10, 8 END IF IF Selecboton% = 3 THEN s% = 4: Cu% = 2: Aux% = 2 PAINT (Xcoorb%(Cu%, 3) * 8 - 18, Ycoorb%(Cu%, 3) * 16 - 21), 10, 8 END IF IF Selecboton% = 4 THEN s% = 1: Cu% = 3: Aux% = 0 PAINT (Xcoorb%(Cu%, 4) * 8 - 18, Ycoorb%(Cu%, 4) * 16 - 21), 10, 8 IF Archivo$ = "" THEN s% = 2: Cu% = 2 END IF IF Selecboton% = 5 THEN s% = 1: Cu% = 4: Aux% = 4 IF Selecboton% = 6 THEN s% = 5: Cu% = 2: Aux% = 0 PAINT (Xcoorcu%(Cu%, 1) - 2, Ycoorcu%(Cu%, 1) - 2), 12, 8 PAINT (Xcoorb%(Cu%, 6) * 8 - 18, Ycoorb%(Cu%, 6) * 16 - 21), 10, 8 ELSEIF Cu% = 3 THEN IF Selecboton% = 1 THEN s% = 1: Cu% = 2: Aux% = 0 IF Selecboton% = 2 THEN s% = 1: Cu% = 6: Aux% = 0 IF Selecboton% = 3 THEN s% = 6: Cu% = 3: Aux% = 0 IF Selecboton% = 4 THEN s% = 1: Cu% = 4: Aux% = 5 IF Selecboton% = 5 THEN GET (100, 320)-(550, 412), Arr% LINE (100, 320)-(550, 412), 7, BF LINE (104, 324)-(546, 408), 0, BF PAINT (102, 322), 1, 7 LOCATE 22, 18: PRINT "ESTA OPCION PERMITE UTILIAR UN PROGRAMA EXTERIOR" LOCATE 23, 19: PRINT "CON EXTENCION .EXE CON EL PROGRAMA A EJECUTAR" LOCATE 24, 19: INPUT "NOMBRE DEL ARCHIVO: "; Archivo$ IF Archivo$ = "" THEN BEEP ELSE IF LEN(Archivo$) < 20 THEN CLS LINE (100, 190)-(550, 280), 8, B LINE (97, 187)-(553, 283), 8, B PAINT (98, 188), 10, 8 PAINT (92, 190), 1, 8 Archivo$ = UCASE$(Archivo$) LOCATE 15, 23: PRINT "SE ESTA EJECUTANDO EL PROGRAMA EXTERIOR " COLOR 10: LOCATE 16, 37: PRINT Archivo$: COLOR 5 '************* Identificacion de puerto a utilizar ******************** IF VAL(Maux$(4, 1)) = 1 THEN Da% = &H3BC: Sa% = &H3BD: Ca% = &H3BE ELSEIF VAL(Maux$(4, 1)) = 2 THEN Da% = &H378: Sa% = &H379: Ca% = &H37A ELSEIF VAL(Maux$(4, 1)) = 3 THEN Da% = &H278: Sa% = &H279: Ca% = &H27A END IF 217

'Inicializa condiciones normales de operacion de los buses DATOIN y DATOOUT OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HB0: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HB0: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 'Inicia transmisor OUT Da%, &H9E: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 ' ********** PROGRAMACION DE RELOJ MAESTRO ********** I% = 1 DO WHILE VAL(Maux$(4, 2)) > VAL(Numck$(I%)) I% = I% + 1 IF I% > 163 THEN EXIT DO LOOP IF I% <= 95 THEN 'Decide si se trata de alta o baja frecuencia J% = &H0 ELSE J% = &H1 END IF IF Maux$(4, 3) = "S" AND J% = &H0 THEN J% = &H4'Decide si DATOin = DATOout IF Maux$(4, 3) = "S" AND J% = &H1 THEN J% = &H5 OUT Da%, J%: OUT Ca%, &H1 'Alta o baja frecuencia, DATOin=DATOout OUT Da%, &HB0: OUT Ca%, &H0 OUT Da%, Codck%(I%): OUT Ca%, &H1 'Programa reloj maestro OUT Da%, &HEC: OUT Ca%, &H0 ' ********** Programacion de diviciones de reloj maestro ********** OUT Da%, &H0: OUT Ca%, &H1 'Inicializa programacion OUT Da%, &HEE: OUT Ca%, &H0 OUT Da%, Codprogdivck%(1): OUT Ca%, &H1 'Programa frecuencia de AD1 OUT Da%, &H8: OUT Ca%, &H0 OUT Da%, Codprogdivck%(2): OUT Ca%, &H1 'Programa frecuencia de AD2 OUT Da%, &H9: OUT Ca%, &H0 OUT Da%, Codprogdivck%(3): OUT Ca%, &H1 'Programa frecuencia de AD3 OUT Da%, &HA: OUT Ca%, &H0 OUT Da%, Codprogdivck%(4): OUT Ca%, &H1 'Programa frecuencia de AD4 OUT Da%, &HB: OUT Ca%, &H0 OUT Da%, Codprogdivck%(9): OUT Ca%, &H1 'Programa frecuencia de TX OUT Da%, &HA0: OUT Ca%, &H0 CHAIN Archivo$ END IF END IF COLOR 15 VIEW (100, 320)-(550, 412) CLS VIEW PUT (100, 320), Arr% s% = 1: Cu% = 3: Aux% = 0 END IF IF Selecboton% = 6 THEN s% = 1: Cu% = 5: Aux% = 7 ELSEIF Cu% = 5 THEN IF Selecboton% = 1 THEN s% = 1 218

IF Aux% = 6 THEN Cu% = 1 ELSE Cu% = 3 END IF Aux% = 0 END IF IF Selecboton% = 2 THEN s% = 10: Cu% = 0: Aux% = 0 IF Selecboton% = 3 THEN CLS : s% = 11: Cu% = 0: Aux% = 0 ELSEIF Cu% = 6 THEN IF Selecboton% = 1 THEN s% = 1: Cu% = 3: Aux% = 0 IF Selecboton% = 2 THEN s% = 7: Cu% = 6: Aux% = 0 PAINT (Xcoorb%(Cu%, 2) * 8 - 18, Ycoorb%(Cu%, 2) * 16 - 21), 10, 8 END IF IF Selecboton% = 3 THEN s% = 1: Cu% = 4: Aux% = 8 END IF END SUB '***************** Abre, crea, guarda o elimina un archivo ***************** SUB Crearabrirarchivo (s%, Aux%, Archivo$) DEFSTR A-Z IF Aux% = 1 THEN COLOR 12 LOCATE 3, 6: PRINT STRING$(70, CHR$(32)) LOCATE 3, 14: PRINT "ESCRIBA EL NOMBRE DEL ARCHIVO A CREAR O ABRIR" BEEP COLOR 15 CALL FILTRO(60, 3, F$(3), 8, Nom$, 0) LOCATE 3, 6: PRINT STRING$(70, CHR$(255)) Nom$ = UCASE$(Nom$) LOCATE 3, 29: COLOR 12: PRINT "PROCESANDO ARCHIVO "; Nom$: COLOR 15 IF Nom$ = Archivo$ AND Nom <> "" THEN COLOR 15 s% = 2: Cu% = 2: Aux% = 0 LOCATE 3, 6: PRINT STRING$(70, CHR$(255)) LOCATE Ycoort%(2, 2), Xcoort%(2, 2) PRINT Tit$(2, 2); : COLOR 14: PRINT Archivo$ COLOR 15 EXIT SUB ELSEIF Nom$ = "" THEN s% = 2: Cu% = 2: Aux% = 0 IF Archivo$ = "" THEN Titulo$ = "" ELSE Titulo$ = Tit$(2, 2) END IF LOCATE 3, 6: PRINT STRING$(70, CHR$(255)) LOCATE Ycoort%(2, 2), Xcoort%(2, 2): PRINT Titulo$; COLOR 14: PRINT Archivo$: COLOR 15 EXIT SUB END IF OPEN Nom$ FOR RANDOM AS #1 LEN = LEN(Archi) IF LOF(1) / LEN(Archi) = 0 THEN COLOR 12 LOCATE 4, 24: PRINT "DECEA CREAR EL ARCHIVO "; Nom$; " ? S/N" BEEP 219

DO Z$ = INPUT$(1) IF INSTR("SNsn", Z$) = 0 THEN BEEP LOOP WHILE INSTR("SNsn", Z$) = 0 COLOR 15 IF Z$ = "N" OR Z$ = "n" THEN CLOSE KILL Nom$ COLOR 15 LOCATE 3, 6: PRINT STRING$(70, CHR$(255)) LOCATE 4, 6: PRINT STRING$(70, CHR$(255)) IF Archivo$ = "" THEN Titulo$ = "" ELSE Titulo$ = Tit$(2, 2) END IF LOCATE Ycoort%(2, 2), Xcoort%(2, 2): PRINT Titulo$; : COLOR 14 PRINT Archivo$ COLOR 15 s% = 2: Cu% = 2: Aux% = 0 EXIT SUB ELSE Archivo$ = Nom$ LOCATE 4, 6: PRINT STRING$(70, CHR$(255)) FOR w% = 0 TO 1600 IF w% = 200 OR w% = 600 OR w% = 1000 OR w% = 1400 THEN COLOR 12 IF w% = 0 OR w% = 400 OR w% = 800 OR w% = 1200 THEN COLOR 0 LOCATE 4, 22: PRINT "CREANDO ARCHIVO DE CONFIGURACION "; Nom$ NEXT w% COLOR 15 FOR y% = 1 TO 21 'Inicia matriz auxiliar por defecto Archi.Nombre = Mnueva$(1, y%) Archi.Fciamues = Mnueva$(2, y%) Archi.Visual = Mnueva$(3, y%) Archi.Conficuadro = Mnueva$(4, y%) Archi.Codtext = Mnueva$(5, y%) PUT #1, y%, Archi NEXT y% END IF END IF Archivo$ = Nom$ FOR y% = 1 TO 21 'Inicia matriz auxiliar por defecto GET #1, y%, Archi Maux$(1, y%) = Archi.Nombre Maux$(2, y%) = Archi.Fciamues Maux$(3, y%) = Archi.Visual Maux$(4, y%) = Archi.Conficuadro Espacio% = INSTR(2, Archi.Codtext, " ") ' Detecta si la linea esta bacia IF Espacio% = 2 OR Espacio% = 0 THEN Maux$(5, y%) = "" ELSE DO Espacio1% = INSTR(Espacio% + 1, Archi.Codtext, " ") IF Espacio1% = Espacio% + 1 THEN EXIT DO Espacio% = Espacio1% LOOP Maux$(5, y%) = MID$(Archi.Codtext, 1, Espacio% - 1) 220

'Guarda instruccion posterior END IF Progencar$(y%) = Maux$(5, y%) NEXT y% CLOSE CALL Vizcuadroconfi(Archivo$) s% = 2: Cu% = 2: Aux% = 0 END IF '************************************************************************* IF Archivo$ = "" THEN s% = 2: Aux% = 0: EXIT SUB IF Aux% = 2 THEN COLOR 12 LOCATE 4, 21: PRINT "DECEA GUARDAR ESTA CONFIGURACION ? S/N" BEEP DO Z$ = INPUT$(1) IF INSTR("SNsn", Z$) = 0 THEN BEEP LOOP WHILE INSTR("SNsn", Z$) = 0 IF Z$ = "S" OR Z$ = "s" THEN LOCATE 4, 10 PRINT "ESCRIBA EL NOMBRE DEL ARCHIVO EN EL QUE DECEA GUARDARLA:" BEEP CALL FILTRO(66, 4, F$(3), 8, Nom$, 0) LOCATE 4, 10: PRINT STRING$(65, CHR$(32)) IF Nom$ <> "" THEN OPEN Nom$ FOR RANDOM AS #1 LEN = LEN(Archi) IF LOF(1) / LEN(Archi) <> 0 THEN LOCATE 4, 10 PRINT "EL ARCHIVO "; Nom$; " YA EXISTE, DECEA SOBRESCRIBIRLO ? S/N" BEEP DO Z$ = INPUT$(1) IF INSTR("SNsn", Z$) = 0 THEN BEEP LOOP WHILE INSTR("SNsn", Z$) = 0 IF Z$ = "N" OR Z$ = "n" THEN CLOSE COLOR 15 LOCATE 3, 10: PRINT STRING$(66, CHR$(32)) LOCATE 4, 10: PRINT STRING$(66, CHR$(32)) LOCATE Ycoort%(2, 2), Xcoort%(2, 2): PRINT Tit$(2, 2); COLOR 14: PRINT Archivo$ COLOR 15 s% = 2: Aux% = 0 EXIT SUB END IF END IF Archivo$ = Nom$ LOCATE 4, 10: PRINT STRING$(65, CHR$(32)) FOR w% = 0 TO 1600 IF w% = 200 OR w% = 600 OR w% = 1000 OR w% = 1400 THEN COLOR 12 IF w% = 0 OR w% = 400 OR w% = 800 OR w% = 1200 THEN COLOR 0 LOCATE 4, 20: PRINT "GUARDANDO ARCHIVO DE CONFIGURACION "; Archivo$ NEXT w% COLOR 15 LOCATE Ycoort%(2, 2), Xcoort%(2, 2): PRINT Tit$(2, 2); : COLOR 14 PRINT Archivo$; STRING$(6 - LEN(Archivo$), CHR$(32)): COLOR 15 LOCATE 4, 6: PRINT STRING$(70, CHR$(32)) 221

FOR y% = 1 TO 21 'Se transfiere informacion de matriz auxiliar a registro Archi.Nombre = Maux$(1, y%) Archi.Fciamues = Maux$(2, y%) Archi.Visual = Maux$(3, y%) Archi.Conficuadro = Maux$(4, y%) Archi.Codtext = Maux$(5, y%) PUT #1, y%, Archi NEXT y% CLOSE END IF ELSE LOCATE 4, 6: PRINT STRING$(70, CHR$(32)) LOCATE 4, 22: PRINT "DECEA ELIMINAR El ARCHIVO "; Archivo$; " S/N" BEEP DO Z$ = INPUT$(1) IF INSTR("SNsn", Z$) = 0 THEN BEEP LOOP WHILE INSTR("SNsn", Z$) = 0 LOCATE 4, 6: PRINT STRING$(70, CHR$(255)) IF Z$ = "S" OR Z$ = "s" THEN FOR w% = 0 TO 1600 IF w% = 200 OR w% = 600 OR w% = 1000 OR w% = 1400 THEN COLOR 12 IF w% = 0 OR w% = 400 OR w% = 800 OR w% = 1200 THEN COLOR 0 LOCATE 4, 21: PRINT "ELIMINANDO ARCHIVO DE CONFIGURACION "; Archivo$ NEXT w% KILL Archivo$ 'Borra archivo Archivo$ = "" ERASE Maux 'Borra matriz auxiliar CALL Vizcuadroconfi(Archivo$) END IF END IF END IF COLOR 15 s% = 2: Cu% = 2: Aux% = 0 END SUB DEFSNG A-Z ' ********************* Dibuja los cuadros de precentacion **************** SUB Cuadro (Cu%, s%, Archivo$) CLS Tb%(2) = 6 ' Garantiza dibujar siempre el sexto cuadro en cuadro grafico LOCATE Ycoort%(Cu%, 1), Xcoort%(Cu%, 1) PRINT Tit$(Cu%, 1); IF Cu% = 5 THEN COLOR 12: PRINT Archivo$: COLOR 15 LOCATE Ycoort%(Cu%, 2), Xcoort%(Cu%, 2) PRINT Tit$(Cu%, 2); IF Cu% = 6 THEN LOCATE Ycoort%(6, 1), Xcoort%(6, 1) + 21: COLOR 14 PRINT Archivo$: COLOR 15 END IF IF Cu% = 2 THEN COLOR 14: PRINT Archivo$: COLOR 15 IF Cu% = 2 AND Archivo$ = "" THEN LOCATE 3, 6: PRINT STRING$(70, CHR$(255)) LOCATE 3, 26: COLOR 12: PRINT "SIN ARCHIVO DE PROGRAMACION": COLOR 15 END IF ww% = Xcoorcu%(Cu%, 1) LINE (ww%, Ycoorcu%(Cu%, 1))-(Xcoorcu%(Cu%, 2), Ycoorcu%(Cu%, 2)), 8, B 222

ww% = Xcoorcu%(Cu%, 1) - 3 www% = Ycoorcu%(Cu%, 1) - 3 LINE (ww%, www%)-(Xcoorcu%(Cu%, 2) + 3, Ycoorcu%(Cu%, 2) + 3), 8, B PAINT (Xcoorcu%(Cu%, 1) - 2, Ycoorcu%(Cu%, 1) - 2), 10, 8 PAINT (Xcoorcu%(Cu%, 1) - 7, Ycoorcu%(Cu%, 1)), 1, 8 FOR B% = 1 TO Tb%(Cu%) IF B% = 7 THEN EXIT FOR Xg% = (Xcoorb%(Cu%, B%) * 8) - 16: Yg% = (Ycoorb%(Cu%, B%) * 16) - 19 LOCATE Ycoorb%(Cu%, B%), Xcoorb%(Cu%, B%) PRINT Nb$(Cu%, B%) Aj% = LEN(Nb$(Cu%, B%)) IF ((Aj% / 2) / INT(Aj% / 2)) = 1 THEN LINE (Xg%, Yg%)-(Xg% + 78, Yg% + 20), 8, B LINE (Xg% - 3, Yg% - 3)-(Xg% + 81, Yg% + 23), 8, B ELSE LINE (Xg%, Yg%)-(Xg% + 70, Yg% + 20), 8, B LINE (Xg% - 3, Yg% - 3)-(Xg% + 73, Yg% + 23), 8, B END IF PAINT (Xg% - 2, Yg% - 2), 10, 8 NEXT B% ' **************** Escribe el programa en el cuadro de texto ************** IF Cu% = 6 THEN Totallineas% = 0 FOR I% = 1 TO 22 IF LEN(Progencar$(I%)) < 1 THEN EXIT FOR Totallineas% = Totallineas% + 1 NEXT I% FOR Fi% = 1 TO Totallineas% LOCATE Fi% + 5, 6: PRINT Progencar(Fi%) NEXT Fi% END IF '************************************************************************** ' Cu% sigue el mismo s% = 2 IF Cu% = 2 AND Maux$(4, 1) <> "" THEN CALL Vizcuadroconfi(Archivo$) IF Cu% = 4 THEN s% = 3 END SUB DEFSTR A-Z SUB Editordetexto (Totallineas%) ' **** Edita y corrige las lineas de programa en cadenas de caracteres **** Progencar(21) = "" PAINT (Xcoorcu%(6, 1) - 2, Ycoorcu%(6, 1) - 2), 12, 8 ' *********************** Escritura del programa ************************** Totallineas% = 0 FOR I% = 1 TO 20 IF LEN(Progencar$(I%)) < 1 THEN EXIT FOR Totallineas% = Totallineas% + 1 NEXT I% FOR Fi% = 1 TO Totallineas% LOCATE Fi% + 5, 6: PRINT Progencar$(Fi%) NEXT Fi% Fi% = Totallineas% IF Totallineas% = 0 THEN Fi% = 1 C% = LEN(Progencar$(Fi%)) + 2 ' Columna de la matriz Edi% = 0 223

E$ = "" ' ****************************** Inicio *********************************** DO LOCATE Fi% + 5, C% + 5: COLOR 10: PRINT "?": COLOR 15 'Indica posicion del cursor ' ************************** Deteccion de tecla pulsada ******************* E$ = "" WHILE E$ = "" E$ = INKEY$ WEND IF LEN(E$) > 1 THEN ' Deteccion de tecla de funcion Fun% = ASC(MID$(E$, 2, 1)) SELECT CASE Fun% CASE 72: E$ = "ARRIBA": Edi% = 1 ' Flecha arriba CASE 80: E$ = "ABAJO": Edi% = 1 ' Flecha abajo END SELECT ELSE IF E$ = CHR$(8) THEN E$ = "BACK": Edi% = 1: Grupoact% = 17 ' Backspace IF E$ = CHR$(13) THEN E$ = "ENTER": Edi% = 1: Grupoact% = 17 ' Enter END IF E$ = UCASE$(E$) ' Pasa de nimuscula si lo es a mayuscula ' ****** Identificacion de instruccion Anterior, Actual y Posterior ***** IF LEN(Progencar$(Fi%)) > 1 THEN Progen$ = MID$(Progencar$(Fi%), 1, C% - 2) FOR Eant% = 2 TO 10 Espacio% = INSTR(C% - Eant%, Progen$, " ") 'Busca espacio anterior a el actual IF Espacio% <> 0 THEN EXIT FOR IF Eant% = 10 THEN Corr% = 1: CALL Mensage(Corr%, Grupoant%, Anterior$) NEXT Anterior$ = MID$(Progencar$(Fi%), C% - Eant% + 1, Eant% - 2) 'Guarda instruccion anterior a la actual ELSE Anterior$ = "Inicio" END IF IF LEN(MID$(Progencar$(Fi%), 1, C%)) <> LEN(Progencar$(Fi%)) THEN Espacio% = INSTR(C%, Progencar$(Fi%), " ") 'Busca espacio posterior al actual Actual$ = MID$(Progencar$(Fi%), C%, Espacio% - C%) 'Guarda instruccion posterior IF LEN(MID$(Progencar$(Fi%), 1, Espacio%)) <> LEN(Progencar$(Fi%)) THEN Espacio1% = INSTR(Espacio% + 1, Progencar$(Fi%), " ") Posterior$ = MID$(Progencar$(Fi%), Espacio% + 1, Espacio1% - Espacio% - 1) ELSE Posterior$ = "Fin" END IF ELSE Actual$ = E$ Posterior$ = "Fin" END IF ' ********************** Proceso para cada tecla pulsada ******************* Grupoant% = 18 Nro$ = MID$(Anterior$, 1, 1) An$ = Anterior$ IF An$ = "Inicio" THEN Grupoant% = 0 IF An$ = "*" OR An$ = "/" OR An$ = "\" OR An$ = "MOD" THEN Grupoant% = 1 IF An$ = "+" OR An$ = "-" OR An$ = "^" THEN Grupoant% = 1 224

IF An$ = "INAD1" OR An$ = "INAD2" OR An$ = "INAD3" THEN Grupoant% = 2 IF An$ = "INAD4" OR An$ = "INDD1" OR An$ = "INDD2" THEN Grupoant% = 2 IF An$ = "INDD3" OR An$ = "INDD4" OR An$ = "RX" THEN Grupoant% = 2 IF An$ = "OUTDA1" OR An$ = "OUTDA2" OR An$ = "OUTDA3" THEN Grupoant% = 2 IF An$ = "OUTDA4" OR An$ = "OUTDD1" OR An$ = "OUTDD2" THEN Grupoant% = 2 IF An$ = "OUTDD3" OR An$ = "OUTDD4" OR An$ = "TX" THEN Grupoant% = 2 IF An$ = "Vaux1" OR An$ = "Vaux2" OR An$ = "Vaux3" THEN Grupoant% = 2 IF An$ = "Vaux4" OR An$ = "Vaux5" OR An$ = "Vaux6" THEN Grupoant% = 2 IF An$ = "Vaux7" OR An$ = "Vaux8" OR An$ = "Vaux9" THEN Grupoant% = 2 IF Nro$ = "1" OR Nro$ = "2" OR Nro$ = "3" OR Nro$ = "4" THEN Grupoant% = 3 IF Nro$ = "5" OR Nro$ = "6" OR Nro$ = "7" OR Nro$ = "8" THEN Grupoant% = 3 IF Nro$ = "9" OR Nro$ = "0" THEN Grupoant% = 3 IF An$ = "SEN" OR An$ = "COS" OR An$ = "TAN" OR An$ = "ATN" THEN Grupoant% = 4 IF An$ = "INT" OR An$ = "ABS" OR An$ = "SQR" THEN Grupoant% = 4 IF An$ = "(" THEN Grupoant% = 5 IF An$ = ")" THEN Grupoant% = 6 IF An$ = "=" THEN Grupoant% = 7 IF An$ = "<" OR An$ = ">" OR An$ = "<=" OR An$ = ">=" THEN Grupoant% = 8 IF An$ = "<>" THEN Grupoant% = 8 IF An$ = "AND" OR An$ = "OR" OR An$ = "XOR" OR An$ = "XNOR" THEN Grupoant% = 10 IF An$ = "IF" THEN Grupoant% = 11 IF An$ = "THEN" THEN Grupoant% = 12 IF An$ = "A:" THEN Grupoant% = 13 IF An$ = "D:" THEN Grupoant% = 14 IF An$ = "C:" THEN Grupoant% = 15 IF An$ = "Fin" THEN Grupoant% = 16 Grupoact% = 18 'Nu$ = MID$(Actual$, 1, 1) 'Ac$ = Actual$ 'IF Ac$ = "*" OR Ac$ = "/" OR Ac$ = "\" OR Ac$ = "M" THEN Grupoact% = 1 'IF Ac$ = "+" OR Ac$ = "-" OR Ac$ = "^" THEN Grupoact% = 1 'IF Ac$ = "I" OR Ac$ = "R" OR Ac$ = "O" OR Ac$ = "V" THEN Grupoact% = 2 'IF Ac$ = "T" THEN Grupoact% = 2 'IF Nu$ = "1" OR Nu$ = "2" OR Nu$ = "3" OR Nu$ = "4" THEN Grupoact% = 3 'IF Nu$ = "5" OR Nu$ = "6" OR Nu$ = "7" OR Nu$ = "8" THEN Grupoact% = 3 'IF Nu$ = "9" OR Nu$ = "0" THEN Grupoact% = 3 'IF Ac$ = "S" OR Ac$ = "C" OR Ac$ = "A" THEN Grupoact% = 4 'IF Ac$ = "(" THEN Grupoact% = 5 'IF Ac$ = ")" THEN Grupoact% = 6 'IF Ac$ = "=" THEN Grupoact% = 7 'IF Ac$ = "<" OR Ac$ = ">" THEN Grupoact% = 8 ww% = 0 IF (Ac$ = "A" OR Ac$ = "X") THEN ww% = 1 IF ww% = 1 AND MID$(Progencar$(Fi%), 2, 1) = "D" THEN Grupoact% = 10 ww% = 0 IF (MID$(Progencar$(Fi%), 2, 1) = "C") THEN ww% = 1 IF (Ac$ = "I") AND ww% = 1 AND (C% < 6) THEN Grupoact% = 11 IF Actual$ = "THEN" THEN Grupoact% = 12 IF Actual$ = "A" AND C% < 4 THEN Grupoact% = 13 IF Actual$ = "D" THEN Grupoact% = 14 IF Actual$ = "C" AND C% < 4 THEN Grupoact% = 15 '************** Proceso de escritura de cada linea de codigo *********** '********** Detecta cuando se va a iniciar una linea de programa ******* IF MID$(Progencar$(Fi%), 2, 1) = "" THEN IF E$ = "A" OR E$ = "D" OR E$ = "C" THEN Progencar$(Fi%) = " " + E$ + ":": LOCATE Fi% + 5, C% + 5: COLOR 15 225

PRINT E$; ":": C% = 5 ' Indica le tipo de linea que se va a escribir END IF ww% = 0: www% = 0 IF E$ <> "ABAJO" AND E$ <> "ENTER" AND E$ <> "BACK" THEN ww% = 1 IF E$ <> "ARRIBA" AND E$ <> "A" THEN www% = 1 IF E$ <> "D" AND E$ <> "C" AND ww% = 1 AND www% = 1 THEN Corr% = 1: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF END IF ' *********** Detecta fin de linea y elimina ultimo termino *************** IF C% + 5 > 69 THEN Corr% = 3: CALL Mensage(Corr%, Grupoant%, Anterior$) DO Progen$ = MID$(Progencar$(Fi%), 1, C% - 2) FOR Eant% = 2 TO 10 Espacio% = INSTR(C% - Eant%, Progen$, " ") 'Busca espacio anterior a el actual IF Espacio% <> 0 THEN EXIT FOR NEXT C% = Espacio% + 1 Progencar$(Fi%) = MID$(Progencar$(Fi%), 1, Espacio% - 1) 'Guarda instruccion anterior a la actual LOCATE Fi% + 5, 6: PRINT " " LOCATE Fi% + 5, 6: PRINT Progencar$(Fi%) LOOP UNTIL C% + 5 < 69 Grupoact% = 18 END IF Tiplin$ = MID$(Progencar$(Fi%), 2, 1) '********** Cuenta numero de elementos en una linea de control ************ IF Tiplin$ = "C" THEN Anterior% = 2 Elementos% = 0 DO el% = INSTR(Anterior%, Progencar$(Fi%), " ") 'Cuenta el numero de elementos de la linea de control Elementos% = Elementos% + 1: Anterior% = el% + 1 LOOP UNTIL el% = 0 ELSE Elementos% = 0 END IF ' **** Clasifica las reglas de escritura deacuerdo al tipo de linea ******* IF Edi% = 0 AND (Tiplin$ = "A" OR Tiplin$ = "D" OR Tiplin$ = "C") THEN SELECT CASE Tiplin$ CASE "A" SELECT CASE Grupoact% CASE 1 IF Grupoant% = 2 OR Grupoant% = 3 OR Grupoant% = 6 THEN SELECT CASE Actual$ CASE "^": LOCATE Fi% + 5, C% + 5: PRINT "^"; Progencar$(Fi%) = Progencar$(Fi%) + " ^": C% = C% + 2 CASE "*": LOCATE Fi% + 5, C% + 5: PRINT "*"; Progencar$(Fi%) = Progencar$(Fi%) + " *": C% = C% + 2 CASE "/": LOCATE Fi% + 5, C% + 5: PRINT "/"; Progencar$(Fi%) = Progencar$(Fi%) + " /": C% = C% + 2 CASE "\": LOCATE Fi% + 5, C% + 5: PRINT "\"; Progencar$(Fi%) = Progencar$(Fi%) + " \": C% = C% + 2 226

CASE "M": LOCATE Fi% + 5, C% + 5: PRINT "MOD"; Progencar$(Fi%) = Progencar$(Fi%) + " MOD": C% = C% + 4 CASE "+": LOCATE Fi% + 5, C% + 5: PRINT "+"; Progencar$(Fi%) = Progencar$(Fi%) + " +": C% = C% + 2 CASE "-": LOCATE Fi% + 5, C% + 5: PRINT "-"; Progencar$(Fi%) = Progencar$(Fi%) + " -": C% = C% + 2 END SELECT ELSE Corr% = 5: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 2 Gr% = Grupoant% IF Gr% = 1 OR Gr% = 5 OR Gr% = 4 OR Gr% = 7 OR Gr% = 13 THEN SELECT CASE Actual$ CASE "I" LOCATE Fi% + 5, C% + 5: PRINT "IN"; : COLOR 10 PRINT "?": COLOR 15: C% = C% + 2 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "T" AND Gr% <> 4 AND Gr% <> 13 THEN LOCATE Fi% + 5, C% + 5: PRINT E$ Progencar$(Fi%) = Progencar$(Fi%) + " INT": C% = C% + 2: EXIT DO END IF IF E$ = "A" OR E$ = "D" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; "D"; Progencar$(Fi%) = Progencar$(Fi%) + " IN" + E$ + "D": C% = C% + 2 COLOR 10: PRINT "?": COLOR 15 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 5 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF LOOP CASE "R": LOCATE Fi% + 5, C% + 5: PRINT "RX"; : C% = C% + 3 Progencar$(Fi%) = Progencar$(Fi%) + " RX" IF C% + 5 <= 14 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF CASE "O" LOCATE Fi% + 5, C% + 5: PRINT "OUTD"; Progencar$(Fi%) = Progencar$(Fi%) + " OUTD": COLOR 10 PRINT "?": COLOR 15: C% = C% + 4 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "A" OR E$ = "D" THEN 227

LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: COLOR 10 PRINT "?": COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 5 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF LOOP CASE "T" LOCATE Fi% + 5, C% + 5: PRINT "T"; : COLOR 10: PRINT "?" COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "X" THEN LOCATE Fi% + 5, C% + 5: PRINT "X"; Progencar$(Fi%) = Progencar$(Fi%) + " TX": C% = C% + 2 IF C% + 5 <= 13 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF IF E$ = "A" AND Grupoant% <> 4 AND Grupoant% <> 13 THEN LOCATE Fi% + 5, C% + 5: PRINT "AN"; Progencar$(Fi%) = Progencar$(Fi%) + " TAN": C% = C% + 3: EXIT DO END IF LOOP CASE "V" LOCATE Fi% + 5, C% + 5: PRINT "Vaux"; : COLOR 10 PRINT "?": COLOR 15: C% = C% + 4 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 11 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " Vaux" + E$: C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF END SELECT ELSE Corr% = 5: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF 228

CASE 3 IF Grupoant% = 1 OR Grupoant% = 4 OR Grupoant% = 5 OR Grupoant% = 7 THEN IF E$ > CHR$(47) AND E$ < CHR$(58) OR E$ = CHR$(46) THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " " + E$: C% = C% + 1 Connum% = 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF Connum% > 7 THEN Corr% = 4: CALL Mensage(Corr%, Grupoant%, Anterior$) C% = C% + 1: EXIT DO END IF IF E$ > CHR$(47) AND E$ < CHR$(58) OR E$ = CHR$(46) THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 1 Connum% = Connum% + 1 END IF ww% = 0: www% = 0 IF E$ = CHR$(13) OR E$ = CHR$(32) OR E$ = CHR$(8) THEN www% = 1 IF E$ = "M" OR E$ = "+" OR E$ = "-" OR E$ = "^" OR E$ = ")" THEN ww% = 1 IF E$ = "*" OR E$ = "/" OR E$ = "\" OR ww% = 1 OR www% = 1 THEN C% = C% + 1 SELECT CASE E$ CASE "^": LOCATE Fi% + 5, C% + 5: PRINT "^"; Progencar$(Fi%) = Progencar$(Fi%) + " ^": C% = C% + 2 CASE "*": LOCATE Fi% + 5, C% + 5: PRINT "*"; Progencar$(Fi%) = Progencar$(Fi%) + " *": C% = C% + 2 CASE "/": LOCATE Fi% + 5, C% + 5: PRINT "/"; Progencar$(Fi%) = Progencar$(Fi%) + " /": C% = C% + 2 CASE "\": LOCATE Fi% + 5, C% + 5: PRINT "\"; Progencar$(Fi%) = Progencar$(Fi%) + " \": C% = C% + 2 CASE "M": LOCATE Fi% + 5, C% + 5: PRINT "MOD" Progencar$(Fi%) = Progencar$(Fi%) + " MOD": C% = C% + 4 CASE "+": LOCATE Fi% + 5, C% + 5: PRINT "+"; Progencar$(Fi%) = Progencar$(Fi%) + " +": C% = C% + 2 CASE "-": LOCATE Fi% + 5, C% + 5: PRINT "-"; Progencar$(Fi%) = Progencar$(Fi%) + " -": C% = C% + 2 CASE ")" IF Parent% > 0 THEN LOCATE Fi% + 5, C% + 5: PRINT ")"; Progencar$(Fi%) = Progencar$(Fi%) + " )": C% = C% + 2 Parent% = Parent% - 1 END IF CASE CHR$(13) Gr% = Grupoant% IF (Fi% = 20) AND (Gr% = 2 OR Gr% = 3 OR Gr% = 6 OR Gr% = 0) THEN EXIT SUB IF Fi% < 20 THEN IF LEN(Progencar$(20)) < 6 THEN IF LEN(Progencar$(Fi%)) > 1 THEN Anterior% = 1: Abierto% = 0: Cerrado% = 0 DO Ab% = INSTR(Anterior%, Progencar$(Fi%), "(") 'Busca parentesis abierto Abierto% = Abierto% + 1: Anterior% = Ab% + 1 LOOP UNTIL Ab% = 0 Anterior% = 1 229

DO Cer% = INSTR(Anterior%, Progencar$(Fi%), ")") ' Busca parentesis abierto Cerrado% = Cerrado% + 1: Anterior% = Cer% + 1 LOOP UNTIL Cer% = 0 IF Abierto% = Cerrado% THEN IF LEN(Progencar$(Fi% + 1)) <> 0 THEN Fil% = 20 DO LOCATE Fil% + 5, 6: PRINT " " Progencar$(Fil%) = Progencar$(Fil% - 1) LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% - 1 LOOP UNTIL Fil% = Fi% + 1 LOCATE Fi% + 6, 7: PRINT " " Progencar$(Fi% + 1) = "" END IF LOCATE Fi% + 5, C% + 5: PRINT " " Fi% = Fi% + 1 C% = 2 ELSE Corr% = 6: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Parentesis sin cerrar END IF END IF ELSE IF LEN(Progencar$(Fi% + 1)) < 1 THEN EXIT SUB END IF ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Si decea nueva linea elimine alguna de las existentes END IF CASE CHR$(8) Progen$ = MID$(Progencar$(Fi%), 1, C% - 2) FOR Eant% = 2 TO 10 Espacio% = INSTR(C% - Eant%, Progen$, " ") 'Busca espacio anterior a el actual IF Espacio% <> 0 THEN EXIT FOR NEXT C% = Espacio% + 1 Progencar$(Fi%) = MID$(Progencar$(Fi%), 1, Espacio% - 1) 'Guarda instruccion anterior a la actual LOCATE Fi% + 5, 6: PRINT " "; "" LOCATE Fi% + 5, 6: PRINT Progencar$(Fi%) END SELECT EXIT DO END IF IF C% + 5 > 74 THEN Corr% = 3: CALL Mensage(Corr%, Grupoant%, Anterior$): EXIT DO END IF LOOP END IF ELSE Corr% = 5: CALL Mensage(Corr%, Grupoant%, Anterior$) 230

END IF CASE 4 IF Grupoant% = 1 OR Grupoant% = 5 OR Grupoant% = 7 THEN SELECT CASE Actual$ CASE "S" LOCATE Fi% + 5, C% + 5: PRINT "S"; : COLOR 10 PRINT "?": COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "E" THEN LOCATE Fi% + 5, C% + 5: PRINT "EN"; Progencar$(Fi%) = Progencar$(Fi%) + " SEN": C% = C% + 3: EXIT DO END IF IF E$ = "Q" THEN LOCATE Fi% + 5, C% + 5: PRINT "QR"; Progencar$(Fi%) = Progencar$(Fi%) + " SQR": C% = C% + 3: EXIT DO END IF LOOP CASE "C" LOCATE Fi% + 5, C% + 5: PRINT "COS"; Progencar$(Fi%) = Progencar$(Fi%) + " COS": C% = C% + 4 CASE "A" LOCATE Fi% + 5, C% + 5: PRINT "A"; : COLOR 10: PRINT "?" COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "T" THEN LOCATE Fi% + 5, C% + 5: PRINT "TN"; Progencar$(Fi%) = Progencar$(Fi%) + " ATN": C% = C% + 3: EXIT DO END IF IF E$ = "B" THEN LOCATE Fi% + 5, C% + 5: PRINT "BS"; Progencar$(Fi%) = Progencar$(Fi%) + " ABS": C% = C% + 3: EXIT DO END IF LOOP END SELECT ELSE Corr% = 5: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 5 IF Grupoant% = 1 OR Grupoant% = 4 OR Grupoant% = 5 OR Grupoant% = 7 THEN LOCATE Fi% + 5, C% + 5: PRINT "("; Progencar$(Fi%) = Progencar$(Fi%) + " (": C% = C% + 2 Parent% = Parent% + 1 ELSE Corr% = 5: CALL Mensage(Corr%, Grupoant%, Anterior$) EXIT DO END IF CASE 6 IF (Grupoant% = 2 OR Grupoant% = 6 OR Grupoant% = 3) THEN IF Parent% > 0 THEN LOCATE Fi% + 5, C% + 5: PRINT ")"; Progencar$(Fi%) = Progencar$(Fi%) + " )": C% = C% + 2 Parent% = Parent% - 1 END IF 231

ELSE Corr% = 5: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF END SELECT CASE "D" SELECT CASE Grupoact% CASE 2 Gr% = Grupoant% ww% = 0 IF Gr% = 7 OR Gr% = 9 OR Gr% = 10 OR Gr% = 14 THEN ww% = 1 IF Gr% = 2 OR Gr% = 3 OR Gr% = 6 OR Gr% = 5 OR ww% = 1 THEN IF (Gr% = 2 OR Gr% = 3 OR Gr% = 6) AND (Actual$ = "O") THEN LOCATE Fi% + 5, C% + 5: PRINT "OR"; Progencar$(Fi%) = Progencar$(Fi%) + " OR": C% = C% + 3 END IF IF Gr% = 5 OR Gr% = 7 OR Gr% = 9 OR Gr% = 10 OR Gr% = 14 THEN SELECT CASE Actual$ CASE "I" LOCATE Fi% + 5, C% + 5: PRINT "IN"; : COLOR 10: PRINT "?" COLOR 15: C% = C% + 2 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "T" AND Grupoant% <> 4 AND Grupoant% <> 13 THEN LOCATE Fi% + 5, C% + 5: PRINT E$ Progencar$(Fi%) = Progencar$(Fi%) + " INT": C% = C% + 2: EXIT DO END IF IF E$ = "A" OR E$ = "D" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; "D"; Progencar$(Fi%) = Progencar$(Fi%) + " IN" + E$ + "D": C% = C% + 2 COLOR 10: PRINT "?": COLOR 15 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 5 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5 PRINT "=": Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF LOOP CASE "R": LOCATE Fi% + 5, C% + 5: PRINT "RX"; : C% = C% + 3 Progencar$(Fi%) = Progencar$(Fi%) + " RX" IF C% + 5 <= 14 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF CASE "O" LOCATE Fi% + 5, C% + 5: PRINT "OUTD"; Progencar$(Fi%) = Progencar$(Fi%) + " OUTD": COLOR 10 PRINT "?": COLOR 15: C% = C% + 4 DO 232

E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "A" OR E$ = "D" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: COLOR 10: PRINT "?" COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 5 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF LOOP CASE "T" LOCATE Fi% + 5, C% + 5: PRINT "TX"; Progencar$(Fi%) = Progencar$(Fi%) + " TX": C% = C% + 3 IF C% + 5 <= 13 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF CASE "V" LOCATE Fi% + 5, C% + 5: PRINT "Vaux"; : COLOR 10: PRINT "?" COLOR 15: C% = C% + 4 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 11 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " Vaux" + E$: C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF END SELECT END IF ELSE Corr% = 6: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 3 IF Grupoant% = 5 OR Grupoant% = 7 OR Grupoant% = 9 OR Grupoant% = 10 THEN IF E$ > CHR$(47) AND E$ < CHR$(58) OR E$ = CHR$(46) THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " " + E$: C% = C% + 1 Connum% = 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) 233

IF Connum% > 7 THEN Corr% = 4: CALL Mensage(Corr%, Grupoant%, Anterior$) C% = C% + 1: EXIT DO END IF IF E$ > CHR$(47) AND E$ < CHR$(58) OR E$ = CHR$(46) THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$ C% = C% + 1: Connum% = Connum% + 1 END IF ww% = 0 IF E$ = CHR$(13) OR E$ = CHR$(32) OR E$ = CHR$(8) THEN ww% = 1 IF E$ = "A" OR E$ = "O" OR E$ = "X" OR ww% = 1 THEN C% = C% + 1 SELECT CASE E$ CASE "A": LOCATE Fi% + 5, C% + 5: PRINT "AND"; Progencar$(Fi%) = Progencar$(Fi%) + " AND": C% = C% + 4 CASE "O": LOCATE Fi% + 5, C% + 5: PRINT "OR"; Progencar$(Fi%) = Progencar$(Fi%) + " OR": C% = C% + 3 CASE "X": LOCATE Fi% + 5, C% + 5: PRINT "X"; Progencar$(Fi%) = Progencar$(Fi%) + " X": C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "O" THEN LOCATE Fi% + 5, C% + 5: PRINT "OR"; Progencar$(Fi%) = Progencar$(Fi%) + "OR": C% = C% + 3: EXIT DO END IF IF E$ = "N" THEN LOCATE Fi% + 5, C% + 5: PRINT "NOR"; Progencar$(Fi%) = Progencar$(Fi%) + "NOR": C% = C% + 4: EXIT DO END IF LOOP CASE CHR$(13) Gr% = Grupoant% IF (Fi% = 20) AND (Gr% = 2 OR Gr% = 3 OR Gr% = 6 OR Gr% = 0) THEN EXIT SUB IF Fi% < 20 THEN IF LEN(Progencar$(20)) < 6 THEN IF LEN(Progencar$(Fi%)) > 1 THEN Anterior% = 1: Abierto% = 0: Cerrado% = 0 DO Ab% = INSTR(Anterior%, Progencar$(Fi%), "(") ' Busca parentesis abierto Abierto% = Abierto% + 1: Anterior% = Ab% + 1 LOOP UNTIL Ab% = 0 Anterior% = 1 DO Cer% = INSTR(Anterior%, Progencar$(Fi%), ")") ' Busca parentesis abierto Cerrado% = Cerrado% + 1: Anterior% = Cer% + 1 LOOP UNTIL Cer% = 0 IF Abierto% = Cerrado% THEN IF LEN(Progencar$(Fi% + 1)) <> 0 THEN Fil% = 20 DO LOCATE Fil% + 5, 6: PRINT " " Progencar$(Fil%) = Progencar$(Fil% - 1) 234

LOCATE Fil% + Fil% = Fil% LOOP UNTIL Fil% LOCATE Fi% + 6, "

5, 6: PRINT Progencar$(Fil%) 1 = Fi% + 1 7: PRINT "

Progencar$(Fi% + 1) = "" END IF LOCATE Fi% + 5, C% + 5: PRINT " " Fi% = Fi% + 1 C% = 2 ELSE Corr% = 6: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Parentesis sin cerrar END IF END IF ELSE IF LEN(Progencar$(Fi% + 1)) < 1 THEN EXIT SUB END IF ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Si decea nueva linea elimine alguna de las existentes END IF CASE CHR$(8) Progen$ = MID$(Progencar$(Fi%), 1, C% - 2) FOR Eant% = 2 TO 10 Espacio% = INSTR(C% - Eant%, Progen$, " ") 'Busca espacio anterior a el actual IF Espacio% <> 0 THEN EXIT FOR NEXT C% = Espacio% + 1 Progencar$(Fi%) = MID$(Progencar$(Fi%), 1, Espacio% - 1) 'Guarda instruccion anterior a la actual LOCATE Fi% + 5, 6: PRINT " " LOCATE Fi% + 5, 6: PRINT Progencar$(Fi%) END SELECT EXIT DO END IF IF C% + 5 > 74 THEN Corr% = 3: CALL Mensage(Corr%, Grupoant%, Anterior$): EXIT DO END IF LOOP END IF ELSE Corr% = 6: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 10 IF (Grupoant% = 2 OR Grupoant% = 3 OR Grupoant% = 6) THEN SELECT CASE Actual$ CASE "A": LOCATE Fi% + 5, C% + 5: PRINT "AND"; Progencar$(Fi%) = Progencar$(Fi%) + " AND": C% = C% + 4 CASE "X": LOCATE Fi% + 5, C% + 5: PRINT "X"; Progencar$(Fi%) = Progencar$(Fi%) + " X": C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "O" THEN 235

LOCATE Fi% + 5, C% + 5: PRINT "OR"; Progencar$(Fi%) = Progencar$(Fi%) + "OR": C% = C% + 3: EXIT DO END IF IF E$ = "N" THEN LOCATE Fi% + 5, C% + 5: PRINT "NOR"; Progencar$(Fi%) = Progencar$(Fi%) + "NOR": C% = C% + 4: EXIT DO END IF LOOP END SELECT ELSE Corr% = 6: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF END SELECT CASE "C" IF Elementos% < 9 THEN SELECT CASE Grupoact% CASE 2 IF (Grupoant% = 2 OR Grupoant% = 3) AND Elementos% = 5 THEN LOCATE Fi% + 5, C% + 5: PRINT "THEN" Progencar$(Fi%) = Progencar$(Fi%) + " THEN": C% = C% + 5 ELSE IF Grupoant% = 7 OR Grupoant% = 8 OR Grupoant% = 11 OR Grupoant% = 12 THEN SELECT CASE Actual$ CASE "I" LOCATE Fi% + 5, C% + 5: PRINT "IN"; : COLOR 10 PRINT "?": COLOR 15: C% = C% + 2 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "T" AND Grupoant% <> 4 AND Grupoant% <> 13 THEN LOCATE Fi% + 5, C% + 5: PRINT E$ Progencar$(Fi%) = Progencar$(Fi%) + " INT": C% = C% + 2 EXIT DO END IF IF E$ = "A" OR E$ = "D" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; "D"; Progencar$(Fi%) = Progencar$(Fi%) + " IN" + E$ + "D" C% = C% + 2 COLOR 10: PRINT "?": COLOR 15 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 5 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 2 EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF LOOP CASE "R": LOCATE Fi% + 5, C% + 5: PRINT "RX"; : C% = C% + 3 Progencar$(Fi%) = Progencar$(Fi%) + " RX" 236

IF C% + 5 <= 14 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF CASE "O" LOCATE Fi% + 5, C% + 5: PRINT "OUTD"; Progencar$(Fi%) = Progencar$(Fi%) + " OUTD": COLOR 10 PRINT "?": COLOR 15: C% = C% + 4 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = "A" OR E$ = "D" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: COLOR 10 PRINT "?": COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 5 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$ C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF EXIT DO END IF LOOP CASE "T" LOCATE Fi% + 5, C% + 5: PRINT "TX"; Progencar$(Fi%) = Progencar$(Fi%) + " TX": C% = C% + 3 CASE "V" LOCATE Fi% + 5, C% + 5: PRINT "Vaux"; COLOR 10: PRINT "?": COLOR 15: C% = C% + 4 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF VAL(E$) > 0 AND VAL(E$) < 11 THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " Vaux" + E$ C% = C% + 2: EXIT DO END IF LOOP IF C% + 5 <= 17 THEN LOCATE Fi% + 5, C% + 5: PRINT "=" Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 END IF END SELECT ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF END IF CASE 3 IF Grupoant% = 7 OR Grupoant% = 8 THEN 237

IF E$ > CHR$(47) AND E$ < CHR$(58) OR E$ = CHR$(46) THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " " + E$: C% = C% + 1 Connum% = 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF Connum% > 7 THEN Corr% = 4: CALL Mensage(Corr%, Grupoant%, Anterior$) C% = C% + 1: EXIT DO END IF IF E$ > CHR$(47) AND E$ < CHR$(58) OR E$ = CHR$(46) THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + E$: C% = C% + 1 Connum% = Connum% + 1 END IF IF E$ = "T" OR E$ = CHR$(32) OR E$ = CHR$(8) OR E$ = CHR$(13) THEN C% = C% + 1 SELECT CASE E$ CASE "T" IF Elementos% = 4 THEN LOCATE Fi% + 5, C% + 5: PRINT "THEN"; Progencar$(Fi%) = Progencar$(Fi%) + " THEN" C% = C% + 5: Term% = 2 END IF CASE CHR$(13) IF Elementos% > 7 THEN Gr% = Grupoant% IF (Fi% = 20) AND (Gr% = 2 OR Gr% = 3 OR Gr% = 6 OR Gr% = 0) THEN EXIT SUB IF Fi% < 20 THEN IF LEN(Progencar$(20)) < 6 THEN IF LEN(Progencar$(Fi%)) > 1 THEN IF LEN(Progencar$(Fi% + 1)) <> 0 THEN Fil% = 20 DO LOCATE Fil% + 5, 6: PRINT " " Progencar$(Fil%) = Progencar$(Fil% - 1) LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% - 1 LOOP UNTIL Fil% = Fi% + 1 LOCATE Fi% + 6, 7: PRINT " " Progencar$(Fi% + 1) = "" END IF LOCATE Fi% + 5, C% + 5: PRINT " " Fi% = Fi% + 1 C% = 2 END IF ELSE IF LEN(Progencar$(Fi% + 1)) < 1 THEN EXIT SUB END IF ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Si decea nueva linea elimine alguna de las existentes END IF ELSE 238

Corr% = 12: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Estructura IF incompleta END IF CASE CHR$(8) Progen$ = MID$(Progencar$(Fi%), 1, C% - 2) FOR Eant% = 2 TO 10 Espacio% = INSTR(C% - Eant%, Progen$, " ") 'Busca espacio anterior a el actual IF Espacio% <> 0 THEN EXIT FOR NEXT C% = Espacio% + 1 Progencar$(Fi%) = MID$(Progencar$(Fi%), 1, Espacio% - 1) 'Guarda instruccion anterior a la actual LOCATE Fi% + 5, 6: PRINT " " LOCATE Fi% + 5, 6: PRINT Progencar$(Fi%) END SELECT EXIT DO END IF IF C% + 5 > 74 THEN Corr% = 3: CALL Mensage(Corr%, Grupoant%, Anterior$): EXIT DO END IF LOOP END IF ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 7 IF Grupoant% = 2 THEN LOCATE Fi% + 5, C% + 5: PRINT "="; Progencar$(Fi%) = Progencar$(Fi%) + " =": C% = C% + 2 ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 8 IF Grupoant% = 2 AND Elementos% = 3 THEN LOCATE Fi% + 5, C% + 5: PRINT Actual$; : COLOR 10: PRINT "?" COLOR 15: C% = C% + 1 DO E$ = INPUT$(1) E$ = UCASE$(E$) IF E$ = CHR$(32) THEN LOCATE Fi% + 5, C% + 5: PRINT " "; Progencar$(Fi%) = Progencar$(Fi%) + " " + Actual$: C% = C% + 1 EXIT DO END IF IF E$ = ">" AND Actual$ <> ">" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " " + Actual$ + E$ C% = C% + 2: EXIT DO END IF IF E$ = "=" THEN LOCATE Fi% + 5, C% + 5: PRINT E$; Progencar$(Fi%) = Progencar$(Fi%) + " " + Actual$ + E$ C% = C% + 2: EXIT DO END IF LOOP 239

ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF CASE 11 IF Grupoant% = 15 THEN LOCATE Fi% + 5, C% + 5: PRINT "IF"; Progencar$(Fi%) = Progencar$(Fi%) + " IF": C% = C% + 3 ELSE Corr% = 7: CALL Mensage(Corr%, Grupoant%, Anterior$) END IF END SELECT ELSE Corr% = 11: CALL Mensage(Corr%, Grupoant%, Anterior$) 'Formato para estructura if completo END IF END SELECT ELSE SELECT CASE E$ CASE "ARRIBA" IF Tiplin$ = "C" THEN IF Elementos% < 8 THEN Lincon% = 1 Corr% = 12: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Estructura IF incompleta ELSE Lincon% = 0 END IF ELSE Lincon% = 0 END IF IF Lincon% = 0 THEN IF Fi% > 1 THEN IF LEN(Progencar$(Fi%)) > 4 THEN Gr% = Grupoant% IF Gr% = 2 OR Gr% = 3 OR Gr% = 6 OR Gr% = 18 THEN Anterior% = 1: Abierto% = 0: Cerrado% = 0 DO Ab% = INSTR(Anterior%, Progencar$(Fi%), "(") 'Busca parentesis abierto Abierto% = Abierto% + 1: Anterior% = Ab% + 1 LOOP UNTIL Ab% = 0 Anterior% = 1 DO Cer% = INSTR(Anterior%, Progencar$(Fi%), ")") 'Busca parentesis abierto Cerrado% = Cerrado% + 1: Anterior% = Cer% + 1 LOOP UNTIL Cer% = 0 IF Abierto% = Cerrado% THEN LOCATE Fi% + 5, C% + 5: PRINT " " Fi% = Fi% - 1 C% = LEN(Progencar$(Fi%)) + 2 ELSE Corr% = 9: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Parentesis sin cerrar END IF END IF ELSE 240

Fil% = Fi% LOCATE Fil% + 5, 6: PRINT " " DO Progencar$(Fil%) = Progencar$(Fil% + 1) LOCATE Fil% + 6, 7: PRINT " " LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% + 1 LOOP UNTIL Fil% >= 20 LOCATE Fil% + 5, 7: PRINT " " Progencar$(20) = "" Fi% = Fi% - 1 C% = LEN(Progencar$(Fi%)) + 2 END IF END IF END IF Edi% = 0 CASE "ABAJO" IF Tiplin$ = "C" THEN IF Elementos% < 8 THEN Lincon% = 1 Corr% = 12: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Estructura IF incompleta ELSE Lincon% = 0 END IF ELSE Lincon% = 0 END IF IF Lincon% = 0 THEN IF Fi% < 20 THEN IF LEN(Progencar$(Fi%)) > 6 THEN IF Grupoant% = 2 OR Grupoant% = 3 OR Grupoant% = 6 THEN Anterior% = 1: Abierto% = 0: Cerrado% = 0 DO Ab% = INSTR(Anterior%, Progencar$(Fi%), "(") 'Busca parentesis abierto Abierto% = Abierto% + 1: Anterior% = Ab% + 1 LOOP UNTIL Ab% = 0 Anterior% = 1 DO Cer% = INSTR(Anterior%, Progencar$(Fi%), ")") 'Busca parentesis abierto Cerrado% = Cerrado% + 1: Anterior% = Cer% + 1 LOOP UNTIL Cer% = 0 IF Abierto% = Cerrado% THEN LOCATE Fi% + 5, C% + 5: PRINT " " Fi% = Fi% + 1 IF LEN(Progencar$(Fi%)) > 1 THEN C% = LEN(Progencar$(Fi%)) + 2 ELSE C% = 2 END IF ELSE Corr% = 9: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Parentesis sin cerrar 241

END IF END IF ELSE Fil% = Fi% LOCATE Fil% + 5, 6: PRINT " " IF LEN(Progencar$(Fil% + 1)) > 6 THEN Fil% = Fi% LOCATE Fil% + 5, 6: PRINT " " DO Progencar$(Fil%) = Progencar$(Fil% + 1) LOCATE Fil% + 6, 7: PRINT " " LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% + 1 LOOP UNTIL Fil% >= 20 LOCATE Fil% + 6, 7: PRINT " " Progencar$(20) = "" C% = LEN(Progencar$(Fi%)) + 2 END IF END IF END IF END IF Edi% = 0 CASE "BACK" IF LEN(Progencar$(Fi%)) > 1 THEN Igual% = 0 DO Progen$ = MID$(Progencar$(Fi%), 1, C% - 2) FOR Eant% = 2 TO 10 Espacio% = INSTR(C% - Eant%, Progen$, " ") 'Busca espacio anterior a el actual IF Espacio% <> 0 THEN EXIT FOR NEXT IF MID$(Progen$, Espacio% + 1, C% - 2) = ")" THEN Parent% = Parent% + 1 END IF IF MID$(Progen$, Espacio% + 1, C% - 2) = "(" THEN Parent% = Parent% - 1 END IF IF MID$(Progen$, Espacio% + 1, C% - 2) = "=" THEN IF Tiplin$ <> "C" THEN Igual% = 1 ELSE Igual% = 0 END IF ELSE Igual% = 0 END IF C% = Espacio% + 1 Progencar$(Fi%) = MID$(Progencar$(Fi%), 1, Espacio% - 1) 'Guarda instruccion anterior a la actual LOCATE Fi% + 5, 6: PRINT " " LOCATE Fi% + 5, 6: PRINT Progencar$(Fi%) LOOP UNTIL Igual% = 0 ELSE 242

IF Fi% > 1 THEN Fil% = Fi% LOCATE Fil% + 5, 6: PRINT " " DO Progencar$(Fil%) = Progencar$(Fil% + 1) LOCATE Fil% + 6, 6: PRINT " " LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% + 1 LOOP UNTIL Fil% >= 20 LOCATE Fil% + 5, 7: PRINT " " Progencar$(20) = "" Fi% = Fi% - 1 C% = LEN(Progencar$(Fi%)) + 2 END IF IF Fi% = 1 AND LEN(Progencar$(Fi% + 1)) > 6 THEN Fil% = Fi% LOCATE Fil% + 5, 6: PRINT " " DO Progencar$(Fil%) = Progencar$(Fil% + 1) LOCATE Fil% + 6, 7: PRINT " " LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% + 1 LOOP UNTIL Fil% >= 20 LOCATE Fil% + 5, 7: PRINT " " Progencar$(20) = "" C% = LEN(Progencar$(Fi%)) + 2 END IF END IF Edi% = 0 CASE "ENTER" IF Tiplin$ = "C" THEN IF Elementos% < 8 THEN Lincon% = 1 Corr% = 12: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Estructura IF incompleta ELSE Lincon% = 0 END IF ELSE Lincon% = 0 END IF IF Lincon% = 0 THEN Gr% = Grupoant% IF (Fi% = 20) AND (Gr% = 2 OR Gr% = 3 OR Gr% = 6 OR Gr% = 0) THEN EXIT SUB IF Fi% < 20 THEN IF LEN(Progencar$(20)) < 6 THEN IF LEN(Progencar$(Fi%)) > 1 THEN IF Grupoant% = 2 OR Grupoant% = 3 OR Grupoant% = 6 THEN Anterior% = 1: Abierto% = 0: Cerrado% = 0 DO Ab% = INSTR(Anterior%, Progencar$(Fi%), "(") ' Busca parentesis abierto Abierto% = Abierto% + 1: Anterior% = Ab% + 1 243

LOOP UNTIL Ab% = 0 Anterior% = 1 DO Cer% = INSTR(Anterior%, Progencar$(Fi%), ")") ' Busca parentesis abierto Cerrado% = Cerrado% + 1: Anterior% = Cer% + 1 LOOP UNTIL Cer% = 0 IF Abierto% = Cerrado% THEN IF LEN(Progencar$(Fi% + 1)) <> 0 THEN Fil% = 20 DO LOCATE Fil% + 5, 6: PRINT " " Progencar$(Fil%) = Progencar$(Fil% - 1) LOCATE Fil% + 5, 6: PRINT Progencar$(Fil%) Fil% = Fil% - 1 LOOP UNTIL Fil% = Fi% + 1 LOCATE Fi% + 6, 7: PRINT " " Progencar$(Fi% + 1) = "" END IF LOCATE Fi% + 5, C% + 5: PRINT " " Fi% = Fi% + 1 C% = 2 END IF END IF ELSE IF LEN(Progencar$(Fi% + 1)) < 1 THEN EXIT SUB END IF ELSE Corr% = 10: CALL Mensage(Corr%, Grupoant%, Anterior$) ' Si decea nueva linea elimine alguna de las existentes END IF END IF END IF Edi% = 0 END SELECT END IF LOOP PAINT (Xcoorcu%(6, 1) - 2, Ycoorcu%(6, 1) - 2), 10, 8 END SUB 'Comunicacion con el modulo y ejecucion del programa elaborado por el usuario SUB Ejecucionprog (Totalgraficos%, Ga%, Totallineas%) '****************** Identificacion de puerto a utilizar ******************** IF VAL(Maux$(4, 1)) = 1 THEN Da% = &H3BC: Sa% = &H3BD: Ca% = &H3BE ELSEIF VAL(Maux$(4, 1)) = 2 THEN Da% = &H378: Sa% = &H379: Ca% = &H37A ELSEIF VAL(Maux$(4, 1)) = 3 THEN Da% = &H278: Sa% = &H279: Ca% = &H27A END IF 'Inicializa condiciones normales de operacion de los buses DATOIN y DATOOUT OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HB0: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 244

OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HB0: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 'Inicia transmisor OUT Da%, &H9E: OUT Ca%, &H0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 ' ******************** PROGRAMACION DE RELOJ MAESTRO ********************* I% = 1 DO WHILE VAL(Maux$(4, 2)) > VAL(Numck$(I%)) I% = I% + 1 IF I% > 163 THEN EXIT DO LOOP IF I% <= 95 THEN 'Decide si se trata de alta o baja frecuencia J% = &H0 ELSE J% = &H1 END IF IF Maux$(4, 3) = "S" AND J% = &H0 THEN J% = &H4 'Decide si DATOin = DATOout IF Maux$(4, 3) = "S" AND J% = &H1 THEN J% = &H5 OUT Da%, J%: OUT Ca%, &H1 'Prog de alta o baja frecuencia, DATOin=DATOout OUT Da%, &HB0: OUT Ca%, &H0 OUT Da%, Codck%(I%): OUT Ca%, &H1 'Programa reloj maestro OUT Da%, &HEC: OUT Ca%, &H0 ' ********** Programacion de diviciones de reloj maestro ********** OUT Da%, &H0: OUT Ca%, &H1 'Inicializa programacion OUT Da%, &HEE: OUT Ca%, &H0 OUT Da%, Codprogdivck%(1): OUT Ca%, &H1 'Programa frecuencia de AD1 OUT Da%, &H8: OUT Ca%, &H0 OUT Da%, Codprogdivck%(2): OUT Ca%, &H1 'Programa frecuencia de AD2 OUT Da%, &H9: OUT Ca%, &H0 OUT Da%, Codprogdivck%(3): OUT Ca%, &H1 'Programa frecuencia de AD3 OUT Da%, &HA: OUT Ca%, &H0 OUT Da%, Codprogdivck%(4): OUT Ca%, &H1 'Programa frecuencia de AD4 OUT Da%, &HB: OUT Ca%, &H0 OUT Da%, Codprogdivck%(9): OUT Ca%, &H1 'Programa frecuencia de TX OUT Da%, &HA0: OUT Ca%, &H0 '*Inicializacion de matriz de datos y programacion inicial de OUTDA y OUTDD* FOR I% = 1 TO 9 Datoin%(I%) = 0 Datoout%(I%) = 0 Datoinr%(I%) = 0 Datooutr%(I%) = 0 Datoinant%(I%) = 0 Datooutant%(I%) = 0 OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, 16 * I%: OUT Ca%, &H0 NEXT I% FOR I% = 1 TO 6 Avance%(I%) = 0 NEXT I% Numcom% = 0 Grafcom% = 1 IF Ga% = 3 THEN PAINT (Xmin%(1) - 8, Ymin%(1)), 12, 8 245

PAINT (Xcoorb%(3, 3) * 8 - 18, Ycoorb%(3, 3) * 16 - 21), 10, 8 ELSE PAINT (Xcoorb%(3, 3) * 8 - 18, Ycoorb%(3, 3) * 16 - 21), 12, 8 END IF Aviso% = 0 Sinxx% = INP(Sa%) AND &H80 Tisin% = 0 IF Totalgraficos% = 0 THEN LOCATE 2, 10: PRINT " EJECUCION DEL PROGRAMA SIN GRAFICOS " END IF DO '********************** Inicia ciclo de trabajo ************************ DO ' ***************************** Sincronizacion **************************** I% = 1 Sincro% = INP(Sa%) AND &H80 IF Sincro% = Sinxx% THEN DO Sincro% = INP(Sa%) AND &H80 IF Sincro% = &H0 THEN Sinxx% = &H0 I% = I% + 1 IF I% = 32000 THEN LOCATE 3, 25: COLOR 12: PRINT " FALLA EN LA CONEXION CON P.C. " BEEP ' Informa que no hay sincronismo COLOR 15: BEEP: EXIT SUB: EXIT DO END IF LOOP UNTIL Sincro% = &H80 AND Sinxx% = &H0 'Espera la seal de sincronismo Sinxx% = &H80 ELSE Aviso% = Aviso% + 1 IF Aviso% = 2 THEN SOUND 1000, .3: Aviso% = 0 END IF '******************* Comunicacion con el puerto paralelo ****************** IF VAL(Maux$(4, 7)) = 1 THEN ' Verifica si se programa transmision serie OUT Da%, &HEE: OUT Ca%, &H0 ' Da instruccion para leer contador de Tx ContTX% = INT(INP(Sa%) / 8) AND &HF ' Lee primer nibble IF ContTX% >= &H8 THEN OUT Da%, Datooutr%(9): OUT Ca%, &H1 ' Envia dato OUT Da%, &H8D: OUT Ca%, &H0 'Grava dato en Tx y dispone lectura de segundo nibble de Rx DatoinL% = INT(INP(Sa%) / 8) AND &HF ' Lee primer nibble de Rx OUT Da%, Datooutr%(9): OUT Ca%, &H1' Envia dato DatoinH% = (INP(Sa%) * 2) AND &HF0 ' Lee segundo nibble de Rx Datoinr%(9) = DatoinL% OR DatoinH% ' Conforma el dato real transmitido OUT Da%, &H9E: OUT Ca%, &H0 'Grava dato en Tx y dispone lectura de segundo nibble de Rx END IF ELSE OUT Da%, &H0: OUT Ca%, &H1 OUT Da%, &HEE: OUT Ca%, &H0 END IF OUT Da%, Datooutr%(1): OUT Ca%, 1 ' Envia primer dato FOR I% = 1 TO Instotal%(9) OUT Da%, Instotal%(I%): OUT Ca%, 0 'Ejecuta primera instriccion cargando primer dato e indicando primera lectura DatoinL% = INT(INP(Sa%) / 8) AND &HF ' Lee primer nibble de datos OUT Da%, Datooutr%(I% + 1): OUT Ca%, 1 ' Envia proximo dato 246

DatoinH% = (INP(Sa%) * 2) AND &HF0 ' Lee segundo nibble de datos Datoinr%(I%) = DatoinL% OR DatoinH% ' Conforma el dato real leido NEXT I% OUT Da%, &HEE: OUT Ca%, 0: OUT Ca%, 1 Sincro% = INP(Sa%) AND &H80 ' Verificacion constante de sincronizacion IF Sincro% = &H0 THEN Sinxx% = &H0 '* Actualizacion de valores de entrada en terminos de datos de programa ** Yi% = 1 FOR Yr% = 1 TO 9 IF Yr% < VAL(Maux$(4, 5)) THEN Datoin%(Yr%) = Datoinr%(Yi%): Yi% = Yi% + 1 IF Yr% = VAL(Maux$(4, 5)) AND VAL(Maux$(4, 5)) <> 0 THEN Datoin%(Yr%) = Datoinr%(Yi%): Yr% = 5: Yi% = Yi% + 1 END IF IF Yr% >= 5 AND Yr% < VAL(Maux$(4, 6)) + 4 THEN Datoin%(Yr%) = Datoinr%(Yi%): Yi% = Yi% + 1 END IF IF Yr% = VAL(Maux$(4, 6)) + 4 AND VAL(Maux$(4, 6)) <> 0 THEN Datoin%(Yr%) = Datoinr%(Yi%): EXIT FOR END IF NEXT Yr% Mprog!(9) = Datoinr%(9) FOR I% = 1 TO 9 Mprog!(I%) = Datoin%(I%) NEXT I% ' *********************** Graficacin de valores ************************* Borrado% = 1 FOR G% = 1 TO Totalgraficos% 'Busca graficas de entrada IF grafico%(G%) <= 4 THEN 'Grafico de entrada analoga IF Comun%(G%) = 1 THEN 'Pregunta si se va a graficar en una ventana comun IF Borrado% = 1 THEN IF Avance%(6) + Xmin%(6) = Xmax%(6) THEN ww% = Xmin%(6) + Avance%(6) + 1 LINE (ww%, Ymin%(6))-(Xmin%(6) + Avance%(6) + 1, Ymax%(6)), 1 PSET (Xmin%(6) + Avance%(6) + 1, Ymin%(6)), 15: Avance%(6) = 0 END IF Avance%(6) = Avance%(6) + 1 ww% = Xmin%(6) + Avance%(6) LINE (ww%, Ymin%(6))-(Xmin%(6) + Avance%(6), Ymax%(6)), 1 'Traza vert. entre Ymax y Ymin en la coordenada Xmaxcom + Avance Borrado% = 0 'Indica que la linea de borrado ya se escribio PSET (Xmin%(6) + Avance%(6), Ymin%(6)), 15 ww% = Xmin%(6) + Avance%(6) + 1 LINE (ww%, Ymin%(6))-(Xmin%(6) + Avance%(6) + 1, Ymax%(6)), 8 END IF IF Avance%(6) = 1 THEN ww% = Ymin%(6) + Datoin%(grafico%(G%)) * Multiplicador!(6) PSET (Xmin%(6) + Avance%(6), ww%), Col%(G%) 'Coloca punto en un color preseleccionado en la ventana del 'grafico segun el valor del Dato ELSE ww% = Ymin%(6) + Datoinant%(grafico%(G%)) * Multiplicador!(6) www% = Ymin%(6) + Datoin%(grafico%(G%)) * Multiplicador!(6) LINE (Xmin%(6) + Avance%(6) - 1, ww%)-(Xmin%(6) + Avance%(6), www%), Col%(G%) 'linea ant-act END IF Datoinant%(grafico%(G%)) = Datoin%(grafico%(G%)) 247

ELSE 'Si se va a graficar en un cuadro individual IF Avance%(G%) + Xmin%(G%) = Xmax%(G%) THEN ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 1 PSET (Xmin%(G%) + Avance%(G%) + 1, Ymin%(G%)), 15: Avance%(G%) = 0 END IF Avance%(G%) = Avance%(G%) + 1 ww% = Xmin%(G%) + Avance%(G%) LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%), Ymax%(G%)), 1 'Borra en el cuadro individual la linea de escritura vertical PSET (Xmin%(G%) + Avance%(G%), Ymin%(G%)), 15 ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 8 IF Avance%(G%) = 1 THEN ww! = Ymin%(G%) + Datoin%(grafico%(G%)) * Multiplicador!(G%) PSET (Xmin%(G%) + Avance%(G%), ww!), Col%(G%) 'Coloca un punto en la ventana del grafico segun el valor del Dato ELSE ww! = Xmin%(G%) + Avance%(G%) - 1 www! = Ymin%(G%) + Datoinant%(grafico%(G%)) * Multiplicador!(G%) wwww! = Ymin%(G%) + Datoin%(grafico%(G%)) * Multiplicador!(G%) LINE (ww!, www!)-(Xmin%(G%) + Avance%(G%), wwww!), Col%(G%) 'linea ant-act END IF Datoinant%(grafico%(G%)) = Datoin%(grafico%(G%)) END IF ELSEIF grafico%(G%) >= 10 AND grafico%(G%) <= 13 THEN 'Grafico de salida analoga IF Comun%(G%) = 1 THEN 'Pregunta si se va a graficar en una ventana comun IF Borrado% = 1 THEN IF Avance%(6) + Xmin%(6) = Xmax%(6) THEN ww% = Xmin%(6) + Avance%(6) + 1 LINE (Xmin%(6) + Avance%(6) + 1, Ymin%(6))-(ww%, Ymax%(6)), 1 PSET (Xmin%(6) + Avance%(6) + 1, Ymin%(6)), 15: Avance%(6) = 0 END IF Avance%(6) = Avance%(6) + 1 ww% = Xmin%(6) + Avance%(6) LINE (ww%, Ymin%(6))-(Xmin%(6) + Avance%(6), Ymax%(6)), 1 'Traza vertical entre Ymax y Ymin en la coordenada Xmaxcom + Avance Borrado% = 0 'Indica que la linea de ya fue borrada escrita PSET (Xmin%(6) + Avance%(6), Ymin%(6)), 15 ww% = Xmin%(6) + Avance%(6) + 1 LINE (ww%, Ymin%(6))-(Xmin%(6) + Avance%(6) + 1, Ymax%(6)), 8 END IF IF Avance%(6) = 1 THEN ww! = Ymin%(6) + Datoout%(grafico%(G%) - 9) * Multiplicador!(6) PSET (Xmin%(6) + Avance%(6), ww!), Col%(G%) 'Coloca un punto en un color preseleccionado en la 'ventana del grafico segun el valor del Dato ELSE ww! = Ymin%(6) + Datooutant%(grafico%(G%) - 9) * Multiplicador!(6) www! = Ymin%(6) + Datoout%(grafico%(G%) - 9) * Multiplicador!(6) LINE (Xmin%(6) + Avance%(6) - 1, ww!)-(Xmin%(6) + Avance%(6), www!), Col%(G%) 'linea ant-act END IF 248

Datooutant%(grafico%(G%) - 9) = Datoout%(grafico%(G%) - 9) ELSE ' Si se va a graficar en un cuadro individual IF Avance%(G%) + Xmin%(G%) = Xmax%(G%) THEN ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 1 PSET (Xmin%(G%) + Avance%(G%) + 1, Ymin%(G%)), 15: Avance%(G%) = 0 END IF Avance%(G%) = Avance%(G%) + 1 ww% = Xmin%(G%) + Avance%(G%) LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%), Ymax%(G%)), 1 'Borra en el cuadro individual la linea de escritura vertical PSET (Xmin%(G%) + Avance%(G%), Ymin%(G%)), 15 ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 8 IF Avance%(G%) = 1 THEN ww! = Ymin%(G%) + Datoout%(grafico%(G%) - 9) * Multiplicador!(G%) PSET (Xmin%(G%) + Avance%(G%), ww!), Col%(G%) 'Coloca un punto en la ventana del grafico segun el valor del Dato ELSE ww% = Xmin%(G%) + Avance%(G%) - 1 ww! = Ymin%(G%) + Datooutant%(grafico%(G%) - 9) * Multiplicador!(G%) www! = Ymin%(G%) + Datoout%(grafico%(G%) - 9) * Multiplicador!(G%) LINE (ww%, ww!)-(Xmin%(G%) + Avance%(G%), www!), Col%(G%) 'Linea ant-act END IF Datooutant%(grafico%(G%) - 9) = Datoout%(grafico%(G%) - 9) END IF ELSEIF grafico%(G%) >= 5 AND grafico%(G%) <= 9 THEN 'Grafico de entrada digital IF Avance%(G%) + Xmin%(G%) = Xmax%(G%) THEN ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 1 Avance%(G%) = 1 END IF Avance%(G%) = Avance%(G%) + 1 ww% = Xmin%(G%) + Avance%(G%) LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%), Ymax%(G%)), 1 ' Linea de borrado de cuadro individual ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 8 IF Avance%(G%) = 1 THEN FOR J% = 0 TO 7 ' Cuenta hasta ocho bits a graficar ww! = Ymin%(G%) - J% * Paso%(G%) www! = ((Datoin%(grafico%(G%)) AND 2 ^ J%) / 2 ^ J%) * Multiplicador!(G%) PSET (Xmin%(G%) + Avance%(G%), ww! - www!), Col%(G%) 'Grafica bits 0 - 7 con un punto NEXT J% ELSE Dan% = Datoinant%(grafico%(G%)): Dac% = Datoin%(grafico%(G%)) M! = Multiplicador!(G%) FOR J% = 0 TO 7 ' Cuenta hasta ocho bits a graficar ww! = Xmin%(G%) + Avance%(G%) www! = Ymin%(G%) - J% * Paso%(G%) wwww! = (Dan% AND 2 ^ J%) / (2 ^ J%) * M! wwwww! = Ymin%(G%) - J% * Paso%(G%) - ((Dac% AND 2 ^ J%) / 2 ^ J%) 249

LINE (ww!, www! - wwww!)-(Xmin%(G%) + Avance%(G%), wwwww! * M!), Col%(G%) 'bits 0 - 7 NEXT J% END IF Datoinant%(grafico%(G%)) = Datoin%(grafico%(G%)) ELSE IF grafico%(G%) >= 14 THEN 'Grafico de salida digital 'Entrada digital a graficar IF Avance%(G%) + Xmin%(G%) = Xmax%(G%) THEN ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 1 Avance%(G%) = 1 END IF Avance%(G%) = Avance%(G%) + 1 ww% = Xmin%(G%) + Avance%(G%) LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%), Ymax%(G%)), 1 'Linea de borrado de cuadro individual ww% = Xmin%(G%) + Avance%(G%) + 1 LINE (ww%, Ymin%(G%))-(Xmin%(G%) + Avance%(G%) + 1, Ymax%(G%)), 8 IF Avance%(G%) = 1 THEN FOR J% = 0 TO 7 ' Cuenta hasta ocho bits a graficar ww! = Ymin%(G%) - J% * Paso%(G%) www! = ((Datoout%(grafico%(G%) - 9) AND 2 ^ J%) / 2 ^ J%) PSET (Xmin%(G%) + Avance%(G%), ww! - www! * Multiplicador!(G%)), Col%(G%) 'Grafica bits 0 - 7 con un punto NEXT J% ELSE Dan% = Datooutant%(grafico%(G%) - 9) Dac% = Datoout%(grafico%(G%) - 9): Mul! = Multiplicador!(G%) FOR J% = 0 TO 7 ' Cuenta hasta ocho bits a graficar ww! = Xmin%(G%) + Avance%(G%) www! = Ymin%(G%) - J% * Paso%(G%) wwww! = (Dan% AND 2 ^ J%) / (2 ^ J%) * Mul! wwwww! = Ymin%(G%) - J% * Paso%(G%) - ((Dac% AND 2 ^ J%) / 2 ^ J%) * Mul! LINE (ww!, www! - wwww!)-(Xmin%(G%) + Avance%(G%), wwwww!), Col%(G%) 'bits 0-7 NEXT J% END IF Datooutant%(grafico%(G%) - 9) = Datoout%(grafico%(G%) - 9) END IF END IF NEXT G% ' ************************************************************************* Sincro% = INP(Sa%) AND &H80 ' Verificacion constante de sincronizacion IF Sincro% = &H0 THEN Sinxx% = &H0 '*************** Ejecucion de programa hecho por el usuario *************** FOR y% = 1 TO Totallineas% FOR X% = 1 TO LEN(Codigoexe$(y%)) STEP 8 Operacion$ = MID$(Codigoexe$(y%), X%, 2) Op1% = VAL(MID$(Codigoexe$(y%), X% + 2, 2)) Op2% = VAL(MID$(Codigoexe$(y%), X% + 4, 2)) Indiced% = VAL(MID$(Codigoexe$(y%), X% + 6, 2)) SELECT CASE Operacion$ CASE "83": Mprog!(Indiced%) = Mprog!(Op1%) ^ Mprog!(Op2%) ' ^ CASE "59": Mprog!(Indiced%) = Mprog!(Op1%) * Mprog!(Op2%) ' * 250

CASE "60": Mprog!(Indiced%) = Mprog!(Op1%) / Mprog!(Op2%) ' / CASE "61": Mprog!(Indiced%) = Mprog!(Op1%) \ Mprog!(Op2%) ' \ CASE "62": Mprog!(Indiced%) = Mprog!(Op1%) MOD Mprog!(Op2%) ' MOD CASE "63": Mprog!(Indiced%) = Mprog!(Op1%) + Mprog!(Op2%) ' + CASE "64": Mprog!(Indiced%) = Mprog!(Op1%) - Mprog!(Op2%) ' CASE "67": Mprog!(Indiced%) = Mprog!(Op2%) ' = CASE "76": Mprog!(Indiced%) = SIN(.0174533# * Mprog!(Op1%)) ' SIN CASE "77": Mprog!(Indiced%) = COS(.0174533# * Mprog!(Op1%)) ' COS CASE "78": Mprog!(Indiced%) = TAN(.0174533# * Mprog!(Op1%)) ' TAN CASE "79": Mprog!(Indiced%) = ATN(.0174533# * Mprog!(Op1%)) ' ATN CASE "80": Mprog!(Indiced%) = INT(Mprog!(Op1%)) ' INT CASE "81": Mprog!(Indiced%) = ABS(Mprog!(Op1%)) ' ABS CASE "82": Mprog!(Indiced%) = SQR(Mprog!(Op2%)) ' SQR CASE "71": Mprog!(Indiced%) = NOT Mprog!(Op1%) ' NOT CASE "72": Mprog!(Indiced%) = Mprog!(Op1%) AND Mprog!(Op2%) ' AND CASE "73": Mprog!(Indiced%) = Mprog!(Op1%) OR Mprog!(Op2%) ' OR CASE "74": Mprog!(Indiced%) = Mprog!(Op1%) XOR Mprog!(Op2%) ' XOR CASE "75": Mprog!(Indiced%) = Mprog!(Op1%) EQV Mprog!(Op2%) ' EQV CASE "86" ' IF THEN Operacion$ = MID$(Codigoexe$(y%), X% + 2, 2) Op1% = VAL(MID$(Codigoexe$(y%), X% + 4, 2)) Op2% = VAL(MID$(Codigoexe$(y%), X% + 6, 2)) Op3% = VAL(MID$(Codigoexe$(y%), X% + 8, 2)) Op4% = VAL(MID$(Codigoexe$(y%), X% + 10, 2)) SELECT CASE Operacion$ CASE "65": IF Mprog!(Op1%) < Mprog!(Op2%) THEN Mprog!(Op3%) = Mprog!(Op4%) ' < CASE "66": IF Mprog!(Op1%) <= Mprog!(Op2%) THEN Mprog!(Op3%) = Mprog!(Op4%) ' <= CASE "67": IF Mprog!(Op1%) = Mprog!(Op2%) THEN Mprog!(Op3%) = Mprog!(Op4%) ' = CASE "68": IF Mprog!(Op1%) > Mprog!(Op2%) THEN Mprog!(Op3%) = Mprog!(Op4%) ' > CASE "69": IF Mprog!(Op1%) >= Mprog!(Op2%) THEN Mprog!(Op3%) = Mprog!(Op4%) ' >= CASE "70": IF Mprog!(Op1%) <> Mprog!(Op2%) THEN Mprog!(Op3%) = Mprog!(Op4%) ' <> CASE ELSE ' Er% = 6: GOSUB Erro END SELECT X% = 13 CASE ELSE 'Er% = 5: GOSUB Erro END SELECT NEXT X% NEXT y% ' ************************************************************************* Sincro% = INP(Sa%) AND &H80 ' Verificacion constante de sincronizacion IF Sincro% = &H0 THEN Sinxx% = &H0 ' ********** Limita valores para que ninguno se salga de 0 y 255 ********** FOR I% = 1 TO 9 Datoout%(I%) = Mprog!(I% + 9) IF Datoout%(I%) <= 0 THEN Datoout%(I%) = 0 IF Datoout%(I%) >= 255 THEN Datoout%(I%) = 255 NEXT I% ' ** Actualizacion de valores de salida en terminos de datos de programa ** Yi% = 1 251

FOR Yr% = 1 TO 9 IF Yr% < VAL(Maux$(4, 8)) THEN Datooutr%(Yi%) = Datoout%(Yr%): Yi% = Yi% + 1 END IF IF Yr% = VAL(Maux$(4, 8)) AND VAL(Maux$(4, 8)) <> 0 THEN Datooutr%(Yi%) = Datoout%(Yr%): Yr% = 5: Yi% = Yi% + 1 END IF IF Yr% >= 5 AND Yr% < VAL(Maux$(4, 9)) + 4 THEN Datooutr%(Yi%) = Datoout%(Yr%): Yi% = Yi% + 1 END IF IF Yr% = VAL(Maux$(4, 9)) + 4 AND VAL(Maux$(4, 9)) <> 0 THEN Datooutr%(Yi%) = Datoout%(Yr%): EXIT FOR END IF NEXT Yr% Datooutr%(9) = Mprog!(18) ' ******************** Escojencia de grafico comun ************************* Tecla$ = INKEY$ IF Tecla$ = CHR$(9) AND Ga% = 3 THEN 'Rota en los diferentes cuadros PAINT (Xmin%(Grafcom%) - 8, Ymin%(Grafcom%)), 10, 8 IF Grafcom% = 4 THEN Grafcom% = 0: PAINT (Xcoorb%(3, 3) * 8 - 18, Ycoorb%(3, 3) * 16 - 21), 10, 8 END IF Grafcom% = Grafcom% + 1 IF Grafcom% = 4 THEN PAINT (Xcoorb%(3, 3) * 8 - 18, Ycoorb%(3, 3) * 16 - 21), 12, 8 ELSE PAINT (Xmin%(Grafcom%) - 8, Ymin%(Grafcom%)), 12, 8 END IF END IF LOOP UNTIL Tecla$ = CHR$(13) 'Se ha elegido un cuadro en particular IF Ga% = 3 THEN IF Grafcom% = 4 THEN PAINT (Xcoorb%(3, 3) * 8 - 18, Ycoorb%(3, 3) * 16 - 21), 10, 8 EXIT DO 'Se eligio salir ELSE IF Comun%(Grafcom%) = 0 THEN Comun%(Grafcom%) = 1 ww% = Xmin%(Grafcom%) + 1 LINE (ww%, Ymax%(Grafcom%))-(Xmax%(Grafcom%), Ymin%(Grafcom%) - 1), 1, BF 'Borra la pantalla de graficacion individual Avance%(Grafcom%) = 0 Numcom% = Numcom% + 1 ELSE Comun%(Grafcom%) = 0 Numcom% = Numcom% - 1 IF Numcom% = 0 THEN LINE (Xmin%(6) + 1, Ymax%(6))-(Xmax%(6), Ymin%(6) - 1), 1, BF 'Borra toda la pantalla de graficacion comun LINE (Xmin%(6), Ymin%(6))-(Xmax%(6), Ymin%(6)), 15 Avance%(6) = 0 END IF END IF END IF ELSE IF Tecla$ = CHR$(13) THEN PAINT (Xcoorb%(3, 3) * 8 - 18, Ycoorb%(3, 3) * 16 - 21), 10, 8 EXIT DO 252

END IF END IF LOOP END SUB DEFSNG A-Z '************** Filtra los caracteres validos para un campo *************** SUB FILTRO (Xc%, Yc%, F$, Cant%, Nom$, dir%) DEFSTR A-Z Nomi$ = "" Nom$ = "" FOR A% = 0 TO Cant% - 1 'GRAVA NOMBRE ACTUAL Act% = SCREEN(Yc%, Xc% + A%) IF CHR$(Act%) <> CHR$(32) THEN Nomi$ = Nomi$ + CHR$(Act%) NEXT A% FOR n% = 0 TO Cant% IF n% = Cant% THEN n% = n% - 1 Ant% = SCREEN(Yc%, Xc% + n%): LOCATE Yc%, Xc% + n%: COLOR 10 'PONE COLOR AL CURSOR ww% = 0 IF CHR$(Ant%) = CHR$(32) THEN ww% = 1 IF ww% = 1 OR CHR$(Ant%) = CHR$(95) OR CHR$(Ant%) = CHR$(255) THEN IF n% < Cant% THEN PRINT CHR$(95) ELSE PRINT CHR$(Ant%) END IF LOCATE Yc%, Xc% + n% 'INICIA LECTURA DEL TECLADO A = INPUT$(1) IF A = CHR$(13) THEN 'SE PULSO ENTER FOR B% = 0 TO Cant% - 1 Act% = SCREEN(Yc%, Xc% + B%) ww% = 0 IF CHR$(Act%) <> CHR$(32) THEN ww% = 1 IF ww% = 1 AND CHR$(Act%) <> CHR$(95) AND CHR$(Act%) <> CHR$(255) THEN Nom$ = Nom$ + CHR$(Act%) END IF NEXT B% IF Nom$ = "" THEN Nom$ = Nomi$ EXIT FOR END IF IF A = CHR$(9) THEN Nom$ = Nomi$: EXIT FOR 'SE PULSO TAB IF n% > 0 AND A = CHR$(8) THEN 'SE PULSO BACKSPACE PRINT CHR$(255) n% = n% - 1 LOCATE Yc%, Xc% + n% PRINT CHR$(255) END IF IF INSTR(F$, A) = 0 THEN 'FILTRO DE CARACTERES SEGUN F1$ n% = n% - 1 ELSE IF n% = 0 THEN PRINT STRING$(Cant%, CHR$(32)) END IF LOCATE Yc%, Xc% + n%: COLOR 10: PRINT A END IF NEXT n% COLOR 14 253

'ESCRIBE EL MONBRE CON EL QUE SALE Nom$ IF dir% = 0 THEN LOCATE Yc%, Xc%: PRINT Nom$; STRING$(Cant% - LEN(Nom$), CHR$(32)) ELSE LOCATE Yc%, Xc%: PRINT STRING$(Cant% - LEN(Nom$), CHR$(32)); Nom$ END IF END SUB DEFSNG A-Z SUB Llenadocuadroconfi (Archivo$) '************** Proceso de ingresar datos a la matriz auxiliar ************ IF Maux$(4, 1) = "" THEN 'Inicia matriz auxiliar por defecto FOR y% = 1 TO 17 FOR X% = 1 TO 4 Maux$(X%, y%) = Mnueva$(X%, y%) NEXT X% NEXT y% END IF CALL Vizcuadroconfi(Archivo$) '******************* Ingreso de datos a la matriz auxiliar ***************** I% = 1 Yccon% = 5 'Prepara ingresa datos de configuracion primera linea FOR Co% = 1 TO 9 IF Co% = 1 THEN F$ = F$(1): Cant% = 1 ELSEIF Co% = 2 THEN F$ = F$(2): Cant% = 6 ELSEIF Co% = 3 OR Co% = 4 THEN F$ = F$(4): Cant% = 1 ELSEIF Co% = 5 OR Co% = 6 OR Co% = 8 OR Co% = 9 THEN F$ = F$(5): Cant% = 1 ELSEIF Co% = 7 THEN F$ = F$(6): Cant% = 1 END IF IF Co% = 5 THEN Yccon% = 6'Prepara ingreso de datos de configuracion segunda linea CALL FILTRO(Xccon%(Co%) + LEN(Nccon$(Co%)), Yccon%, F$, Cant%, Nom$, 0) 'Ingreso de datos IF Co% = 2 THEN IF VAL(Nom$) <= VAL(Numck$(1)) OR VAL(Nom$) >= VAL(Numck$(163)) THEN IF VAL(Nom$) <= VAL(Numck$(1)) THEN Maux$(4, 2) = Numck$(1): I% = 1 IF VAL(Nom$) >= VAL(Numck$(163)) THEN Maux$(4, 2) = Numck$(163): I% = 163 ELSE DO WHILE VAL(Nom$) >= VAL(Numck$(I%)) I% = I% + 1 LOOP IF (VAL(Nom$) - VAL(Numck$(I% - 1))) <= (VAL(Numck$(I%)) - VAL(Nom$)) THEN Maux$(4, 2) = Numck$(I% - 1) ELSE Maux$(4, 2) = Numck$(I%) END IF END IF LOCATE 5, Xccon%(2): COLOR 15: PRINT Nccon$(2); : COLOR 14 PRINT STRING$(6 - LEN(Maux$(4, Co%)), CHR$(32)); Maux$(4, Co%) ' Actualiza valor en pantalla ELSE IF Co% = 5 AND Nom$ = "0" THEN 254

'Asegura que se usa en todo momento AD1 para sincronismo Nom$ = "1" LOCATE 6, Xccon%(5): COLOR 15: PRINT Nccon$(5); : COLOR 14: PRINT Nom$ END IF IF Co% = 3 OR Co% = 4 THEN IF Nom$ = "s" THEN Nom$ = "S" ELSE Nom$ = "N" END IF IF Co% = 4 OR Co% = 3 THEN Nom$ = "N" 'Inhabilita CONTROL OUT y DATOout =DATOin LOCATE 5, Xccon%(Co%): COLOR 15: PRINT Nccon$(Co%); : COLOR 14 PRINT Nom$ ' Cambia n o s por N o S END IF Maux$(4, Co%) = Nom$ END IF NEXT Co% I% = 1 Ymax1% = VAL(Maux$(4, 5)) 'Establese limites de escritura Ymax2% = Ymax1% + VAL(Maux$(4, 6)) Ymax3% = Ymax2% + VAL(Maux$(4, 7)) Ymax4% = Ymax3% + VAL(Maux$(4, 8)) Ymax5% = Ymax4% + VAL(Maux$(4, 9)) CALL Vizcuadroconfi(Archivo$) '************** Llenado de los campos de la matriz auxiliar *************** Ga% = 1 Gd% = 1 Yr% = 1 FOR Yi% = 0 TO 16 IF Yi% < Ymax1% THEN 'Posibilidad de escribir los primeros cuatro renlones LOCATE Yi% + 9, Xccon%(14): PRINT Nccon$(14); Yi% + 1 ELSEIF Yi% >= Ymax1% AND Yi% < Ymax2% THEN 'Posibilidad de escribir los segundos cuatro renlones LOCATE 9 + Yi%, Xccon%(14): PRINT Nccon$(15); Yi% - Ymax1% + 1 ELSEIF Yi% >= Ymax2% AND Yi% < Ymax3% THEN LOCATE 9 + Yi%, Xccon%(14) + 1: PRINT Nccon$(16) ELSEIF Yi% >= Ymax3% AND Yi% < Ymax4% THEN LOCATE 9 + Yi%, Xccon%(14): PRINT Nccon$(17); Yi% - Ymax3% + 1 ELSEIF Yi% >= Ymax4% AND Yi% < Ymax5% THEN LOCATE 9 + Yi%, Xccon%(14): PRINT Nccon$(18); Yi% - Ymax4% + 1 ELSE EXIT FOR END IF IF Yi% = Ymax1% THEN Yr% = 5 'Actualizacion de la coordenada y para la impresion del registro fuente FOR Yl% = 1 + VAL(Maux$(4, 5)) TO 4 IF Yl% = 1 AND Ymax5% <> 0 THEN Maux$(1, 1) = "": Maux$(2, 1) = "" Maux$(3, 1) = "N": Yl% = Yl% + 1 END IF FOR xl% = 1 TO 3 Maux$(xl%, Yl%) = Mnueva$(xl%, Yl%) NEXT xl% NEXT Yl% IF Yi% = Ymax2% THEN Yr% = 9 FOR Yl% = 5 + VAL(Maux$(4, 6)) TO 8 255

FOR xl% = 1 TO 3 Maux$(xl%, Yl%) = Mnueva$(xl%, Yl%) NEXT xl% NEXT Yl% IF Yi% = Ymax3% THEN Yr% = 10 FOR Yl% = 9 + VAL(Maux$(4, 7)) TO 9 FOR xl% = 1 TO 3 Maux$(xl%, Yl%) = Mnueva$(xl%, Yl%) NEXT xl% NEXT Yl% IF Yi% = Ymax4% THEN Yr% = 14 FOR Yl% = 10 + VAL(Maux$(4, 8)) TO 13 FOR xl% = 1 TO 3 Maux$(xl%, Yl%) = Mnueva$(xl%, Yl%) NEXT xl% NEXT Yl% IF Yi% = Ymax5% THEN Yr% = 17 FOR Yl% = 14 + VAL(Maux$(4, 9)) TO 17 FOR xl% = 1 TO 3 Maux$(xl%, Yl%) = Mnueva$(xl%, Yl%) NEXT xl% NEXT Yl% COLOR 14 CALL FILTRO(Xccon%(15), Yi% + 9, F$(3), 10, Nom$, 0) Maux$(1, Yr%) = Nom$'llenado del campo Nombre '******* Asignacion de valores para las diviciones de frecuencia ********** IF Yr% = 9 OR Yr% < 5 THEN CALL FILTRO(Xccon%(16), Yi% + 9, F$(2), 6, Nom$, 1) IF VAL(Nom$) >= INT(VAL(Maux$(4, 2)) / 2) THEN Maux$(2, Yr%) = STR$(INT(VAL(Maux$(4, 2)) / 2)) 'Asigna valores por encima de CK / 2 END IF IF VAL(Nom$) <= INT(VAL(Maux$(4, 2)) / 256) THEN Maux$(2, Yr%) = STR$(INT(VAL(Maux$(4, 2)) / 256)) 'Asigna valores por debajo de CK / 255 END IF ww% = 0 IF (VAL(Nom$) > INT(VAL(Maux$(4, 2)) / 256)) THEN ww% = 1 IF ww% = 1 AND (VAL(Nom$) < INT(VAL(Maux$(4, 2)) / 2)) THEN 'Asigna valores en el rango de trabajo I% = 2 DO WHILE (VAL(Nom$) <= VAL(Maux$(4, 2)) / (2 ^ I%)) I% = I% + 1 LOOP ww% = (INT(VAL(Maux$(4, 2)) / 2 ^ (I% - 1)) - VAL(Nom$)) IF ww% <= (VAL(Nom$) - INT(VAL(Maux$(4, 2)) / 2 ^ I%)) THEN Maux$(2, Yr%) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ (I% - 1))) ELSE Maux$(2, Yr%) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ I%)) END IF END IF END IF IF VAL(Maux$(2, Yr%)) > 20000 AND Yr% <> 9 THEN 'Garantiza que no hay diviciones de frecuencia para los A/D mayores a 20Kh. DO WHILE VAL(Maux$(4, 2)) / (2 ^ I%) > 20000 I% = I% + 1 LOOP 256

Maux$(2, Yr%) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ I%)) END IF IF (VAL(Maux$(2, 1)) < VAL(Maux$(2, Yr%))) AND Yr% <> 9 THEN 'Garantiza que la mayor divicion de frecuencia de los A/D estara 'en A/D1 para efectos de sincronizacion. Com$ = Maux$(2, 1) Maux$(2, 1) = Maux$(2, Yr%) Maux$(2, Yr%) = Com$ COLOR 14: LOCATE 9, Xccon%(16) - 1 PRINT STRING$(7 - LEN(Maux$(2, 1)), CHR$(32)); Maux$(2, 1): COLOR 15 'Actualizacion en pantalla del dato cambiado END IF COLOR 14: LOCATE Yi% + 9, Xccon%(16) - 1 PRINT STRING$(7 - LEN(Maux$(2, Yr%)), CHR$(32)); Maux$(2, Yr%): COLOR 15 'Actualizacion en pantalla ' ***************************************************************** CALL FILTRO(Xccon%(17), Yi% + 9, F$(4), 1, Nom$, 0) IF Nom$ = "S" OR Nom$ = "s" THEN 'Garantiza que no se graficaran mas de 5 seales en total. IF Yr% < 5 OR Yr% > 9 AND Yr% < 14 THEN IF Ga% < 3 THEN Maux$(3, Yr%) = "S" Ga% = Ga% + 1 ELSEIF Ga% = 3 AND Gd% < 4 THEN Maux$(3, Yr%) = "S" Ga% = Ga% + 1 ELSE Maux$(3, Yr%) = "N" END IF END IF IF Yr% > 4 AND Yr% < 9 OR Yr% > 13 THEN IF Gd% < 3 THEN Maux$(3, Yr%) = "S" Gd% = Gd% + 1 ELSEIF Gd% = 3 AND Ga% < 4 THEN Maux$(3, Yr%) = "S" Gd% = Gd% + 1 ELSE Maux$(3, Yr%) = "N" END IF END IF ELSE Maux$(3, Yr%) = "N" END IF COLOR 14: LOCATE Yi% + 9, Xccon%(17): PRINT Maux$(3, Yr%): COLOR 15 'Actualiza valor en pantalla Yr% = Yr% + 1 NEXT Yi% IF Yr% = 2 THEN Maux$(3, 1) = "S" CALL Vizcuadroconfi(Archivo$) END SUB DEFSTR A-Z SUB Mensage (Corr%, Grupoant%, Anterior$) BEEP GET (100, 320)-(550, 412), Arr% LINE (100, 320)-(550, 412), 7, BF LINE (104, 324)-(546, 408), 0, BF PAINT (102, 322), 1, 7 257

IF Corr% = 5 OR Corr% = 6 OR Corr% = 7 THEN LOCATE 22, 28: PRINT "DESPUES DE "; : COLOR 10: PRINT Anterior$; COLOR 15: PRINT " SOLO SE ADMITE" END IF LOCATE 25, 38: COLOR 12: PRINT "ACEPTAR" COLOR 15 SELECT CASE Corr% CASE 1: LOCATE 22, 15 PRINT "Encabezando la linea se debe escribir el tipo de linea" COLOR 10: LOCATE 23, 22: PRINT "A D C " COLOR 15: LOCATE 23, 24: PRINT "(Analoga),": LOCATE 23, 37 PRINT "(Digital) o ": LOCATE 23, 51: PRINT "(de Control)" CASE 2: LOCATE 23, 16 PRINT "Error en Instruccion Anterior mayor a 10 caracteres" CASE 3: LOCATE 23, 27: PRINT "La linea de programa muy extensa" CASE 4: LOCATE 23, 28: PRINT "Numero con demaciados digitos" CASE 5: SELECT CASE Grupoant% CASE 1: LOCATE 23, 22: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (" LOCATE 24, 27: PRINT "SEN, COS, TAN, ATN, INT, ABS, SQR" CASE 2: LOCATE 23, 31: COLOR 10: PRINT "^, *, /, \, +, -, MOD, )" CASE 3: LOCATE 23, 29: COLOR 10: PRINT "^, *, /, \, +, -, MOD, )" CASE 4: LOCATE 23, 22: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (" CASE 5: LOCATE 23, 22: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (" LOCATE 24, 27: PRINT "SEN, COS, TAN, ATN, INT, ABS, SQR" CASE 6: LOCATE 23, 29: COLOR 10: PRINT "^, *, /, \, +, -, MOD, )" CASE 7: LOCATE 23, 18: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (" LOCATE 24, 25: PRINT "SEN, COS, TAN, ATN, INT, ABS, SQR" CASE 13: LOCATE 23, 22: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*" END SELECT CASE 6: SELECT CASE Grupoant% CASE 2: LOCATE 23, 33: COLOR 10: PRINT "AND, OR, XOR, XNOR, )" CASE 3: LOCATE 23, 29: COLOR 10: PRINT "AND, OR, XOR, XNOR, )" CASE 5: LOCATE 23, 16: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (, NOT" CASE 6: LOCATE 23, 16: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (, NOT" CASE 7: LOCATE 23, 16: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (, NOT" CASE 9: LOCATE 23, 20: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*, (" CASE 14: LOCATE 23, 22: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*" END SELECT CASE 7: SELECT CASE Grupoant% CASE 2: LOCATE 23, 22: COLOR 10 PRINT "=, THEN (Si esta en el lugar correcto) y" LOCATE 24, 19: COLOR 10 PRINT "<, <=, >, >= (Si une los primeros dos terminos)" CASE 3: LOCATE 23, 34: COLOR 10: PRINT "=, <, <=, >, >=" CASE 7: LOCATE 23, 20: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*" LOCATE 24, 32: COLOR 10: PRINT "o cualquier numero" 258

CASE 8: LOCATE 23, 21: COLOR 10 PRINT "INAD*, INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*" LOCATE 24, 32: COLOR 10: PRINT "o cualquier numero" CASE 11: LOCATE 23, 25: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*" CASE 12: LOCATE 23, 25: COLOR 10 PRINT "INAD*,INDD*, OUTDA*, OUTDD*, TX, RX, Vaux*" CASE 15: LOCATE 23, 41: COLOR 10: PRINT "IF" END SELECT CASE 9: LOCATE 23, 21: PRINT "En esta linea existen parentesis sin cerrar" CASE 10: LOCATE 22, 29: PRINT "Si decea una nueva linea," LOCATE 23, 22: PRINT "debe eliminar algunas de las existentes" CASE 11: LOCATE 23, 21: PRINT "Formato para la estructura IF completo" CASE 12: LOCATE 23, 25: PRINT "La estructura IF esta incompleta" END SELECT DO: LOOP UNTIL INKEY$ = CHR$(13) COLOR 15 VIEW (100, 320)-(550, 412) CLS VIEW PUT (100, 320), Arr% END SUB DEFSNG A-Z '************ Visualiza el pantalla grafica el archivo cargado ************ SUB Vizcuadroconfi (Archivo$) VIEW (37, 30)-(600, 420) 'Borra la configuracio anterior de la pantalla CLS VIEW ' ********** Actualizacion de diviciones de frecuencia en Maux$ ********** IF Maux$(4, 1) <> "" THEN FOR w% = 1 TO VAL(Maux$(4, 5)) 'Para los primeros 4 divisores de A/D IF VAL(Maux$(2, w%)) >= INT(VAL(Maux$(4, 2)) / 2) THEN Maux$(2, w%) = STR$(INT(VAL(Maux$(4, 2)) / 2)): I% = 1 'Actualiza valores por encima de CK / 2 END IF IF VAL(Maux$(2, w%)) <= INT(VAL(Maux$(4, 2)) / 256) THEN Maux$(2, w%) = STR$(INT(VAL(Maux$(4, 2)) / 256)): I% = 8 'Actualiza valores por debajo de CK / 255 END IF ww% = 0 IF (VAL(Maux$(2, w%)) > INT(VAL(Maux$(4, 2)) / 256)) THEN ww% = 1 IF ww% = 1 AND (VAL(Maux$(2, w%)) < INT(VAL(Maux$(4, 2)) / 2)) THEN 'Actualiza valores en el rango de trabajo I% = 2 DO WHILE (VAL(Maux$(2, w%)) <= VAL(Maux$(4, 2)) / (2 ^ I%)) I% = I% + 1 LOOP ww% = (INT(VAL(Maux$(4, 2)) / 2 ^ (I% - 1)) - VAL(Maux$(2, w%))) IF ww% <= (VAL(Maux$(2, w%)) - INT(VAL(Maux$(4, 2)) / 2 ^ I%)) THEN Maux$(2, w%) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ (I% - 1))): I% = I% - 1 ELSE Maux$(2, w%) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ I%)) END IF END IF IF VAL(Maux$(2, w%)) > 20000 THEN 259

'Garantiza que no habra un A/D mayor a 20.000 Hz. DO WHILE VAL(Maux$(4, 2)) / (2 ^ I%) > 20000 I% = I% + 1 LOOP Maux$(2, w%) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ I%)) END IF IF VAL(Maux$(2, 1)) < VAL(Maux$(2, w%)) THEN 'Garantiza que la mayor divicion de frecuencia 'de los A/D estara en A/D1 para efectos de sincronizacion. Com$ = Maux$(2, 1) Maux$(2, 1) = Maux$(2, w%) Maux$(2, w%) = Com$ END IF Codprogdivck%(w%) = Coddivck%(I%) NEXT w% FOR w% = VAL(Maux$(4, 5)) + 1 TO 4 Maux$(2, w%) = "" Codprogdivck(w%) = &H0 NEXT w% IF Maux$(4, 7) = "0" THEN 'Para el divisor de tx Maux$(2, 9) = "" Codprogdivck(9) = &H0 ELSE IF VAL(Maux$(2, 9)) >= INT(VAL(Maux$(4, 2)) / 2) THEN Maux$(2, 9) = STR$(INT(VAL(Maux$(4, 2)) / 2)): I% = 1 'Actualiza valores por encima de CK / 2 END IF IF VAL(Maux$(2, 9)) <= INT(VAL(Maux$(4, 2)) / 256) THEN Maux$(2, 9) = STR$(INT(VAL(Maux$(4, 2)) / 256)): I% = 8 'Actualiza valores por debajo de CK / 255 END IF ww% = 0 IF (VAL(Maux$(2, 9)) > INT(VAL(Maux$(4, 2)) / 256)) THEN ww% = 1 IF ww% = 1 AND (VAL(Maux$(2, 9)) < INT(VAL(Maux$(4, 2)) / 2)) THEN 'Actualiza valores en el rango de trabajo I% = 2 DO WHILE (VAL(Maux$(2, 9)) <= VAL(Maux$(4, 2)) / (2 ^ I%)) I% = I% + 1 LOOP ww% = (INT(VAL(Maux$(4, 2)) / 2 ^ (I% - 1)) - VAL(Maux$(2, 9))) IF ww% <= (VAL(Maux$(2, 9)) - INT(VAL(Maux$(4, 2)) / 2 ^ I%)) THEN Maux$(2, 9) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ (I% - 1))) ELSE Maux$(2, 9) = STR$(INT(VAL(Maux$(4, 2)) / 2 ^ I%)) END IF END IF Codprogdivck%(9) = Coddivck%(I%) END IF END IF '*************** Iniciacion de variables de programacion ****************** J1% = 0: J2% = 0: Gia% = 0 FOR I% = 1 TO 9 Instotal%(I%) = 238 NEXT I% Datooutr%(10) = 0 '************* Visualizacion general de la matriz auxiliar ***************** IF Maux$(4, 1) = "" THEN 260

Titulo$ = " SIN ARCHIVO DE PROGRAMACION" w% = 12 ELSE Titulo$ = Tit$(2, 2) w% = 15 END IF LOCATE Ycoort%(2, 2), Xcoort%(2, 2): COLOR w%: PRINT Titulo$; : COLOR 14 PRINT Archivo$: COLOR 15 Yccon% = 5 'Llena primera linea de configuracion FOR Co% = 1 TO 9 IF Co% = 5 THEN Yccon% = 6 'Llena segunda linea de configuracion LOCATE Yccon%, Xccon%(Co%): PRINT Nccon$(Co%); : COLOR 14 PRINT Maux$(4, Co%) COLOR 15 NEXT Co% FOR Co% = 10 TO 13 'Llena linea de nombres LOCATE 8, Xccon%(Co%): PRINT Nccon$(Co%) NEXT Co% Yr% = 1 Ymax1% = VAL(Maux$(4, 5)) 'Establese limites de escritura Ymax2% = Ymax1% + VAL(Maux$(4, 6)) Ymax3% = Ymax2% + VAL(Maux$(4, 7)) Ymax4% = Ymax3% + VAL(Maux$(4, 8)) Ymax5% = Ymax4% + VAL(Maux$(4, 9)) FOR Yi% = 0 TO 16 IF Yi% < Ymax1% THEN 'Posibilidad de escribir los primeros cuatro renlones LOCATE Yi% + 9, Xccon%(14): PRINT Nccon$(14); Yi% + 1 ELSEIF Yi% >= Ymax1% AND Yi% < Ymax2% THEN 'Posibilidad de escribir los segundos cuatro renlones LOCATE 9 + Yi%, Xccon%(14): PRINT Nccon$(15); Yi% - Ymax1% + 1 ELSEIF Yi% >= Ymax2% AND Yi% < Ymax3% THEN LOCATE 9 + Yi%, Xccon%(14) + 1: PRINT Nccon$(16) ELSEIF Yi% >= Ymax3% AND Yi% < Ymax4% THEN LOCATE 9 + Yi%, Xccon%(14): PRINT Nccon$(17); Yi% - Ymax3% + 1 ELSEIF Yi% >= Ymax4% AND Yi% < Ymax5% THEN LOCATE 9 + Yi%, Xccon%(14): PRINT Nccon$(18); Yi% - Ymax4% + 1 ELSE EXIT FOR END IF 'Actualizacion de la coordenada y para la impresion del registro fuente IF Yi% = Ymax1% THEN Yr% = 5 IF Yi% = Ymax2% THEN Yr% = 9 IF Yi% = Ymax3% THEN Yr% = 10 IF Yi% = Ymax4% THEN Yr% = 14 ' *************************** Programa instrucciones ************************ IF Yr% <= VAL(Maux$(4, 5)) THEN Instotal%(Yi% + 1) = 222 + 2 * Yr%: J1% = J1% + 1 ELSEIF Yr% >= 5 AND Yr% < (VAL(Maux$(4, 6)) + 5) THEN Instotal%(Yi% + 1) = 223 + 2 * (Yr% - 4): J1% = J1% + 1 ELSEIF Yr% >= 10 AND Yr% <= (VAL(Maux$(4, 8)) + 9) THEN Instotal%(Yr% - 9) = Instotal%(Yr% - 9) - 224 Instotal%(Yr% - 9) = 32 * (Yr% - 10) + Instotal%(Yr% - 9) Gia% = (Yr% - 9) J2% = J2% + 1 ELSEIF Yr% >= 14 AND Yr% <= (VAL(Maux$(4, 9)) + 14) THEN Instotal%(Gia% + Yr% - 13) = Instotal%(Gia% + Yr% - 13) - 224 261

Instotal%(Gia% + Yr% - 13) = 32 * (Yr% - 14) + 16 + Instotal%(Gia% + Yr% - 13) J2% = J2% + 1 END IF IF J1% > J2% THEN Instotal%(9) = J1% ELSE Instotal%(9) = J2% END IF ' *************************************************************************** COLOR 14 LOCATE Yi% + 9, Xccon%(15): PRINT Maux$(1, Yr%) 'Impresion de los campos LOCATE Yi% + 9, Xccon%(16) - 1 PRINT STRING$(7 - LEN(Maux$(2, Yr%)), CHR$(32)); Maux$(2, Yr%) LOCATE Yi% + 9, Xccon%(17): PRINT Maux$(3, Yr%) Yr% = Yr% + 1 COLOR 15 NEXT Yi% END SUB

262

ANEXO 7 CARACT ERST ICAS T CNICAS DEL SIST EM A ELECT RO PT ICO

El sistema contiene un metro de fibra ptica con recubrimiento plstico de 1000m, con un LED de emisin de onda de luz Infrarroja, y un fotodetector. Dichas caractersticas de catlogo se ilustran a continuacin.

263

264

265

266

267

REFERENCIAS BIBLIOGRFICAS
[1]

ABAD, Alfredo & MADRID, Mariano. Redes de rea Local. Madrid, Mc Graw Hill, 1997, 317p.

[2]

BALTAZAR, Rubio M. Introduccin a la Ingeniera de las Fibras pticas. Washington. AddissonWesley, 1994. 414p

[3]

CEBALLOS, Francisco Javier. Manual para Quickbasic 4.5. Macrobit editores Mxico D.F.. 1993. 473p

[4] [5]

PALAIS, Joseph C. Fiber Optics Communications. Prentice Hall, New York. 1988, 354p SINEMA, William. Digital, Analog and Data Communications. Prentice Hall, 1982, 261p Morris. Arquitectura de Computaores. Prentice Hall, Mxico D.F. 1983, 225p

[6] MANO, [7]

GETTYS, Edward; KELLER, Frederick & SKOVE, Malcolm. Fsica Clsica y Moderna. McGraw Hill. Barcelona. 1991, 1241p.

[8]

NROU, Jean Pierre. Introduccin a las Telecomunicaciones por Fibra ptica. Editorial Trillas. Mxico D.F. 1991. 345p.

[9]

CHOMYCZ, Bob. Instalaciones de Fibra ptica: Tcnicas y Aplicaciones. Mc GrawHill. Barcelona. 1998, 225p.

[10]

TUR, Juan & MARTNEZ, Maria del Rosario. Todo sobre las Fibras pticas. Marcombo.

Barcelona. 1989, 208p.


[11]

JARDN, Hildeberto & LINARES, Roberto. Sistemas de Comunicacin por Fibra ptica.

Alfaomega. Mxico D.F. 1995, 253p.


[12] B.P.Lathi , [13]

Sistemas de Comunicacin, Interamericana. Mxico D.F. 1986, 704p.

KUSTRA, Rubn O. & TUJSNAIDER, Osvaldo O. Principios de comunicaciones digitales.

AHCIET - ICI. Barcelona. 1988, 376p.

268

[14]

C. J. Savant, Jr. & RODEN, Martin S. Diseo Electrnico. Addison Wesley longman.

Mxico. 1998, 880p.


[15] SNCHEZ [16] J.

L, Rafael. Sistemas Electronicos Digitales. Alfaomega. Mxico D.F. 1995, 367p.

Watson. Optoelectrnica. Limusa. Mexico D. F. 1993, 180p. Harry. Diseo de sistemas Microprocesadores. Paraninfo. Madrid. 1981, 190p.

[17] GARLAND, [18]

AXELSO, Jan. Utilizacin del Puerto Paralelo. En: Electrnica y Computadores. N9, ao

269

270

Potrebbero piacerti anche