UNIVERSIDAD AUTONOMA METROPOLITANA CIENCIAS BASICAS E INGENIERÍA UNIDAD IZTAPALAPA PROYECTO TERMINAL: DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA LICENCIATURA EN INGENIERÍA BIOMÉDICA ÁREA DE CONCENTRACIÓN: INSTRUMENTACIÓN MÉDICA ELECTRÓNICA MARIA LIDIA HERNÁNDEZ CALDERÓN. ASESOR: ___________________________________ ING. VÍCTOR HUGO TÉLLEZ ARRIETA PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ INDICE INTRODUCCIÓN ............................................................................................................................................................. 3 OBJETIVO......................................................................................................................................................................... 3 PROPUESTA ..................................................................................................................................................................... 4 MICROCONTROLADOR 68HC11 ................................................................................................................................ 5 INTRODUCIÓN DE FUNCIONAMIENTO DE MOTORES A PASOS ..................................................................... 7 TIPOS DE PASOS........................................................................................................................................................... 7 MOTORES DE RELUCTANCIA VARIABLE............................................................................................................... 7 MOTORES UNIPOLARES............................................................................................................................................. 8 MOTORES BIPOLARES ................................................................................................................................................. 9 MOTORES MULTIFASE ............................................................................................................................................... 9 MODO DE OPERACIÓN DEL MOTOR UNIPOLAR: .................................................................................................. 9 INTRODUCCIÓN DE FIBRA OPTICA ....................................................................................................................... 11 DESARROLLO DE HARDWARE ................................................................................................................................ 14 SISTEMA MINIMO MICROCONTROLADOR MC68HC11 ................................................................................... 15 CIRCUITO DE ALIMENTACIÓN Y CONTROL DE MOTORES A PASOS ......................................................... 16 CIRCUITO RECEPTOR DE FIBRA ÓPTICA............................................................................................................ 17 DESARROLLO DEL SOFTWARE............................................................................................................................... 18 CONVERTIDOR ANALOGICO DIGITAL.................................................................................................................. 18 FORMATO DE LA COMUNICACIÓN SERIE EN EL MC68HC11............................................................................ 18 REGISTRO DE ESTADO DEL SCI (SCSR)................................................................................................................. 19 MAPEO DE MEMORIA E INICIALIZACIÓN DE REGISTROS ............................................................................ 21 INICIALIZACIÒN DE REGISTROS............................................................................................................................ 21 BIBLIOGRAFÍA ............................................................................................................................................................. 22 ANEXOS........................................................................................................................................................................... 23 LISTADO DEL PROGRAMA....................................................................................................................................... 23 PROGRAMA DE INTERFACE USUARIO Y COMUNICACIÓN SERIAL................................................................ 28 Pág. 2 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ INTRODUCCIÓN El desarrollo de la tecnología en el ámbito hospitalario esta marcando diferencias de gran impacto en la administración y en la clínica del Hospital, la digitalización de todas las áreas del Hospital ya es una necesidad inminente. Ya no se puede pensar en organización si no se contempla el uso de un sistema de computo para tal efecto, los datos de paciente, reportes médicos, historias clínicas ya son alimentados a una red hospitalaria interconectada entre departamentos implicados e incluso entre diferentes hospitales de especialidad, para facilitar la información, almacenamiento, procesamiento, envió digitalizado de estudios clínicos y estudios de imágenes médicas. Para el caso de las imágenes médicas se tiene que contemplar en muchos de los casos el procesamiento de las mismas como aplicar filtros, enfatizar áreas de interés, acercamientos, etc., pues de esta manera el medico especializado en la materia puede analizar más a fondo cada caso lo que le permite tener más herramientas de apoyo para dar un diagnóstico acertado. Por lo anteriormente expuesto se hace necesario llevar a cabo la digitalización de las imágenes médicas que se obtienen. Las imágenes digitales producto de una Tomografía (TAC), Resonancia magnética (RM) no es un problema para este tipo de sistemas de redes computacionales pues ya son producto de una reconstrucción digital. La necesidad radica en la digitalización de imágenes analógicas como lo son las placas de RX y cualquier impresión de imagen en placa radiográfica como en algunos casos estudios de ultrasonido, ecocardiografía, mastografía. Por lo anteriormente expuesto, el presente proyecto se implementa para cubrir esta necesidad, desarrollando un sistema que permita digitalizar estas imágenes. OBJETIVO Desarrollar un sistema de lector digital de placas de imagen analógicas Para realizar una adquisición de imágenes binarias por medio de fibra óptica a partir de la digitalización de una placa analógica (RX) hacia una computadora personal o red de cómputo utilizando motores de paso y mecánica. Pág. 3 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ PROPUESTA El sistema consta de tres etapas las cuales se describen a continuación: 1. Mecánica que consiste en el movimiento de un detector de fibra óptica por medio de motores a pasos que ubican al detector en un sistema cartesiano (x, y). Siendo la adquisición de datos de forma puntual, es decir el sistema recorrerá todo el plano cartesiano punto por punto para formar una matriz de palabras que se traduce en una intensidad en escala de grises, los cuales corresponden a los píxeles de la imagen. 2. Controlador o tarjeta interfase que da vida a los motores a pasos y realiza la adquisición de datos por medio de fibra óptica y un convertidor analógico-digital, etapa que se implementa con un sistema mínimo y un microcontrolador MC68HC11. El sistema es capaz de enlazar toda la información adquirida con una Computadora Personal por medio del puerto serial. Se desarrolla el programa de control y captura de información del microcontrolador MC68HC11. 3. Desarrollo del programa de Interfase con el Usuario en la Computadora Personal e interfase con la tarjeta controladora. Este desarrollo se llevo a cabo en Borland C++ estructural y ensamblador. Se logra la ambientación y visualización de la imagen adquirida para su eventual procesamiento ó almacenamiento. MOTOR 1 DESPLAZAMIENTO EN X MOTOR 2 DESPLAZAMIENTO EN Y SISTEMA MINIMO CONTROLADOR DE MOTORES Y ADQUISICIÓN POR FIBRA OPTICA FIBRA OPTICA PLACA RADIOGRAFICA FUENTE LUMINOSA Figura 1. Sistema Mecánico e Interfase Pág. 4 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ MICROCONTROLADOR 68HC11 El MCH68HC11 es un microcontrolador de 8 bits que puede direccionar hasta 65536 bytes, cuenta con alta capacidad para soportar circuitos periféricos sofisticados tal que se puede utilizar ampliamente en diversas aplicaciones, Entre sus principales ventajas es el que pese a ser un microcontrolador de 8 bits, cuenta con instrucciones para realizar algunas operaciones de 16 bits, además de tener integrados varias funciones que lo hacen ideal para realizar funciones de control. Su diseño permite aumentar la velocidad del bus a 2 megahertz. El microcontrolador tiene incluido 512 bytes de EEPROM y 512 bytes de RAM, un convertidor analógico digital con resolución de 8 bits, una comunicación asíncrona de interfase periférica serial (SCI) y una comunicación síncrona de interfase periférica serial (SPI), un sistema temporizador (TIMERS), un subsistema de acumulador de ocho bits para contar eventos externos o medir periodos externos, un circuito de monitoreo para proteger al sistema de errores, dos instrucciones de software para control WAIT y el STOP. Cuenta con un Watchdow para proteger al sistema de errores, El voltaje de polarización es de 5volts. Este microcontrolador es de tecnología Motorola. El (C.A.D) convertidor analógico digital que se utiliza para realizar la conversión de la imágenes binarias a una imagen digital es el que tiene integrado el Microcontrolador 68HC11. El sistema analógico digital consta de 8 canales, 8 bits de aproximaciones sucesivas de conversión con ± 0.5 bit menos significativo de precisión sobre los rangos de temperatura específicos. Puertos (A, B, C, E) Puerto A El puerto A tiene líneas de entrada y de salida. Tres terminales son de propósito general ó de entrada por captura y cuatro de salida de propósito general o salida por comparación y una más que puede ser programada como entrada o salida PA7. La terminal PA7 es usada también como entrada al acumulador de pulsos. Puerto B y C Estos puertos tienen diferentes funciones dependiendo del modo de operación. Cuando el MC trabaja en modo de chip único, las terminales del puerto B son siempre de salida y las del puerto C bidireccionales y ambas de propósito general. Cuando el MC trabaja en modo expandido el puerto B y C sirven como bus de datos y de direcciones respectivamente multiplexando en el puerto C la parte baja de las direcciones con el bus de datos. Pág. 5 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ Puerto D, STRA y STRB El puerto D esta formado por 6 terminales, las cuales pueden ser utilizadas como comunicación serial o como líneas de entrada o salida de propósito general. Para la comunicación asíncrona la terminal PD0 es usada para recibir datos seriales y la terminal PD1 es usada para transmitir datos seriales. Estas dos terminales están asociadas con un bloque interno del MC llamado SCI interfase de comunicación serial, este bloque realiza las funciones de propósito general UART (Universal asíncrono receptor / transmisor). Las otras cuatro líneas del puerto D pueden ser también configuradas para comunicación serial, estas se encuentran asociada con el bloque llamado SPI Interfase Periférica Serial. Este bloque es usado para comunicarse con otros dispositivos electrónicos como desplegadores de cristal líquido, convertidores A/D; etc. La función de las terminales STRA y STRB, varía según el modo de operación del MC. En el modo de chip único son líneas de control de los puertos B y C. En el modo expandido STRA permite diferenciar entre un dato y una dirección (Pin llamado AS en modo expandido) y STRB es la línea de lectura escritura R/W que indica cuando el MC lee o escribe en algún dispositivo. En este caso el Microcontrolador se uso en modo expandido. Puerto E El puerto E esta formado por 8 terminales, las cuales pueden ser utilizadas como 8 líneas de entrada de propósito general o de entrada para el convertidor analógico digital. Pág. 6 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ INTRODUCIÓN DE FUNCIONAMIENTO DE MOTORES A PASOS Los motores de pasos vienen en dos variedades, de imán permanente y de reluctancia* variable (hay también motores híbridos, los cuales son indistinguibles). Los motores de reluctancia variable generalmente tienen tres ó cuatro devanados, con un retorno común, mientras que los motores de imán permanente usualmente tienen dos devanados independientes, con o sin derivación central. Los bobinados con derivación central, son usados en motores de imán permanente unipolares. Los motores de paso vienen con un amplio rango de resolución angular, los motores estriados, típicamente giran 90 grados por paso, mientras que los de los motores de imán permanente de alta resolución son capaces de manejar 1.8 o 0.72 grados por paso. Con un regulador apropiado, muchos motores de imán permanente e híbridos, pueden correr en medios pasos, y algunos reguladores pueden manejar pasos fracciónales más pequeños o micro pasos. Para ambos motores de paso (de reluctancia variable y de imán permanente), si un devanado del motor es energizado, el rotor se romperá el ángulo fijo, y sostendrá el ángulo hasta el exceso de torque del motor, en cuyo punto, el rotor girara, tratando de tener un equilibrio en cada punto sucesivo. TIPOS DE PASOS Los motores de pasos operan por energización de sus fases, en ciertas secuencias llamadas patrón de fases. Cambiando de un patrón a otro, hace que el motor se mueva un paso. Hay tres diferentes tipos de modos de patrón de fases. El modo de medio paso, en donde el motor alterna entre una y dos fases del motor, siendo energizados. El modo de medio paso, es el más común, hace que se tenga el doble de resolución del modo de pasos completo, el cual reduce la vibración. Hay dos tipos de modo de pasos completo, el de paso lleno doble, en el cuál siempre se energizan dos fases a un tiempo que resulta en más torque y más calor para el motor; y el de paso lleno simple, en el cual siempre se energiza una fase del motor, el cual resulta en menos torque y menos calor al motor. MOTORES DE RELUCTANCIA VARIABLE Si un motor tiene tres fases, típicamente conectadas como se muestra en la figura 2, con una terminal común a todos los devanados, esto es más probable en motor de pasos de reluctancia variable. En uso, típicamente el cable común va al suministro positivo y los devanados son energizados en secuencia. Hay también motores de reluctancia variable con 4 o 5 devanados, que requieren de 5 o 6 fases. El principio de manejo de estos motores es el mismo que los de tres devanados, pero es muy importante el orden correcto para energizar los devanados y hacer el motor más eficaz. Pág. 7 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ Figura 2. Motor de Reluctancia Variable MOTORES UNIPOLARES Los motores unipolares híbridos y de imán permanente con 5 o 6 cables, usualmente tienen derivación central en cada dos fases. En uso, la derivación central de los devanados están típicamente conectados al voltaje positivo, y las dos orillas de cada devanado están alternativamente aterrizado a tierra en reversa a la dirección del campo creado por las bobinas. El motor que se muestra a continuación gira 30 grados por paso. El devanado 1 del motor, esta distribuido entre la parte superior de la polea del estator, mientras que el devanado 2 del motor esta distribuida entre los polos derecho e izquierdo del motor. El rotor es un imán permanente con 6 polos, 3 al sur y 3 al norte arreglados alrededor de esta circunferencia. Para una resolución angular alta, el rotor puede tener más polos proporcionalmente. Los 30 grados por paso del motor de la figura, es uno de los motores más comunes diseñados de imán permanente, con 7.5 ó 15 grados comúnmente disponible. Motores de imán permanente con resoluciones tan buenas como 1.8 grados por paso son fabricados, y motores híbridos son rutinariamente construidos con 3.6 y 1.8 grados por paso, con resoluciones tan finas como 0.72 grado por paso. Como se muestra en la figura 3, el flujo de corriente desde la derivación central de la fase 1 a la terminal a, causa que la parte superior del polo del estator este a un polo norte, mientras que la parte baja de la polea del estator este a un polo sur. Esto atrae al rotor dentro de la posición mostrada. Si la potencia de la fase 1 es removida y la fase 2 es energizada, el rotor girara 30 grados, o un paso. Figura 3. Motor Unipolar Pág. 8 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ MOTORES BIPOLARES Los motores bipolares de imán permanente e híbridos, están construidos exactamente con el mismo mecanismo que el motor unipolar, pero las dos fases están conectadas más simplemente, con un tap - central. Así, el motor es más simple, pero el manejador de circuito es más complejo, necesita la polaridad inversa de cada par de polos del motor. Figura 4.Motor Bipolar MOTORES MULTIFASE Una clase menos común de motores de imán permanente es conectado con todas sus devanados de el motor en series cíclicas, con un tap entre cada par de devanados en el ciclo. El diseño más común en su categoría usa 3 y 5 fases de cableado. El control requiere la mitad de potencia para cada terminal del motor, pero estos motores pueden suministrar más torque. Algunos motores de 5 fases tienen alta resolución en un orden de 0.72 grados por paso (500 pasos por revolución). Figura 5. Motor Multifase MODO DE OPERACIÓN DEL MOTOR UNIPOLAR: Cuando la derivación central de estos motores esta conectado a +12 volts y una de las terminaciones esta aterrizada a tierra, el embobinado conducirá desde 170mA a 250mA, dependiendo del motor. Pág. 9 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ CAFE NE GR O CAFE R OJO A M A R IL L O CA FE VE RD E BLA NC O R O JO AZUL BLANCO Figura 6. Embobinado para Motores Unipolares de imán permanente más comunes Para aplicaciones donde cada motor maneja menos de 500 mA, la familia de arreglo de Darlington ULN200X es ampliamente utilizada, también es utilizado el DS200X de (National Semiconductor) o de Motorola el MC1413. Para el caso del ULN2003 consta de un arreglo de 7 transistores Darlington, compatible con entradas TTL. La base resistora en cada transistor es marcada por un estándar bipolar de salidas TTL. Cada Darlington NPN esta conectado con el emisor conectado al pin 8, propuesto como un pin de tierra. Cada transistor de este paquete esta protegido por diodos, uno cortando al emisor del colector, protegiendo al transistor de voltajes de reversa, y uno conectado al colector al pin 9, si el pin 9 esta conectado al suministro positivo del motor, este diodo protegerá al transistor de picos inductivos. Figura 7. Arreglo Darlington *reluctancia: cociente entre la fuerza magnetomotriz y el flujo magnético producido por un circuito magnético. Se expresa como Rm=M/Φ Pág. 10 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ INTRODUCCIÓN DE FIBRA OPTICA El sistema de cable de fibra óptica consiste en dos capas concéntricas de materiales transparentes. La porción interna que es el corazón o centro que transporta la luz, y una segunda capa que reviste el corazón el cual tiene un índice refractivo mas bajo que el corazón; sin embargo, el corazón y la capa del corazón nunca son exactamente del mismo material. Una sección transversal de una fibra óptica nos muestra a detalle el corazón y la capa del corazón, también muestra un rayo de luz dentro del ángulo de aceptación propagándose al interior de la fibra. Recubrimiento Corazón ó Centro Capa del Corazón Rayo de luz Figura 8. Fibra Óptica La luz incidente en la interfase corazón/capa del corazón por fuera del ángulo crítico, pasa al interior de la capa del corazón y es absorbido. La fibra plástica usada en este sistema tiene un recubrimiento de polietileno, una capa de corazón de polímero fluorine y un corazón del polímero polimetil metacrilato (PMMA). El corazón del la fibra es de 980 µm (0.04”) con un diámetro de la capa del corazón de 10µm. El trabajo de una fibra óptica depende de los principios básicos de la óptica y la interacción de la luz con la materia. Desde un primer punto de la física, la luz puede ser representada como ondas electromagnéticas o como fotones. La luz es una pequeña parte del espectro electromagnético. Tiene una frecuencia más alta y una longitud de onda más baja que las ondas de radio más comunes. En el caso de la fibra óptica muchas operan entre 750 y l500 nm de longitud de onda. Muchas fibras plásticas operan mejor en la región roja a 660nm. La relación entre la frecuencia y la longitud de onda esta definida por la ecuación: λ=c/f donde c es la velocidad de la luz y f es la frecuencia. Pág. 11 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ Índice Refractivo La medida óptica más importante para cualquier material transparente es su índice refractivo (n). El índice refractivo es la relación entre la velocidad de la luz en el vacío y la velocidad de la luz en el medio. n = c (vacío)/c (aire) La velocidad de la luz en cualquier medio es siempre más baja que en el vacío, tal que el índice refractivo es siempre mayor que uno. En la práctica el índice refractivo es medido comparando la velocidad de la luz en el material y en el aire y no en el vacío. Transmisión de la fibra óptica. La luz viaja en línea recta a través de muchos materiales ópticos, pero algunos rayos pasan a través de interfaces entre materiales diferentes, la luz es desviada cuando esta pasa a través de una superficie en la cual el índice refractivo cambia, figura 9. La cantidad de los rayos desviados depende del índice refractivo de los dos materiales ó el ángulo de incidencia de los rayos incidentes en la superficie de transmisión. Los ángulos de incidencia y de transmisión son medidos desde la línea perpendicular de la superficie. La relación matemática entre el rayo incidente y el transmitido se muestra como la Ley de Snell: n´ sen Ø´ = n´´ sen Ø´´ Pág. 12 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ Figura 9. Interfase Óptica. Donde n´ y n´´ son los índices refractivos de los medios inicial y secundarios, respectivamente, lo mismo aplica para los ángulos Ø´ y Ø´´. La ley de Snell indica que la refracción no puede tomar lugar cuando el ángulo de incidencia llega a ser muy largo (la luz atraviesa desde un alto índice a un índice bajo). Si el ángulo de incidencia excede del valor crítico, donde el seno del ángulo es igual a uno la luz no puede salir del vidrio. Toda la potencia es reflejada cuando el ángulo de refracción es igual o más alto que el ángulo de incidencia. Este fenómeno es llamado reflexión interna total. En un primer orden de aproximación, la reflexión interna total es la que mantiene la luz confinada a una fibra óptica. El ángulo crítico en el cuál ocurre una reflexión interna total puede ser derivado de la ley de Snell. La apertura numérica de una fibra puede ser encontrada de la siguiente ecuación: Ø Critico = arc sen (n´´ /n´) NA= v (n2^2-n1^2) Pág. 13 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ DESARROLLO DE HARDWARE Para el desarrollo de este sistema se ocupo un sistema mínimo que consiste de los siguientes elementos: 1. Microcontrolador MC68HC11: Se implemento en modo expandido, por lo que el puerto B (A8-A15) y el puerto C (AD0-AD7), sirven como bus de datos y de direcciones respectivamente multiplexando con ayuda del 74LS373 en el puerto C la parte baja de las direcciones con el bus de datos(D0-D7)., Los niveles de voltaje que existen durante el RESET en las terminales MODA Y MODB determinan el modo de operación del MC. TERMINAL MODA MODB Modo de operación 1 0 Circuito único 1 1 Expandido 2. 3. 4. 5. 6. El pin AS permite diferenciar entre un dato y una dirección y el pin R/W es la línea de lectura escritura que indica cuando el MC lee o escribe en algún dispositivo, se decodifica por el 74LS138. Convertidor Analógico digital es activado a través del puerto E, mapeado en la dirección $1030 $1039. Adquisición de una palabra digital por cada píxel de la imagen. Puerto y Comunicación Serial: Para la comunicación asíncrona la terminal PD0 (RxD) es usada para recibir datos seriales y la terminal PD1 (TxD) es usada para transmitir datos seriales Decodificador binario de 3 bits (74LS138): Son conectados los tres bits más significativos del bus de direcciones (A15-A13) por lo que nos da ocho posibilidades de activación de dispositivos, ya sea para lectura o escritura de datos. Los dispositivos que se habilitan son: memoria RAM, para almacenamiento de datos de la imagen memoria EEPROM, activación del manejador 74 LS244 encargado de accesar una señal de reloj que dará la velocidad del sistema por hardware y, activación del latch 74LS373 para habilitar motores a pasos. Driver 74LS244. Para el control del reloj externo, del bus de datos (D0) recibe un cero ó un uno lógicos para determinar el ritmo ó la velocidad a la que los motores a paso deberán moverse en los ejes x. y. Latch 74LS373, habilita la palabra del bus de datos al circuito controlador de motores, este recibe la palabra de control para la decodificación de los motores ya sea motor 1 o 0 (ejes x, y), así como la secuencia que estos requieren para rotar. Pág. 14 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ SISTEMA MINIMO MICROCONTROLADOR MC68HC11 Q0-Q4 A CIRCUITO DE CONTROL A MOTORES A PASOS Pág. 15 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ CIRCUITO DE ALIMENTACIÓN Y CONTROL DE MOTORES A PASOS Del bus de datos en la salida del Microcontrolador ocupamos 4 líneas o bits para alimentar los motores a pasos en su secuencia propia. La línea restante es ocupada para la decodificación de los mismos. El circuito básico que controla la decodificación, manejo y suministro de potencia están dados por los siguientes componentes: 1. Registro habilitador (74LS194): Es un latch el cual solo deja pasar la palabra de secuencia al arreglo Darlington en caso de que la validación hecha por el 74LS85 sea verdadera, este latch es sincronizado con la existencia de la palabra dada por la programación del microcontrolador durante el funcionamiento del sistema. 2. Comparador (74LS85): .Decodifica comparando la palabra entregada por la programación del microcontrolador, para saber que motor se estará habilitando. Tomando en cuenta que para activar el motor numero uno, la palabra entregada por dicha programación se compara con un cero lógico y para activar el segundo motor la palabra entregada por la programación del microcontrolador, se comparará con un uno lógico. 3. Manejador de arreglo Darlington (ULN2003): Con un máximo de 600 mA en corriente se suministra de energía a los motores. Palabra entregada por el sistema mínimo, primeros 4 bits son la secuencia del motor y los siguientes 4 son la decodificación del motor. Figura 10. Circuito de Alimentación y control de Motores a Pasos. Pág. 16 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ Se consiguieron motores a pasos con las siguientes características: • • • • Motor DC a pasos con imán permanente y embobinado con derivación central. Alimentación 12V Consumo en corriente de 0.2A Angulo de Rotación de 1.8o y 3.6o Se procedió a caracterizar los motores y se encontraron dos secuencias de trabajo para 8 y 4 pasos, de las cuales dio mejor resultado la secuencia de 4 pasos obteniendo una mayor fuerza y rapidez en el movimiento del detector. Secuencia de precisión con 8 pasos (binario) abcd 1000 1100 0100 0110 0010 0011 0001 1001 Secuencia normal con 4 pasos (binario) abcd 0111 1110 1101 1011 a b c d CIRCUITO RECEPTOR DE FIBRA ÓPTICA El circuito receptor de fibra óptica esta compuesto por tres partes; un detector/ preamplificador, amplificador y digitalizador. El detector óptico del receptor es un fototransistor NPN, Q2. La conversión de la luz a corriente eléctrica ocurre en la función base. La corriente del colector, similar al de un transistor convencional, y es amplificada por la ganancia de la corriente del transistor, hfe. El resistor R1. 220K, de la base de Q1 a la tierra provee un camino de descarga por la que atraviesa una corriente de descarga de las bases de Q2 a Q1, después el fototransistor se apaga. + 5 V o lts R2 DATO Q 2 Q 1 R1 Figura 11. Circuito Receptor de fibra óptica. Pág. 17 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ DESARROLLO DEL SOFTWARE CONVERTIDOR ANALOGICO DIGITAL El 68 HC11 contiene un convertidor analógico digital de 8 bits, con 8 canales con entradas multiplexadas. Este consiste en una simple conversión de aproximaciones sucesivas con un error de +- el bit menos significativo. El convertidor trabaja en un rango de ventana analógica de 0 a 5 V: Para poder llevar el control del convertidor éste cuenta con dos registros: OPTION y ADCTL llamado de estado. Estos registros se encuentran en las direcciones como sigue: OPTION $1039 ADPU CSEI IRQE DLY CME CR1 CR0 ADPU: Bit de encendido de la fuente interna del convertidor, 1 encendido, 0 apagado. CSEI: Bit de selección del oscilador interno del convertidor 1 encendido, 0 apagado. Se utiliza en caso de que el reloj del MC sea muy lento, menor que 750KHZ. IRQM, DLY, CME, CR1, CR0: Bits no relacionados con la programación del convertidor. ADCTL $1030 CCF SCAN MULT CD CC CB CA CCF: Este bit nos indica cuando la conversión ha sido completa y en este caso el bit se pone en 1. Es un bit de solo lectura. En el modo de conversión continua (SCAN), los resultados serán válidos hasta que CFF este en 1. SCAN: Control del modo de conversiones múltiples, si es 0 solo se realizan 4 conversiones, si es 1 la conversión se realiza de manera continua. MUL: Este bit controla el modo de trabajo del multiplexor. Canales múltiples ó un solo canal. Si es 0 se realizan conversiones continuas de un mismo canal en grupos de 4. Cuando es 1 se realizan conversiones de cada canal en grupos de 4. CD, CC, CB, CA: Estos bits permiten seleccionar los canales que serán utilizados en la conversión. En el caso del proyecto solo se utiliza un solo canal (bit CA=1). FORMATO DE LA COMUNICACIÓN SERIE EN EL MC68HC11 En un puerto serie los datos se transmiten bit a bit. La transmisión de los datos se realiza a través del puerto serial utilizando el formato de no regreso a cero (formato utilizado por en el MC 68HC11) como el que se muestra en la figura: IDLE LINE DATOS START START STOP Pág. 18 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ a) b) c) d) e) El formato cumple con las siguientes características: La línea estará ociosa teniendo un uno lógico antes de la transmisión o recepción de datos. El bit de comienzo será un cero lógico Los datos son recibidos y transmitidos comenzando por el bit menos significativo. El bit de parada será un uno lógico e indicará el fin de la transmisión de un carácter contenido en un paquete, el cuál consistirá de un bit de comienzo, un carácter de 8 ó 9 bits, y un bit de parada. Una terminación de transmisión o recepción se llevara acabo cuando la línea contenga un cero por lo menos por el tiempo completo de un paquete que contenga un carácter. El transmisor del SCI puede producir hileras de caracteres en uno lógico (estado ocioso)ó hileras de caracteres en cero lógico(estado de ruptura).El corazón del sistema de transmisión es un registro de corrimiento serial; usualmente este registro toma los datos del buffer de transmisión. Los datos entran en el buffer cuando en el programa se escribe en el registro SCDAT. Cuando entra en el registro de corrimiento procedente del buffer de transmisión , un cero es agregado en el primer bit del dato, para que opere como bit de comienzo, y un bit de uno, es agregado en la última posición para que opere como bit de parada. En el caso previo al inicio a la comunicación serial ese registro de corrimiento es atiborrado de unos para indicar línea ociosa. En caso de que se envíe un comando de ruptura el registro de corrimiento es atiborrado de ceros. El sistema SCI esta configurado y controlado por 5 registros: BAUD, SCCR1, SCCR2, SCSR y SCDR. Adicionalmente el registro del puerto D, el registro de direcciones de datos por el puerto D y el registro de control del SPI. Cuando el receptor ó el transmisor del SCI son habilitados, el SCI lógico toma el control del pin asociado con el puerto D. Las direcciones de los datos para los pines TxD y RxD son antepuestas en la entrada y salida respectivamente. Sin embargo estos no controlan las direcciones de los pines del puerto D mientras el SCI tiene el control. La recuperación de los datos se realiza mediante un registro de corrimiento de alta velocidad, el cual opera a 16 veces la velocidad del baud a que se esta llevando la comunicación. REGISTRO DE ESTADO DEL SCI (SCSR) Los siete estados de los bits asociados con el sistema del SCI están localizados en el SCSR, descritos en el siguiente registro: SCSR $102E 7 6 5 4 3 2 1 0 TDRE TC RDRF IDLE OR NF FE 0 1 1 0 0 0 0 0 0 TDRE - Registro de transmisión de datos vacíos. Pág. 19 de30 RESET PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ Cuando es 0 = no vacío, un carácter fue previamente escrito en el SCDAT y aún no es transferido al registro de transmisión para ser enviado serialmente. Cuando es 1, indica que un nuevo carácter puede ser escrito ahora en el SCDAT. Este carácter es verificado antes de cada nuevo carácter sea enviado para ver si el SCDAT puede aceptar un nuevo dato. El transmisor del SCI tiene doble buffer tal que el TDR sostiene el segundo carácter en la línea mientras el registro movido en transmisión serial sostiene el carácter en proceso de ser transmitido serialmente. La bandera TDRE, es puesta a uno durante el RESET para indicar que no hay un dato significativo en el SCDAT. TC - Transmisión completa Cuando es cero, indica que el transmisor esta ocupado, Cuando es 1, indica que el transmisor ha completado el envío y ha alcanzado un estado ocioso. Se limpia la bandera TC leyendo al SCSR, seguido por una escritura al SCDAT. El TC es leído una vez durante la lectura de SCSR. La bandera TC es puesta a uno durante el reset para indicar que el transmisor no esta ocupado o no esta transmitiendo nada. RDRF – Registro de transmisión de datos llenos Si es 0, no esta lleno, indica que no se ha recibido nada desde que el último carácter fue leído en el SCDAT. Si es 1, indica que un carácter ha sido recibido y transmitido desde el registro receptor ajustado al SCDAT paralelo desde donde puede ser leído en el. Software. La bandera RDRF es limpia leyendo al SCSR, seguido por una lectura SCDAT. RDRF, es leído una vez durante la lectura del SCSR. IDLE – Detección de línea ociosa Cuando es 0, indica que la línea RxD ó se encuentra activa o nunca ha estado activa desde que se limpio IDLE. Cuando esta en uno, indica que la línea RxD se ha convertido en una línea ociosa. La bandera del IDLE es limpia, seguido por una lectura al SCSR, seguido por una lectura del SCDAT. IDLE es leído al menos una vez durante la lectura del SCSR. OR – Error de sobreescritura Cero, indica que no hay error de sobreescritura, Si es 1, indica que otro carácter fue recibido serialmente y fue leído para ser transferido al SCDAT, pero el carácter recibido previamente no da sido leído. La bandera OR es limpia leyendo al SCSR, seguido por una lectura del SCDAT. OR, es leída una vez durante la lectura al SCSR. NF – Bandera de ruido Cero, indica que no se detecto ruido durante la recepción del carácter en el SCDAT. Si es 1, recupera ruido lógico detectado durante la recepción del carácter en el SCDAT. La bandera NF es limpiada leyendo al SCSR seguido por una lectura del SCDAT. NF, es leída una vez durante la lectura del SCSR. Pág. 20 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ FE – Estado de Error. Es cero cuando no se detecta un estado de error. Uno, Un estado de error fue detectado por el carácter en el SCDAT. La bandera FE es limpiada leyendo al SCSR seguido por una lectura del SCDAT. FE, es leída una vez durante la lectura del SCSR. Registro de datos del SCI (SCDAT) El SCDAT, esta separado en dos registros. Cuando el SCDAT esta leyendo, el RDR de solo lectura es accesado; cuando el SCDAT esta escribiendo, el TDR de solo escritura es accesado. El mnemónico usado para referirnos a esta ubicación de registro en el programa es el SCDAT. 7 6 5 4 3 2 1 0 R7 R6 R5 R4 R3 R2 R1 R0 T7 T6 T5 T4 T3 T2 T1 T0 U U U U U U U U SCDAT $102F RDR (LECTURA) TDR (ESCRITURA) RESET MAPEO DE MEMORIA E INICIALIZACIÓN DE REGISTROS Dirección $C000H $E000H Elemento RAM6264 EEPROM $8000H $A000H 74 LS373 74 LS244 $C000H $1039H $1030H $0032H DAC ADCTL Comentario Lectura y escritura de datos. Almacenamiento de datos de la imagen Control de motores a pasos Reloj externo, velocidad del sistema Localidad de variables Convertidor Analógico Digital Dirección del registro ADCTL Entrada de datos de Fibra óptica INICIALIZACIÒN DE REGISTROS OPTION $1039 ADPU CSEI IRQE DLY 1 0 0 1 Encendido del convertidor Analógico Digital CME 0 ADCTL $1030 CCF SCAN MULT CD 0 0 1 0 0 Conversión de datos de forma continúa utilizando un solo canal Pág. 21 de30 0 CR1 0 CR0 0 CC 0 CB 0 CA 1 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ BIBLIOGRAFÍA I. Robert f. Coughlin, Frederik f. Driscoll. Circuitos integrados lineales y amplificadores operacionales, Prentice Hall Hispanoamericana, 2da edición. II. MC68HC11, Reference Manual, Motorola Inc, 1991, rev 2. III. Electrónica de Microcontroladores, Micro C. Martín Raya Bahena. IV. Motorola inc. Microprocessor, Microcontroller, and Peripheral data vol.II V. Microprocessors and interfacing, programming and hardware, Douglas V. Hall VI. Understanding fiber optics, Hecht, Howard W. Sams, 4300 west 62 nd street, Indianapolis, 1989 VII. An introduction to optical fibers, Cherin , McGraw-Hill book company 1983 VIII. IEEE Transactions on Biomedical Engineering Vol. 43, No. 6, June 1996. (The Design an Optical Fiber Pressure Transducer for Use in the Upper Airways ) IX. Douglas W. Jones Stepping Motor Types and Physics Part 1. http://www.cs.uiowa.edu/∼jones/step/types.html http://www.cs.uiowa.edu/∼jones/step/example.html http://www.hut.fi/Misc/Electronics/circuits/diskstepper.html http://www.creaturoides.com/srvesp.htm X. MD- 2 Dual Stepper Motor System User’s Guide Arrick Robotics Revisión D Pág. 22 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ ANEXOS LISTADO DEL PROGRAMA INICIO EQU SERIAL EQU SCSR EQU SCDAT EQU OPTION EQU ADCTL EQU CANAL2 EQU OPTICA REGBAS EQU DIRMOT EQU VAR EQU CONTEO EQU $C200 $E41D $102E $102F $0039 $0030 $0032 ; DIRECCION DE INICIO DE PROGRAMA ; DIRECCION DEL COMUNICACION SERIAL DEL BUFALO ; DIRECCION DEL SCSR ; DIRECCION DE SALIDA DE DATOS DEL SCI ; DIRECCION DEL REGISTRO OPTION DEL ADC ; DIRECCION DEL REGISTRO ADCTL ; CANAL POR EL QUE ENTRAMOS LOS DATOS DE FIBRA $1000 ; DIRECCION DEL REGISTRO BASE $8000 $C000 ; LOCALIDAD DE VARIABLES $0000 ORG INICIO ; INICIALIZA EL ADC LDY #REGBAS LDAA STAA LDAA STAA ; INICIALIZA EL ADC #$90 ; ENCIENDE EL ADC 1001 0000 OPTION,Y #$21 ; SELECCIONO CANAL 0010 0001, PARA CONVERSION CONTINUA ADCTL,Y ; ;FIN INICIALIZACION ADC LDAA #$01H STAA $C000H LDD LDAA 0D, 0B) STAA LDAA STAA LDAA STAA LDAA STAA #0000H #$07H ; BANDERA DE RETARDO ; CARGAMOS LA SECUENCIA DEL MOTOR A 4 PASOS (07, 0E, $C004 #$0EH $C005 #$0DH $C006 #$0BH $C007 Pág. 23 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ ; MAIN LAZO: LDD STD STD #$C004 ; CARGA Y ALMACENA EL ULTIMO ETADO DE MOTOR 0 $C00CH ; POR DEFAULT APUNTADOR DE PASO 07h $C00EH ; ALMACENA ULTIMO ESTADO DE MOTOR 1 POR DEFAULT 07h LDD $C00CH STD $C010H LDAA #$64H ; CARGA NUMERO DE PASOS A DAR STAA $C012H ; ALMACENA # DE PASOS DE EJEX O EJE Y LDAA #$00H ; MOTOR ADELANTE STAA $C015H ; ALMACENA BANDERA DE SIFNO DE DIRECCION STAA $C016H ; BANDERA DE DECODIFICACION DE MOTOR 0/MOTOR0, 1/MOTOR1 JSR FUNCIONMOT LDD $C00EH STD $C010H LDAA #$64H STAA $C012H LDAA #$01H ; MOTOR ABAJO STAA $C015H LDAA #$01H STAA $C016H JSR FUNCIONMOT LDD $C00CH STD $C010H LDAA #$64H STAA $C012H ; MOTOR ATRAS LDAA #$01H STAA $C015H LDAA #$00H STAA $C016H JSR FUNCIONMOT LDD $C00EH STD $C010H LDAA #$64H STAA $C012H LDAA #$00H ; MOTOR ABAJO STAA $C015H LDAA #$01H STAA $C016H JSR FUNCIONMOT JMP LAZO Pág. 24 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ ; FIN DE FUNCION LAZO ; FUNCION MOTOR FUNCIONMOT LDAB #$00H STAB $C001H LDX $C010H ;X , ES EL APUNTADOR PARA SELECCIÓN DE LA SECUENCIA DEL MOTOR ; MOTOR: LDAB $C001H ; INCREMENTAMOS EL CONTADOR INCB STAB $C001H ; DIRECCIONAMIENTO DE LOS MOTORES DERECHA E IZQUIERDA LDAA LDAB CMPB BNE $00,X $C015H ; COMPARAMOS CON BANDERA DE DIRECCION #$00H MATAB ; BRINCA MOTOR ATRÁS Y ABAJO ;EL SIGUIENTE CODIGO SE VERIFICA EN PARTE DEL SECUENCIA SE ENCUENTRA EL APUNTADOR PARA REINICIALIZARLO EN CASO DE SER NECESARIO PUES SOLO SON 4 SECUENCIAS DEL MOTOR A PASOS, POR SUPUESTO LA FUNCION MATAB REINICIALIZA EN SENTIDO INVERSO INX CMPA BNE LDX BRA ; CODIGO PARA AUMENTAR EL SIGUIENTE PASO A LA DERECHA #$0BH ; O AL FRENTE SIGUE #$C004H ; REINICIALIZA APUNTADOR EN PRIMER PASO SIGUE MATAB: DEX CMPA #$07H ; COMPARACION IF DELIGADO DE COLA BNE SIGUE LDX #$C007H ; REINICIALIZA APUNTADOR EN ULTIMO PASO SIGUE: ; MOTOR00 O MOTOR1 LDAA $00,X ; CARGAMOS VALOR DEL PASO DE MOTOR Pág. 25 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ LDAB CMPB BNE ADDA $C016H ; BANDERA DE INDICACION DE MOTOR 0 o 1 #$01H M0O1 #$10H ; SUMA 16 PARA MOTOR 2. M0O1: STAA DIRMOT ; HABILITAMOS 373 RETARDO: LDAA $A000H ; RECUPERAMOS DE 244, STADO DEL RELOJ ANDA #$01H ; AND CON DATO D0 CMPA $C000H BNE RETARDO INCA ANDA #$01H STAA $C000H ; FIN DE RETARDO ; ADQUIRIR DATO Y MANDAR POR SERIAL LDAA CANAL2,Y OUTSCI2: LDAB SCSR BITB #$80 BEQ OUTSCI2 ANDA #$7F STAA SCDAT ; FIN DE ADQUISISION LDAB $C001H CMPB $C012H ;100 PASOS M0 BLE MOTOR ; FIN DE MOTOR ; GUARDAMOS ULTIMA CONDICION DE LOS MOTORES LDAB CMPB BNE STX BRA TERMINA: $C016 #$01H TERMINA $C00EH ; GUARDA ULTIMO STADO DEL MOTOR 1 FIN Pág. 26 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ STX $C00CH ; GUARDA ULTIMO ESTADO DEL MOTOR 0 ; FIN DE MOTOR FIN: RTS ; JMP $C200 ; FIN DE FUNCIONMOT Pág. 27 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ PROGRAMA DE INTERFACE USUARIO Y COMUNICACIÓN SERIAL #include <dos.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <stdarg.h> #include <process.h> #include <bios.h> #include <graphics.h> /* (9600 baudios ,ninguna paridad,STOP1,caracteres de 8 bits*/ #define CONFIGURA 0XE3 #define COM1 #define COM2 0x03f8 0x02f8 void inicia_puerto(void); char estado_puerto(void); void llena_buffer(void); //int *buffer[]; void main(void) { char c; inicia_puerto(); // inicia_graficos(); do{ llena_buffer(); // grafica(); if(kbhit()) { c=getch(); if(c==0x0) c=getch(); } // closegraph(); }while(c!=0x1b); } void inicia_puerto(void) { Pág. 28 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ asm{ MOV AH,00H MOV AL,CONFIGURA MOV DX,0000H INT 14H } } char estado_puerto(void) { char a=0x00; while(a!=0x01) { asm{ MOV AH,03H MOV DX,0H INT 14H AND AH,01H MOV a,AH } } //fin de while return 'b'; } unsigned char lee_byte(void) { unsigned char a; asm{ MOV DX,COM1 IN AL,DX MOV a,AL } return a; } void llena_buffer(void) { int i,buffer; char cart; for(i=0;i<=100;i++) { Pág. 29 de30 PROYECTO TERMINAL DE TITULACION DIGITALIZACION DE IMÁGENES POR MEDIO DE FIBRA OPTICA UTILIZANDO MOTORES DE PASO Y MECANICA _______________________________________________________________________________________________ // cart=estado_puerto(); if(estado_puerto()=='b') buffer=(int)lee_byte(); printf("%d",buffer); } } /* void inicia_graficos(); { int gdriver = DETECT, gmode, errorcode; initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* return with error code } getch(); return 0; } void llena_buffer(void); { inicializa_graficos(); char estado_puerto(void); unsigned char lee_byte(void); int i; for(i=0;i<=100;i++) {if(estado_puerto=='b')) buffer[i]=(int)lee_byte(); putpixel(x,y,buffer[i]); } }*/ Pág. 30 de30