ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA CONTROL DE DISPARO, INTENSIDAD Y PUNTO DE IMPACTO DE UN RAYO LÁSER DE NITRÓGENO FREDDY RICARDO PÉREZ JIBAJA TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO EN LA ESPECIALIZACION DE ELECTRÓNICA Y CONTROL Quito, marzo 2000 Certifico que el presente trabajo ha. sido realizado en su totalidad por el Sr. Freddy Ricardo Pérez Jibaja Ing, Patricio GMco Director de Tesis AGRACEDIMIENTO Mi agradecimiento a todas las personas que colaboraron para que este trabajo llegue a feliz término, en especial al MSc. Patricio Chico Director de esta tesis y al Ph. D. César Costa Codirector, quienes siempre me brindaron su invalorable apoyo y sabios consejos. Además, mi profunda gratitud para quienes conforman el Laboratorio MALDI del departamento de física de la Escuela Politécnica Nacional., particularmente al Ph. D. Edy Ayala por su valiosa cooperación. A la Escuela Politécnica Nacional deseo expresarle no solo mi agradecimiento sino mi compromiso de representarla con dignidad, apoyado en los valores éticos y morales que me ha inculcado y demostrando, con la aplicación de los conocimientos adquiridos, que es el mejor centro de estudios superiores con que cuenta nuestro país. A Dios, por darme la oportunidad de vivir, por permitirme día a día superar las adversidades, alcanzar mis objetivos y ser feliz en unión de quienes me rodean. DEDICATORIA A mis padres, que me brindan permanentemente su cariño y apoyo incondicional, a mis hermanos por el soporte, guía y comprensión durante esta importante etapa de mi vida. A ellos y al resto de mi familia que constituye un modelo ejemplar para mantenerme en una búsqueda constante de superación. A mis amigos, que me han alimentado con los sentimientos más nobles de amistad, compañerismo y lealtad. 1KDICE GENERAL Página No. CAPITULO I INTRODUCCIÓN 1 CAPITULO rr REQUERIMIENTOS PARA EL DISEÑO 5 2.1 CONTROL DE FRECUENCIA DE DISPARO 5 2.1.1 PRINCIPIO DE FUNCIONAMIENTO 6 2.1.2 PARTES CONSTITUTIVAS 6 2.1.2.a Ingreso del dato de frecuencia de disparo. 7 2.1.2.b Generación de la frecuencia de disparo. 8 2.1. Le Circuito de disparo externo del láser. 8 2.2 CONTROL DE INTENSIDAD 9 2.2.1 PRINCIPIO DE FUNCIONAMIENTO 9 2.2.2 PARTES CONSTITUTIVAS 9 2.2.2.a Ingreso del dato de intensidad. 10 2.2.2.b Controlador de posición del motor de pasos. 10 2.2.2. c Motor de pasos. 11 2.2.2. d Acoplamiento mecánico entre el filtro de densidad variable y el motor. 11 2.2.2.e Filtro de densidad. 12 2.2.2.f Sensor de posición referencial. 13 2.3 CONTROL DE PUNTO DE IMPACTO O PUNTO DE COLISIÓN 14 2.3.1 PRINCIPIO DE FUNCIONAMIENTO 14 2.3.2 PARTES CONSTITUTIVAS 14 2.3.2.a Ingreso del dato del punto de colisión. 15 2.3.2.b Controlador de posición del motor de pasos. 15 2.3.2.C Motor de pasos. 16 2.3.2.d Acoplamiento mecánico entre el telescópico y el motor 16 2.3.2.e Telescopio 16 2.3.2.f Sensor de posición referencial. 17 Freddy B.. Pérez J. íHT«»Ti JL tlgAiltl CAPITULO m DISEÑO DEL BARDWAKE DEL EQUIPO 18 3.1 REQUERIÍVDENTOS DEL EQUIPO. 18 3.2 SELECCIÓN DEL MTCROCONTROLADOR. 19 3.3 ASIGNACIÓN DE TAREAS A LOS MECROCONTROLADORES. 22 3 A DISEÑO DEL EQUIPO REMOTO 23 3.4.1 BARRIDO DE LOS 4 DISPLAYS. 23 3.4.2 MANEJO DE DATOS PARA LOS DISPLAYS. 25 3.4.3 MANEJO DEL TECLADO 26 3.4.4 RECEPCIÓN Y TRANSMISIÓN SERIAL 27 3.4.5 CONSTRUCCIÓN DEL CABLE PARA CONECTAR EL EQUIPO Al COMPUTADOR. 28 3.4.6 TRANSMISIÓN DE DATOS ENTRE LOS DOS MICROCONTROLADORES. 29 3.4.7 MANEJO DÉLOS MOTORES DE PASOS. 30 3.4.8 POSICIÓN DE REFERENCIA DE LOS MOTORES. 32 3.4.9 DISPARO DEL RAYO LÁSER US ANDO UN PIN DE SALIDA DEL MICROCONTROLADOR. 33 3.4.10 CIRCUITO COMPLETO DEL EQUIPO. 33 3.4.11 PLACAS DE CIRCUITO IMPRESO DEL EQUIPO. 34 3.4.12 CAJA DEL EQUIPO. 36 CAPITULO IV DISEÑO DEL SOFTWARE DEL EQUIPO 37 4.1 DISEÑO DEL SOFTWARE DEL EQUIPO REMOTO 37 4.1.1 BARRIDO DÉLOS 4DISPLAYS. 37 4.1.2 MANEJO DEL TECLADO 38 4.1.3 RECEPCIÓN SERIAL 40 4.1.4 TRANSMISIÓN SERIAL. 41 4.1.5 MANEJO DÉLOS MOTORES DE PASOS. 42 4.1.6 POSICIÓN REFERENCIAL DE LOS MOTORES. 46 4.1.7 GENERACIÓN DE LA FRECUENCIA DE DISPARO DEL LÁSER. Freddy R. Pérez J. 47 Página No. 4.1.8 PROGRAMA RESIDENTE EN EL MICROCONTROLADOR #1 48 4.1,9 PROGRAMA RESIDENTE EN EL MICROCONTROLADOR #2 4.2 DISEÑO DEL PROGRAMA EN EL COMPUTADOR. 52 56 CAPITULO V MONTAJE DEL EQUIPO, PRUEBAS Y RESULTADOS 58 5.1 MONTAJE DEL EQUIPO. 58 5.2 PRUEBAS Y RESULTADOS. 61 5.2.1 CONTROL DE FRECUENCIA DE DISPARO. 61 5.2.2 CONTROL DE INTENSIDAD DEL LÁSER. 63 5.2.3 CONTROL DEL PUNTO DE IMPACTO O DE COLISIÓN. 64 CAPITULO VI CONCLUSIONES Y RECOMENDACIONES 65 6.1 CONCLUSIONES 65 6.2 RECOMENDACIONES 67 BIBLIOGRAFÍA ANEXOS Anexo 1 Planos del sistema mecánico Anexo 2 Resumen de características y set de instrucciones del PIC16F84 Anexo 3 Hojas de especificaciones de algunos ICs. Anexo 4 Circuito completo en formato A4 Anexo 5 Tablas con valores de registro del Timer y del registro adicional Anexo 6 Manual de Usuario Freddy R. Pérez J, ÍNDICE DE FIGURAS Página No. CAPITULO I Fig. 1,1 Esquema básico del funcionamiento de un espectrómetro de masas 2 Fig. 1.2 Vaporización de la muestra mediante un pulso láser 2 CAPITULO H Fig. 2.1 Esquema de disparo externo del láser 7 Fig. 2.2 Esquema de control de intensidad 10 Fíg. 2.3 Motor unipolar de 200 pasos. 11 Fig. 2.4 Acoplamiento mecánico entre el filtro de densidad y el motor. 12 Fig. 2.5 Filtro de densidad variable de la casa Raynord Enterprises, Inc. 13 Fig. 2.6 Sensor de posición referencial. 13 Fig. 2.7 Esquema de control de intensidad 15 Fig. 2.8 Esquema mecánico del telescópico. 16 CAPITULO m Fig. 3.1 MicrocontroladorPIC16F84. 20 Fig. 3.2 Circuito para el barrido de los displays. 24 Fig. 3.3 Circuito para el manejo de datos de los displays. 25 Fig. 3.4 Circuito para el manejo del teclado 4x4. 26 Fig. 3.5 Circuito para la transmisión y recepción serial RS-232. 27 Fig. 3.6 Interconexiones del cable serial. 29 Fig. 3.7 Circuito de potencia de los motores de pasos. 31 Fig. 3.8 Circuito de encerado délos motores de pasos. 32 Fig. 3.9 Circuito completo del equipo. 33 Fig. 3.10 Placas de circuito impreso 34 Fig. 3.11 Caja del equipo 36 Freddy R. Pérez J. Página No. CAPITULO IV Fig. 4.1 Diagrama de flujo resumido del barrido de displays. 38 Fig. 4.2 Diagrama de flujo resumido del manejo de teclado. 39 Fig. 4.3 Diagrama de flujo resumido de la recepción serial. 40 Fig. 4.4 Diagrama de flujo resumido de la transmisión serial. 41 Fig. 4.5 Bobinas del motor de pasos. 43 Fig. 4.6 Diagrama de flujo resumido del manejo de los motores de pasos. 44 Fig. 4.7 Diagrama de flujo resumido del encerado de los motores. 46 Fig. 4.8 Diagrama de flujo resumido de la generación de la frecuencia de disparo47 Fig. 4.9 Diagramas de flujo del microcontrolador #1 48 Fig. 4.10 Diagramas de flujo del microcontrolador #2 52 Fig. 4.11 Pantalla principal del programa en LabView. 56 Fig. 4.12 Resumen de interconexión de SubVIs. 57 CAPITULO V Fig. 5.1 Montaje del equipo. 59 Fig. 5.2 Alineación y enfoque del láser. 59 Fig. 5.3 Conexiones del equipo. 60 Fig. 5.4 Reflejo del láser para la primera posición del filtro de densidad. 63 Fig. 5.5 Reflejo del láser para la segunda posición del filtro de densidad. 63 Fig. 5.6 Muestra con material fotosensible 64 Freddy R. Pérez J. ÍNDICE DE TABLAS Página No. Tabla.3.1 Tareas realizadas por el primer microcontrolador PIC16F84 22 Tabla 3.2 Tareas realizadas por el segundo microcontrolador PIC16]?84 23 Tabla 3.3 Descripción de y función de los pines del conector Macintosh RS-422 28 Tabla 4.1 Secuencia en las bobinas para movimiento del motor de pasos. 43 Tabla 5,1 Datos de frecuencia de disparo esperada^ frecuencia de disparo obtenida experimentalmente y datos de error. Freddy R. Pérez J. 62 CAPITULO I CAPITULO I INTRODUCCIÓN La misión de la presente tesis es satisfacer la necesidad de mejorar y modernizar el manejo del rayo láser de nitrógeno, utilizado en el laboratorio de Espectrometría de masas MALDI de la Facultad de Ciencias de la Escuela Politécnica Nacional. Espectrometría de Masas MALDI (Matrix Assisted Láser Desorption lonization) es una técnica analítica inventada en el año 1988 por un grupo de científicos alemanes, que se usa para determinar la masa molecular de una gran variedad de compuestos y biomoléculas de un amplio rango de tamaños. Esta técnica se caracteriza por una gran sensibilidad, precisión, resolución adecuada y amplio rango de aplicabilidad. El principio de la espectrometría consiste en llevar a las moléculas de interés ai estado gaseoso de alguna manera, en un ambiente vacío y proveerlas de la misma energía cinética. Freddy R. Pérez I CAPITULO I Debido a esto, si se deja a todas las moléculas volar libremente una cierta distancia, las moléculas más livianas llegarán en menor tiempo que las más pesadas, el esquema básico del funcionamiento de un espectrómetro de masas se indica en la figura 1,1. Ionización de moléculas w Aceleración de las moléculas ionizadas mediante un campo eléctrico w Separación de los iones moleculares en la región de libre vuelo w Detección de llegada de moléculas ionizadas Fig. 1.1 Esquema básico del funcionamiento de un espectrómetro de masas Debido a que el tiempo que se demoran cada molécula es característico de su masa, esta magnitud se obtiene al final con alta precisión. Las muestras que se analizan son generalmente finas películas cristalinas depositadas en una placa metálica. Una vez que se tiene la muestra., se usa un pulso láser para vaporizarla. AJ incidir el láser sobre la muestra, se produce una nube gaseosa como se muestra en la figura 1,2, en la que se encuentran las moléculas de interés^ las mismas que se ionizan al interactuar con otras partículas en la nube. Estos iones moleculares se analizan luego en etapas posteriores del espectrómetro. Muestra Fig. 1.2 Vaporización de la muestra mediante un pulso láser Fredd}' R. Pérez J. CAPITULO I La masa molecular de una substancia, como por ejemplo un producto farmacéutico, una proteína o enzima, es una característica física importante, pues está íntimamente relacionada con la estructura química de la misma. Las técnicas espectrométricas permiten determinar la masa molecular de las substancias con alta precisión y sensibilidad. Entre algunas de las aplicaciones de la espectrometría de masas se encuentran: control de calidad, análisis de contaminantes, análisis de contenido proteico, determinación precisa de la masa o de las distribuciones de masas, análisis de polímeros, etc. Los parámetros a controlar para la generación de iones moleculares en el espectrómetro de masas MALDI son: la frecuencia con la que el rayo láser incide en la muestra (para poder realizar mediciones cada cierto tiempo), la intensidad con la que llega el láser a la muestra (para controlar la cantidad de energía que se entrega) y el punto de colisión o impacto (por motivos de agotamiento de la muestra). En el Laboratorio de Espectrometría de masas MALDI del Departamento de Física de la E.P.N. se cuenta con un espectrómetro de masas MALDI; En este instrumento actualmente el control de la frecuencia, intensidad, y punto de impacto del pulso láser se hace en forma manual y poco precisa. El control sistemático adecuado de estos parámetros mediante un instrumento electrónico de control con posibilidad de manipulación remota es una adición importante, establece un control fino de la energía entregada a la muestra que a su vez Freddy R. Pérez J. 3 CAPITULO I permite manipular adecuadamente los procesos físico-químicos que dan lugar a la ionización de las moléculas. Además, da facilidades al usuario para generar secuencias automatizadas de generación de espectros de masas a través del computador o del teclado incluido. Estos espectros de masas se pueden obtener, consecuentemente, bajo condiciones experimentales replicables de forma sistemática. Por lo expuesto, se puede ver la importancia de lograr una correcta vaporización de la muestra, además de tener la posibilidad de manejar al sistema tanto desde un teclado externo como desde el computador. Aspectos que se deben satisfacer mediante el diseño y construcción del sistema. Freddy R. Pérez I CAPITULO n CAPITULO n REQUERIMIENTOS PARA EL DISEÑO De lo expresado en el capítulo anterior., el sistema de control debe permitir manipular: frecuencia de disparo, intensidad y punto de impacto. En este capítulo se presentan los requerimientos, limitaciones, principios de funcionamiento y una descripción general de la solución para cada uno de los controles ya mencionados. 2.1 CONTROL DE FRECUENCIA DE DISPARO El objetivo de este control es implementar un sistema para escoger una frecuencia de disparo, cuyo rango se encuentra determinado principalmente por la capacidad del láser para poder emitir trenes de pulsos sucesivos, este rango es de O Hz a 20Hz, Por otro lado, a menudo el usuario necesita adquirir espectros mediante disparos discretos del láser, esto es, no en una secuencia repetitiva fija, si no determinar manualmente el tiempo que se desee transcurra antes del siguiente disparo; esto se puede realizar tanto desde un teclado externo como desde un computador. Freddy R. Pérez J. 5 CAPITULO U 2.1.1 PRINCIPIO BE FUNCIONAMIENTO El láser VSL-337 de Láser Science, Inc. emite pulsos de 3ns de luz ultravioleta de 337nm de longitud de onda con 2mw de potencia promedio. El pulso láser tiene una forma rectangular de 3x8mm. Internamente se puede generar una frecuencia de disparo en el rango de OHz a 20Hz. Además, el láser tiene la capacidad de dispararse mediante una señal de disparo externa. El circuito de control de frecuencia usará la facilidad disparo externo., para lo que es necesario generar la señal de disparo en dos modalidades: i) en el rango anteriormente mencionado, para secuencias automáticas, ii) pulso por pulso con completo control manual. 2.1.2 PARTES CONSTITUTIVAS Las partes constitutivas del control de frecuencia son: a) Ingreso del dato de frecuencia, b) generación de la frecuencia de disparo y c) circuito de disparo externo del láser; las cuales se muestran en la figura 2.1 Freddy R. Pérez J. CAPITULO H Fíg. 2.1 Esquema de disparo externo del láser: a) Ingreso del dato de frecuencia, b) generación de la frecuencia de disparo y c) circuito de disparo externo del láser 2.1.2.a Ingreso del dato de frecuencia de disparo. Para la elección de la frecuencia existen dos posibilidades que son: desde un teclado externo y desde el computador. • Datos introducidos desde un teclado externo Esta opción permite introducir los datos para controlar el disparo del láser en las dos modalidades mencionadas, seleccionando en el teclado la tecla de generación de frecuencia o la tecla de generación de un solo pulso respectivamente. Para el caso de una secuencia de disparo automática, el teclado numérico está activo para introducir un valor de frecuencia de disparo comprendido entre OHz y 20Hz, en pasos de O.lHz. Para el caso de generación de un solo pulso, existe una tecla que al ser presionada desactiva el teclado numérico e inmediatamente envía la señal correspondiente. Freddy R. Pérez J. 7 CAPITULO U • Datos introducidos desde el computador. Se ha provisto las mismas opciones desplegadas en la pantalla del computador. En este caso, se presenta una pantalla simultáneamente y permite tener una idea del estado global del sistema., con un enfoque gráfico 2.1.2.b Generación de la frecuencia de disparo. Para la generación de la frecuencia de disparo se ha optado por la opción de un microcontrolador, al cual se ingresan los datos de frecuencia a generar, este a su vez se encarga de producir dicha frecuencia y enviarla a una de sus salidas TTL. 2.1.l.c Circuito de disparo externo del láser. Este circuito requiere para su operación que el láser esté encendido (a través de la llave correspondiente), que todos los switchs de seguridad estén desactivados y que se active el modo de disparo externo La señal TTL externa de disparo producida por el sistema de control se introduce por esta entrada de disparo externo (conector BNC) del láser. Freddy R. Pérez J. CAPITULO U 2.2 CONTROL DE INTENSIDAD Debido a que el láser disponible es de intensidad fija y se necesita controlar la intensidad del rayo láser de nitrógeno para posibilitar cambiar la cantidad de energía que se entrega a la muestra, se ha colocado un filtro de densidad variable, el que permite que el rayo láser se transmita en mayor o menor intensidad. 2.2.1 PRDSTCrPIO DE FUNCIONAMIENTO El principio de funcionamiento del control de intensidad por rotación consiste en interponer en el camino del rayo láser un filtro de densidad variable. El láser incide sobre el extremo de una rueda circular, en la que la intensidad transmitida depende de la posición angular del punto de incidencia del láser sobre la rueda. La intensidad máxima transmitida es de 98% de la intensidad natural del láser y la intensidad mínima es de aproximadamente 1% 2.2.2 PARTES CONSTITUTIVAS Las partes constitutivas del control de intensidad son: a) Ingreso del dato de intensidad, b) controlador de posición del motor de pasos, c) motor de pasos, d) acoplamiento mecánico entre el filtro de densidad y el motor, e) filtro de densidad y f) sensor de posición referencial; las cuales se muestran en la figura 2.2. Freddy R. Pérez J. CAPITULO U Fig. 2.2 Esquema de control de intensidad a) Ingreso del dato de intensidad, b) controlador de posición del motor de pasos, c) motor de pasos, d) acoplamiento mecánico entre el filtro de densidad y el motor, e) filtro de densidad y f) sensor de posición referencial. 2.2.2.a Ingreso del dato de intensidad. Al igual que para la elección de la frecuencia, el dato de intensidad se ingresa desde un teclado externo o desde el computador. Para este caso el rango de intensidad se encuentra entre O y 200 pasos, en incrementos de 1 paso. El paso O y el 200 corresponden a la intensidad máxima y el paso 199 corresponde a la intensidad mínima. 2.2.2.b Controlador de posición del motor de pasos. Para el control de posición del motor de pasos, que se encarga a su vez de variar la posición del filtro de densidad se usa un mícrocontrolador, en el cual se introducen el dato de intensidad que comanda la generación de las señales de control para el motor de Freddy R. Pérez J. 10 CAPITULO U pasos. Un sistema secundario LED-FOTOTRANSISTOR permite definir la posición de referencia. El sistema busca esta posición cada vez que se enciende o cuando se hace un reset. 2.2.2.C Motor de pasos. Para controlar la posición de incidencia del rayo láser sobre el lente se ha escogido un motor de pasos unipolar pequeño (200 pasos o 1.8 grados por paso) indicado en la figura 2.3. Se escoge esta configuración porque: debido a que como el filtro tiene un radio de 3.7cm, su perímetro es de 27ir o 232.47mm, por lo que cada paso produce un desplazamiento de 1.16mm en la periferia. Fig. 2.3 Motor unipolar de 200 pasos. 2.2.2.d Acoplamiento mecánico entre el filtro de densidad variable y el motor. Para realizar el acoplamiento entre el filtro de densidad variable y el motor de pasos se ha colocado engranajes a las dos partes como se indica en la figura 2.4, para lograr que *t un movimiento del motor produzca un movimiento del filtro. La relación entre los FreddyR. Pérez J. CAPITULO U engranajes del motor y el filtro es de 1. Por lo que cuando el motor se mueve n pasos, el filtro de densidad también se mueva n pasos. Además los planos respectivos se encuentran en el Anexo 1 Fig. 2.4 Acoplamiento mecánico entre el filtro de densidad y el motor. 2.2.2.e Filtro de densidad. El elemento que permite variar la intensidad del rayo láser que incide sobre la muestra, es el filtro de densidad mostrado en la figura. 2.5, El filtro tiene forma circular y su superficie tiene un revestimiento cuyas propiedades de transmisión en la longitud de _£ onda del láser varían con el ángulo, dependiendo con la relación ^ = ^010 *" (de acuerdo con el fabricante) donde O es la posición angular del punto de incidencia del láser sobre el filtro. El láser incide hacia la periferia del filtro para evitar que su área se esparza sobre regiones de muy diferente densidad. Freddy R. Pérez J, 12 CAPITULO U Fig. 2.5 Filtro de densidad variable de la casaRaynord Enterprises, Inc). 2.2.2.f Sensor de posición referencial. El movimiento del motor a la posición referencial siempre se lo realiza cuando el sistema se enciende, además existe la posibilidad de hacerlo nuevamente cuando esto se requiera. Este sensor formado por un LED transmisor y un fototransistor mostrado en la figura 2.6, se activa cuando se interpone un objeto entre estos elementos. Cabe señalar que debido a que el sensor tiene una región de sensibilidad, el movimiento del motor a la posición referencial se lo debe realizar siempre siguiendo un mismo sentido de giro, para de esta manera encontrar dicha posición siempre por el mismo extremo sensible del sensor. Fig. 2.6 Sensor de posición referencial. Freddy R. Pérez J. 13 CAPITULO U 2.3 CONTROL DE PUNTO DE IMPACTO O PUNTO DE COLISIÓN Si el láser incide siempre en el mismo punto de la muestra, esta se agota, por lo que es necesario variar el punto de impacto o punto de colisión para de esta manera tener una región donde la muestra no se ha agotado. 2.3.1 PRINCIPIO DE FUNCIONAMIENTO El control del punto de impacto o punto de colisión utiliza un sistema telescópico formado por dos lentes convergentes. Una de estas se encuentra ligeramente descentrada con respecto aleje del telescopio para provocar que la dirección del haz de salida este ligeramente descentrada. Se produce un desplazamiento del punto final de impacto sobre una trayectoria aproximadamente circular. 2.3.2 PARTES CONSTITUTIVAS Las partes constitutivas del control del punto de impacto o punto de colisión son: a) Ingreso del punto de colisión, b) controlador de posición del motor de pasos, c) motor de pasos, d) acoplamiento mecánico entre el telescopio y el motor, e) telescopio y f) sensor de posición referencial; las cuales están muestran en la figura 2.7 Freddy R. Pérez J. 14 CAPITULO U Fig. 2.7 Esquema de control de intensidad: a) Ingreso del punto de colisión, b) controlador de posición del motor de pasos, c) motor de pasos, d) acoplamiento mecánico entre el telescopio y el motor, e) telescopio y f) sensor de posición referencial. 2.3.2.a Ingreso del dato del punto de colisión. Al igual que para la elección de la frecuencia e intensidad, el dato del punto de colisión se ingresa desde un teclado externo o desde el computador. En este caso el rango del punto de colisión se encuentra entre O y 200 pasos, en incrementos de 1 paso. 2.3.2.b Controlador de posición del motor de pasos. El control de la posición del motor de pasos lo realiza un microcontrolador, el cual toma los datos de punto de colisión y se encarga de producir las señales de control para el motor; además, genera la posición referencial cada vez que el sistema se encienda o se produzca un reset Freddy R. Pérez J, 15 CAPITULO tt 2.3.2.cMotor de pasos. Al igual que para el control de intensidad para controlar la posición del lente descentrado se ha escogido un motor de pasos unipolar pequeño (200 pasos o 1.8 grados por paso) mostrado en la figura 2.33 debido a que 200 pasos es suficiente variación en un circulo pequeño de variación sin hacer ningún cambio en la relación mecánica de los engranajes. 2.3.2.d Acoplamiento mecánico entre el telescópico y el motor. Para realizar el acoplamiento entre el sistema de lentes y el motor de pasos también se ha colocado engranajes a las dos partes, con los mismos fines y la misma relación que el caso del control de intensidad. 2.3.2.e Telescopio El esquema mecánico del telescopio se lo puede observar en la figura 2.8. La lente móvil se encuentra sujeta dentro de la parte del telescopio sobre la que se han labrado las indentaciones del engranaje. Los planos respectivos se encuentran en el Anexo 1. Pig. 2.8 Esquema mecánico del telescópico. Freddy R. Pérez J. 16 2.3.2.f Sensor de posición referencial. El sensor de encerado es del mismo tipo del sensor mencionado. en el control de intensidaxL, .permite el encerado del motor cuando el sistema enciende., o cuando se produzca un reset. Freddy R. Pérez I 17 CAPITULO rn CAPITULO III DISEÑO DEL HAJRDWARE DEL EQUIPO En este capítulo se va ha diseñar el hardware del equipo, elegir el microcontrolador a utilizarse y diseñar los circuitos electrónicos, circuitos impresos, caja, entre otros. Para ello se va tomar en cuenta los requerimientos mencionados en el capítulo anterior. 3.1 REQUERIMIENTOS DEL EQUIPO. El diseño del equipo se ha desarrollado de acuerdo a los siguientes requerimientos: a) Permitir ingresar desde un teclado externo los siguientes datos: • Frecuencia en el rango de OHz a 20Hz con incrementos de O.LHz. • El dato que permita generar un solo pulso. • Intensidad en el rango de O a 200 pasos con incrementos de un paso. • Punto de impacto o punto de colisión en el rango de O a 200 pasos con incrementos de un paso. b) Permitir ingresar desde un computador los datos mencionados en el literal anterior con los mismos rangos e incrementos. Freddy R. Pérez I 18 CAPITULO m c) Tener un indicador en el equipo que nos permita visualizar los datos ingresados. d) Generar una frecuencia de disparo de acuerdo a los datos ingresados. e) Producir un solo disparo del láser si se desea generar pulsos discretos. f) Controlar la posición de un motor de pasos que se encargará de variar la intensidad, g) Controlar la posición de otro motor de pasos que se encargará de variar el punto de impacto o punto de colisión. h) Permitir determinar la posición referencial de los motores es decir. i) Dar la posibilidad de producir un reseteo del sistema para fijar nuevamente las condiciones iniciales. 3.2 SELECCIÓN DEL MICROCONTROLADOR. El sistema se va a diseñar utilizando microcontroladores debido a que estos presentan muchas ventajas., entre las cuales podemos mencionar algunas: pequeño tamaño, fácil programación, bajo consumo de energía, alta capacidad de adaptación, permite modificaciones del funcionamiento del sistema sin necesidad de cambios en el hardware, entre otras. En el mercado podemos encontrar gran cantidad de microcontroladores de diversas marcas y características, es por ello que es importante escoger un microcontrolador adecuado. Freddy R. Pérez J. 19 CAPITULO m Se ha escogido el microcontrolador PIC16F84 de la empresa MICROCHEP. En la figura 3.1 se presenta la distribución de pines de este. PDIP, SOIC .1 RA3 • Vss RBCWJ7 • R31 • RB2 • RB3- ^ 18 17 2 3 ~Q T3 4 O 0 5 6 7 8 0 16 15 Oí O O ~n U 3 5 13 oo ^^ 12 X 11 10 -RAÍ -RAO -OSCUCLKIN -Veo •JRB7 -RB5 -RES -RB4 Fig. 3.1 Microcontrolador PIC16F84. Entre las características principales por las que fue elegido se encuentran las siguientes: • Pequeño tamaño 18 pines. (DIP18) • CPU RISC de 8 bits. • 1 Kbyte de memoria de Programa. • Memoria de programa tipo FLASH. • Set de instrucciones reducido. • 68 bytes de memoria RAM. • 13 pines que se pueden configurar como entrada o salida. • Alta corriente de manejo para cada pin de salida. • Reloj de lOMHz max. • Cuatro fuentes de interrupción. I. Interrupción externa. E. Desbordamiento del Timer. HI. Cambio de estado en los pines RB4 a RB7. Freddy R. Pérez J. 20 CAPITULO m IV. Culminación de escritura en la memoria EEPROM. • 1000 ciclos de lectura/escritura de la memoria FLASH. • Manejo individual de todos sus pines de entrada/salida. • WDT • Facilidad de programación. » Herramientas de diseño gratuitas disponibles en el INTERNET. • Amplia literatura disponible gratuitamente. • Fácil construcción del programador con diagramas disponibles en INTERNET • Afinidad con el micrócontrolador. (Watchdog Timer). Un resumen de las principales características y set de instrucciones se encuentra en el Anexo 2. Freddy R. Pérez J. 21 CAPITULO ni 3.3 ASIGNACIÓN DE TAREAS A LOS MICROCONTROLADORES. Para este propósito se han utilizado dos microcontroladores PIC16F84, a los cuales se les ha asignado diferentes tareas distribuidas como indican las tablas 3.1 y 3.2 respectivamente: "MicrocontroladórWCl6F84°#l ATAREA . 1 Barrido-de FINES UTILIZADOS 4sdisplays" f~ RAO.RA1 'Manejo de datos páralos clispláys* jo delTecla'do jy • - I Recepción seriaTRS23 2 KBO?KB1,KB2,RB3,KB43RB5:,RB6?RB7 RA4 • Transmisióarserial HS232 ¿•Transmisión^ seriaU" nnicrocdhírolador. - el" - otro RA3 /„ - ^Total de pides utilizados 13 Tabla 3.1 Tareas realizadas por el primer microcontrolador PIC16F84 PINES UTILIZADOS ETAREA " :Recepcipn serial- Fredd>r R. Pérez I 22 CAPITULO Itt ^Manejo del-primer motor de pas~bs- ™ .1 Entrada RAO,RA1?RA2?RA3 de señal del sensor d exposición RA4 .referencial del primer:motór-áe pasos -™ ~ ^Manejo del segundo mótor~d|.pasos-s- —-^ 'Entrada de" señal "cteL sensor de~~posicióií KB1 .referencia! del segundo motor de pasos j1 Pin debatida de frecuencia" RB3 - Total Ue pines utflizádüs—. I " 7 - • 12 Tabla 3.2 Tareas realizadas por el segundo microcontrolador PIC16F84 3.4 DISEÑO DEL EQUIPO REMOTO 3.4.1 BARRIDO DE LOS 4 DISPLAYS. Para el manejo de los displays de cátodo común se ha escogido la técnica de barrido, que consiste en activar uno de los displays y mandar la información de los segmentos que deseamos se encuentren encendidos o apagados para ese display en específico. Luego desactivamos a este display y activamos al siguiente con la información adecuada de los segmentos encendidos o apagados para este display. Continuamos de esta manera hasta completar todos los displays para luego regresar nuevamente al primero y continuar con el barrido. Todo este procedimiento se lo hace cada cierto tiempo, si el tiempo que transcurre desde que el display se apaga hasta que se vuelve a encender es demasiado largo, produce que Freddy R. Pérez J. 23 CAPITULO m podamos distinguir el apagado y encendido de los displays, efecto que sería molestoso, debido a esto, el tiempo entre el encendido y apagado de un display está determinado por la capacidad del hombre para distinguir este efecto, se considera que 20ms o una frecuencia de 50 ciclos es adecuado para eliminar este efecto. El microcontrolador nos entrega la información de cual debe ser el display que se debe activar. Se podría hacer el barrido de los cuatro displays utilizando un pin del microcontrolador para cada display, lo que implica utilizar 4 salidas. Para disminuir el número de pines utilizados, además tomando en cuenta que se activa un solo display a la vez, se ha colocado un demultiplexer, con lo que se ahorra 2 pines de salida del microcontrolador #1. El circuito que permite el barrido de los 4 displays se ilustra en la figura 3.2. FUNCIÓN S-5- 4 e-f F G A B VSS 14 CENTENAS 3 UNIDADES nr1* VSS E D PTO 9 c 2N3904 RAO DESDE EL MICROCONTROLADOR 1 Fig. 3.2 Circuito para el barrido de los displays. Freddy R. Pérez J. 24 CAPITULO m 3.4.2 MANEJO DE DATOS PARA LOS DISPLAYS. Para manejar los datos de los displays se ha utilizado todo el PORTB del microcontrolador #1, debido a que este es capaz de suministrar la corriente necesaria para encender a los segmentos del display, además debemos considerar que por utilizarse la técnica de barrido, los segmentos de los displays se encuentran unidos. El circuito que permite el manejo de los datos para los 4 displays se ilustra en la figura RBC R81 RB2 RK RB€ RB7 1 2 3 4 5 6_ 16 15 14 13 12 DESDE EL MI CROCONT ROZADOR 1 11 ^/S/V 10 ^^s/V _ H FUNCIÓN R-PAGK 330 1 2 4 6 7 F G A 8 VSS 14 13 12 VSS E D PÍO C 9 8 CENTENAS 1 2 4 6 7 F G A B VSS 14 13 12 VSS E D PTO C 9 8 DECENAS 1 2 4 6 7 F G A B VSS 14 13 12 VSS E D PTO C 9 8 UNIDADES 1 2 4 6 7 F G A B VSS 14 13 12 VSS E D PTO C 9 8 Fig. 3.3 Circuito para el manejo de datos de los displays. Freddy R. Pérez J. 25 CAPITULO m 3.4.3 MANEJO DEL TECLADO Se ha utilizado una matriz de teclado de 4x4, con el fin de tener un teclado numérico y además poder escoger las opciones de pulso, frecuencia., intensidad y punto de impacto o colisión. Se colocan resistencias en cada columna del teclado y además se colocan resistencias de pull-up en las entradas del microcontrolador (estas resistencias se colocan internamente mediante software), con el fin de detectar un nivel bajo en la tecla presionada cuando se ha colocado un nivel bajo en cada columna. Para este fin se ha utilizado todo el PORTB del microcontrolador #1? los cuatro bits menos significativos para las columnas,, y los cuatro más significativos para las filas. El circuito que permite el barrido del teclado 4x4 se ilustra en la figura 3.4. 330 RBO ^A 2.Íík "•X/SX*- 33Q 2.;!k 330 2.:>k 330 2.;!k RB1 RB2 RB3 330 RB4 — 330 RB5 330 RB6 330 RB7 c •, tir) C>) _c j JN TTn I . c.3 N -jU4 3n i 2 3 4 5 6 FREO. 7 B 9 3 0 • ENTER INTENS. C5 PULSO THCLADO 4X4 Fig. 3,4 Circuito para el manejo del teclado 4x4. Freddy R. Pérez J. 26 CAPITULO Ttt 3.4.4 RECEPCIÓN Y TRANSMISIÓN SERIAL Para la comunicación entre un dispositivo externo y el equipo se ha optado por comunicación serial asincrónica., Los niveles de voltaje y la lógica que se maneja en la comunicación serial son diferentes a los que maneja el microcontrolador, por esto se hace necesario la transformación de niveles de voltaje y lógica, de RS-232 a niveles TTL. De esta conversión se encarga un MAX232, que realiza tanto la conversión de niveles de voltaje como de la lógica. La salida TTL del MAX232 se la introduce por el pin RA4 que se lo puede utilizar como recepción serial. En la transmisión serial de igual manera que para la recepción se utiliza el MAX232 por las razones ya mencionadas. El pin del microcontrolador utilizado para este efecto es el RA2. A continuación se ilustra en la figura 3.5 el circuito para transmisión Y recepción serial RS232, los valores de los elementos del circuito se basan en las recomendaciones del fabricante de MAX232 (Anexo 3). + 10UF Fig. 3.5 Circuito para la transmisión y recepción serial RS-232. Freddy R. Pérez J. 27 CAPITULO TU 3.4.5 CONSTRUCCIÓN DEL CABLE PARA CONECTAR EL EQUIPO Al COMPUTADOR. El computador que se va ha conectar con el equipo es una POWER MACINTOSH., que en realidad posee una comunicación serial mediante RS-422, se lo puede utilizar también como RS-232, realizando unas conexiones especiales para este fin. La diferencia principal entre RS-232 y RS-422 es que el primero tiene una transmisión desbalanceada mientras que el segundo la tiene balanceada, esto implica que para el segundo caso se necesite 2 líneas de transmisión y 2 de recepción. En la tabla 3.3 se presenta la descripción y función de los pines del conector Macintosh RS-422, así como las interconexiones necesarias para conectar a un RS-232. Macintosh RS^Í22 ' - ' ' * * . . ~ ' " 7 T 7 - ~ pi's ppssible to connectXS-232perí|>heral to the.jEÍS-422 port ayaíiabie onlvfacíntosh computers, TJs&KXD- asJRXD, Ü ;as TXD, GroundiRXD-h Leave TXDf uricoimected, GPí as CI¿ "> - _r= ;„ ~" • 5 ( o «*J 3 2- 1 (Atthe cómputer) ( 8PINMimÍIl>rEE3iáALBafcthe computen '* ^ ^ Pin líame j Dir " (.-1 HSKo - ^-H^¡OutputHandshak/ 2~ 3" HSKi/GLK:|-4-- ¡IbpufHandshake orlExternal Clock DCD- £ * |—H »-|Tr^nsmitDatal-i '/ GÑD - ''j —- Groünd ¡5 RXD- "- j-*^- \ \L TXD+ 8 RXCH-^ GPÍ- fReccive Data (-) —'^ TransmítÍData (4) '(-^rLJGeneralPurpose'Input —— -[Réceive- Data~(+) - J 1 ~ jDescríption "' " j J í j ~i ~ j t "1 Tabla 3.3 Descripción de y función de los pines del conector Macintosh RS-422 Freddy R. Pérez J. 28 CAPITULO m Por lo tanto las interconexiones entre el DB9 macho y el minidin9 quedan como se indica en la figura 3.6. p2 CONNECIOR MINIDirf 8 Fig. 3.6 Interconexiones del cable serial. 3.4.6 TRANSMISIÓN DE BATOS ENTRE LOS DOS MICROCONTROLADORES. Se usan dos microcontroladores dedicados a tareas específicas y es necesario la transmisión de información entre los dos. Para comunicar los dos microcontroladores se ha escogido también la transmisión y recepción serial asincrónica, con la diferencia que tanto la lógica como los niveles de voltaje entre los microcontroladores son totalmente compatibles. Freddy R. Pérez J. 29 CAPITULO IH 3.4.7 MANEJO DE LOS MOTORES DE PASOS. Para poder diseñar el sistema que controla la posición del motor de pasos, primero se tiene que entender su principio de funcionamiento, por lo que a continuación se da una explicación sobre este tipo de motores. • MOTORES PASO A PASO Los motores paso a paso o de pasos, son un tipo especial de motores de DC, que permiten construir sistemas simples de control de movimiento o de posición. Sus aplicaciones son muy diversas, entre algunas de ellas se encuentran: manejo de cabezas de discos duros, manejo de cabezas de discos flexibles, movimiento de robots, mecanismos de avance del papel y la posición de cabezas de impresoras, cabezas lectoras de scaners, etc. La naturaleza digital de este motor facilita el control de la posición angular del eje. Este control se reduce a contar el número de pasos o ángulos que avanza, siendo este sistema más simple que el de los servomecanismos, en los que se debe detectar, en cada momento, la posición del eje del motor, lo que implica circuitos y software adicionales. Principalmente existen dos clases de motores de pasos, el motor de pasos bipolar, y el unipolar, la diferencia entre ellos, es que el primero solamente tiene dos bobinas, por lo tanto necesita que se polarice positiva y negativamente a estas; el segundo tiene cuatro bobinas y para este tipo de motores no es necesario polarizar negativamente a las Freddy R. Pérez J. 30 CAPITULO m bobinas, por lo tanto no es necesario trabajar con dos fuentes o implementar un hardware más complicado para lograr la inversión de polaridad. El tipo de motor de pasos que se va a utilizar en nuestro equipo es un motor de pasosunipolar pequeño, este nos proporciona 200 pasos por revolución, lo que significa 1.8 grados por paso. Este motor consta de cuatro bobinas, por ello es necesario tener un circuito de potencia que sea capaz de manejar la corriente necesaria para polarizar las bobinas, el microcontrolador nos entregará la corriente suficiente para activar a los transistores o el driver del circuito de potencia. A continuación se muestra en la figura 3.7 el circuito de potencia para el motor de pasos. IN1 n ti-l "-} RA2L__^ C-H 3 1 4 B 5_ r 6 r 7 ^^ IN2 OUT2 IN3 OUT3 1N4 OUT4 IN5 OUT5 IN6 OUT6 IN7 8_ OUT1 OUT7 VSS VDD 12 16 I . V VDD 12 I I I I UU 15 \( A _jLJ 11 n MOIOKÜIbH'fcR n 10 ^ 9 VDD 12 9 2003 Ro-S S IN1 4 cn.j C E r^ 5 6_ 7 8_ ^-^ OUT1 IN2 OUT2 IN3 OUT3 IN4 OUT4 IN5 OUT5 IN6 ¡N7 VSS OUT6 OUT7 VDD 12 16 I ^_a _JW « MOTOR STEP >ER n J 9 <? VDD 12 I LU v ^ 11 -, 10 . II 15 VDD 12 9 2003 Fig. 3.7 Circuito de potencia de los motores de pasos. Como se puede ver en el circuito debido a que la corriente que necesita cada bobina no es tan alta (aproximadamente 200mA, este dato se lo obtuvo experimentalmente Freddy R. Pérez J. CAPITULO m midiendo la corriente que circula por cada bobina), es suficiente el driver ULN2003, que puede manejar hasta una corriente de 500mA por bobina. 3.4.8 POSICIÓN DE REFERENCIA DE LOS MOTORES. Para que el sistema siempre tenga una misma referencia inicial, es necesario proporcionar un circuito que permita identificar cual es la posición inicial de referencia de los motores. Para detectar esta posición de referencia se ha colocado un diodo transmisor y transistor receptor de luz infrarroja. El funcionamiento de este circuito consiste en que si tenemos una incidencia normal de luz en el receptor, este nos proporciona un estado lógico bajo, pero si la incidencia de luz desaparece, es decir objeto puede interponerse entre el transmisor y el receptor, el estado lógico del circuito se pone en alto. Estos niveles lógicos de voltaje son ingresados al microcontrolador para su procesamiento. El circuito de encerado se indica a continuación en la figura 3.8. r Fig. 3.8 Circuito de encerado de los motores de pasos. Freddy R. Pérez J. 32 CAPITULO m 3.4.9 DISPARO DEL RAYO LÁSER USANDO EL PIN DE SALIDA DEL MICROCONTROLADOR Por el pin RB3 del microcontrolador #2 sale la señal de disparo para ingresar al circuito de disparo externo del láser. Este disparador puede funcionar con señales TTL y consume poca corriente por lo que se ha conectado directamente a la salida del microcontrolador mediante una resistencia de protección de sobrecorriente. 3.4.10 CIRCUITO COMPLETO DEL EQUIPO. En la figura 3.9 se encuentra el circuito completo de todo el equipo, en el cual se combina todo lo mencionado anteriormente. Fig. 3.9 Circuito completo del equipo. En el Anexo 4 se indica el diagrama completo del circuito en un formato A4. Freddy R. Pérez J. 33 CAPITULO xa 3.4.11 PLACAS DE CIRCUITO IMPRESO BEL EQUIPO. Para el equipo se han diseñado 3 placas de circuito impreso que son las siguientes: a) Placa del circuito de control b) Placa de los displays c) Placa de conectores al exterior. Cada una de estas placas se indican en la figura 3.10 respectivamente. TARJETA DE DISPLAYS TARJETA DE CONECTORES AL EXTERIOR (ABAJO) TARJETA DE CONECTORES AL EXTERIOR (ARRIBA) JP2 JP2 JP10 D: Fig. 3.10 Placas de circuito impreso Freddy R. Pérez J. 34 o D: O D: o CAPITULO m TARJETA DEL CIRCUITO DE CONTROL (ARRIBA) TARJETA DEL CIRCUITO DE CONTROL (ABAJO) Fig. 3.10 Placas de circuito impreso (continuación) Freddy R. Pérez J. 35 CAPITULO m 3.4.12 CAJA DEL EQUIPO. En la figura 3.11 se indica la caja del equipo. Fig. 3.11 Caja del equipo Freddy R. Pérez J. CAPITULO IV CAPITULO IV DISEÑO DEL SOFTWARE DEL EQUIPO 4.1 DISEÑO DEL SOFTWARE DEL EQUIPO REMOTO El diseño del software del equipo se ha desarrollado de acuerdo a los requerimientos ya mencionados y especificaciones en los capítulos anteriores. Además se ha tomado en cuenta que por ser un sistema microprocesado se debe tratar de que el microcontrolador se encargue de la mayor parte del trabajo, consiguiendo con esto disminuir el hardware necesario, por lo que se ha colocada el mayor trabajo a los microcontroladores. Por otro lado cabe señalar que los microcontroladores están trabajando con un cristal de 4MÜZ, con lo que se tiene un ciclo de máquina de 1 us. 4.1.1 BARRIDO DE LOS 4 DISPLAYS. En el capítulo anterior ya se explico como se debe hacer el barrido de los displays por lo que en este capítulo se indicará el diagrama de flujo que permite realizar este trabajo. El tiempo transcurrido desde que un display se apaga hasta que se vuelve a encender que Freddy R. Pérez J. 37 CAPITULO IV ii es de 20ms es proporcionado en el programa principal del microcontrolador #15 por lo que en el diagrama de flujo no se lo incluye. En la figura 4.1 se indica el diagrama de flujo resumido del barrido de displays. LEER Y ESCRIBIR ,—UNIDADES>i EN EL PUERTO DATO DE UNIDADES CUAL ES ELX. niqpl AY A A DECENAS-^ EL PUERTO , | ENDATODE DISPLAY DECENAS CENTENAS- LEER Y ESCRIBIR EN EL PUERTO DATO DE CENTENAS LEER Y ESCRIBIR EN EL PUERTO . DATO DE FUNCIÓN ACTIVAR DISPLAY DE UNIDADES DISPLAY A ACTUALIZAR = DECENAS ACTIVAR DISPLAY DE DECENAS DISPLAY A ACTUALIZARA CENTENAS ACTIVAR DISPLAY DE CENTENAS DISPLAY A ACTUALIZAR = FUNCIÓN ACTIVAR DISPLAYDE FUNCIÓN DISPLAY A ACTUALIZAR UNIDADES PONER BANDERA PARA I REVISAR I TECLADO RETORNO Fig. 4.1 Diagrama de flujo resumido del barrido de displays. 4.1.2 MANEJO DEL TECLADO El software para el manejo; del teclado se resume en el siguiente diagrama de flujo. Esta parte del programa permite identificar si se ha presionado una tecla nueva, coloca en un registro el valor correspondiente a la tecla presionada y habilita una bandera de tecla presionada. ¡ Freddy R. Pérez J. ; 38 CAPITULO IV El tiempo necesario se lo iproporciona en el programa principal ya que se hace una revisión del teclado cada vez que se va a actualizar el display del dígito de las unidades. En la figura 4.2 se indica e! diagrama de flujo resumido del manejo de teclado. CONFIGURACIÓN DE PUERTOS PARA MANEJO DE , TECLADO COLUMNAA BARRER=1 IDENTIFICACIÓN I J DAR RETARDO IDENTIFICACIÓN DE TECLA | | DE TECLA DE FILA Y r"*" COLUMNA ! PRESIONANDA I I PRESIONADA = SI INCREMENTAR COLUMNA CONFIGURACIÓN DE PUERTOS PARA MANEJO DE DISPLAY V / Fig. 4.2 Diagrama de flujo resumido del manejo de teclado. Freddy R. Pérez J. CAPITULO IV 4.1.3 RECEPCIÓN SERIAL Como el microcontrolador utilizado no tiene incluida comunicación serial se ha desarrollado tanto la rutina de recepción como transmisión serial, tomando en cuenta los i siguientes aspectos: 1200: baudios de velocidad, 1 bit de inicio, 8 bits de datos, sin bit i paridad y 1 bit de parada. En la figura 4.3 se indica el diagrama de flujo resumido de la recepción serial. Fig. 4.3 Diagrama de flujo resumido de la recepción serial. FreddyR. Pérez J. ! 40 CAPITULO IV 4.1.4 TRANSMISIÓN SERIAL. Para el caso de transmisión serial también se desarrolló una rutina tomando en cuenta lo ¡ mencionado en el punto! anterior. Esta rutina permite transmitir datos tanto al computador como al micrpcontrolador 2 simplemente con la presencia de una bandera que nos indica si se debe transmitir datos al computador. En la figura 4.4 se indica el diagrama de flujo resumido de la transmisión serial. LLAMAR RUTINA PARA PONER LOS BITS DE TRANSMISIÓN EN ALTO ! LLAMAR RUTINA PARA PONER LOS BÍTSDE TRANSMISIÓN EN BAJO ! O LLAMAR RUTINA PARA PONER LOS BÍTSDE TRANSMISIÓN EN ALTO LLAMAR RUTINA I PARA PONER LOS (UMK»muuc ..^-. BÍTSDE \TANSMISICW / | TRANSMISIÓN EN BAJO Fig. 4.4 Diagrama de flujo resumido de la transmisión serial. Freddy R. Pérez J. i 41 CAPITULO IV Continuación PONER EL BIT DE )3>¡ TRANSM3ONAL COMPUATDOREN BAJO PONER a BIT DE -»J TRANSM9ONAL SEGUNDO MICRO EN BAJO _I Fig. 4.4 Diagrama de flujo resumido de la transmisión serial (continuación). 4.1.5 MANEJO DE LOS MOTORES DE PASOS. En el capítulo anterior ya se explico un poco del hardware necesario para los motores de pasos, ahora se va a indicar la parte concerniente al software para manejar estos motores. Existen algunas maneras de manejar el movimiento de los motores de pasos, entre las más utilizadas se encuentra, el manejo por ola y el manejo de dos fases. La principal diferencia entre estas dos formas de manejar a los motores de pasos es que en el primer caso solamente se polariza una bobina al mismo tiempo y en el segundo caso dos, se ha escogido el manejo de dos fases debido a que con este tipo de manejo se tiene pasos completos y además esta manera de manejar los motores de pasos proporciona mayor torque, debido a que se encuentran polarizadas dos bobinas al mismo tiempo y no implica ninguna complicación ni en el hardware ni en el software. Freddy R. Pérez J. 42 CAPITULO IV Tanto el movimiento como el sentido de giro del motor de pasos se maneja controlando la secuencia en que se polarizan las bobinas. En la figura 4.5 se indica la distribución de las bobinas del motor de pasos. 2a o Fig. 4.5 Bobinas del motor de pasos. En la figura 4.6 se indica la manera de polarizar a las bobinas para que produzcan un movimiento, tanto en el un sentido como en el sentido contrario de giro. Pasos JBobina la ^ Bobina 2a Bobina Ib Bobina 2b ~"\N J ON „ QEF „ OÍF 1 .2 _v-~^" - 2 , v ^ "^ ->^"v " '^ ~ _ -™-——™H« ,OJBF- *, ON . 3 ~ 4 1 w «~ —. ^ .- --_ ~' ON ~"~ £ f~ ~ *•• -, ~ 1-; :,, ON « ^ÓEF -" \ ON -^~ ¿ - .0A - ^ _x~_*-_~~^ OFF ^ ¿ * n OFF /' ON i _ ON " ' * ^-"" " OFF ' ^ OF¿ ON ^ -*• ^- - ON, ; ÓJFF - r - *; 2 g (/3 ÓJFF Tabla 4.1 Secuencia en las bobinas para movimiento del motor de pasos. Para lograr la secuencia deseada en la polarización de las bobinas se hace uso de un registro base en el cual se coloca el número binario 11001100., a este registro se lo desplaza en uno o en otro sentido. Con lo que se consigue el movimiento del motor en los dos sentidos de giro. FreddyR. Pérez I 43 -; í . ~ . = CAPITULO W En la figura 4.6 se indica el diagrama de ñujo resumido del manejo de los motores. SE ENCUENTRA HABILITADO EL MOVIMIENTO DE MOTORES PONER DATOS DE LAS SEÑALES DE LOS MOTORES V , i Y LLAMAR RUTINA DEL MOTOR 1 LLAMAR RUTINA DEL MOTOR 2 PONER DATOS DE LAS SEÑALES DE LOS MOTORES MAS UN RETARDO DE 25 ms Fig. 4.6 Diagrama de flujo resumido del manejo de los motores de pasos. Freddy R. Pérez J. 44 CAPITULO IV Continuación Fig. 4.6 Diagrama de flujo resumido del manejo de los motores de pasos.(continuación) La rutina para el motor #2 es similar a la del motor #1 por esto no se presenta el diagrama de flujo para el motor #2 Freddy R. Pérez I 45 CAPITULO IV 4.1.6 POSICIÓN REFERENCIAS DE LOS MOTORES. Para poder realizar el encerado de la posición de los motores contamos con una señal de entrada que nos indica si el motor se encuentra o no en una posición de cero. En la figura 4.7 se indica el diagrama de flujo resumido del encerado de los motores. HABILITAR BANDERAS DE ENCERADO Y I SENTIDO DE GIRO SE ENCUENTRA HABILITADO EL ENCERADO DEL MOTOR #1 -NO N SE ENCUENTRA HABILrTADO EL ENCERADO DEL MOTOR # 2 SE ENCUENTRA EN BAJO EL PIN DE ENTRADA DEL SENSOR »1 MOVER UN PASO EL MOTOR #1 'SI SE ENCUENTRA EN\R UN PASO ELBANDERAS LIMPIAR BAJO EL PIN DE NO—» DE ENCERADO MOTOR #2 Y POSICIÓN MOTOR #2 MOTOR «2 SE ENCUENTRA HABILrTADO EL ENCERADO DEL MOTOR * 1 LIMPIAR BANDERAS DE ENCERADO MOTORtfl Y POSICIÓN MOTOR # 1 SE ENCUENTRA HABILITADO EL ENCERADO DEL MOTOR #2 BORRAR BANDERAS DE ENCERADO Fig. 4.7 Diagrama de flujo resumido del encerado de los motores. Freddy R. Pérez J. 46 CAPITULO W 4.1.7 GENERACIÓN DE LA FRECUENCIA DE DISPARO DEL LÁSER. Para generar la frecuencia de disparo del láser se ha utilizado el Timer del microcontxolador 2? este por si solo no puede proporcionar tiempos tan grandes como los de lOs para generar una frecuencia de O.lHz, por esto se incrementa un registro adicional al del Timer para poder conseguir el máximo tiempo deseado. En la figura 4.8 se indica el diagrama de flujo resumido de la generación de la frecuencia de disparo. BORRAR BANDERA DE DESBORDAMIENTO DEL TIMER Y HABILITAR V INTERRUPCIONES ) DECREMENTAR CONTADOR PONE EN ALTO EL PIN DE SALIDA DE FRECUENCIA DE DISPARO RETARDO DE5ms PONE EN BAJO EL PIN DE SALIDA DE FRECUENCIA DE DISPARO DE LAS TABLAS RESPECTIVAS REPONGO LOS DATOS DEL T1MER Y EL CONTADOR BORRAR BANDERA DEL TIMER Y HABILITAR INTERRUPCIÓN DE TIMER BORRAR BANDERA DEL TIMER Y HABILITAR INTERRUPCIÓN DE TIMER Fig. 4.8 Diagrama de flujo resumido de la generación de la frecuencia de disparo. En el Anexo 5 se presenta las tablas con los valores del Timer y del registro adicional para generar la frecuencia de disparo en el rango de O a 20Hz. en pasos de O.lHz. Freddy R. Pérez J. 47 CAPITULO IV 4.1.8 PROGRAMA RESIDENTE EN EL MICROCONTROLADOR #1 En la figura 4.9 se encuentran los diagramas de flujo reducidos presentes en el microcontrolador #1 excepto los detallados anteriormente. t NICIO ) INICIA UZAR PUERTOS.TIMERS, INTERRUPCIONES S U B R U T I N A DE ACTUALIZACIÓN DE DISPLAY Fig. 4.9 Diagramas de flujo del microcontrolador #1 Freddy R. Pérez I 48 CAPITULO IV Continuación C f :OLOCAR EN EL ÍN D I S P L A Y L A P r EN LOS DEMÁS CERO COLOCAR EN EL lUN OISPLAY L A P Y I "l EN LOS DEMÁS f LOS DATOS DE V FRECUECIA i COLOCAR EN EL I UN D I S P L A Y L A C I Y EN LOS DEMÁS LOS DATOS DE V COLISIÓN , L COLOCAR EN EL JN DISPLAY LA C *"| "| Y EN LOS LOS DEMÁS LOSDA ATTi O S D E \ I N J E NNSIDAD S •o HABILITAR BAÑERA DE ITRANSMISIONAL COMPUTADOR HABILITAR BAÑERA DE TRANSMISIÓN AL I COMPUTADOR ¡ HABILITAR BAÑERA DE TRANSMISIÓN AL COMPUTADOR HABILITAR 8ANERADE TRANSMISIÓN AL I COMPUTADOR -*! TECLA NUEVA :NCERAR LOS DISPLAYS MAS SIGNIFICATIVOS Y COLOCAR ELNUEVO NUMERO EN ELMENOS SIGNIFICATIVO , I '" RECORRER LOS DATOS | DE LOS DISPLAYS HACIA LA IZQUIERDA Y COLOCAR ELNUEVO | NUMERO EN EL DISPLAY MENOS SIGNIFICATIVO HABILITA <D Fig, 4.9 Diagramas de flujo del microcontrolador #1 (Continuación) Freddy R. Pérez J. 49 CAPITULO IV Continuación RUTINA DE TRANSMISIÓN DE DATOS TRANSMITIR SERIALMENTE ^ EL 24D TRANSFORMAR LOS TRES DÍGITOS DE FRECUENCIA EN UN S O L O NÚMERO . TRANSMITIR SERIALMENTE EL DATO DE ^. FRECUENCIA TRANSFORMAR LOS TRES DÍGITOS DE INTENSIDAD EN UN SOLO N Ú M E R O V . , TRANSMITIR SERIALMENTE D A T O DE INTENSIDAD TRANSFORMAR LOS TRES DÍGITOS DE COLISIÓN EN UN S O L O NÚM ERO TRANSMITIR SERIALMENTE D A T O DE COLISIÓN SE E N C U E T R A ACTIVADA LA B A N D E R A DE ENCERADO LA ÚNICA OPCIÓN ES QUE ESTE ACTIVA LA FUNCIÓN INTENSIDAD TRANSMITIR ¡5ERIALMENTE EL 202 FIN DE SU B RUTINA Fig. 4.9 Diagramas de ñujo del microcontrolador #1 (Continuación) FreddyR. Pérez J. 50 CAPITULO IV Continuación R E C IB m E L B O R R A H B A N D E R A DEL ^ T I B E R , C O L O C A R R E O 11 T R O I I R E C I B I R D A T O Oí f R E C U E N C J A A L M A C E N A R I N T E R R U P C I Ó N ! » X" »-{ ¡ F 1« A L D E "X ) I I 10 I D A T O * E N L O S IIT R O ! DE R Í O r R Ee u EMc u IM T e u e ID t D A T O B EN LO í 1H T E M 8 ID A O I E P A RA R 1 ID A D E S . D E C E N A S . Y A L M A C E N A R O A . T O I L O B EN LOS R E O IB T R O * C O Lia DE 10 N { A C T U A L I Z A R L O ! O AT O S | D S f UJ F R E C U E N C I A E N E L O "LAV J L -C ,__! P~^| L D A T O D E T t P O^^-í i O R H E B P O N D E J1 A f U L . O ^ ^ _J A C T U A L I Z A R LOS D A T O S DE COL1B10N A C T U A L IZA« L . L D I . t A * -4 D A V B V B V r V l í S ' i M L »».»'»"*V E í M A B ILIT A R B A N D E R A Oí E N C E R A D O ) E 8 H A 8 11.1T A R B A N D E R A DE E N C E R A D O LJ f^ DEBMABItlIAN B A W D t R A O E LJ D £ 8 M A 8 ItlT A R L01 ' ^ D A T O S D E I ' U L S O E N D |_ \ E N E L D I S L A r J I fn J I E N C E R A D O M HA81L.TAR J L "' B A N D E R A «" " " * " ° 1J II II A B 6A I D lí LA Y I C s/B'SJV.NA Fig. 4.9 Diagramas de flujo del microcontrolador #1 (Continuación) FreddyU. Pérez J. 51 E N C S H A B O I CAPITULO IV 4.1.9 PROGRAMA RESIDENTE EN EL MICROCONTROLADOR #2 En la figura 4.10 se encuentran los diagramas de flujo reducidos presentes en el microcontrolador 2 excepto los detallados anteriormente. INICIAL IZAR PUERTOS, TIMERS, INTERRUPCIONES INICIALIZACION DE REGISTROS Fig. 4.10 Diagramas de flujo del microcontrolador #2 Freddy R. Pérez J. 52 CAPITULO IV Continuación RECIBIR DATO DE FRECUENCIA, INTENSIDAD, PTO COLISIÓN YTIPO Fig. 4.10 Diagramas de flujo del microcontrolador #2 (Continuación) FreddyR. Pérez J. 53 CAPITULO IV Continuación CASO CA33EU90 FRBXBdACE DSRTO pchEEN BAJOS, HNces^jcAce RNGASO FRKXJBsOACE LAINTERRLPaCN CB_71IVBRY RNCA30 CE3-PBLJTA IKTH^RLPQCNCE 71IVER RNC^fíO FLL30 Fig. 4.10 Diagramas de flujo del microcontrolador #2 (Continuación) Freddy R. Pérez J. 54 CAPITULO IV Continuación I \D CASO J / I f > BORRAR BANDERA DELT1MERY DESHABILITA INTERUPPC10N DEL 1 TIMER ( ES / / ACTUAL DEL \R SI—^ FIN CASO L FRECUENCIA J NíECIIBÍDO/ NO 7\ /\L RESULTADO \ RESTAR EL VALOR \ / RECIBIDO ES \R ALRESTAR / EL SW VALOR RECIBIDO -1 ^S. ES MAYOR QUE / "H MENOS EL MENOS EL XVALOR ACTUAL/ \0 / RECIBIDO 1 VALOR ACTUAL XDEL MOTORA X / V ) NO T RESTAR EL VALOR ACTUAL MENOS EL 1 RECIBIDO v T ( SUMAR 1 AL RESULTADO v y /EL RESULTADO\E /RESTAR 200 3W MENOS EL RECIBIDO \0 / \ \NO v T \ GIRO HORARIO ^ \ T f T SUMAR 1 AL RESULTADO ) T / "N ( y "\R v ANTIHORARIO saSlDODE y T f •» \A DE \R 1 AL ÜSSñ - SUMAR 1 AL MCn DS ^ MOTOR 1 ) ^ST AO"EL MOTOR 1 T T RESULTADO V v / T / \R SENTIDO DE GIRO I ANTIHORARIO i / \R V I / ACTIVAR BANDERA DE MOVIMIENTO DEL MOTOR 1 \ INTENSIDAD J J \R BANDERA DE MOVIMIENTO DEL MOTOR 1 y T ( FIN CASO V^ INTENSIDAD INTENSIDAD J SENTIDO DE GIRO HORARIO T v y T ) J ( FIN CASO ) \ INTENSIDAD J Fig. 4.10 Diagramas de flujo del microcontrolador #2 (Continuación) Freddy R. Pérez J. 55 BANDERA DE CAPITULO W 4.2 DISEÑO DEL PROGRAMA EN EL COMPUTADOR. El programa en el computador se ha desarrollado en ambiente gráfico LabView, este programa permite comunicarse con el equipo para dar o recibir los datos de frecuencia, intensidad, colisión, pulso, encerado. Además también permite incluir indicadores o controles gráficos de cada uno de los parámetros que dan una idea global del estado del sistema. En la figura 4.11 se indica la pantalla principal del programa en LabView. Fig. 4.11 Pantalla principal del programa en LabView. Freddy R. Pérez J. 56 En la figura 4.12 se muestra un resumen de interconexiones de subprogramas o SubVIs, este resumen es elaborado automáticamente por el programa LabView. Fig. 4,12 Resumen de interconexión de SubVIs, elaborado por el programa LabView. Freddy R Pérez J. 57 CAPITULO V CAPITULO V MONTAJE DEL EQUIPO, PRUEBAS Y RESULTADOS En este capítulo se describe el montaje del equipo, las pruebas realizadas y los resultados de dichas pruebas con el objeto de verificar que los objetivos del presente trabajo se cumplen. 5.1 MONTAJE DEL EQUIPO. Una vez terminado el diseño del equipo se procedió al montaje del mismo., tanto los dispositivos ópticos, como motores y sensores de cero, etc. Para evitar un movimiento involuntario del equipo, se procedió a instalarlo en una mesa de metal., la cual es ñjada a la mesa que contiene todo el espectrómetro de masas. El montaje del equipo se indica en la figura 5.1 Freddy R. Pérez J. CAPITULO V Fig. 5.1 Montaje del equipo. Con el equipo asegurado se procedió a la alineación y enfoque del láser. Este consiste en hacer que coincida el eje del láser con los lentes, y a su vez con el punto donde se produce el impacto entre el láser y muestra. Para esto abrió una tapa del espectrómetro que permite observar el lugar mismo donde choca el láser con la muestra. Con este punto de referencia se movió la posición del láser hasta conseguir una alineación adecuada. La alineación del equipo se indica en la figura 5.2 Fig. 5.2 Alineación y enfoque del láser. Freddy R. Pérez J. 59 CAPITULO V Antes de encender o utilizar el equipo, se debe verificar que el láser se encuentre encendido y que todos los seguros se encuentren deshabilitados. Además, que todas las conexiones se hayan realizado correctamente. El equipo posee una placa de conexiones en la que se colocan: dos motores de pasos, dos sensores de posición referencial, un conector de salida de disparo del láser, un pulsador opcional para disparos manuales, alimentación del equipo. Además, posee un conector para comunicación serial con el computador. A continuación en la figura 5.3 se presenta la placa con las conexiones necesarias. Fig. 5.3 Conexiones del equipo. Freddy R. Pérez J. 60 CAPITULO V 5.2 PRUEBAS Y RESULTADOS. Como ya se mencionó anteriormente para poder hacer un análisis de los resultados obtenidos con el presente trabajo se realizaron algunas pruebas para verificar que estamos disparando el láser a una frecuencia deseada, que se está controlando la intensidad del láser, y además que estamos teniendo un cambio en el punto de impacto o punto de colisión del láser en la muestra. 5.2.1 CONTROL DE FRECUENCIA DE DISPARO. Para hacer una prueba de la frecuencia de disparo del láser se procedió a instalar un fotodetector de la señal del láser y a medir la frecuencia de esta señal. Esta medición se la realizo con un osciloscopio Tektronix. Obteniéndose resultados de la frecuencia de la señal con errores menores o iguales que el 0.5%. A continuación en la tabla 5.1 se muestra una tabla con los datos de frecuencia de disparo esperada y valores de frecuencia de disparo obtenidos experimentalmente, desde O hasta 20Hz, en pasos de IHz. -Valo°r deseado^de frecuencia Me Valor J™ _ - " . " " " ' ^ ~~ ~ ~" á - .; . :i-v_^-~-"~iy/-::r: r1^-'" ¿- -"".'- ? -_- :-„---• "* "* 0 „ 1 __^ - ' ™ - " . - . . • - n FreddyR. Pérez!. "„ °™" "*" "-"=- — _„ _^™ ^-UU.B« Ü _T medido de frecuencia de _ _ 0 ^_ ,0% 1.002 0.2% - 1.998 _OJL% " 2.984 0.50/o •_ ===: - " 4.02 61 0.5% - 5.02 •iíi'.-í'-v^ -U " 10 -"JÜ1L ™ ™¡LZ, - — ,_ÜL.. ÁÍSnm m ™.™. 5.988 0*2% ] 6.993 ar/cr 8.001 ju%- - 9009 -p.i% : 10,01 ,o,i% - \ 10.99 „ "1 O JL, n? iiT ™ — """".... _!ÜÜL,_. T "° ^, " tí '^'s^ r _nü 1"'1 ^ ™ 11.98 -0.154 ; 12.99 007% " 13.99 ^0,07% i ^^fmBBroB^B^^g^^Sii^VTOiíJi^^^^a 1503 1 ¿! '"IQ "1 Q j. -™ __ -1- " """" ^~°" r „ J~™ * ™ „ _^ * *- "^ " 15.97 0.1% : 16,95 0.29% j „ 17.99 ^0.05% -í -~" 19.05 -0.2% 20.01 10,05% * /^ /\r 1 Tabla 5,1 Datos de frecuencia de disparo esperada, frecuencia de disparo obtenida experimentalmente y datos del error. Freddy R. Pérez J. 62 CAPITULO V 5.2.2 CONTROL DE INTENSIDAD DEL LÁSER. Para la comprobación que el sistema permite variar la intensidad del rayo láser incidente en la muestra se puede observar el reflejo en un papel blanco después de haber sido interpuesto en su camino el filtro de densidad. Asi a continuación tenemos las figuras 5.4, 5.5. que indican el reflejo del láser para dos posiciones del filtro de densidad, con lo que podemos concluir que efectivamente se logra una variación de la intensidad del rayo láser. Fig. 5.4 Reflejo del láser para la primera posición del filtro de densidad. Fig. 5.5 Reflejo del láser para la segunda posición del filtro de densidad. Freddy R. Pérez J. 63 CAPITULO V 5.2.3 CONTROL DEL PUNTO DE IMPACTO O PUNTO DE COLISIÓN. Para poder observar la variación del punto de impacto mismo del láser sobre una muestra, se incidió el láser sobre nuestra muestra. Esta muestra consiste en un papel con material fotosensible, este material cambia de color en el punto que incide el láser. El diámetro aproximado del círculo que se forma al variar el punto de impacto es de aproximadamente 2.5mm. Este diámetro es adecuado tomando en cuenta que el tamaño de las muestras también es bastante pequeño, aproximadamente 4mm de diámetro. En la figura 5.6 se indica la muestra con el material fotosensible. Para una mejor vísualización del círculo que se forma al variar la posición del punto de impacto del láser se procedió a bombardear con el láser en cuatro puntos diferentes para marcar las posiciones de los puntos límites, los demás puntos se encuentran en posiciones intermedias dando la forma aproximadamente de un círculo a la variación del punto mismo de impacto del rayo láser. Fig. 5.6 Muestra con material fotosensible Freddy R. Pérez J. 64 CAPITULO VI CAPITULO VI 6.1 CONCLUSIONES • Con el presente trabajo se da solución a un problema puntual e importante como es el control de frecuencia, intensidad y punto de impacto del rayo láser de nitrógeno utilizado en un Espectrómetro de Masas MALDI del Departamento de Física de la Escuela Politécnica Nacional. Esta solución facilita significativamente el trabajo de los usuarios del espectrómetro. • Los microcontroladores PIC16F84 de la empresa MICROCHEP han facilitado el diseño y construcción de este equipo, gracias a la gran cantidad de información, herramientas gratuitas y de fácil adquisición en INTERNET tales como: ensambladores y simuladores. Por otro lado estos microcontroladores mostraron ser bastante robustos, debido a las excelentes características mostradas en cuanto a desempeño, calidad, estabilidad, resistencia a la reprogramación y manipulación. Freddy R Pérez J. 65 CAPITULO VI El diseño cuidadoso del software interno de los microcontroladores posibilita minimizar la cantidad de hardware, debido a que la mayor parte del trabajo se lo realiza mediante software como por ejemplo: barrido de displays, manejo de teclado, manejo de motores de pasos. Con esto nos evitamos utilizar drivers para estos elementos, con lo que se logra que el costo y tamaño del equipo disminuya significativamente. Los resultados experimentales muestran que el equipo desarrollado permite solucionar los problemas planteados, conforme a los objetivos propuestos. Así, el rango de frecuencias de disparo, se encuentra entre O y 20 Hz, en incrementos de O.lHz. incluyendo una facilidad de disparos discretos. La intensidad del láser se puede controlar en pasos que dan una variación significativa de la intensidad. Por último con este sistema, se permite cambiar el punto de impacto del láser sobre la muestra de forma que describa un pequeño círculo sobre esta. Mediante el programa LabView se conectó al equipo con el computador, permitiendo hacer un control remoto de su funcionamiento y operación, con iguales facilidades que desde el equipo mismo. Pero además, se tiene una referencia gráfica global del estado del sistema y puede ser manejado para programar secuencias de eventos especiales en el futuro mediante software adicional. FreddyR. Pérez! 66 6.2 RECOMENDACIONES • El movimiento involuntario del sistema telescópico principalmente, provoca una variación del punto de impacto, por lo que se sugiere que el sistema se sujete bien para evitar dichos movimientos. • Para evitar un recalentamiento de los motores de pasos, el sistema de control hace que estos se pierdan torque una vez que se han terminado de mover al punto deseado, como consecuencia de esto los motores se pueden mover libremente. Por lo que se recomienda impedir el acceso al sistema para evitar movimientos no deseados de los motores. Además., se recomienda hacer un reset en el sistema cada cierto tiempo para asegurar que los puntos iniciales de referencia sean correctos. • La alineación y enfoque del láser es una parte importante para el correcto funcionamiento del sistema en general, por esto se recomienda tener cuidado de alinearlo correctamente cuando se tenga que hacer limpieza o mantenimiento del espectrómetro. • El software implementado en LabView se podría usar de base para realizar modificaciones de este con el objeto de programar una serie de eventos automáticos con el láser, tales como por ejemplo disparo de secuencias automatizadas con diferente intensidad, y diferente punto de impacto. Fredciy R. Pérez J. 67 BIBLIOGRAFÍA ÁNGULO José. ÁNGULO Ignacio(1997). ccMicrocontroladores PIC Diseño practico de aplicaciones". Editorial McGraw-Hill, Madrid, Primera edición. MICROCH3P TECHNOLOGY INCORPORATED (1997). "EMBEDDED CONTROL HANDBOOK". Microchip, USA, Volumen 1, Primera edición. TANENBAUM S. Andrew. "REDES DE OREDENADORES". Editorial PRENTICEHALL, Segunda Edición. MICROCHEP TECHNOLOGY JNCORPORATED, USA. "PIC16F8X 18-pin Flash/EEPROM 8-Bit Microcontrollers" Marzo/98 DIRECCIONES DE INTERÉS EN INTERNET Microchip: http://www.microchip.com Picpoint: http://www.picpoint.com Intel: http://www.intel.com ICMASTER: http://www.icmaster.com Melabs: http://www.melabs.com National Instruments, http://www.ni.com FIE. http: //fie!99.epn.edu.ec Conectores: http://192.188.57.199/wwwroot/Telecomunicaciones/pbid081/hwb/coJVracRs422.html Cekit: http://www.cekit.com.co National: http://www.national.com/ MAXIM: http://www.maximic.com/ Fredcly R. Pérez J. Planos del sistema mecánico FreddyH. Pérez J. VER LAMINA 1/4 VER. LAMINA 2/4 VER LAMINA 3/4 VER LAMINA 4/4 SISTEMA INTEGRAL : MAPA DEL TELESCOPIO Y ENGRANAJES PIEZA IA1—ÍA JH t-w-AUti. rtjtscorso vnoitwA uc tM^u/wwts 13.3 PIEZA 2 135 A DO. mrscoro YSJSIDM o i m co U) h- PIEZA 3 p T ~& -tti " i i i '///, LO " uí U)" — CU in 3 1 co • uif 55 15 25 m G r 10- IG- 19.5 16- 19.5 PIEZA 4, 5 Y G 32.5 2S.5 W/////Á -1 G r-IO-l 37 IG 37 90- W-MMM MJWA ucuicirscono rsartMA ce CNCKAMAES •70 - 10-| t*"'""w -96 ANEXO 2 Resumen de características y set de instrucciones del MC16F84 -•,;>.- •-- - Freddy R. Pérez I ; - «/ PIC16F8X MlCROCHIP 18-pin Flash/EEPROM 8-Bit MicrocontroUers Pin Diagrams Devices Included in this Data Sheet: PIC16F83 P1C16F84 PIC16CR83 PIC16CR84 Extended voltage range devices available (PIC16LF8X, PIC16LCR8X) RA2 RA4/TOCKI wcm Data Data EEPROM RAM (bytes) (bytes) PIC16F83 51 2 Flash PIC16F84 1 K Flash PIC16CR83 51 2 ROM PIC16CR84 1 KROM RB1 ^ RB2 ^ RB3 Max. Freq (MHz) 64 10 68 64 10 36 64 10 68 64 10 14-bit wide ¡nstructions 8-b'rt wide data path 15 special functíon hardware registers Eight-level deep hardware síack Direcí, indirect and relative addressing rnodes Four ¡níerrupt sources: - 'External RBO/INT pin - TMRO timer overflow - PORTB<7;4> ¡níerrupt an change - Data EEPROM write complete • 1000 erase/write cycles Flash program memory • 10,000,000 erase/wriíe cycles EEPROM data memory • EEPROM Data Reteníion > 40 years Peripheral Features: _, 17 D -*— RAO 16 D OSC1/CLKIN 4 O O 15 OSC2/CLKOUT 5 _r 6 _r 7 O) O) P 14 3 % 3J « 13 X 12 t VES 36 • • • • • • IB D — — RA1 -D -0 ^_ r BBO/INT • Only 35 single word instrucíions to learn • All insíructíons single cycle except for program branches which are two-cycle • Operat'ng speed: DC -10 MHz clock input DC - 400 ns ¡nsiructton cycle Program Memory (words) r •1 ^.r 2 ,— , r3 fc RA3 ,, High Performance RISC CPU Features: Device ^ PDIP, SOIC ^^ f ^.r 8 ^.r g 0 CD " 11 10 VDD D— RB7 a —— RB6 !: -— -RB5 3 -— RB4 Special Microcontroller Features: • In-Circuit Serial Programming (ICSP™) - vía two pins {ROM devices support only Data EEPROM programming) • Power-on Reset (POR) • Power-up Timer (PWRT) • Oscilíator Start-up Timer (OST) • Watchdog Timer (WDT) with te own on-chip RC oscillaíor for reliable operaíion • Code-protection • Power saving SLEEP mode • Selectable oscillator opíions CMOS Flash/EEPROMTechnoIogy: • Low-power, high-speed íechnology • Fully static design • Wide operating volíage range: - Commerdat: 2.0Vto6.0V - Industrial: 2.0Vto6.0V • Low power consumption: - < 2 mA typical @ 5V, 4 MHz - 15 iiA typical @ 2V, 32 kHz - < 1 joA typical standby current © 2V • 13 I/O pins w'rth individual direction control • High current sink/source for dírect LED drive - 25 mA sink max. per pin - 20mAsource max. per pin • TMRO: 8-biitimer/counter w'rth 8-b'rt programmable prescaler 1998 Mícrochip Technology Inc. DS30430C-page 1 PIC16F8X TABLE 3-1 PIC16F8X PINOUT DESCRIPTION DIP No, SOIC No. OSC1/CLKIN 16 16 I OSC2/CLKOUT 15 15 O RCTFÍ 4 4 l/P ST RAO 17 17 l/O TTL RA1 18 18 I/O TTL RA2 1 1 I/O TTL RA3 2 2 I/O TTL RA4/TOCKI 3 3 I/O ST Pin Ñame I/O/P Type Buffer Type Description ST/CMOS P) Oscillator crystai Input/external clocksource ¡npuL Osclllator crystai outpuL Connectsto crystai orresonator Incrystal oscillator mode. In RC moda, OSC2 pin outputs CLKOUT whfch has 1/4 the frequency of OSC1 , and denotes the instruction cycle rate. Master olear (reset) ¡nput/programming voltage ¡nput. This pin rs an active low reset to the device. PORTA Is a bi-dlrectional l/O port. Can also be selected to be the dock input to the TMRO timer/counter. Output Is open drain type. PORTB Is a bi-directlonal l/O port. PORTB can be software programmed for ¡nternal weak pull-up on all inputs. RBO/INT 6 6 l/O TTL/ST W RB1 7 7 I/O TTL RB2 8 8 l/O TTL R83 9 g l/O TTL RB4 10 10 l/O TTL Interrupt on change pin. RB5 11 11 l/O TTL Interrupt on change pin. RB6 12 12 l/O TTL/ST P) Interrupt on change pin. Serial programming dock. RB7 13 13 I/O TTL/ST W Interrupt on change pin. Serial programming data. p p — Ground reference for logic and l/O plns. — Positive supply for loglc and I/O pins. VSS 5 5 VDD 14 14 RBO/INT can also be seiected as an external interrupt pin. Legend: l= input O = output l/O = Input/Output P = power — = Not used TTL = TTL input ST = SchmittTrigger ¡nput Note 1: This bufferis a SchmittTriggerinput when confígured as ihe external interrupt. 2: This buffer ís a SchmittTriggerinput when used In serial programming mode. 3: This buffer isa SchmittTrigger input when confígured in RC oscillator mode and a CMOS ¡npuí otherwise. © 1998 Microchlp Technology Inc. DS30430C-page 9 PIC16F8X REGISTERFILEMAPPIC16F83/CR83 FIGURE 4-1: FIGURE 4-2: REGISTERFILEMAPPIC16F84/CR84 Ríe Address File Addre ss 80h OOh Indirect addr.^ OPTION 81H oih TMRO OPTION aih PCL PCL 82 h 02h PCL PCL 82 h 03h STATUS STATUS 83h 03h STATUS STATUS 83h Q4h FSR FSR 84h 04h FSR FSR 84h 05h PORTA TRISA 85h 05h PORTA TRISA 85h 06h PORTB TRISE 86h 06h PORTB TRISB 86h 87h 07h File Addre ss OOh Indirect addr.W 01h TMRO 02h Indirect addr.W 07h File Address Indirect addr.W aoh 87h EECON1 88h 08h EEDATA EECONl 88h 09h EEDATA EEADR EECON2Í1> 89h 09h EEADR EECON2W 89h OAh PCLATH PCLATH 8Ah OAh PCLATH PCLATH 8Ah OBh INTCON INTCON 8Bh OBh 1NTCON INTCON 8Bh 8Ch QCh 08h och 36 General Purpose registers (SBAM) Mapped (accesses) in Bank 0 2Fh 30h 68 General Purpose regísters (SRAM) AFh BOh ~^-— 4Fh 50h ---^ 7Fh FFh Bank 0 Bank 1 8Ch Mapped (accesses) fn Bank 0 CFh DOh L__ """-—-— 7Fh Bank 0 ~-x ^ FFh Bank 1 D Unimp emented data memory location; reaci as '0'. D Unlmp emented data memory location; reacJ as '0'. Note 1: Note 1: Not a physícal regisíer. ^ot a physical register. © 1998 Microchip Technology Inc. DS30430C-page 13 PIC16F8X TABLE 4-1 REGISTER FILE SUMMARY Valué on Address Ñame BU 7 Bit 6 BltS Bit 4 Bit 3 Bit 2 Blt1 BltO Reset Valúa on all olher resets (NoteS) PoWBT-Ofl BankO 00 h INDF Uses contents of FSR to address data memory (not a physical register) 01 h TMRO B-bit reaklme clock/eoumer xxxx xxxx uuuu uuuu 02h PCL Low order 8 bits ot the Píogram Counter (PC) 0000 0000 0000 DOOO 03h STATUS (2> 04h FSR 05 h PORTA 06h PORTB 07h IRP RP1 Tu RPO PTJ Z DC C Indirect data memary address polnter 0 — RB7 — — RA4fTOCKI RA3 RA2 RA1 RAO RB6 RB5 RB4 RB3 RB2 RB1 RBO/INT 0001 Ixxx 00 Oq quuu xxxx xxxx uuuu UUUU x xxxx u uuuu xxxx xxxx uuuu uuuu Unirnplemented location, read as 'ff . 08 h EEDATA EEPROM dala reglster xxxx xxxx uuuu uuuu 09 h ÉEADR xxxx xxxx uuuu «uuu OAh PCLATH EEPROM address reglster _ „ OBh IrJTCON — GIE EEIE Write bufler íor upper 5 bits oí trie PC W TOIE INTE RBIE TOIF 0 OODO 0 0000 IMTF RBIF OODO OOOx 0000 OOOu 3.111 1111 1111 1111 0000 0000 0000 0000 Bankl 80 h INDF Uses contents o) FSR to address data memory (not a physical regfeter) 81 h OPT1ON_ REG mro 82h PCL Low order B bits al Program Counter (PC) 83h STATUS (z) 84h FSR 85h TRISA TRISB B6h IHP IríTEDG RP1 TOCS TOSE RPO TU PSA PS2 PS1 PSO PTJ Z DC C 0001 Ixxx OQOq quuu Indlrecl data memory address polnter 0 ,_ PORTA da!a direction register —' — xxxx xxxx uuuu uuuu PORTB data directlon reglster 1111 1111 1 1111 1 1111 1111 1111 Unirnplemented locatlbn, read as '0' 87h eah EECON1 89 h EECQN2 OAh PCLATH __ OBh INTCON GiE — — — EEIF WRERR WREN WR RD INTF RBÍF 0 xOOO D qOOO EEPROM control register 2 (not a physical register) — . EEIE — .TOIE Write buffer íor upper 5 bits oí the PC W INTE RBIE TQIF 0 0000 0 0000 0000 QOOx 0000 OOOu Legend; je = unknown, u = unchanged. - = unimplemented read as '0', q = valué depends on condition. Note 1: The upperbyte ofthe program counteris not directly accessible. PCLATH s a slave register for PC<12:8>.The contents of PCLATH can be transferredto the upperbyte ofthe program counter, butthe contents of PC<12:8> is nevertransferred to PCLATH. 2: The TO and PD status bits in the STATUS register are not affected by a MCLR reset 3: Other (non power-up) resets include: externa! reset through MCTR* and the Watchdog Timer Reset DS30430Opage 14 © 1998 Microchip Technology Inc. PIC16F8X 9.0 INSTRUCTION SET SUMMARY Each PIC16CXX instruction is a 14-bií word divided ínto an OPCODE which specifies the instruction type and one or more operands which further specify the operation of íhe instruction.The PÍC16CXX ¡nstruction sei summary in Tabíe 9-2 lists byte-oriented, bit-oríented, and literal and control operations. Table 9-1 shows the opcode field descriptions. For byte-oriented insíructions, T represents afile register designator and 'd' represents a desíínation desígnaíor. The file regisíer designator specifies which file regíster is to be used by the ¡nstruction. The desíinaíion designaíor specrfies where íhe result of the operation ¡s to be placed. If 'd1 is zero, the resuli is placed in íhe W register. If 'd' is one, the resulí is placed in íhe file regisíer specified in the instruction. For bit-oriented insíructions, 'b[ represenís a bu field designaíor which selects the number of the bit affected by the operation, while 'f represents the number of the file in which the bií is located. For literal and control operaíions, 'k' represenís an eight or eleven bit constaní or literal valué. TABLE 9-1 Field OPCODE FIELD DESCRIPTIONS Description Registerfüe address (0x00 to Ox7F) Working register (accumuiator) b Bit address within an 8-bit file register Literal field, constant data or label k X Dont care location {= 0 or 1 ) The assembler will genérate code w¡th x = 0. It ¡s the recommended form of use for compatibility with all Microchip software tools. d Destination select; d = 0: store result in W, d = 1: store result In file register f. Default ¡s d = 1 Label ñame label TOS Top of Stack PC Program Counter PCLATH Program Counter High Laten GIE Global [nterrupt Enable bit WDT Watchdog Tímer/Counter TO Tíme-out bit PD Power-down b'rt dest Destination either the W register or the specified register file location Options [] Contents ( ) f w -> Assigned to <> e Register bit field In the set of ¡talics User defined term (font is courier) The ¡nstruction set is highly oríhogonal and is grouped into three basic categories: • Byte-orierrted operations • Bit-oriented operaíions • Literal and control operations AII instrucíions are executed withín one single ínsíruction cycle, unless a condiíional test is irue or the program counter ¡s changed as a resulí of an ¡nsiructíon. In this case, the execuííon takes two instruction cycles wiíh the second cycle executed as a NOP. One instruction cycle consiste oí íour oscillator periods.Thus, íor an oscillator frequency of 4 MHz, the normal instruction execuiion time is 1 p-S. If a condrtional test is true or the program counter is changed as a resulí of an instruction, the instruction execuiion time is 2 jis. Table 9-2 lísis íhe insíructions recognized by the MPASM assembler. Figure 9-1 shows the general formats that the instrucíions can have. Note: To malntaín upward compatibilíty wfíh futura P1C16CXX producís, do not use the OPTION and TRIS instrucíions. AII examples use íhe following format to represent a hexadecimal number: Oxhh where h signifies a hexadecimal digit FIGURE 9-1: GENERAL FORMAT FOR INSTRUCTIONS Byte-orlented file register operations 13 8 7 6 d OPCODE f (RLE #) d = O for destination W d = 1 for destination f f = 7-bit file regíster address Bit-oriented file register operaíions 13 10 9 7 6 OPCODE |b(BlT#)| f(FILEtf) b=3-bit bit address f = 7-bit file register address Literal and control operations General 13 8 7 OPCODE k (literal) k =8-b"rt¡mmed¡ate valué CALL and GOTO instructions only 13 11 OPCODE 10 k (litera!) k = 11-b'rt immediaíe valué © 1998 MIcrochip Technology Inc. DS3Q430C-page 53 PIC16F8X TABLE 9-2 PIC16FXX INSTRUCTION SET Mnemonic, Operands Descríption Cycles 1 4-Bit Opcode MSb LSb Status Affected Notes BYTE-ORIENTED FILE REGISTER OPERATIONS RLF RRF SUBWF SWAPF XORWF f, d f, d f, d f, d f, d Add W and f AND W with f Clearf ClearW Complemení f Decrementf Decrement f, Sk¡p ¡f 0 Increment f Incrementf, Skipif 0 Inclusive ORWwjthf Movef Move W to f No Operation Bótate Left f through Carry Roíate RIght f through Carry SubtractWfromf Swap nibbles ¡n f Exclusive OR W wltfi f BCF BSF BTFSC BTFSS f, b f, b f, b f, b Bit Clearf BitSetf Bit Test f, Skipif Clear Bit Test f, Skipif Set ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF fNCFSZ IORWF MOVF MOVWF f, d f, d f f, d f, d f, d f, d f, d f, d f, d f NOP 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0111 dfff f f f f C.DC.Z 0101 dfff f f f f 2 0001 Ifff f f f f Z 0001 Oxxx xxxx Z 1001 dfff f f f f z 0011 dfff f f f f Z 1011 dfff f f f f 1010 dfff f f f f z 1111 dfff f f f f 0100 dfff f f f f z 1000 dfff f f f f z 0000 Ifff f f f f 0000 OxxO 0000 c 1101 dfff ffff c 1100 dfff f f f f 0010 dfff f f f f C,DC,Z 1110 dfff ffff 0110 dfff f f f f z 1,2 1,2 2 1,2 1,2 1,2,3 1.2 1,2,3 1,2 1,2 1,2 1,2 1,2 1,2 1,2 BIT-ORIENTED FILE REGISTER OPERATIONS 1 1 1(2) 1(2) 01 01 01 01 OObb Olbb lObb llbb bfff bfff bfff bfff ffff ffff ffff ffff 1,2 1,2 3 3 LITERAL AND CONTROL OPERATIONS ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k k k k k k k Add literal and W AND litera! with W Ca![ subroutine Clear Watchdog Timer Go to address Inclusive OR literal with W Move literal to W Return from ¡rrterrupt Retum with literal in W Return from Subroutine Go into stand by mode Subtract W from literal Exclusive OR litera! with W 1 1 2 1 2 1 1 2 2 2 1 1 1 11 lilac kkkk kkkk 11 1001 kkkk kkkk 10 Okkk kkkk kkkk 00 0000 10 Ikkk kkkk kkkk 0110 0100 11 1000 kkkk kkkk 11 00 11 00 00 11 11 OOxx 0000 Olxx 0000 0000 llOx 1010 kkkk kkkk 0000 1001 kkkk kkkk 0000 1000 0110 0011 kkkk kkkk kkkk kkkk C.DC.Z Z TÜ.PD Z TÜ.FÜ C.DC.Z Z Note 1: When an I/O register Is modified as a function of ¡tself ( e.g,, MOVF PORTE, 1), the valué used will be that valué present on the pins íhemselves, For example, rf the data latch is '1' for a pin coníigured as input and is driven low by an externa! device, the data will be written back with a 'O'. 2: Ifthis Instruction Is executed on the TMRO register (and, where applicable, d = l),the prescaler will be clearedrf assigned to the TimerO Module. 3: If Program Counter (PC) Is modified or a conditional test ¡s true, the instruction requlres two cycIes.The second cyde is executed as a NOP. DS30430C-page 54 © 1998 Microchip Technology Inc. Hóiás de espeeificáeioiies de almíños ICs if . Pérez J, JL " - - . • -* :c3"~ DUAL EIA-232 DRIVER/RECEIV SLLS047G - FEBRUARY1989 - REVISED AUGUST1 D, DW, O R N PACKAGE (TOPVIEW) Opérales With Single 5-V Power Supply LinBiCMOS™ Process Technology Two Drivers and Two Receivers C1+ [ +30-V Input Levéis Low Supply Current... 8 mA Typical • 1 U 16 3 C2+[ 4 C2-[ 5 Meets or Exceeds TIA/EIA-232-F and ITU Recommendation V.28 11 ]T1IN 10 ]T2IN 9 ]R2OUT V S -[ 6 Designed to be Interchangeable With Maxim MAX232 T2OUT [ 7 R2ÍN [ 8 Applications TIA/EIA-232-F Battery-Powered Systems Termináis Modems Computers ESD Protection Exceeds 2000 V Per MlL-STD-883, Method 3015 Package Options Incfude Plástic Small-Outline (D, DW) Packages and Standard Plástic (N) DIPs ]v cc 15 ] GND 14 JT1OUT 13 ] R1IN 12 ] R1OUT 2 logicsymbolt VCG 16 C1 + C1C2+ C2T1IN description The MAX232 device is a dual driver/receiver that includes a capacitive voltage generator to supply EIA-232 voltage levéis from a single 5-V supply. Each receiver converts EIA-232 inputs to 5-V TTL7CMOS levéis. These receivers nave a íypical threshold of 1.3 V and atypical hysteresis of 0.5 V, and can accept ±30-V inpuís. Each driver converts TTL7CMOS input levéis into EIA-232 levéis. The driver, receiver, andvoltage-generator functions are available as cells in the Texas Instruments LinASIC™ library. T2IN R1OUT 1 C1 + d- 3 VGC 2 2V CC -1.5V 4 C2+ 5 C2- 11 ^ O 14 T10U . 10 12 6 -2VCC + 1.5V 7 > ^ R2OUT J JT 13 T20L R1IN 8 ^ ov -0" R2IN f 15 GND tThis symbol Is ¡n accordance with ANSÍ/IEEE Std 91-1984 and I Publ¡cation617-12. The MAX232 is characterized for operation from 0°C to 70°C. The MAX232Í is characterized for operation from -40°C to 85°C. AVAILABLE OPTIONS PACKAGED DEVICES TA SMALL OUTLINE (D) SMALL OUTLINE (DW) PLÁSTIC DIP (N) 0°C to 70°C MAX232D* MAX232DWÍ MAX232N -40°C to 85°C MAX232IDÍ MAX232IDWÍ MAX232IN device is available taped and reeled by adding an R to the part number (¡.e., MAX232DR). Please be aware that an ¡mportaní notice concerning availability, standard warranty, and use ¡n critica! appücatíons Texas Instruments semiconductor producís and disclaimers thereto appears ai the end of thís data sheet. LinASIC and LinBiCMOS are trademarks of Texas Instruments Incorporated. PRODUCT10N DATA irtfomiation ís cirrent as o( pubficaiion date. Producís conform lo specifícaüons per the lerms of Texas kisirumenis standard warranty. Productíon processiig does not necessariy ¡nclude testing oí all parameters. «4 ^EH *\_^ Tt1 ~\F A O Tf Jl Jt-?V/Vo INSTRUMENTS POST OFRCE BOX 655303 • DALLAS, TEXAS 75265 Copyright © 1998, Texas Instruments Incorpo DUAL EIA-232 DRIVER/RECEIVER SLLS047G - FEBRUARY 1989 - REVISED AUGUST 1998 APPLICATION INFORMATION 5V 16 VCG 1 1 iiF ^p^ C1+ 3 1 |IF ^¡^ vs+ C1- 4 C2+ 5 — 2 ., • VS- *- -8 5 V C2- From CMOSorTTL S I U 11 > 10 t> ^ ^ JT ^- To CMOSorTTL <^ 14 13 8 ov -0" 15 GND Figure 4. Typical Operating Circuit TEXAS INSTRUMENTS T POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 EIA-232 Output EIA-232 Input _,. , CD4051B, CD4052B, CD4053B Semiconductor August 1998 CMOS Analog Multiplexers/Demuftiplexers with Logic Level Conversión The CD4051 B, CD4052B, and CD4053B analog multiplexers are digitally-controlled analog switches having low ON impedance and very low OFF leakage current. Control of analog signáis up to 20Vp-P can be achieved by digital signal amplitudes of 4.5V to 20V (¡f V D rj-V ss = 3V, a VDD~VEE of UP to 13V can be controlled; for VDD-VDD level differences above 13V, a V D r_)-V DD of at least 4.5V is required). For example, if Vrjrj = +4.5V, VQQ = OV, and VDD = -13.5V, analog signáis from -13.5V to +4.5V can be controlled by digital inputs of OV to 5V. These multiplexer circuits dissípate extremely low quiescent power over the full VDD-VQD and VrjD-Vprj supply-voltage ranges, independent of the logic state of the control signáis. When a logic "1" is present at the inhibit input terminal, all channels are off. File Number 902 Features • Wide Range of Digital and Analog Signal Levéis - Digital ..... ........... .... .......... 3V to - Analog, .... ......... .... ........... . . <20V • LowON Resistance, 125Q(Typ) Over ISVp.p Signal In Range for V DD -V EE =18V • High OFF Resistance, Channel Leakage of ±100pA (T atV DD -V EE =18V • Logic-Level Conversion'for Digital Addressing Signáis 3V to 20V (VDD-VSS = 3V to 20V) to Switch Analog Signáis to 20VP_P (VDD-VEE = 20V) • Matched Switch Characteristics, TON - 5H (Typ) for V DD -V EE =15V • Very Low Quiescent Power Dissipation Under All Digit Control Input and Supply Conditions, 0.2jiW (Typ) at = V DD -V EE =IOV The CD4051B is a single 8-ChanneI mulíiplexer having three binary control inputs, A, B, and C, and an inhibit input. The three binary signáis select 1 of 8 channels to be turned on, and connect one of the 8 inputs to the output. • Binary Address Decoding on Chip The CD4052B ¡s a differential 4-Channel multiplexer having two binary control inputs, A and B, and an inhibit input. The two binary input signáis select 1 of 4 pairs of channels to be turned on and connect the analog inputs to the outputs. • Máximum Input Current of 1 uA at 1 8V Over Full Pac Temperature Range, lOOnA at 18V and 25°C The CD4053B is a triple 2-Channei multiplexer having three sepárate digital control inputs, A, B, and C, and an inhibit input Each control input selects one of a pair of channels which are connected ¡n a single-pole, double-throw configuration. When these devices are used as demultiplexers, the "CHANNEL IN/OUT" termináis are the outputs and the "COMMON OUT/IN" termináis are the inputs. • 5V, 10V and 15V Parametric Ratings • 1 0% Tested for Quiescent Current at 20 V • Break-Before-Make Switching Eliminates Channel Overlap Applications • Analog and Digital Multiplexing and Demultiplexing • A/D and D/A Conversión • Signal Gating Orderíng Information PART NUMBER TEMP. RANGE (°C) PACKAGE PKG. NO. CD4051BF, CD4052BF, CD4053BF -5510125 16LdCERDIP F16.3 CD4051BE, CD4052BE, CD4053BE -55to125 1GLd PDIP E16.3 CD4051BM, CD4052BM, CD4053BM -55to125 16LdSOIC M16.15 CAUTION: These devices are sensitiva to electrostatic discharge; follow proper IC Handiing Proced Copyright © Harris Corporation CD4051B, CD4052B, CD4053B Pinouts CD4052B (PDIP, CERDIP) TOP VIEW CD4051 B (PDIP, CERDIP, SOIC) TOPVIEW CHANNELS IN/OUT f 4 ü_ | e |~2~ COM OUT/IN [T CHANNELS f 7 Li IN/OUT \ [5 16]V D[ Y CHANNELS J ° Ll IN/OUT S „ rr 15|2 ' Í4|1 CHANNELS IN/OUT 13] 0 Y CHANNELS / IN/OUT 12]3 3 Li 13] COMMON "X" OUT/IN INH [T lT| A INH VEEL! 10] B VEE[I 10 A Vssfl IB CD4053B (PDIP, CERDIP) TOP VIEW r by[l IN/OUT •< bx [T 15] OUT/IN b x O R b y 1U U] OUT/IN ax OR ay OUT/IN C X O R C Y [T _, > IN/OUT 12] ax] IN7OUT CX [5 rf| A INH f? 10] B Functional Block Diagrams CD4051 B CHANNEL IN/OUT INH 1 X CHANNELS IN/OUT COMMON "Y" OUT/IN \J_ . UÍÜJ HIGH-VOLTAGE, HIGH-CURREN DARLINGTON ARRA Ideally suited for interfacing between low-level logic circuitry múltiple peripheral power loads, the Series ULN20xxA/L high-volt high-current Darlington arrays feature continuous load current ratin to 500 mA for each of the seven drivers, At an appropriate duty cy depending on ambient temperatura and nurnber of drivers turned Ó simultaneously, typical power loads totaling over 230 W (350 mA 95 V) can be controlled. Typical loads include relays, solenoids, stepping motors, magnetic print hammers, multiplexed LED and incandescent displays, and heaters. All devices feature open-collec outputs with integral clamp diodes. The ULN2003A/L and ULN2023A/L have series input resistor selected for operation directly with 5 Y TTL or CMOS. These dev wül handle numerous interface needs — particularly those beyond capabilities of standard logic buffers. The ULN2004A/L and ULN2024A/L have series input resistor operation directly from 6 to 15 V CMOS or PMOS logic outputs. Dwg. No.A-9594 Note that the ULN20xxA series (dual in-line package) and ULN20xxL series (small-outline IC package) are electrically identical and share a common terminal number assignment. The ULN2003A/L and ULN2004A/L are the standard Darling arrays. The outputs are capable of sinking 500 mA and will withst at least 50 V in the OEF state. Outputs may be paralleled for highe load current capability. The ULN2023A/L and ULN2024A/L will withstand 95 Y in the OFF state. ABSOLUTE MÁXIMUM RATINGS These Darlington arrays are fumished in 16-pin dual in-line plá packages (suffix "A") and 16-lead surface-mountable SOICs (suffi "L"). All devices are pinned with outputs opposite inputs to facilít ease of circuit board layout. All devices are rated for operation ove temperatare range of -20°C to +85°C. Most (see matrix, next page also available for operation to -40°C; to order, change the prefíx fr "ULN" to "ULQ". Output Yoltage, V^ (ULN200xA and ULN200xL) ........ 50 V (UUSí202xAandULN202xL) 95 V Input Yoltage, Y^ 30 V Continuous Output Curreut, Ic 500 mA Continuous Input Current, 1^ 25 mA Power Dissipation, PD (one Darlington pair) 1.0 W (total package) See Graph Operating Temperature Range, TA -20°Cto+85°C Storage Temperature Range, Ts -55°C to +150°C FE ATURES • • • • • TTL, DTL, PMOS, or CMOS-Compatible Inputs Output Current to 500 mA Output Yoltage to 95 Y Transient-Protected Outputs Dual In-Line Plástic Package or Small-OutLine IC Package x = digit to identify specrñc device. Characteristic shown applies to famil devices with remaining digits as shown. See matrix on next page. DEVICE PART NUMBER DESIGNATION VCE(MAX) C(MAX) 50 V 95 V 500 mA 500 mA Logic Part Number 5V TTL, CMOS ULN2003A* ULN2003L* ULN2023A* ULN2023L 6-1 5 V CMOS, PMOS ULN2004A* ULN2004L* ULN2024A ULN2024L * Also available for operation between -40°C and +85°C. To order, chan prefix from "ULN" to "ULQ". PARTIAL SCHEMATICS ULN20x3A/L (Each Driver) COM 2.VK c:~K - 7.2K "-N^rfV 3K 1 4—W^-i ' -w- Dwg.No.A-9651 ULN20x4A/L (Each Driver) COM 50 75 100 125 AMB1ENTTEMPERATUREIN °C 150 Dwg. GP-006A Dwg, No. A-989SA ífwCzz Slicra Sysleins'Jnc^, X = Digit to identify specifíc device. Specifícation shown applies to fami devices with remaining digits as shown. See matríx above. 115 Northeast Cutoff, Box 15036 Worcester, Massachusetts 01615-0036 (508) 853-5000 Copyright© 1974,1998 AJIegro MicroSystems, Inc. TYPICAL APPLICATIONS INPUT CURRENT AS A FUNCTION OF INPUT VOLTAGE Types ULN2003A, ULN2003L, ULN2023A, and ULN2023L +vcc 2.5 x 2.0 ^X ^ -^ jj> E •z. 1.5 X '^ ^£ ^ 0.5 OUTPUT .. <r 1.0 TTL / ^**^+. .."'^' OÍ '^ 2 ^ AHEAOFNOñMALOPERAT1ON WFTHff FANOARC ORSCHCDTTKYTT L Dwg.No.A-9S53A 2.0 3.0 4.0 5.0 INPLTT VOLTAGE D« Types ULN2004A, ULN2004L, ULN2024A, and ULN2024L TTL OUTPUT Dwg. No. A-10,175 ANEXO 4 Diagrama completo del circuito del equipo Freddy R. Pérez J. ANEXOS Tablas con valores del TIMER y del registro Adicional Freddy R. Pérez I TABLA CON LOS VALORES PARA EL REGISTRO DEL TIMER Y PARA EL REGISTRO AUXILIAR ADICIONAL FRECUENCIAJTABLA REG 0.1 0.2 0.3 0.4 0.5 o.e 0.7 O.B 0.9 1 1.1 1.2 1.3 1.4 1.5 1.8 1.7 1.8 1.fl 2 2.1 2.2 2.3 2.4 2.5 Z6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 e 6.1 6.2 Q.3 6.4 6.5 6.6 6.7 6.8 8.9 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.B 7.9 8 8.1 8.2 8.3 8.4 8.5 8.6 fi.7 8.8 8.9 9 Q.1 9.2 9.3 9.4 9.5 9.0 9.7 9.8 9.9 10 AD. ITABLAREG 153 77 51 39 31 26 22 19 17 16 14 13 12 11 11 10 9 9 8 8 8 7 7 7 7 6 6 6 6 6 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 TIMER FRECUENCIAlTABLA REG 125 10.1 200 10.2 54 10.3 237 10.4 143 10.5 165 10.6 71 10.7 0 10.8 31 10.9 209 52 92 86 45 231 138 25 153 11 114 207 35 113 183 249 53 108 160 208 253 39 78 115 150 183 214 243 15 41 66 90 113 135 155 175 194 212 229 246 6 21 36 50 64 77 89 102 114 125 136 147 157 167 177 186 195 204 213 221 229 237 244 252 3 10 17 24 30 37 43 49 55 60 66 2 71 77 2 82 2 87 92 97 102 2 2 2 2 2 2 2 2 2 2 2 2 106 111 115 120 124 128 132 136 140 11 11.1 11.2 11.3 11.4 11.5 11.8 11.7 11.8 11.9 12 1Z1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14 14.1 14.2 14.3 14.4 14.5 14.G 14.7 14.8 14.9 15 15.1 15.2 15,3 15.4 15.5 15.6 15.7 15.8 15.9 16 16.1 16.2 16.3 16.4 16.5 16.6 1Q.7 16.8 18.9 17 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18 18.1 18.2 18.3 18.4 18.5 18.6 18,7 18.8 18.9 19 19.1 19.2 18.3 19.4 19.5 10.6 19.7 19.8 19.9 20 AD. ITABLA REG. TIMER 2 2 2 2 144 148 152 155 2 2 2 159 163 166 169 2 2 2 173 176 179 2 182 185 188 191 194 197 200 203 206 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 208 211 213 216 219 221 223 226 228 231 233 235 237 240 242 244 246 248 250 252 254 0 2 4 6 7 9 11 13 15 16 18 20 21 23 25 26 28 29 31 32 34 35 37 38 40 41 43 44 45 47 48 49 51 52 53 54 56 57 58 59 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 Freddy R. Pérez J. Manual de Usuario Este equipo permite realizar el control de frecuencia., intensidad y punto de impacto del rayo láser de nitrógeno utilizado en un Espectrómetro de Masas MALDI del Departamento de Física de la Escuela Politécnica Nacional. Este control se lo puede realizar localmente desde el equipo o remotamente desde el computador. 1. Conexiones del equipo Antes de encender o utilizar el equipo, se debe verificar que el láser se encuentre encendido y que todos los seguros se encuentren deshabilitados, además, que todas las conexiones se hayan realizado correctamente. El equipo posee una placa de conexiones en la que se colocan: dos motores de pasos, dos sensores de posición referencial, un conector de salida de disparo del láser, un pulsador opcional para disparos manuales, alimentación del equipo. Además, posee un conector para comunicación serial con el computador. A continuación en la figura 1 se presenta la placa con las conexiones necesarias. Freddy R. Pérez J. Fig. 1 Conexiones del equipo. 2. Control local del equipo Como ya se mencionó anteriormente el equipo se puede controlar tanto localmente o remotamente, para realizar un control local se ha incluido un teclado y un indicador, con el objeto de introducir datos para procesarlos y variar los parámetros deseados. En el teclado se han definido teclas de función específica, para controlar la frecuencia, intensidad, punto de impacto o punto de colisión, pulso de disparo, además posee teclas con valores numéricos, punto decimal y una tecla de aceptar o enter. Los cambios realizados se almacenan en memoria para recuperarlos cuando se requiera conocer el valor actual de algún parámetro. En la figura 2 se muestra el teclado, en el cual se encuentran señaladas las respectivas teclas de función. Freddy R. Pérez J. 2 Fig. 2 Teclado del equipo 2.1 Control de frecuencia de disparo. Para realizar secuencias automáticas de disparo se dispone una tecla correspondiente a la función frecuencia. Se debe presionar esta tecla para poner al equipo en modo de disparo automático, luego se debe escoger el valor de la frecuencia de disparo deseada el cual debe estar comprendido entre O y 20Hz. en incrementos de O.lHz. y cuando se desee que comience la secuencia de disparos se debe presionar la tecla enter Solamente para este caso, el punto decimal se activa, debido a que este es el único parámetro que posee decimales. 2.2 Generación de pulsos de disparo. Para realizar secuencias manuales de disparo se dispone una tecla correspondiente a la función pulso. Se debe presionar esta tecla para que el equipo dispare un solo pulso inmediatamente luego de ser presionada dicha tecla. Una vez escogida dicha función los Fredd}' R. Pérez J. 3 disparos manuales del láser se los puede hacer mediante la tecla pulso, la tecla enter o un pulsador opcional colocado en la placa de conexiones del equipo. El teclado numérico se desactiva automáticamente al presionar la tecla correspondiente a la función pulso. 2.3 Control de intensidad del rayo láser. Para modificar la intensidad del láser o la posición del filtro de densidad variable se dispone de una tecla correspondiente a la función intensidad, se debe presionar esta tecla, luego se debe escoger el valor de la intensidad o posición del filtro de densidad entre O y 200 en incrementos de 1 paso o 1.8 grados y cuando se desee que variar la intensidad se debe presionar la tecla enter. 2.4 Control del punto de impacto del rayo láser. Para evitar que los disparos sucesivos del láser que inciden sobre la muestra la agote, se debe modificar el punto de impacto para lo que se dispone de una tecla correspondiente a la función colisión, se debe presionar esta tecla, luego se debe escoger el valor del punto de colisión entre un rango de O y 200 en incrementos de 1. Finalmente cuando se desee que variar el punto de colisión se debe presionar la tecla enter. 2.5 Reseteo del equipo, Si se desea se puede realizar un reseteo o retorno a condiciones iniciales del equipo, mediante un pulsador previsto para este objetivo. Con esto se consigue que el equipo Freddy R. Pérez I . 4 regrese a sus condiciones iniciales, es decir tome nuevamente valores iniciales de referencia para la intensidad, punto de impacto y frecuencia de disparo. 3. Control del equipo desde el computador. Para realizar el control del equipo desde el computador se hace necesario que el cable de conexión serial entre el equipo y el computador se encuentre correctamente conectado. Una vez verificada la conexión del cable serial., se puede iniciar el software en el computador, el cual permite todas las opciones mencionadas en el control local del equipo. Además, posee indicadores gráficos, que tienen la propiedad de dar una idea clara del estado global sistema. Cabe señalar que cualquier cambio que se produzca en el equipo es actualizado inmediatamente en el computador y viceversa. En la figura 3 se muestra la pantalla principal del programa en el computador. Fig. 3 Pantalla principal del programa residente en el computador. Freddy R. Pérez J. 3.1 Control de frecuencia de disparo, intensidad y punto de impacto del rayo láser. Para modificar cualquiera de estas variables el procedimiento es similar, cambiar al valor deseado la variable a modificarse en sus rangos correspondientes y transmitir la orden de cambio en el momento que se desee que este se produzca. La modificación de las variables se debe realizar en forma individual, Al igual que para el control local los cambios se almacenan y se mantienen en memoria. 3.2 Reseteo del equipo. Al igual que en el control local, se ha provisto al computador de un botón que permita regresar al estado inicial, este funciona de manera idéntica al pulsador de reseteo del equipo. Freddy R. Pérez J. ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA CONTROL DE DISPARO, INTENSIDAD Y PUNTO DE IMPACTO DE UN RAYO LÁSER DE NITRÓGENO FREDDY RICARDO PÉREZ JTBAJA PROGRAMAS RESIDENTES EN LOS MICROCONTROLADORES PIC16F84#1 Y PIC16F84#2 Quito, marzo 2000 Programa residente en el microcontrolador PIC16F84 #1 El microcontrolador #1 realiza las siguientes tareas. Kicrocontrolador P1C16F84 #1 PINES UTILIZADOS Barrido de 4 displays _ t c Manejo , ™ RAO,RA1 de datos para los dispíays • Manejo del Teclado » EBOJRB1,KB2JSB3,RB4^B5,RB6,RB7 " -* "" : RBO,KB1,RB2,RB3,RB4,RB5,RB6,BB7 •Decepción serial RS232" " . RA4 . Transmisión serial BS232 ~ : _ KA2 Transmíslóa serial liacia el otro imcrocontrofador ^ f RA3 Total dcpines utilizados - -„ „ r ? - 13 Tabla 1 Tareas realizadas por el primer microcontrolador PIC16F84 A continuación se presenta el listado del programa residente en el microcontrolador #1 MICRO 1. ASM LISTP=16F84 include <pl 6f84.inc> ;Area de definición de etiquetas TempC TempD TempE PABuf PBBuf KeyFlag Keyhit DebnceOn noentry Debnce NewKey WBuffer StatBufTer OptionReg PCL el c2 tempor tempfre contador buffer bufíerout bandera equ equ equ equ equ equ h'Oc1 h'Od1 h'Oe1 equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ 0 1 2 3 h'121 h'131 h'141 h'15! 1 2 h'16! h'171 h'181 h'191 h'la1 h'lb1 h'lc1 h'ld' Freddy R. Pérez J. h'Of h'10' h'ir c3 c4 Lsdl Lsd2 Msd3 Msd4 Lsdlf Lsd2f Msd3f Msd4f Lsdlml Lsd2ml MsdSml Msd4ml Lsdlm2 Lsd2m2 Msd3m2 Msd4m2 Lsdlp Lsd2p Msd4p cente dece mulplr mulcnd L_b3^te H_byte tempsud equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ h'le1 h'lf h'201 h!21! h'221 h'231 h'241 h'251 h'261 h'271 h'28! h'291 h'2a' h'2b' h'2c' h'2d' h'2e' h'2f h'301 h'311 h'32' h'33' 1V341 h'351 h'361 h'371 h'381 h'391 h'3a' MICRO1.ASM tempsuc temp uní MsdScomp Lsdlcomp Lsd2comp msd3g Isd2g Isdlg aaa bbb resp resi tipo bandera2 equ equ equ equ ri'3b' h'3c' h'3d' h'3e' equ equ equ equ equ equ equ equ equ equ equ h'401 h'411 h'42' h'431 h'44' h'45' h'461 hl47' h'48l h'49' clrf clrf clrf movl^' movwf clrf h'3f movlw ; Aiea de definiciones de macxos miút MAGRO bit btísc mulplr,bit addwf H_byte,l uf H_byte,l nf L_byte,l ENDM pop clrf clrf clrf Msd4f bandera Lsdlml Lsd2ml Msd3ml movlw movwf clrf clrf clrf h'd1 Msd4ml Lsdlm2 Lsd2m2 Msd3na2 movlw mowi'f clrf clrf clrf clrf clrf bsf cali h'c1 Msd4m2 Lsdlp Lsd2p Msd3p Msd4p tempor resex trans btfsc cali cali KeyFlag}Sen7Key SenáceKey retardo prueba 1 loop clrf #define RXserie PORTA,4 #defíne TXserie PORTA,3 #deñne TXseriel PORTAD #defíne resex bandera2,0 push Lsd2 Msd3 Lsdlf d'29' Lsd2f Msd3f loop macro swapf StatBuffer?W movwf STATUS swapf WBuffer,W endm ;Inicio del programa org O goto Start ;retardo de 5ms para barrido de displays retardo movlw d'100' - movwf el sal í 4 movlw mov^yf decfsz goto decfsz goto return h'7' c2 cl?F sal c2,F sal bsf movlw movwf clrf bcf bsf clrf bsf STATUS;RPO b'OOO 10000' TRISA TRISE STATUS;RPO PORTA,3 PORTB PORTAD INTERUP InitPorts Start raovlw movwf cali cali movhv mOA^-f clrf h'31 PCLATH InitPorts InitTimers b'000010101 Msd4 Lsdl Freddjr R. Pérez J. MICRO1.ASM bsf clrf bsf retara InitTimers clrf clrf clrf clrf clrf bsf movlw movwf bcf movlw movwf movlw movwf retñe PORTA,! tempfre tempfre,3 Msd3 Msd4 Lsdl Lsd2 KeyFlag STATUS,RPO B'101110001 OptionReg STATUS,RPO B'101000001 INTCON h'ff TMRO prueba 1 push cali Servicelnterrupts pop retfie Senácelnterrupts goto ServiceTMRO return SenaceTMRO btfsc tempfre}0 cali ScanKeys cali UpdateDisplay return ScanKeys btfss KeyFlag;DebnceOn goto Scanl decfsz Debnce, F return bcf KeyFla:.g,DebnceOn return Scanl cali SavePorts B'momr movlw TempD movwf ScanNext moví PORTB;W bcf INTCONSRBIF rrf TempD, F btfss STATUS;C gotoNoKey TempD,W moví movwf PORTB nop Freddy R. Pérez J. btfss goto btfsc goto bsf swapf movwf cali movwf bsf bsf movlw rnovwf SKreturn cali return INTCON,RBIF ScanNext KeyFlag5ke3rhit Skreturn KeyFlag,keyhit PORTB,W TempE GetKeyValue NewKey KeyFlag,ServKe3r Ke}'Flag,DebnceOn 4 Debnce RestorePorts NoKey bcf KeyFlag,keyhit goto SKrel"urn GetKeyValue clrf TempC TempD,3 btfss goto RowValEnd TempC, F incf TempD,2 btfss RowValEnd goto incf TempC. F TempD, 1 btfss goto RowValEnd incf TempC, F RowValEnd btfss TempE,0 GetValCom goto TempE, 1 btfss goto Get4567 TempE,2 btfss goto Get89ab Getcdef TempQ2 bsf Get89ab TempC,3 bsf goto GetValCom Get4567 TempC;2 bsf goto GetValCom SavePorts moví PORTA^W PABuf movf PORTB,W PBBuf movlw Oxff movwf PORTB bsf STATUS;RPO bcf OptionReg,? movlw B'l 1110000' mov^í TRISB bcf STATUS,RPO MICROl.ASM retum RestorePorts moví PBBuf,W movwf PORTB movf PABuf;W movwf PORTA bsf STATUS,RPO bsf OptionReg,? clrf TRISB bcf STATUS,RPO return UpdateDispla}' bcf PORTADO bcf PORTA,! movfw tempfre movwf TempC bsf TempC,4 rrf TempC,F btfss STATUS.C bcf TempC,3 btfsc TempC,0 goto UpdateMsd btfsc TempC,! goto Update3 rdLsd btfsc TempC,2 goto Update2ndLsd UpdateLsd movf LsdlfW goto DisplayOut Update2ndLsd movf Lsd2,W goto DisplayOut UpdateSrdLsd movf Msd3,W goto DisplayOut UpdateMsd movf Msd4,W DisplayOut cali LedTable movwf PORTB movf TempC, W btfsc TempQO goto UpdateMsdmx btfsc TempC, 1 goto UpdateSrdLsdrnx btfsc TempQ2 goto Update2ndLsdrnx PORTA,0 bcf PORTA,! bcf tempfre clrf tempfre, 3 bsf goto DisplayOutmx UpdateMsdmx bsf bsf clrf bsf PORTADO PORTA,! tempfre tempfre,0 FreddyR. Pérez J. goto DisplayOutmx Update3 rdLsdmx bcf PORTAD bsf PORTA,! clrf tempfre bsf tempfre, 1 goto DisplayOutmx Update2ndLsdmx bsf PORTA,0 PORTA,! bcf tempfre clrf tempfre,2 bsf goto DisplayOutmx DisplayOutmx return SenaceKey movf NewKey,W movwJe TempE xorlw h'Oa' btfsc STATUS32 iguala goto movf NewKey.W xorlw h'Ob' btfsc STATUS,2 igualb goto movf NewKey,W xorlw h'Oc1 btfsc STATUS,2 iguale goto movf NewKey.W xorlw h'Od1 btfsc STATUS,2 goto iguald movf NewKey.W xorlw h'Oe' btfsc STATUS,2 iguale goto movf NewKey,W xorlw h'Of btfsc STATUS,2 goto igualf movfn ,' Msd4 xorlw h'Oa1 btfsc STATUS,2 termino goto btfsc goto btfsc cali bandera, 2 ence bandera,3 encepun bcf KeyFlag, ServKey termino MICROl.ASM return encepuni bsf return bandera,2 clrf clrf movfw movwf bcf bcf goto Lsd2 Msd3 NewKey Lsdl bandera,2 banderas termino movlw movwf clrf clrf clrf bsf cali goto IVa1 Msd4 Lsdl Lsd2 Msd3 bandera,2 trans termino movlw movwf movfw movwf movfw movwf movfw movwf bsf goto Msd4 Msd3f Msd3 Lsd2f Lsd2 Lsdlf Lsdl bandera,2 termino ence xorlw btfsc goto goto igualbpunto iguala movlw h'c1 mOVWf Msd4 movfw Msd3m2 movwf Msd3 movfw Lsd2m2 movwf Lsd2 movfw Lsdlm2 movwf Lsdl bandera^ bsf termino goto iguald movlw movwf movfw movwf rnovfw movwf movfw movwf bsf goto h'd1 Msd4 Msd3ml Msd3 Lsd2ml Lsd2 Lsdlml Lsdl bandera, 2 termino iguale Msd4 R. Pérez J. btfsc goto btfsc goto movfw addlw movwf bsf goto bandera,2 fínter bandera,3 termino Lsdl d'29' Lsdl bandera,3 tenníno movlw addlw movwf movlw movwf movlw movwf bsf bcf goto d'O' d'291 Lsdl d'O1 Msd3 d'O' Lsd2 bandera,3 bandera,2 termino movf\Ar movwf rnovf movwf xorlw btfsc goto rnovf xorlw btfsc goto mo\^f xorlw btfsc goto movf xorlw btfsc goto movf xorlw btfsc goto movf xorlw btfsc goto goto Msd4 tempor tempor3W TempE li'Oa1 STATUS,2 igualaguar tempor, W h'Ob1 STATUS,2 igualbguar tempor.W ri'Oc1 STATUS}2 igualcguar tempor.W h'Od' STATUS,2 Igualdguar tempor,W h'Oe1 STATUS;2 igualeguar tempor,W h'Of STATUS,2 igualfguar termino JSnter igualb iguale tempor h'Ob' STATUS,2 igualbpunto termino igualf igualaguar cali trans MICROl.ASM goto igualbguar btfss goto goto termino bandera,3 rotpun norotpun rotpun Msd3 Msd3comp Lsd2 Lsd2comp Lsdl Lsdlcomp comparar 1 bandera, 1 sicambbl nocambb sicambbl niovfw mo'NTvf movfw addlw movwf movlw movwf goto norotpun movlw sutwf btfss goto cali fred movfw movwf movlw subwf movwf movfvv movwf cali btfss goto goto Lsd2 Msd3 Lsdl d'29T Lsd2 d'O1 Lsdl norotpun d'10' Lsdl,0 STATUS,0 fred Is Msd3 Msd3comp d'29' Lsd230 Lsd2comp Lsdl Lsdlcomp comparar bandera, 1 sicambb nocambb Is movfw movwf movfw movwf movlw movwf return Lsd2 Msd3 Lsdl Lsd2 d'O' Lsdl sicambb Freddy R. Pérez J. movfw Msd4 Msd4f Msd3 movwf Msd3f movfn7 Lsd2 Lsd2f Lsdl Lsdlf bandera>2 trans termino nocambb Msd4f Msd4 Msd3f Msd3 Lsd2f Lsd2 Lsdlf Lsdl bandera,2 trans termino igualcguar movfw Msd3 Msd3comp movfvv Lsd2 movwf Lsd2comp movfn'' Lsdl movwf Lsdlcomp cali comparar btfss bandera, 1 goto sicambc goto nocambc sicambc Msd4 Msd4m2 Msd3 Msd3m2 Lsd2 Lsd2m2 Lsdl Lsdlm2 banderaJ2 trans termino nocambc movfw movwf movfw movwf movfw movwf movfw movwf bsf Msd4m2 Msd4 Msd3m2 Msd3 Lsd2m2 Lsd2 Lsdlin2 Lsdl bandera, 2 MICROl.ASM goto igualdguar movfw movwf movfw movwf movfvv movwf cali btfss goto goto termino Msd3 MsdScomp Lsd2 Lsd2comp Lsdl Lsdlcomp comparar bandera,! sicambd nocambd sicambd movfw movwf movfw movwf movfw movwf movfw movwf bsf cali goto Msd4 Msd4ml Msd3 Msd3ml Lsd2 Lsd2ml Lsdl Lsdlml bandera32 trans termino nocambd movfw movwf movfw movwf movfw movwf movfw movwf bsf goto Msd4ml Msd4 MsdSinl Msd3 Lsd2ml Lsd2 Lsdlml Lsdl bandera,2 termino comparar íf movfvv sublw btfsc goto goto V;** MsdSconip d'2' STATUS,0 mendcen nocambg mendcen movlw d'2' xorwf Msd3comp30 btfsc STATUS^ ig2dcen sicambg igOddec movlw xorwf btfsc goto goto d'O1 LsdlcompjO STATUS^ sicambg nocambg bcf return bandera, 1 sicambg nocambg bsf return comparar 1 movlw xorwf btfsc goto goto bandera, 1 d'O1 Msd3comp,0 STATUS,2 uno nocambgl uno movfw sublw btfsc goto goto Lsdlcomp d'21 STATUS,0 mendcenl nocambgl mendcenl movlw xorwf btfsc goto goto d'21 Lsd2comp,0 STATUS,2 ig2dcenl sicambgl ig2dcenl movlw xorwf btfsc goto goto d'O' Lsdlcomp}0 STATUS,2 sicambgl nocambgl sicambgl bcf return bandera. 1 nocambgl bsf return bandera, 1 trans »-- ig2dcen movlw xorwf btfsc goto goto d'O1 Lsd2conip,0 STATUS,2 igOddec nocambg Freddy R. Pérez J. movlw movwf cali movfw movwf d'2401 bufferout SERIAL^RUT Msd3f cente MICRO1.ASM inovlw d'291 subwf Lsd2f,0 dece Lsdlf movwf uní cali mulval mo'S'fw temp mov\vf bufíerout cali SERIAL_RUT movfw MsdSml movwf cents movfw Lsd2ml dece movfw Lsdlml movwf uní cali mulval mcn'fw temp bufíerout cali SERIAL_RUT movfw Msd3m2 inovwf cente movf\ Lsd2m2 dece movfw Lsdlm2 movwf uní cali mulval movfw temp bufferout cali SERIAL_RUT resex btfsc igualence goto movlw h'a1 xorwf STATUS,2 btfsc golo igualatrans movlw h'b1 xorwf Msd4,0 btfsc STATUSS2 goto igualbtrans movlw h'c! xorwf STATUS,2 btfsc igualctrans goto igualdtrans goto igualatrans rnovlw d'2041 bufferout cali SERIAL RUT retura igualbtrans movlw d'201! bufferout SERIAL RUT cali return igualctrans movlw d'2031 bufferout SERIAL RUT cali retum Fredd>r R. Pérez J. igualdtrans movlw movwf cali return igualence movlw mo'S'wf cali bcf return igualeguar goto iguaffguar goto d'2021 bufferout SERIAL_RUT d'2051 bufferout SERIALJRUT resex termino termino ;Transmisión serial SERIAL_RUT cali poní cali retardo2 cali ponO movlw d'91 mo'srwf contador cali retardo2 TXserial decfsz goto goto contador?F sigueserial fínserial sigueserial rrf skpc goto envioOserie ;enviolserie cali cali goto poní retardo2 TXserial bufferout.F envioOserie cali cali goto ponO retardo2 TXserial rrf cali cali return bufferout,F poní retardo2 btfss bcf bcf return bandera,? TXseriel TXserie btfss bsf bandera, 7 TXseriel fínserial ponO poní MICRO!. ASM bsf retan TXserie movlw movwf movlw movwf decfsz goto decfsz goto return d'181 c3 d'21 c4 c3,l reta2 c4,1 reta2 movlw movwf movlw movwf decfsz goto decfsz goto return d'135' c3 dT c4 c3,l retal c4,l retal movlw xorwf btfsc goto goto retardo2 reta2 continua iniciara4 aaa separar msdSg Msd3f Isd2g d'291 Lsd2f Isdlg Lsdlf retardo 1 retal ;Recepción serial RX serie bsf movlw movwf explora 1 cali btfsc retan nextbit cali Txserie d'9' contador retardo 1 RXserie retardo2 d'2401 buffer,0 STATUS.2 continua fi cali movwf cali movfw movwf movfw movwf movfw movwf iniciara4 aaa separar msdjg Msd3ml Isd2g Lsd2ml Isdlg Lsdlml cali iniciara4 aaa caU movfw movwf movf\~\ movwf movfw movwf separar msd3g Msd3m2 Isd2g Lsd2m2 Isdlg Lsdlm2 cali movwf movlw xorwf btfsc goto movlw xorwf btfsc goto movlw xorwf btfsc goto movlw xorwf btfsc goto movlw xorof btfsc iniciara4 tipo d'2011 tipo,0 STATUS,2 casof d'2021 tipo,0 STATUS,2 casoml d'2031 tipo?0 STATUS,2 casom2 d'2041 tipo;0 STATUS?2 casopiú d'205T tipo,0 STATUS,2 RXserial decfsz goto goto contador,? sigueRX fínRX setc brfss clrc JOCserie sigueRX rrf goto buffer,F nextbit fínRX btfss bsf RXserie bandera, 0 return ;Atención de Interrupciones ESTTERUP clrf buffer cali RX_serie movfw buffer Freddy R. Pérez J. MICRO1.ASM goto goto casoence tip movfw movwf movfw movwf mo-S'fw movwf movfw movwf bcf goto Msd4f Msd4 Msd3f Msd3 Lsd2f Lsd2 Lsdlf Lsdl resex tip movfw movwf movfw movwf movfw movwf movfw movwf bcf goto Msd4ml Msd4 Msd3ml Msd3 Lsd2inl Lsd2 clrf clrf clrf bsf goto bandera, 2 bandera,? trans bandera,? bcf INTCON,TOIF movlw h'fT movwf TMRO retfie casoml iniciara4 bcf movlw movwf esp bifes goto cali movfw retuní mulval movfw mov\vf movlw movwf cali movf\ movwf Lsdlml Lsdl resex tip casom2 Msd4m2 Msd4 Msd3m2 Msd3 Lsd2m2 Lsd2 Lsdlm2 Lsdl resex Üp movlw cali movfw movwf movfw casopul movlw movwf clrf clrf clrf bcf goto Lsdl Lsd2 Msd3 resex tip h'a1 Msd4 Lsdl Lsd2 Msd3 resex tip add\vf movwf retuní 1NTCONSTOIF h'fP TMRO esp RX_serie buffer dece mulplr d'10' mulcnd mpy__F L_b)te tempsud cente mulplr d'1001 mulcnd mpy_F L_byte tempsuc uní tempsud^O ternpsuc=0 temp separar casoence clrf clrf clrf cirf clrf clrf clrf clrf clrf movlw movwf d'100' bbb divicion Lsdlf Lsd2f MsdSf Lsdlml Lsd2ml Msd3ml Lsdlm2 Lsd2m2 Msd3m2 h'a' Msd4 Freddy R. Pérez I 10 MICROl.ASM movfw resi movwf Isdlg return retlw retlw retlw retlw retlw retlw retlw retlw divicion divi clrf clrf movfw subwf bifes goto goto resp resi bbb aaa,l STATUS,0 ponresi aumresp incf goto resp,l divi aumresp) ponresi movfw bbb addwf aaa,0 movwf resi return ;Multiplicación rnpyJF clrf H_byte clrf LJbyte movf mulcnd,W bcf STATUS,C mult O mult 1 mult 2 mult 3 mult 4 mult 5 mult 6 mult 7 retlw O org 3A9 ;Tabla para displays LedTable addwf PCL,F retlw B'OOllllir retlw B'000001101 retlw B'010110111 retlw B'OIOOHH 1 retlw B'011001101 retlw B'01101101' ;0 ;1 ;2 ;3 ;4 ;5 retlw B'Olimor ;6 retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw reüw reüw ;7 ;8 ;9 ;P ;F ;C ;I ;C ;F ;A ;b ;C ;d B'OOOOOlll 1 B'Olimil 1 B'011001111 B'011100111 B'01110001' B'OOlllOOr B'00110000' B'OOlllOOr B'Ol 1100011 B'OHlOlir B'011111001 B'OOlllOOr B'OlOllllO 1 Freddy R. Pérez J, B'011110011 B'OlllOllO 1 B'00110000' B'001110001 B'010101001 B'010111001 B'01010000' B'OllOllOr ;E ;H ;I ;L ;n ;o ;r ;S retlw B'OmiOOO1 retlw B'OOlllllO 1 retlw B'lOllllir ;t ;u ;0. retlw retlw retlw retlw retlw B'10000110' B'110110111 B'llOOllir B'111001101 B'lllOllOl 1 ;1. ;2. ;3. ;4. ;5. retlw B'llimor retlw B'lOOOOlll 1 ;6. ;7. retlw B'llllllir retlw B1111001111 ;Tabla para teclado GetValCom movf TempC;W addwf PCL,F retlw 1 retlw 2 retlw 3 reüw Oa reüw 4 retlw 5 retlw 6 reüw Ob reüw 7 retlw 8 retlw 9 reüw Oc reüw Od reüw O reüw Oe retlw Of ;8. ;9. ;Final del programa end 11 MICROl.ASM Programa residente en el microcontrolador PIC16F84 #2 El microcontrolador #2 realiza las siuientes tareas. * nn A T»Tm A •TAREA __ '__ r \ - s- - ^ - : .Recepción serial ' / PENDES UTILIZADOS V J» EBO -Manejo del primer motor de pjisós Entrada de señal del sensor de posición RA4 freferencial del primer-motor dre gasos- Manejó del segundo motor de'pasos - " "-Entrada-de señal-del sensbríde posición.. referencia! del segundo motbrrdé~pasps 7 ~ , de salida de frecuencia- de pjnes-utilizados -^~ ™ ™ ~-& I' -: • RB3 "_*-£"=£• ^ r£ 12 Tabla 2 Tareas realizadas por el segundo microcontrolador PIC16F84 A continuación se presenta el listado del programa residente en el microcontrolador #2 MICR02.ASM LISTP=16F84 include <pl6f84.inc> ) ;Area de definición de etiquetas OptionReg bandera2 rO rl rlO rll el c2 contador buffer bufferout bandera equ equ equ equ equ equ equ equ equ equ equ equ Freddjr R. Pérez J. 1 OxOc h'Od' h'Oe1 h'Of IV 10' h'll1 h'121 h'131 h'14! h'151 h.'16T c3 c4 equ equ h'17! h'181 rnotl mor2 motla mot2a motlr mot2r tempor templ temp2 tempS temp4 frec equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ h'19T h'la1 h'lb1 h'lc1 li'ld1 h'le1 h'lf h'201 h'211 K'22' h'231 h'241 c5 c6 tiempo regfrec regf h'25f h'261 h'271 h'281 h'291 MICRO2.ASM regfd wserial wpulso tipo teinpo banderas equ equ equ equ equ equ h'2a' li'2b' h'2c' h'2d' cali ponerml btfss enm2e goto pfen PORTE,! btfsc goto m2encerado movlw d'21 movwf moí2 bsf mme bsf mm2e cali m2 cali ponerm2 mmrnm'1 Me1 h'2f #defíne RXserie PORTB,0 ^define TXserie PORTB,2 #defme piúso PORTB,3 #define ene bandera2,0 #defme enmle bandera2,1 #defíne enm2e bandera2,2 #define mme bandera2,3 #defme mmle bandera2,4 #defíne mm2e bandera2,5 #defíne mmlh bandera2,6 ^define mm2h bandera2;7 #defme resex banderas,O pfen cali btfsc goto btfsc goto goto ;Inicio del programa org O goto Start org 4 goto INTEKÜP Start cali InitPorts cali MtTimers movlw d'l! movwf motl movlw d'l1 mot2 movlw b'110011001 movwf rO movlw b'11001100' rl movlw b'llllllir movwf bandera2 retardo enmle encerar enm2e encerar finen mlencerado clrf clrf bcf goto motla PORTA enmle pfen m2 encerado clrf clrf bcf goto mot2a PORTE enrn2e pfen finen bcf bcf bcf clrf clrf clrf clrf bcf bcf enmle enm2e ene motla mot2a PORTA PORTE mme resex btfsc goto btfss goto cali goto resex sires mme loop motores loop movfvv movwf movfw movwf btfss goto cali cali motl rlO mot2 rll mme finmot ponerl mi sires bsf bsf bsf cali ene loop enmle enm2e poner encerar bsf bsf btfss goto btfsc goto movlw movwf bsf bsf cali mmlh mrn2h enmle mrnmm2 PORTAD mlencerado d'21 rnotl mme motores mm mmle mi Freddy R. Pérez J. 2 MCRO2.ASM cali cali golo nr2 poner mm mi movfw andlw movwf movfw andlw iorwf movwf PORTA b'll 110000' tempor rO b'OOOOllll' ternpor}0 PORTA mlO movfw andlw movwf movfw andlw iorwf movwf cali return PORTE b'OOOOllll 1 tempor m!2 rl mil poner m2 b'11110000' tempor^O PORTO retardo rn!3 PORTA b'11110000' tempor rO b'OOOOllir tempor,0 PORTA PORTE b'OOOOllll' tempor rl b'111100001 tenipor,0 movwf PORTE return bcf bcf btfss bcf return movmlh btfss goto goto hora uno cero tres mmle motl,l mlO mil movmlh btfss ram2e retum decfsz mot2,l goto m!2 goto m!3 cali movm2h retum btfss bcf return ponerml movfw andlw movwf movfw andlw iorwf movwf retara ponerm2I movfw andlw movwf movfw andlw blfss return decfsz goto goto cali return mmle mm2e mane mm2e mmle mine mmlh hora antihora btfsc goto goto bsf goto bcf rrf cali return rO,0 uno cero STATUS,C tres STATUS,C rO,l incmla btfsc goto goto bsf goto bcf rlf cali return rO,7 unol cerol STATUS,C tresl STATUS,C rO,l decmla btfss goto goto mm2h hora2 antihora2 btfsc rl,0 antihora ponerl movfw andlw movwf movfw andlw ior^í movwf PORTA b'111100001 tempor rO b'OOOOllll' tempor,0 PORTA movfw andlw movwf movíw andlw iorwf movwf return PORTE b'OOOOllll 1 tempor rl b'11110000' tempor?0 PORTE unol cerol tresl hora2 Freddy R. Pérez J. MTCRO2.ASM uno2 cero2 tres2 goto goto bsf goto bcf rrf cali retum uno2 cero2 STATUS,C tres2 STATUS,C rl,l incm2a decm2a ig4 antiliora2 btfsc goto goto uno3 bsf goto cero3 bcf tres3 rlf cali return rl,7 uno3 cero3 STATÜS,C tres3 STATUS,C decf movhv xor^f btfsc goto return movlw nxmvf return mot2a,l d'255' mot2a,0 STATUS,2 ig4 movlw movwf movlw movwf decfsz d'120' el d'321 c2 cl;F retardo rl.l decm2a d'199' mot2a sal finmot cali cali clrf clrf bcf return retardo poner PORTA PORTB mme incmla niotla,! incf movlw d'2001 motl^O btfsc STATUS,2 goto ig return movlw d'O' movwf motla return incm2a d'O1 mot2a decmla decf rnotla,! movlw d'255T motla,0 btfsc STATUS,2 goto return movlw movwf return Fredd)' R. Pérez J. return retardofrec movlw mo^vf movlw mov^vf salfirec decfsz goto decfsz goto return d'120' c5 h'7' c6 c5,F salfrec c6,F salfrec InitPorts bsf STATUS,KPO movlw b'000100001 movwf TRISA movlw b'OOOOOOll 1 mov\vf TRISB bcf STATUS,RPO clrf PORTA clrf PORTB movlw h'3' movwf PCLATH return InitTimers bsf STATUS.RPO movlw B'lOOOOlll 1 moAr\A'f OptionReg bcf STATUS?RPO movlw B' 10010000' mov\vf INTCON retfie ;Atención a interrupciones INTERUP MICRO2.ASM btfsc goto btfsc goto retfíe bcf bsf goto frec,0 STATUS,2 freccero h'21 PCLATH frec frectabla tiempo TMRO h'31 PCLATH frec regtabla regfd regf INTCON/rOIF INTCON;TOIE finpreg bcf bcf goto INTCONfTOIF rNTCONsTOIE finpreg bcf bcf INTCON,TOIF INTCON,TOIE movfw xorwf btfsc goto movfw subwf btfss goto goto motlr rnotla,0 STATUS,2 finpreg motlr motla,0 STATUS,0 mayorml menorml xorwf btfsc goto movlw movwf movfw cali INTCON,INTF externa INTCON,TOIF genfrec externa movwf wserial clrf buffer cali RXjserie movfw buffer movwf tempo movlw d'2401 xorwf tempOjO btfsc STATUS,2 goto contüiuarreci goto finpreg movlw movwf movfw cali movwf continuarreci frecceroI cali movwf cali movwf cali movwf cali movwf movlw xorwf btfsc goto movlw xorwf btfsc goto movlw xorwf btfsc goto movlw xorwf btfsc goto movlw xorwf btfsc goto goto iiüciara4 frec iniciara4 mot2r iniciara4 motlr miciara4 tipo d'2011 tipo.O STATUS.2 casof d'2021 tiposO STATUS,2 casom2 d'2031 tipo,0 STATÜS.2 casoml d'204T tipo,0 STATUSS2 casopul d'205! tipo,0 STATUS,2 casoence finpreg bsf cali bcf bcf bcf goto pulso retardofrec pulso INTCON?TOIF 1KTCON,TOIE fínpreg casoml pregral mayorml movfw motla subwf motlr,0 movwf templ movlw subwf btfss goto goto d'1001 templ?0 STATUS,0 men may may casopul casof movlw d'O1 Fredd}' R. Pérez J. movlw d'2001 temp2 templ subwf temp2,0 addlw d'l1 moArurf motl bsf mmlh bsf mme bsf mmle MICRO2.ASM goto fínpreg mayorm2 raen movfw templ addlw d'l' niovwf motl bcf mmlh mme bsf mmle bsf goto fínpreg v subwf movwf movlw subwf btfss goto goto mot2a mot2rI0 temp3 d'100' temp3,0 STATUS50 men3 ma)'3 movlw movwf movfw subwf addlw rnovwf bsf bsf bsf goto d'2001 temp4 íempS temp4,0 d'l1 mot2 mm2h mme mm2e fínpreg movfw addlw mo'S'wf bcf bsf bsf goto tempS d'l1 niot2 mm7h mme mm2e fínpreg may3 menonnl movfw subwf movwf movlw subwf btfss goto goto mayl movlw motlr motla?0 templ d'1001 templ,0 STATUS,0 menl mayl d'200' temp2 movfw templ subwf temp2,0 addlw d'l' movwf motl bcf mmlh bsf mme bsf mmle goto fínpreg menl movfw templ addlw d'l' movwf motl mmlh bsf bsf mme bsf mmle goto fínpreg men3 menorm2 movfw subwf movwf movlw subwf btfss goto goto mot2r mot2a,0 temp4 d'1001 temp4,0 STATUS?0 men4 ma)4 fínpreg bcf INTCON.INIF movfw wserial retfíe movlw d'200T temp3 temp4 subwf temp3?0 addlw d'l1 mot2 bcf mm2h bsf mine bsf mm2e goto fínpreg casom2 bcf bcf INTCON5TOIF INTCON/TOIE movfw xorwf btfsc goto movfw subwf btfss goto goto mot2r mot2a,0 STATUS,2 finpreg mot2r mot2a,0 STATUS,0 mayorm2 menorm2 pregm2 Fredd}f R. Pérez J. men4 addlw mo^Af bsf bsf bsf temp4 dT mot2 mm2h mme mm2e MICR02.ASM goto casoence bsf bcf bcf goto iniciara4 bcf esp btfss goto cali movfw retum fínpreg resex INTCON,TOIF INTCON,TOIE fínpreg INTCON,INTF INTCON,INTF esp RX_serie buffer sigueserial rrf skpc goto ;enviolserie bsf cali goto bufferout;F eavioOserie TXserie retardo2 TXserial envioOserie bcf cali goto TXserie retardo2 TXserial rrf bsf cali return bufferoutjF Txserie retardo2 movlw movwf movlw movwf decfsz goto decfsz goto return d'181 c3 d'21 c4 c3,l reta2 c4,l reta2 fínserial genfrec movwf bcf bsf decfsz goto goto wpulso INTCON;TOIF INTCON,Gffi regfd,! cont ence retardo2 cont bcf INTCON/TOIF bsf USÍTCON/TOIE movfw wpulso retfie reta2 bsf cali bcf movíw movwf movfw movwf bcf bsf movfu7 retfie retardo 1 movlw d'135l mov^vf c3 movlw d'l1 movwf c4 retal decfsz c33l goto retal decfsz c4;l goto retal return ;Recepción serial RX_serie movlw d'91 movwf contador explora 1 cali retardo 1 btfsc RXserie return ence pulso retardofrec pulso tiempo TMRO regf regfd INTCON/TOIF INTCON,TOIE wpulso ¡Transmisión serial SERIAL RUT bsf cali bcf movlw movwf cali TXserie retardo2 TXserie d'91 contador retardo2 TXserial decfsz goto goto contador,F sigueserial fínserial Fredd}' R. Pérez J. nextbit cali RXserial decfsz goto goto retardo2 contador?F sigueRX finRX MICRO2.ASM sigueRX setc btfss clrc rrf goto RXserie burTer?F nextbit fínRX btfss bsf return RXserie banderado ;Tabla para cargarse en el registro del TIMER org 234 frectabla addwf PCL,F reüw d'1251 ;0 reüw d'1251 ;.l reüw d'2001 ;.2 ;.3 reüw d'541 retlw d'237 ;.4 rethv d'1431 ;.5 reüw d'1651 reüw d'71' rethv d'O' rethv d'31' retlw d'209' ;1 rethv d'52T retlw d'921 retlw d'86' retiw d'451 retlw d'2311 rethv d'1381 retlw d'251 retlw d'1531 rethv d'll' retiw d'114' ;2 reüw d'207 retiw d'35' rethv d'113' reüw d'183! retlw d'249' retiw d'53' rethv d'1081 retiw d'1601 rethv d'2081 retlw d'253! ;3 retlw d'3 9' retiw d'78' reüw d'115' retlw d'1501 rethv d'183! retiw d'214' retiw d'243' retlw d'151 retiw d'411 ;4 rethv d'66' rethv d'901 rethv d'1131 rethv d'1351 Fredd3r R. Pérez J. retiw reüw reüw retlw retlw retlw retlw retlw retlw reüw reüw retlw reüw reüw retiw retiw retiw reüw reüw reüw retlw retlw retlw retlw retiw retiw retlw retlw retlw retiw retiw reüw retlw reüw retiw retiw reüw retlw reüw reüw retiw retlw reüw rethv retlw reüw retiw retlw retlw retlw retlw retlw retlw retlw retlw retiw reüw retiw reüw retlw d'1551 d'1751 d'194! d'212' d'229' d'246' d'6! d'21' d'361 d'50' d'64' d'771 d'89' d'102' d'114' d'125T d'1361 d'147 d'157' d'167* d'177 d'1861 d'1951 d'204' d'2131 d'221' d'229' d'237 d'244' d'2521 d'3' d'101 d'171 d'241 d'30! d'37 d'43' d'49' d'551 d'60' d'66' d'711 d'771 d'82T d'871 d'921 d'97 d'102' d'106' d'lll1 d'1151 d'120T d'1241 d'1281 d'1321 d'1361 d'1401 d'1441 d'1481 d'1521 MICRO2.ASM rethv retlw rethv rethv rethv rethv retlw retlw rethv retlw retlw rethv rethv rethv retlw rethv retlw retlw rethv rethv rethv retlw rethv retlw retlw retlw retiw retlw retlw retlw rethv retlw rethv reílw rethv retlw retlw rethv rethv rethv retlw retlw retlw rethv retlw rethv rethv retlw retlw rethv retlw retlw retlw retlw retlw retlw rethv rethv retlw retlw d'155! d'1591 d'163! d'166T d'169' d'1731 d'1761 d'1791 d'182' d'1851 d'1881 d'1911 d'1941 d'197' d'2001 d'203' d'206' d'208! d'211! d'2131 d'216' d'2191 d'2211 d'2231 d'226! d'2281 d'2311 d'2331 d'235T d'237! d'2401 d'2421 d'2441 d'246' d'2481 d'2501 d'252' d'254! d'O' d'2T d'41 d'61 d'7 d'9' d'll1 d'13! d'151 d'16' d'18' d'201 d'211 d'231 d'25' d'261 d'28! d'291 d'311 d'321 d'34' d'35' Freddy R. Pérez J. retlw rethv rethv rethv retlw retlw rethv retlw rethv rethv retlw rethv retlw retlw retlw rethv retlw rethv retlw retlw rethv rethv retlw retlw retlw retlw rethv rethv retlw retlw rethv rethv retlw retlw retlw retlw retlw d'371 d'38! d'40' d'411 d'431 d'441 d'45' d'47! d'48' d'49' d'51! d'521 d'531 d'54' d'56! d'57' d'58' d'591 d'601 d'621 d'631 d'64' d'651 d'66' d'671 d'681 d'69f d'71' d'72! d'731 d'741 d'751 d'76! d'771 d'781 d'79' d'801 ;20 ;Tabla para cargarse en el registro adicional ;para generación de rrecuencia de disparo org 300 regtábla addwf PCL5F rethv d'1531 ;0 d'153! retlw rethv d'771 rethv d'511 retlw d'391 rethv d'311 d'26' rethv d'22! retlw retlw d'191 rethv d'lTrethv d'16' ;1 d'14! retlw d'131 retlw rethv d'121 d'll1 retlw retlw d'll 1 d'10' rethv MICRO2.ASM ^^^^ ^ ^ ^ ^ ^ ^ ^ ^ ^ r r t O u