PROBLEMA DE INGENIERÍA

Tamaño: px
Comenzar la demostración a partir de la página:

Download "PROBLEMA DE INGENIERÍA"

Transcripción

1 UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL SAN NICOLAS INGENIERIA EN ELECTRONICA PROBLEMA DE INGENIERÍA TECNICAS DIGITALES III MANDO A DISTANCIA PARA PC Integrantes: Docentes: - Buxman Jorge A. - De Nicoló Lisandro. - Gallina Luciano. - Profesor: Poblete Felipe - Auxiliar: González Mariano AÑO 2007

2 INDICE OBJETIVOS DEL TRABAJO 3 MATERIAS INTEGRADAS... 3 POSIBLES APLICACIONES... 3 PROFESORES ENTREVISTADOS...3 BIBLIOGRAFÍA...3 DESARROLLO 4 INTRODUCCIÓN...4 TEORIA DE FUNCIONAMIENTO...4 EL ENLACE INFRARROJO...4 RECEPCION DE INFRARROJO...6 PROTOCOLO DE PHILIPS RC EL URC SBC-RU-240/38 DE PHILIPS...12 ESTANDAR RS DIAGRAMAS Y CIRCUITOS PRIMER INTENTO...15 RECEPTOR...16 EL CODIGO FUENTE DEL PIC16F84A...19 ESTRUCTURA DE UN PROGRAMA WINDOWS GUI...20 Parámetros de entrada de "WinMain"...22 Función WinMain típica...23 Declaración...24 Inicialización...24 Bucle de mensajes...24 El procedimiento de ventana Sintaxis...25 Prototipo de procedimiento de ventana...26 Implementación del procedimiento de ventana simple...26 RESULTADOS DE LAS PRUEBAS...27 CONCLUSIONES 29 ANEXOS 33 Anexo A: LISTADO DE PROGRAMAS...33 Código fuente para el PIC16F84A:...33 Código fuente para la PC:...41 Anexo B: Sitios en la WEB...57 Anexo C: GL3276A-datasheets (no incluído en este documento)...57 Anexo D: MAX232-datasheets (no incluído en este documento)

3 OBJETIVOS DEL TRABAJO Lograr el manejo o accionamiento de los comandos básicos de programas multimedia en plena reproducción mediante un mando a distancia enlazado con la PC a través de un enlace de señal infrarroja. La implementación requiere de la utilización de un control remoto comercial del tipo universal o cualquier otro control remoto de cualquier equipo en desuso (Equipo de audio o Tv, etc.). MATERIAS INTEGRADAS Informática I y II. Técnicas digitales I, II, y III. Física II y III. POSIBLES APLICACIONES Implementación de control sobre archivos multimedia en plena reproducción logrando una mayor comodidad, ya sean de audio o video. PROFESORES ENTREVISTADOS Ramiro Vota (Interfaz RS-232 en Windows XP). Mariano Gonzales (Ídem). BIBLIOGRAFÍA Turbo C/C++ Manual de referencia-herbert Schildt (serie McGary-Hill de Informática). Programación Elemental en C++ Manual de Referencia Abreviado revisión 1.2 (Universidad de Málaga Dpto. de Ing. Informática) Programación en C Metodología, algoritmos y estructura de datos.-luis Joyanes Aguilar / Ignacio Zahonero Martínez. Protocolo Philips RC-5 para control remoto descripción por Eduardo J. Carletti (Comunicacion_protocolorc5.htm). RS-232 Ingeniería en microcontroladores Ing. Eric López Pérez. Hojas de datos de los sistemas involucrados (apéndices). Organización de las computadoras-un enfoque estructurado-andrew S. Tanembaum. Diversos sitios web (ver al final de este informe). 3

4 DESARROLLO INTRODUCCIÓN Probablemente los botones más frecuentemente pulsados en cualquier casa son los del mando a distancia de la televisión, y es que actualmente el control remoto de aparatos electrónicos es algo habitual. Resulta evidente que los mandos por infrarrojos han sido una revolución. Por otra parte, es indudable que la presencia de ordenadores personales en hogares y oficinas, que duplican su capacidad a velocidades vertiginosas, facilita la extensa tarea en las diversas actividades que realiza el ser humano. La tendencia actual es optimizar el ordenador al máximo. Por todo ello, por qué no aplicar las comodidades del control remoto al ordenador?. Se pretende recibir la información enviada desde un emisor de infrarrojos, que será un mando a distancia convencional, procesar esa información y enviarla vía RS-232 a un ordenador personal. La información extraída del mando es una serie de pulsos que, en principio, no sirve de nada si no se procesa adecuadamente. Para llevar a cabo este proceso se utiliza un PIC modelo 16F84A de Microchip, que es un pequeño microcontrolador de 18 pines. Dicho PIC dispone de un entorno de desarrollo para la confección del programa que ejecutará y se encargará de procesar convenientemente la trama recibida del IR, obteniéndose así otra trama de ceros y unos que ahora sí es comprensible por cualquier sistema (palabra digital de 6 bits). Finalmente, como esta información se desea transmitir vía serie siguiendo el estándar RS-232, se utilizará un integrado comercial (MAX232) que adecua los niveles de la trama extraída por el PIC (trama TTL) a los requeridos por la norma. Importante señalar que el PIC ya se ha encargado de añadir los bits de STOP y START a cada una de las palabras digitales, no utilizándose control de flujo hardware. Se emplea como emisor un mando a distancia universal al que se le ha programado el código 033 correspondiente a los mandos PHILIPS (RC-05). TEORIA DE FUNCIONAMIENTO EL ENLACE INFRARROJO Un enlace infrarrojo consiste en una comunicación vía señalización lumínica. La luz infrarroja no es más que una onda electromagnética como las de radio (claro es, que se trata de una frecuencia muy diferente) y como las del resto de las ondas que constituyen el espectro de luz visible (desde el infrarrojo hasta el ultravioleta). El nombre de luz infrarroja, que significa por debajo del rojo, proviene de la primera vez que fue observada al dividir la luz solar en diferentes colores por medio de un prisma que separaba la luz en su espectro de manera que a ambos extremos aparecen visibles, las componentes del rojo al violeta (en ambos extremos). 4

5 Aunque estas experiencias habían sido realizadas anteriormente por Isaac Newton, William Herschel observó en el año 1800 que se recibía radiación debajo del rojo al situar medidores de calor en las diferentes zonas no visiblemente irradiadas por el espectro. Imagen de un perro tomada con radiación infrarroja media («térmica») y coloreada: Su longitud de onda es del orden de los 700 nano-metros: 5

6 Y su frecuencia: Todos estos parámetros son característicos de cualquier tipo de onda: RECEPCION DE INFRARROJO Todos los dispositivos semiconductores son sensibles a la luz (a todo tipo de luz), de hecho este es el principal factor que determina el encapsulado de los chips: un plástico completamente opaco, normalmente negro. Un sensor de infrarrojos está construido básicamente por una unión semiconductora recubierta por un cristal que sólo deja pasar la luz infrarroja (photodiodo). Un sensor de infrarrojos construido de esa forma será capaz de detectar la presencia de cualquier luz infrarroja, independientemente de la fuente que la genere. Los diseñadores de mandos a distancia tuvieron que añadir una característica diferenciadora a la luz emitida desde un mando a distancia para hacerla distinguible del resto de fuentes luminosas. La señal emitida por un mando está modulada a una frecuencia entre 32 y 40 KHz, dependiendo del fabricante y modelo del mando a distancia. No tenemos que perder de vista que todo lo que se haga para emitir la señal, luego durante la recepción se tendrá que deshacer. Si se emite luz infrarroja, luego se tendrá que recibir; si esta señal se modula con una portadora luego se tendrá que eliminar (filtrar) esa portadora. La demodulación se realiza analógicamente con un sencillo filtro paso banda (eliminar todas las frecuencias que no sean próximas a la frecuencia de emisión) junto con un rectificador/integrador. 6

7 Una onda modulada es una forma de onda obtenida mediante una operación matemática implementada a través de circuitos electrónicos y en la que intervienen la señal que se quiere transmitir (moduladora) y al onda portadora. Esta onda portadora es de una frecuencia mucho más alta que la de la señal moduladora (la señal que contiene la información a transmitir). Al modular una señal desplazamos su contenido espectral en frecuencia, ocupando un cierto ancho de banda alrededor de la frecuencia de la onda portadora (f 0 ). Esto nos permite multiplexar en frecuencia varias señales simplemente utilizando diferentes ondas portadoras y conseguir así un uso más eficiente del espectro de frecuencias. Luz infrarroja modulada a una frecuencia de 36 KHz (para nuestro caso de RC-05), es el medio de comunicación entre el emisor (mando a distancia) y el receptor (PIC16F84A). Ahora queda por determinar cómo se transmite la información, esto es, los bits que identifican la tecla del mando a distancia que se ha pulsado, pero esto se detallara en el apartado del protocolo RC-05. Para la realización de la tarea de recibir el dato empleamos un circuito integrado comercial estándar cuyas especificaciones se pueden consultar en el Anexo A (hoja de datos). Es el GL3276A el circuito mencionado y brevemente podemos decir que consta de los siguientes bloques funcionales: Características del integrado: Menor numero de errores asociados a la alta frecuencia emanada por luces fluorescentes (impulsos luminiscentes) mediante circuito trampa interna. Frecuencia de portadora (demodulación) preselecionable mediante resistencia instalada en el pin f 0 en un rango de 30 a 80 KHz. Margen de variación de f 0 reducido. Pocos elementos externos necesarios. Resistencias de pull-ups y filtros internas. Capacitores externos de capacidades bajas. Salida a colector abierto con resistencia de pull-up. 7

8 Este es un circuito integrado analógico diseñado especialmente para este tipo de aplicaciones, tanto es así que el fabricante nos aporta el circuito de aplicación típico que obviamente se consigue en cualquier tienda de electrónica completo dentro de una caja de chapa que hace a las veces de jaula de Faraday para disminuir el efecto de interferencias por ondas electromagnéticas. Como veremos a este se acopla directamente el photodiodo receptor y un conjunto mínimo de componentes de seteo y demás. Como se muestra en su diagrama de bloques consta en una primera instancia de un amplificador de entada, seguido de u limitador, un filtro pasa banda, un circuito detector y un acondicionador de forma de onda que va directo a la etapa de salida a colector abierto. El valor de R(f 0 ) lo encontramos mediante las curvas aportadas por el fabricante del circuito integrado. Para 36 KHz seria al rededor de 156 KΩ. 8

9 PROTOCOLO DE PHILIPS RC-05 Es evidente, dada la forma de modular la señal, que la información se transmite en serie, esto es, un bit detrás de otro, y por tanto sólo es necesario una línea (de datos) para recibirla. Descubramos un poco que es y como esta hecho el protocolo de Philips. El código RC-05 de Philips es, posiblemente, el protocolo más utilizado por los experimentadores, debido a la amplia disponibilidad de controles remotos baratos que se basan en él. Además, dentro de este protocolo hay comandos predefinidos para distintos artefactos, una característica que aporta una mayor compatibilidad al utilizarlo con muchos equipos hogareños. Philips ha comenzado a utilizar un nuevo protocolo, el RC-06, que tiene más capacidades. Características Dirección de 5 bit y comando de 6 bit (7 bits de comando para RC-05X) Codificación de doble fase o bi-fase (Bi-phase, también llamada código Manchester) Frecuencia de portadora de 36 KHz. Tiempo de bit constante de 1,778 ms (64 ciclos de 36 KHz.) Modulación El protocolo está basado en una modulación Manchester de doble fase sobre una portadora de 36 KHz. En esta codificación, todos los bits tienen la misma longitud, de 1,778 ms. La mitad del bit es un tren de pulsos de la portadora de 36 KHz., y en la otra mitad la señal está plana. El cero lógico es representado por un tren de pulsos en la primera mitad (primer nible) del tiempo que corresponde al bit. El uno lógico es representado por un tren de pulsos en la segunda mitad de este tiempo. La relación entre pulso y pausa en la portadora de 36 KHz. es de 1/3 o 1/4, lo que reduce el consumo de energía. Protocolo La imagen muestra un típico tren de pulsos en un mensaje RC-05. En este ejemplo se transmite la dirección $05 y el comando $35. Los dos primeros bits son los de inicio (start), que deben ser dos "1" lógicos. Nótese que transcurre medio tiempo de bit hasta que el receptor se entera de que ha comenzado el mensaje. 9

10 El protocolo RC-05 extendido (RC-05x) tiene un solo bit de inicio y este es en realidad el que utilizaremos pues es el que mas abunda aunque lo sigamos llamando RC-05. El tercer bit del protocolo RC-05, marcado como T en el dibujo, es el bit de conmutación (toggle). Este bit es invertido cada vez que se libera una tecla en el control remoto y se la presiona de nuevo o se presiona otra diferente. De esta manera el receptor puede distinguir entre una tecla que permanece presionada (mientras lo esté, el comando que le corresponde se repite indefinidamente en la señal) y una misma tecla a la que se la presiona varias veces. Para nuestra aplicación lo que haremos es que el PIC16f84A decodifique el mensaje enviado por el control remoto y envíe los datos a la PC mediante el puerto serie. Ya que hacemos esto, no es necesario pasarle a la PC toda la cadena, basta con que le pasemos el dato de comando para que la PC ejecute una tarea respectiva. Entonces el dato correspondiente al dispositivo que nos habla se lo queda el PIC para lograr el reconocimiento del mismo y así impedir leer mensajes de otros controles remotos circundantes. En la cadena que le pasamos a la PC haremos que, ya que nos sobran dos bis para completar el byte (6 bits de comando), el bit 6 (cadena 0~7 bits) de dicha cadena sea 1 lógico para informar no repetición de la tecla y 0 lógico para representar repetición de la tecla y así la PC pueda hacer alguna discriminación de ser necesario. El bit que sigue al bit T es el primero de la dirección del dispositivo receptor de infrarrojos (identificación de quien nos habla y por esto, obviamente, para quien es el mensaje), poniendo en primer lugar el bit más significativo de la dirección. A esta dirección le sigue el comando de 6 bits, también con su bit más significativo en primer lugar. Un mensaje, entonces, consiste de un total de 14 bits, que sumados dan una duración total del mensaje de 25 ms. A veces puede parecer que un mensaje es más corto debido a que la primera parte del bit de inicio S1 es inactiva. Mientras se mantenga presionada la tecla, el mensaje se repite cada 114 ms. El bit de conmutación mantendrá el mismo nivel lógico durante la repetición de un mensaje. Comandos predefinidos Philips ha creado una lista de comandos estandarizados. Esto asegura compatibilidad entre artefactos de un mismo tipo y evita que la tecla que cambia de canal en un televisor produzca al mismo tiempo algún efecto en una videocasetera que también esté allí, enfrente del control remoto. Una característica interesante es que la mayoría de los artefactos están representados dos veces, lo que permitiría tener dos videocaseteras juntas sin tener problemas para comandarlas por separado. 10

11 La lista que sigue no es exhaustiva. Dirección RC-5 Dispositivo Comando RC-5 Comando TV Comando VCR $00-0 TV1 $01-1 TV2 $02-2 Teletexto $03-3 Video $04-4 LV1 $05-5 VCR1 $06-6 VCR2 $07-7 Experimental $08-8 Sat1 $09-9 Cámara $0A - 10 Sat2 $0B - 11 $0C - 12 CDV $0D - 13 Camcorder $0E - 14 $0F - 15 $10-16 Preamplificador $11-17 Sintonizador $12-18 Grabador1 $13-19 Preamplificador $14-20 Reproductor CD $15-21 Teléfono $16-22 SatA $17-23 Grabador2 $ $ $ $ $ $ $ $ $ $ $0A /-- -/-- $0C - 12 Espera Espera $0D - 13 Silenciar $10-16 Volumen + $11-17 Volumen - $12-18 Brillo + $13-19 Brillo - $20-32 Programa + Programa + $21-33 Programa - Programa - $32-50 Retroceso rápido $34-52 Retroceso rápido $35-53 Reproducir $36-54 Detener $37-55 Grabar $18-24 $19-25 $1A - 26 CDR $1B - 27 $1C - 28 $1D - 29 Iluminación $1E - 30 Iluminación $1F - 31 Teléfono 11

12 EL URC SBC-RU-240/38 DE PHILIPS Utilizamos este control remoto universal de Philips y lo configuramos para trabaja con una VRC pues nos habilita la mayor cantidad de botones posible permitiéndonos, en definitiva, el mayor rango de interacción con la PC. Conseguimos entonces las siguientes salidas del control hacia nuestro sistema receptor: Estos códigos de salida además de aparecer en la tabla antes mostrada, los podemos comprobar y lo hicimos mediante el ordenador. En el código fuente del programa de la PC haremos la siguiente tabla de asignaciones por defecto (el usuario puede modificar dicha tabla cuando abre el programa). Esta es una asignación por defecto para controlar el programa WINAMP (configuración de teclado por defecto, del programa) de reproducción de archivos multimedia y además nos permitirá interactuar en lo que a las principales funciones respecta, con el sistema operativo Windows. 12

13 Para la configuración del control remoto: Elegir dispositivo (uno de cuatro los botones superiores), en nuestro caso VCR. Mantener presionado los botones numero 1 y numero 3, destello de led indicador de envío dos veces. Ingresar el código correspondiente al protocolo que el control remoto debe emitir, para nuestro caso es 033, destello de led indicador de envío una vez. Ahora tenemos el mando a distancia configurado para emitir en protocolo RC-05X en modo VCR. ESTANDAR RS- 232 La transmisión de datos en serie es una de las más comunes para aquellas aplicaciones en las que la velocidad no es demasiado importante, o no es posible conseguirla (por ejemplo, vía red telefónica). Para simplificar el proceso de enviar los bits uno por uno han surgido circuitos integrados que realizan la función, teniendo en cuenta todos los tiempos necesarios para lograr una correcta comunicación y aliviando a la CPU de esta pesada tarea. El circuito que estudiado es el 8250 de National, fabricado también por Intel, aunque existen diferencias respecto al Esta última UART es más reciente y mucho más potente (aunque solo sea por unos pequeños detalles) y cada vez está más extendida, en particular en las actuales placas base. 13

14 La línea que transmite los datos en serie está inicialmente en estado alto. Al comenzar la transferencia, se envía un bit a 0 ó bit de inicio. Tras él irán los 8 bits de datos a transmitir (en ocasiones son 7, 6 ó 5): estos bits están espaciados con un intervalo temporal fijo y preciso, ligado a la velocidad de transmisión que se esté empleando, en nuestro caso es de 9600 baudios. Tras ellos podría venir o no un bit de paridad generado automáticamente por la UART. Al final, aparecerá un bit (a veces un bit y medio ó dos bits) a 1, que son los bits de parada o bits de stop. Lo de medio bit significa que la señal correspondiente en el tiempo a un bit dura la mitad. La presencia de bits de arranque y paro permite sincronizar la estación emisora con la receptora, haciendo que los relojes de ambas vayan a la par. A la hora de transmitir los bits de datos unos tras otros, no se necesitan señales de reloj como se requieren para otras comunicaciones como es por ejemplo el I 2 C y por esto se considera al protocolo RS-232 asíncrono. El ACE 8250 (Asynchronous Communication Element) integra en un solo chip una UART (Universal Asynchronous Receiver/Transmitter) y un BRG (Baud Rate Generator). Soporta velocidades de hasta baudios con relojes de hasta 10 MHz. El BRG incorporado divide la frecuencia base para conseguir las velocidades estándar de la RS-232. Para llevar a cabo ala comunicación el integrado consta de varios registros en los que se aloja bandera de estado, configuración de línea y modem. También están los registros buffer en los que se encuentran los datos recibidos, los datos a enviar, el registro de salida secuencial bit a bit e ídem para la entrada. Desde un punto de vista eléctrico la norma RS-232 establece: Un 1 lógico es un voltaje comprendido entre 5v y 15ven el transmisor y entre -3v y - 25v en el receptor. Un 0 lógico es un voltaje comprendido entre +5v y +15v en el trasmisor y entre +3v y +25 v en el receptor. Para adaptar las salidas del micro controlador al protocola se usa el MAX232 este chip se utiliza en aquellas aplicaciones donde no se dispone de fuentes dobles de +12 y 12 Volts. El MAX 232 necesita solamente una fuente de +5V para su operación, internamente tiene un elevador de voltaje que convierte el voltaje de +5V al de doble polaridad de +12V y -12V. Cabe mencionar que existen una gran variedad de CI que cumplen con la norma RS-232 como lo son: MAX220, DS14C232, MAX233, LT1180A. 14

15 Implementación cableada En la siguiente tabla se muestra las señales y configuración RS-232 más común según se implemente ficha DV9 o DV25: DIAGRAMAS Y CIRCUITOS PRIMER INTENTO Parea enriquecimiento de nuestra experiencia en un primer intento por querer logra la comunicación vía puerto serie de la PC e ignorantes totalmente de la existencia del MAX232 intentamos hacer la adaptación de niveles de voltaje a través de un circuito a base de amplificadores operacionales (LM324) puestos como comparadores. Si bien conseguimos la comunicación, el dato transmitido era muy distante del que realmente queríamos enviar. Al observar el comportamiento del amplificador operacional configurado de esa manera con un osciloscopio, al atravesarlo un dato a transmitir, pudimos ver que la salida no podía acompañar a la entrada en tiempo y forma. Así que intentamos resolver el problema bajando la velocidad de transmisión, ya teníamos el hardware armado. Conseguimos una leve mejora a 330 baudios, así que debíamos intentar configurar el operacional como amplificador inverso de alguna manera. Como fuese, había que modificar el hardware y a su vez ya nos habíamos enterado de MAX232, así que para evitar mayores perdidas de tiempo nos inclinamos a la implementación de integrado, y problema resuelto. Además el otro método, por supuesto nos demandaba una fuente bipolar. 15

16 RECEPTOR E sistema de recepción esta compuesto por un hardware de detección-decodificación, integrado por un microcontrolador PIC16F84A, y la PC para la ejecución de una tarea determinada. En el circuito de detección-decodificación, el PIC16F84A, toma el dato serie (onda cuadrada) que el GL3276A proporciona como salida al recibir la señal del mando a distancia. Separa el código de mando del de dispositivo, hace el reconocimiento del dispositivo y envía el dato de comando mas el de repetición a la PC mediante el protocolo RS-232 a través del puerto serie de la misma. Para logra el cometido anterior, entre el PIC16F84A se instala un driver adaptador de nivel de señal MAX232. Este circuito integrado adapta la señal de 0V~5V que emite el PIC16F84A en su salida de dato a la PC a los respectivos niveles 10V~ (-10V) necesarios para representar el estado lógico en el protocolo RS-232. La transmisión a través del puerto serie se hace a 9600 baudios (baudio=bit/segundos) preseleccionados en la programación del PIC16F84A (ver código en PIC16F84A), y en el código fuente del programa que correrá en el ordenador (ver código en PC). Este es un esquemático del hardware de detección-decodificación: 16

17 Es un circuito muy sencillo: Led PWR : se enciende al alimentar el circuito. Led Led V : emite un destello por cada dato enviado a la PC, permanece encendido durante un segundo, aproximadamente (simultáneamente con Led R ) de no poder concretar la comunicación. De presionar el pulsador Borrar disp. durante cierto tiempo el led enciende por un segundo dos veces para indicar salida de dato paralelo y una ves para indicar salida de datos serie. Led Led R : al encender el receptor, este no esta vinculado a ningún dispositivo (TV, etc. ) entonces esta situación se ve indicada por la permanencia de este led encendido. La situación se revierte al enviarle algún mensaje desde el control remoto (presionando cualquier tecla del control). A partir de entonces el receptor solo reconocerá mensajes provenientes de ese mando a distancia y con ese código de dispositivo. Si se quiere cambiar el código de dispositivo de reconocimiento por cualquier razón, el receptor consta de un pulsador Borrar disp. Que al presionarlo durante un tiempo reducido deshace la vinculación encendiendo nuevamente Led R y poniendo al receptor a la espera del nuevo código de reconocimiento. Pulsador Borrar disp. : pensionándolo durante un breve lapso de tiempo se deshace la vinculación del receptor y el código de dispositivo (código de reconocimiento), se encenderá entonces el Led R. Si el pulsador se presiona durante un tiempo prolongado el receptor, además de desvincular el mendo a distancia, cambia su modo de transmisión de datos a la PC, si estaba transmitiendo en serie lo hará en paralelo entonces (enciende por un segundo dos veces Led V ), y viceversa (enciende por un segundo una vez Led V ). Nota: para que el hardware pueda comunicarse con el ordenador mediante el puerto paralelo, se debe quita el buffer MAX232 lo cual se puede llevar a cabo interponiendo un conector entre este y la electrónica principal. En este conector también se debe conectar el adaptador de conexiones para efectuar la comunicación vía puerto paralelo. Esta comunicación envía el dato en dos partes como puede verse en el código fuente del PIC16F84A. En una primera instancia se envían los cuatro bits más significativos, se espera un determinado tiempo 17

18 una confirmación por parte de la PC y se procede al envío del pedazo restante para completar el byte. Esto es así para aprovechar mejor y de manera más simple las características del puerto según nuestras necesidades. Puerto paralelo: El puerto paralelo se implementa en hardware a través de una ficha DV25 (25 pines) macho (hembra en la PC) de los cuales desde el pin 18, inclusive, hasta el pin 25, también inclusive, sirven de masa. EL controlador de la comunicación consta de tres registros de 8 bit cada uno (un byte). El registro PORT 888, puerto de datos, (dirección en memoria 888), Pines del 2 al 9, es de solo escritura, por este registro se envían los datos al exterior de la PC. El registro PORT 889, puerto de estado, es de solo lectura, por aquí se enviaremos señales eléctricas al ordenador, de este registro solo se utilizan los cinco bits de más peso, que son el bit 7, 6, 5, 4 y 3 teniendo en cuenta que el bit 7 funciona en modo invertido, pines 15, 13, 12, 10 y 11. El registro PORT 890, puerto de control, es de lectura/escritura, es decir, podremos enviar o recibir señales eléctricas, según nuestras necesidades. De los 8 bits de este registro solo se utilizan los cuatro de menor peso o sea el 0, 1, 2 y 3, con un pequeño detalle, los bits 0, 1, y 3 están invertidos. Adaptación: Para enviar el dato a la PC utilizamos del puerto de estado los pines 10, 12, 13, y 15 (E6, E5, E4 y E3 respectivamente). Para la confirmación la esperamos por el puerto de datos, pin 2 (D0). La conexión cableada deberá hacerse como se indica a continuación: 18

19 EL CODIGO FUENTE DEL PIC16F84A Este código fuente debe encargarse de las tareas descriptas antes. Es importante remarcar que la comunicación con la PC mediante el protocolo RS-232 se debe programar porque no viene incorporada a diferencia del siguiente modelo de microcontrolador de Microchip PIC16F873. Para entender más fácilmente el código se muestra el siguiente diagrama de bloque del algoritmo. 19

20 Código fuente: Para la elaboración de este código fuente se utilizo un entorno de desarrollo integrado distribuido en forma gratuita por Microchip, el MPLAB 9.0 IDE. Para la programación o grabado del código en la memoria del PIC16F84A se uso otro programa de distribución libre y gratuita, el IC-Prog. Para esta ultima tarea también se hizo uso de una tarjeta de programación llamada ProPic 2 Programer. (Ver código fuente para PIC16F84A en Anexo C). ESTRUCTURA DE UN PROGRAMA WINDOWS GUI Para el desarrollo de este código fuente se utilizo un entorno de desarrollo integrado también. Se utilizo Dev-C 4.9, un producto de Bloodshed y se programo WIN API (Appication Programming Interface) con clases. Los programas Windows son independientes de la máquina en la que se ejecutan (o al menos deberían serlo), el acceso a los dispositivos físicos se hace a través de interfaces, y nunca se accede 20

21 directamente a ellos. Esta es una de las principales ventajas para el programador, ya que no hay que preocuparse por el modelo de tarjeta gráfica o de impresora, la aplicación funcionará con todas, y será el sistema operativo el que se encargue de que así sea. Un concepto importante es el de recurso. Desde el punto de vista de Windows, un recurso es todo aquello que puede ser usado por una o varias aplicaciones. Existen recursos físicos, que son los dispositivos que componen el ordenador, como la memoria, la impresora, el teclado o el ratón y recursos virtuales o lógicos, como los gráficos, los iconos o las cadenas de caracteres, etc. Por ejemplo, si nuestra aplicación requiere el uso de un puerto serie, primero debe averiguar si está disponible, es decir, si existe y si no lo está usando otra aplicación; y después lo reservará para su uso. Esto es necesario porque este tipo de recurso no puede ser compartido. Los programas en Windows están orientados a eventos, esto significa que normalmente los programas están esperando a que se produzca un acontecimiento que les incumba, y mientras tanto permanecen aletargados o dormidos. Un evento puede ser por ejemplo, el movimiento del ratón, la activación de un menú, la llegada de información desde el puerto serie, una pulsación de una tecla... Esto es así porque Windows es un sistema operativo multitarea, y el tiempo del microprocesador ha de repartirse entre todos los programas que se estén ejecutando. Si los programas fueran secuenciales puros, esto no sería posible, ya que hasta que una aplicación finalizara, el sistema no podría atender al resto. Ejemplo de programa secuencial: Ejemplo de programa por eventos: 21

22 Hay algunas diferencias entre la estructura de un programa C/C++ normal, y la correspondiente a un programa Windows GUI. Algunas de estas diferencias se deben a que los programas GUI estás basados en mensajes, otros son sencillamente debidos a que siempre hay un determinado número de tareas que hay que realizar. // Ficheros include: #include <windows.h> // Prototipos: LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); // Función de entrada: int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpszcmdparam, int ncmdshow) // Declaración: // Inicialización: // Bucle de mensajes: return Message.wParam; // Definición de La función de entrada de un programa Windows es "WinMain", en lugar de la conocida "main". Normalmente, la definición de esta función cambia muy poco de una aplicación a otra. Se divide en tres partes claramente diferenciadas: declaración, inicialización y bucle de mensajes. Parámetros de entrada de "WinMain" int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpszcmdparam, int ncmdshow) La función WinMain tiene cuatro parámetros de entrada: hinstance es un manipulador para la instancia del programa que estamos ejecutando. Cada vez que se ejecuta una aplicación, Windows crea una Instancia para ella, y le pasa un manipulador de dicha instancia a la aplicación. hprevinstance es un manipulador a instancias previas de la misma aplicación. Como Windows es multitarea, pueden existir varias versiones de la misma aplicación ejecutándose, varias instancias. En Windows 3.1, este parámetro nos servía para saber si nuestra aplicación ya se estaba ejecutando, y de ese modo se podían compartir los datos comunes a todas las instancias. Pero eso era antes, ya que en Win32 usa un segmento distinto para cada instancia y este parámetro es siempre NULL, sólo se conserva por motivos de compatibilidad. lpszcmdparam, esta cadena contiene los argumentos de entrada del comando de línea. 22

23 ncmdshow, este parámetro especifica cómo se mostrará la ventana. Para ver sus posibles valores consultar valores de ncmdshow. Se recomienda no usar este parámetro en la función ShowWindow la primera vez que se ésta es llamada. En su lugar debe usarse el valor SW_SHOWDEFAULT. Función WinMain típica int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpszcmdparam, int ncmdshow) /* Declaración: */ HWND hwnd; MSG mensaje; WNDCLASSEX wincl; /* Inicialización: */ /* Estructura de la ventana */ wincl.hinstance = hinstance; wincl.lpszclassname = "NUESTRA_CLASE"; wincl.lpfnwndproc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbsize = sizeof(wndclassex); /* Usar icono y puntero por defecto */ wincl.hicon = LoadIcon(NULL, IDI_APPLICATION); wincl.hiconsm = LoadIcon(NULL, IDI_APPLICATION); wincl.hcursor = LoadCursor(NULL, IDC_ARROW); wincl.lpszmenuname = NULL; wincl.cbclsextra = 0; wincl.cbwndextra = 0; wincl.hbrbackground = (HBRUSH)COLOR_BACKGROUND; /* Registrar la clase de ventana, si falla, salir del programa */ if(!registerclassex(&wincl)) return 0; hwnd = CreateWindowEx( 0, "NUESTRA_CLASE", "Ejemplo 001", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hthisinstance, NULL ); 23

24 ShowWindow(hwnd, SW_SHOWDEFAULT); /* Bucle de mensajes: */ while(true == GetMessage(&mensaje, 0, 0, 0)) TranslateMessage(&mensaje); DispatchMessage(&mensaje); return mensaje.wparam; Declaración En la primera zona declararemos las variables que necesitamos para nuestra función WinMain, que como mínimo serán tres: HWND hwnd, un manipulador para la ventana principal de la aplicación. Ya sabemos que nuestra aplicación necesitará al menos una ventana. MSG Message, una variable para manipular los mensajes que lleguen a nuestra aplicación. WNDCLASSEX wincl, una estructura que se usará para registrar la clase particular de ventana que usaremos en nuestra aplicación. Existe otra estructura para registrar clases que se usaba antiguamente, pero que ha sido desplazada por esta nueva versión, se trata de WNDCLASS. Inicialización Esta zona se encarga de registrar la clase o clases de ventana, crear la ventana y visualizarla en pantalla. Para registrar la clase primero hay que rellenar adecuadamente la estructura WNDCLASSEX, que define algunas características que serán comunes a todas las ventanas de una misma clase, como color de fondo, icono, menú por defecto, el procedimiento de ventana, etc. Después hay que llamar a la función RegisterClassEx. En el caso de usar una estructura WNDCLASS se debe registrar la clase usando la función RegisterClass. A continuación se crea la ventana usando la función CreateWindowEx, la función CreateWindow ha caído prácticamente en desuso. Cualquiera de estas dos funciones nos devuelve un manipulador de ventana que podemos necesitar en otras funciones, sin ir más lejos, la siguiente. Pero esto no muestra la ventana en la pantalla. Para que la ventana sea visible hay que llamar a la función ShowWindow. La primera vez que se llama a ésta función, después de crear la ventana, se puede usar el parámetro ncmdshow de WinMain como parámetro o mejor aún, como se recomienda por Windows, el valor SW_SHOWDEFAULT. 24

25 Bucle de mensajes Este es el núcleo de la aplicación, como se ve en el ejemplo el programa permanece en este bucle mientras la función GetMessage retorne con un valor TRUE. while(true == GetMessage(&mensaje, 0, 0, 0)) TranslateMessage(&mensaje); DispatchMessage(&mensaje); Este es el bucle de mensajes recomendable, aunque no sea el que se usa habitualmente. La razón es que la función GetMessage puede retornar tres valores: TRUE, FALSE ó -1. El valor -1 indica un error, así que en este caso se debería abandonar el bucle. El bucle de mensajes que encontraremos habitualmente es este: while(getmessage(&mensajee, 0, 0, 0)) TranslateMessage(&mensaje); DispatchMessage(&mensaje); NOTA: El problema con este bucle es que si GetMessage regresa con un valor -1, que indica un error, la condición del "while" se considera verdadera, y el bucle continúa. Si el error es permanente, el programa jamás terminará. La función TranslateMessage se usa para traducir los mensajes de teclas virtuales a mensajes de carácter. Los mensajes traducidos se reenvían a la lista de mensajes del proceso, y se recuperarán con las siguientes llamadas a GetMessage. La función DispatchMessage envía el mensaje al procedimiento de ventana, donde será tratado adecuadamente. El procedimiento de ventana Cada ventana tiene una función asociada, esta función se conoce como procedimiento de ventana, y es la encargada de procesar adecuadamente todos los mensajes enviados a una determinada clase de ventana. Es la responsable de todo lo relativo al aspecto y al comportamiento de una ventana. Normalmente, estas funciones están basadas en una estructura "switch" donde cada "case" corresponde aun determinado tipo de mensaje. Sintaxis LRESULT CALLBACK WindowProcedure( 25

26 HWND hwnd, // Manipulador de ventana UINT msg, // Mensaje WPARAM wparam, // Parámetro palabra, varía LPARAM lparam // Parámetro doble palabra, varía ); hwnd es el manipulador de la ventana a la que está destinado el mensaje. msg es el código del mensaje. wparam es el parámetro de tipo palabra asociado al mensaje. lparam es el parámetro de tipo doble palabra asociado al mensaje. Podemos considerar este prototipo como una plantilla para crear nuestros propios procedimientos de ventana. El nombre de la función puede cambiar, pero el valor de retorno y los parámetros deben ser los mismos. El miembro lpfnwndproc de la estructura WNDCLASS es un puntero a una función de este tipo, esa función es la que se encargará de procesar todos los mensajes para esa clase de ventana. Cuando registremos nuestra clase de ventana, tendremos que asignar a ese miembro el puntero a nuestro procedimiento de ventana. Prototipo de procedimiento de ventana LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); Implementación del procedimiento de ventana simple /* Esta función es llamada por la función del API DispatchMessage() */ LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) switch (msg) /* manipulador del mensaje */ case WM_DESTROY: PostQuitMessage(0); /* envía un mensaje WM_QUIT a la cola de mensajes */ default: /* para los mensajes de los que no nos ocupamos */ return DefWindowProc(hwnd, msg, wparam, lparam); return 0; En general, habrá tantos procedimientos de ventana como programas diferentes y todos serán distintos, pero también tendrán algo en común: todos ellos procesarán los mensajes que lleguen a una clase de ventana. En este ejemplo sólo procesamos un tipo de mensaje, se trata de WM_DESTROY que es el mensaje que se envía a una ventana cuando se recibe un comando de cerrar, ya sea por menú o mediante el icono de aspa en la esquina superior derecha de la ventana. 26

27 Este mensaje sólo sirve para informar a la aplicación de que el usuario tiene la intención de abandonar la aplicación, y le da una oportunidad de dejar las cosas en su sitio: cerrar ficheros, liberar memoria, guardar variables, etc. Incluso, la aplicación puede decidir que aún no es el momento adecuado para abandonar la aplicación. En el caso del ejemplo, efectivamente cierra la aplicación, y lo hace enviándole un mensaje WM_QUIT, mediante la función PostQuitMessage. El resto de los mensajes se procesan en el caso "default", y simplemente se cede su tratamiento a la función del API que hace el proceso por defecto para cada mensaje, DefWindowProc. Este es el camino que sigue el mensaje WM_QUIT cuando llega, ya que el proceso por defecto para este mensaje es cerrar la aplicación. A grandes rasgos, básicamente, ya sabemos hacer el esqueleto de una aplicación de Windows. Para entender el resto del código que se presenta a continuación se pide al lector remitirse a la bibliografía. (ver código fuente para la PC en Anexo C). RESULTADOS DE LAS PRUEBAS Las pruebas fueron satisfactorias. Hubo que realizar algunas modificaciones antes de alcanzar el material o información expuesta en este informe. Finalmente conseguimos fabricar tanto la aplicación de la PC como el Hardware externo para el resolver el problema de ingeniería que se nos propuso. El archivo ejecutable de la aplicación resultante consta de la siguiente representación grafica básica: Haciendo click sobre el botón Principal El ítem Reorganizar Botones modifica la organización de la tabla cargada por defecto mostrada en el apartado EL URC SBC-RU-240/38 DE PHILIPS. Al presionar este item se abre un nuevo cuadro de dialogo que nos permite elegir la combinación de teclas a reordenar y a continuación el programa se dispone a esperar el correspondiente código emitido por el control remoto. Cuando la PC recibe este dato, el programa nos devuelve un mensaje de código guardado. En este ejemplo se selecciona la opción 2 (Alt). 27

28 Después de aceptar la elección, presionamos un botón del mando a distancia y el programa nos informa de su recepción: El ítem Recordatorios nos permite colocar una etiqueta recordatorio para cada combinación de tecla disponible. 28

29 El ítem Default, carga la tabla indicada en el apartado EL URC SBC-RU-240/38 DE PHILIPS en el caso de que el usuario no encuentre una mejor disposición del control remoto. Por ultimo, el ítem Comenzar provoca que el programa se disponga a vigilar el puerto serie en espera por la entrada de cada nuevo comando. CONCLUSIONES Durante la realización del proyecto el grupo tuvo que enfrentarse a muchísimos problemas, algunos comentados en este informe. Tuvimos muchísimos problemas, en un principio con la comunicación por el puerto serie. En primer lugar era tema de total desconocimiento para todos nosotros, así mismo con la comunicación por puerto paralelo, la cual la aprendimos por necesidad para poder solucionar el problema de no funcionamiento del puerto serie. Por suerte justo antes de hacer la implementación, de dicha comunicación, en el código fuente de la PC, probamos por última vez con el puerto serie y nos anduvo. Por ello es que en el código fuente de la aplicación para la PC no aparece la interacción con el puerto paralelo a pesar de que el PIC16F84A si es capaz de soportarla (en teoría pues no la alcanzamos a probar). En cuanto a la programación en entorno Windows tuvimos que leer muchísimo para así a duras penas poder hacer algo. En los comienzos logramos antes que nada establecer la comunicación serie en Windows 98 con un código programado en Borland C++ que andaba pero al no ser una aplicación de Windows, no podíamos de ninguna manera simular el teclado. Entonces ya con medio proyecto realizado tuvimos que echarnos atrás, desistir del Borland C++ y utilizar las API de Windows. 29

30 Código en Borland: #include <dos.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #define LCR (base+3) /* registro de control de linea */ #define IER (base+1) /* registro de activacion de interrupciones */ #define DLL (base+0) /* parte baja del divisor */ #define DLM (base+1) /* parte alta del divisor */ #define MCR (base+4) /* registro de control del modem */ #define MSR (base+6) /* registro de estado del modem */ #define LSR (base+5) /* registro de estado de linea */ #define RBR (base+0) /* registro buffer de recepcion */ #define THR (base+0) /* registro de retencion de transmision */ #define DR 1 /* bit dato disponible del LSR */ #define OE 2 /* bit de error de overrun del LSR */ #define PE 4 /* bit de error de paridad del LSR */ #define FE 8 /* bit de error en bits de stop del LSR */ #define BI 16 /* bit de error de break en el LSR */ #define DSR 32 /* bit de data set ready */ unsigned com, base, dll, dlm, entrada, lsr, lcr, mcr, msr, divisor, con=0; char opc='z',c='z'; void impcart(void); void error(void); void correr(void); void ventana(void); void transdat(void); void main() com=1; princ: clrscr(); impcart(); printf("\n\r1:eleccion de puerto serie\n\r2:correr programa\n\r3:salir\n\ropcion: "); opc=getch(); switch (opc) case '1': sound(1250); delay(250); nosound(); ventana(); scanf ("%d", &com); sound(1250); delay(225); nosound(); delay(100); sound(1250); delay(225); nosound(); case '2': sound(1250); delay(225); 30

31 nosound(); delay(100); sound(1250); delay(225); nosound(); correr(); if(opc=='3'); else princ; void correr() clrscr(); impcart(); base=peek(0x40, (com-1)*2); if (base==0) error(); finc; divisor=115200/8300; //para 9600 baudios outportb (LCR, 0x83); /* DLAB=1, 8 bits, 1 stop, sin paridad */ outportb (IER, 0); outportb (DLL, divisor%256); //resto de la division por 256 outportb (DLM, divisor/256); //parte entera de la division por 256 dll=inportb(dll); dlm=inportb(dlm); outportb (LCR, 0x03); /* DLAB=0, 8 bits, 1 stop, sin paridad */ corr: outportb (MCR, 1); //limpio el control de modem do lsr=inportb(lsr); msr=inportb(msr); if(lsr & DR) outportb(mcr, 0); /* if (lsr & (PE FE BI)) error(); corr; */ while(!(lsr & DR) &&!kbhit()); entrada=inportb(rbr); if(kbhit()) c=getche(); if(c=='e') finc; clrscr(); printf("dato: %d", entrada); transdat(); corr; finc: c='z'; return; void error() 31

32 xy(23,11); textcolor(6); textbackground(4); cprintf(" error en la comunicacion "); textcolor(7); textbackground(0); getch(); return; void impcart() xy(23,1); textcolor(4); textbackground(3); cprintf(" control remoto IR \n"); textcolor(7); textbackground(0); return; void ventana() xy(23,11); textcolor(1); textbackground(3); cprintf(" ingrese el puerto preferido: "); textcolor(7); textbackground(0); return; void transdat() FILE *archi; archi=fopen("trans.txt", "w"); fprintf(archi, "%d", entrada); fclose(archi); return; En este código se puede ver el intento de envío del dato recibido por el puerto a través de un archivo de texto para interactuar con el programa que simulaba el teclado y que si corría bajo Windows. Si bien esta técnica presenta muchos problemas de errores conceptuales, conseguíamos una mínima interacción entre el control remoto y la PC. El grupo entero considera un enriquecimiento muy importante de conocimientos, aprendimos mucho acerca de Windows como sistema operativo y de la PC como sistema eléctrico. También consideramos haber aprendido mucho de cómo es que se encara un trabajo particular a nivel profesional. Agradecemos la interacción constante por parte de los profesores entrevistados, agradecemos toda su paciencia y participación para con los alumnos y los problemas con los que nos enfrentamos Gracias Ramiro 32

33 ANEXOS Anexo A: LISTADO DE PROGRAMAS Código fuente para el PIC16F84A: List P=16F84 pua equ 05h pub equ 06h copua equ 85h copub equ 86h inte equ 0Bh coti equ 01h opci equ 81h esta equ 03h cnttrb cbyte byte cont1 cont2 cont3 disp1 disp contr contr1 contr2 aux cblock endc 0X0C #define ir pub,0 #define rts pub,1 #define dtr pub,2 #define txd pub,3 #define rxd pub,4 #define dsr pub,5 #define cts pub,6 #define bot pub,7 #define ledv pua,0 #define ledr pua,2 #define prvz aux,0 #define resul aux,1 #define aplv aux,2 #define tsp aux,3 #define terr aux,4 #define resu aux,5 #define bit aux,6 #define cop aux,7 #define toif inte,2 #define rbo inte,4 #define tmro inte,5 #define todas inte,7 #define rbof inte,1 #define car esta,0 #define z esta,2 org 00h 33

34 inicio org inicio 04h intsub clrf esta bsf esta, 5 movlw b' ' movwf copub movlw b' ' movwf copua clrf opci ;iterrupcion por flanco ;desendente bsf opci,7 esta, 5 clrf pua bsf ledr clrf pub bsf dsr bsf rxd clrf inte clrf aux clrf disp movlw h'ff' movwf disp clrf disp1 clrf byte clrf cbyte movlw b' ' movwf inte ;habilita IR rcecptor esper btfss bot ;para retardo del pulsador esper ;la cantidad de pulsos de 1us ; para un reloj de 4 Mhz son: movlw d'33' ;1 movwf cont1 ;1 con1 ; movlw d'255' ;1*k movwf cont2 ;1*k con2 ; decfsz cont2,1 ;255*k+k=256*k con2 ;2*255*k=510*k decfsz cont1,1 ;k+1 con1 ;2*k btfss bot ;************** esper ;771*k+3=>si 771*k+3=20 ms/1 ;us=25000=>k=32.42~33 clrf disp1 prvz bsf ledr call retalar btfss bot esper movlw b' ' xorwf aux, 1 bsf ledv call retalar ledv btfss tsp esper call retalar bsf ledv 34

35 call retalar ledv esper ;****************************************************** ledat bsf esta,5 ;con un reloj de 4 Mhz: movlw b' ' ;tb'=889 us ;->tb=2*tb'=1.778 ms movwf opci ;TOIF= ;div*(257 us-tin)+2=889 esta,5 ;con div=4=> ;tin= /4=35.25~35 ;pero experimentalmente ;~36 entce ;voy a esperar ;que pase el primer ;bit de ;sincr btfss ir entce movlw d'147' ;pero la primer pregunta ;es a TOIF/2 movwf coti ;=>con div=4, ;tin= => ;tin~146, pero ;experimentalmente ~147 toif clrf byte bit clrf disp1 movlw d'26' movwf cnttrb etmr btfss toif etmr toif movlw d'36' movwf coti decf cnttrb,1 movlw d'24' subwf cnttrb,0 btfss z etmr comie btfss toif comie movlw d'36' movwf coti toif decf cnttrb,1 movlw d'12' subwf cnttrb,0 btfss z dsipo bit incf cnttrb,1 ;para corregir tb el ultimo nibble cmnz dsipo movlw b' ' xorwf aux,1 btfss bit 35

36 sgdo btfsc ir cerx bsf disp1,0 ;en disp1 esta guardando 1 ;bit de ;"T" y los 5 de ;dispositivo comie cerx disp1,0 comie sgdo btfss ir ceroz btfss disp1,0 listim car rlf disp1,1 comie ceroz btfsc disp1,0 listim car rlf disp1,1 comie cmnz btfss toif cmnz movlw d'36' movwf coti toif comma movlw b' ' xorwf aux,1 btfss bit sgdz btfsc ir crxz bsf byte,0 parch crxz byte,0 ;en byte guarda los 6 bit del comando parch sgdz btfss ir crz btfss byte,0 listim car rlf byte,1 parch crz btfsc byte,0 listim car rlf byte,1 parch decfsz cnttrb,1 cmnz acoreg ;pongo un cero en el bit 7 36

37 ;de byte si se da ;codigo de repeticion car rrf byte,1 comf byte,1 ;los datos estan ;exactamente al reves, ;comprobado con ;sciloscopio movlw b' ' andwf disp1,1 andwf byte,1 btfss disp1,5 not btfss disp,5 ciro byte,6 listi ciro bsf disp,5 bsf byte,6 listi not ;pongo un uno en el bit 7 ;de byte si no se da ;codigo de repeticion btfsc disp,5 cir byte,6 listi cir disp,5 bsf byte,6 listi listim bsf terr listi return ;****************************************************** cmprb movf disp1,0 subwf disp,0 btfsc z bsf cop finto return ;****************************************************** intsub todas call ledat btfsc terr finle btfsc prvz disp1,0 movwf disp bsf prvz ledr bsf ledv call retalar ledv fingdi call cmprb btfss cop 37

38 finle cop bsf ledv btfss tsp serie call datopcp finle serie call datopcs finle ledv terr rbof bsf todas retfie ;****************************************************** datopcs movf byte,0 movwf cbyte movlw d'09' movwf contr dsr ;espero un rato lo que dura un ;mensaje (25ms) y si la pc no me ;contesta, fue... bsf esta,5 ;para 25ms =>con div=128=> ;tin~61.7~62, pero ;experimentalmente ~61 movlw b' ' movwf opci movlw b' ' movwf copub esta,5 movlw d'61' movwf coti toif agnte btfss dtr acseg btfss toif agnte bsf ledr call retalar ledr fintr acseg bsf esta,5 movlw b' ' movwf opci esta,5 ;con un reloj de 4 Mhz, y ;para 9600 b/s: toif ;tb=1/9600= us rxd ;TOIF-> ;us=>toif=(257us*div)+2 ;=>div= ;us/257us=0.398 movlw d'206' ;=>adopto div=2 y preseteo ;el TMRO: movwf coti ;=>(257-in)*2us+2us= ; us=> ;tin= /2= ;205.92~206 ;experimentalmente ~206 38

CAPÍTULO 3 LA COMUNICACIÓN SERIAL

CAPÍTULO 3 LA COMUNICACIÓN SERIAL CAPÍTULO 3 LA COMUNICACIÓN SERIAL 3.1 Introducción. La historia de las comunicaciones se remonta a 1810 cuando un señor alemán de apellido Von Soemmering, utilizó 26 cables (1 por cada letra del alfabeto)

Más detalles

Sistema de seguridad con emisión de mensaje SMS

Sistema de seguridad con emisión de mensaje SMS Sistema de seguridad con emisión de mensaje SMS INDICE 1.- INTRODUCCIÓN Pág. 1 2.- ELEMENTOS HARDWARE EMPLEADOS. Pág. 1 3.- COMUNICACIÓN SERIE (Comandos at)... Pág. 4 4.- EXPLICACIÓN DEL PROGRAMA... Pág.

Más detalles

SECCIÓN DE AYUDA AL USUARIO

SECCIÓN DE AYUDA AL USUARIO SECCIÓN DE AYUDA AL USUARIO PON DESIGN SOFTWARE IVÁN ALEXIS SANTOS QUICENO FREDY ANDRES SANABRIA UNIVERSIDAD DISTRITAL FEBERO DE 2009 Diseño de redes ópticas pasivas En general los niveles de potencia

Más detalles

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial Módulo Módulo LCD con interface serial LCD con interface serial EDISON DUQUE C. Este módulo permite mostrar, en una pantalla de cristal líquido, los mensajes que son enviados desde una computadora o un

Más detalles

Tema: Comunicación serie entre PIC y PC.

Tema: Comunicación serie entre PIC y PC. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Microcontroladores Lugar de ejecución: Laboratorio de microprocesadores, Edif. 3 Electrónica. Tema: Comunicación serie entre PIC y PC. Objetivo general

Más detalles

Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876.

Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876. Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876. Prof: Bolaños D. En unión del hardware adecuado, el software IC-PROG permite programar gran cantidad de dispositivos electrónicos. Esta guía

Más detalles

Placa de control MCC03

Placa de control MCC03 Placa de control MCC03 Placa de control MCC03 La placa de control basada en el micro controlador PIC 16F874A de Microchip, es la encargada del procesar los datos que se introducen en el sistema y actuar

Más detalles

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE TRABAJO PRÁCTICO Nº 6: PUERTO SERIE Introducción a las comunicaciones serie Las comunicaciones serie se utilizan para enviar datos a través de largas distancias, ya que las comunicaciones en paralelo exigen

Más detalles

Figura1. La IDE de MVS Express 2012

Figura1. La IDE de MVS Express 2012 UNIVERSIDAD DEL ISTMO Ingeniería en computación Compiladores PROFESOR M. en C. J. Jesús Arellano Pimentel NÚMERO DE PRÁCTICA 1 NOMBRE DE LA PRÁCTICA OBJETIVO GENERAL OBJETIVOS ESPECÍFICOS EQUIPO REQUERIDO

Más detalles

Utilización de los puertos serial y paralelo de una PC usando LabView

Utilización de los puertos serial y paralelo de una PC usando LabView Universidad del Táchira Departamento de Ingeniería Electrónica Instrumentación Electrónica Utilización de los puertos serial y paralelo de una PC usando LabView Hecho Por: Ing. Rafael Chacón Ing. José

Más detalles

Práctica 2NivelFisico: Estudio del nivel físico en la RS232 y en la RS485

Práctica 2NivelFisico: Estudio del nivel físico en la RS232 y en la RS485 Práctica 2NivelFisico: Estudio del nivel físico en la y en la RS485 1 Objetivos El objetivo de esta práctica es el estudio físico de la y de la RS485 y su relación cuando conviven en un mismo sistema.

Más detalles

Transmisi n de Datos a Trav s de un PIC

Transmisi n de Datos a Trav s de un PIC Transmisi n de Datos a Trav s de un PIC 4 Introducción Tal como lo dice MICROCHIP en sus páginas Web, y según lo que hemos podido experimentar, los microcontroladores PIC16CXXX son de alto rendimiento

Más detalles

Como funcionan las corrientes portadoras

Como funcionan las corrientes portadoras El sistema X-10 es el sistema estándar de tantos sistemas de corrientes portadoras ya que es el que más extendido. Este sistema se creo hace más de 20 años y sus antiguos componentes siguen funcionando

Más detalles

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Descripción El proyecto se trata de un sistema de cámaras de vigilancia en circuito cerrado,

Más detalles

2 1.1 2 1.2 2 2. SOFTWARE +... 3 3. COMUNICACIÓN - CONEXIÓN DEL DISPOSITIVO...

2 1.1 2 1.2 2 2. SOFTWARE +... 3 3. COMUNICACIÓN - CONEXIÓN DEL DISPOSITIVO... Manual de software Dynamic Plus Fecha: 03/04/2014 Manual Software Dynamic Plus v2.0.5 ÍNDICE GENERAL 1. INTRODUCCIÓN... 2 1.1 Configuración mínima del PC... 2 1.2 Instalación del Software Dynamic Plus...

Más detalles

REALITY SYS Pico JukeBox V2.1 Instalación 1

REALITY SYS Pico JukeBox V2.1 Instalación 1 . REALITY SYS Pico JukeBox V2. Instalación . Preparación de la tarjeta SD/MMC. Copie los archivos mp3 que contienen las pistas de audio en una tarjeta nueva o formateada. Los archivos audio se deben grabar

Más detalles

Capítulo 2 El equipo comprobador de cables WWG

Capítulo 2 El equipo comprobador de cables WWG Índice Controles e indicadores del equipo Pantalla de equipo preparado Información útil acerca de la alimentación eléctrica La unidad de pantalla Los equipos de la Serie LT 8000 son equipos comprobadores

Más detalles

Diseño del módulo RS-232. Por Michael Kusch tintronic@yahoo.com Versión preliminar 0.2

Diseño del módulo RS-232. Por Michael Kusch tintronic@yahoo.com Versión preliminar 0.2 Diseño del módulo RS-. Por Michael Kusch tintronic@yahoo.com Versión preliminar 0. Introducción Muchos microcontroladores poseen una interfaz UART o USART para comunicación serial asincrónica, tipo RS-,

Más detalles

PIC MICRO ESTUDIO Display de 2 y4 Dígitos RS-232 (Clave 701 y 702) www.electronicaestudio.com. Guía de Uso

PIC MICRO ESTUDIO Display de 2 y4 Dígitos RS-232 (Clave 701 y 702) www.electronicaestudio.com. Guía de Uso PIC MICRO ESTUDIO Display de 2 y4 Dígitos RS-232 (Clave 701 y 702) www.electronicaestudio.com Guía de Uso Ing. Wilfrido González Bonilla Display de 2 y4 Dígitos RS-232 con el PIC16F84 Son innumerables

Más detalles

PLATAFORMA DE CONTROL DIGITAL DE SISTEMAS ELECTRÓNICOS DE POTENCIA

PLATAFORMA DE CONTROL DIGITAL DE SISTEMAS ELECTRÓNICOS DE POTENCIA PLATAFORMA DE CONTROL DIGITAL DE SISTEMAS ELECTRÓNICOS DE POTENCIA V. MIÑAMBRES-MARCOS, E. ROMERO-CADAVAL Y F. BARRERO-GONZÁLEZ Departamento de Electrónica e Ingeniería Electromecánica. Escuela de Ingenierías

Más detalles

Especificaciones técnicas de los prototipos:

Especificaciones técnicas de los prototipos: Especificaciones técnicas de los prototipos: Sensor de Temperatura y Humedad Relativa Sensor de Humedad de la Hoja CARACTERÍSTICAS SENSOR HUMEDAD DE LA HOJA El Sensor de Humedad de la hoja está diseñado

Más detalles

Corporacion Universitaria Autonoma del Cauca EJEMPLARIZACION DE COMUNICACIÓN ENTRE DOS MODOULOS XBEE SERIE 2.

Corporacion Universitaria Autonoma del Cauca EJEMPLARIZACION DE COMUNICACIÓN ENTRE DOS MODOULOS XBEE SERIE 2. EJEMPLARIZACION DE COMUNICACIÓN ENTRE DOS MODOULOS XBEE SERIE 2. RESUMEN Hoy en día son muchos los dispositivos que cumplen la función de comunicarse uno con el otro, siendo útiles y cumpliendo objetivos

Más detalles

Interfaz conversora USB a UART TTL (5V) o LV-TTL (3V) configurable

Interfaz conversora USB a UART TTL (5V) o LV-TTL (3V) configurable Interfaz conversora USB a UART TTL (5V) o LV-TTL (3V) configurable ÍNDICE 1) Conexiones / pinout.....2 2) LEDs de estado......2 3) Esquemático...3 4) Instalación del driver...4 4.1) Instalación bajo WinXP...4

Más detalles

RELOJ COMPUTARIZADO PARA CONTROL DE PERSONAL. Manual de Operación

RELOJ COMPUTARIZADO PARA CONTROL DE PERSONAL. Manual de Operación RELOJ COMPUTARIZADO PARA CONTROL DE PERSONAL Optum Tempus Manual de Operación 2 Índice: Acerca de este manual:... 3 Introducción... 4 Instalación y Puesta en marcha... 4 Dimensiones Físicas del Reloj Computarizado...

Más detalles

Control de Motores a Pasos Vía Puerto Serial Miguel Magos Rivera, Ricardo Godínez Bravo

Control de Motores a Pasos Vía Puerto Serial Miguel Magos Rivera, Ricardo Godínez Bravo Control de Motores a Pasos Vía Puerto Serial Miguel Magos Rivera, Ricardo Godínez Bravo Universidad Autónoma Metropolitana-Azcapotzalco. Depto. de Electrónica San Pablo 180 Col. Reynosa. 02200 México D.F.

Más detalles

Programación en PIC Los primeros pasos

Programación en PIC Los primeros pasos Capítulo V Programación en PIC Los primeros pasos Encender y apagar un LED Secuenciador con cuatro LED's Leer los pulsadores y encender el LED correspondiente Programa avanzado utilizando el entrenador

Más detalles

UNIVERSIDAD DEL ISTMO Ingeniería en computación Estructura de datos

UNIVERSIDAD DEL ISTMO Ingeniería en computación Estructura de datos UNIVERSIDAD DEL ISTMO Ingeniería en computación Estructura de datos CICLO ESCOLAR 20092010B PROFESOR M. en C. J. Jesús Arellano Pimentel GRUPO 204 NÚMERO DE PRÁCTICA 1 NOMBRE DE LA PRÁCTICA OBJETIVO GENERAL

Más detalles

JGCBusing Manual de Usuario v1.0

JGCBusing Manual de Usuario v1.0 JGCBusing Manual de Usuario v1.0 Agosto 2012 Tabla de Contenido 1. Introducción... 3 2. JGCBusing. Herramienta Web... 4 2.1. Descripción... 4 2.2. Creación de una configuración desde cero... 8 2.3. Generación

Más detalles

REDES LOCALES BASICO FASE1 PRESENTADO POR JENNER MEJIA CODIGO: 17901846 TUTOR LEANDRO BERNAL ZAMORA

REDES LOCALES BASICO FASE1 PRESENTADO POR JENNER MEJIA CODIGO: 17901846 TUTOR LEANDRO BERNAL ZAMORA REDES LOCALES BASICO FASE1 PRESENTADO POR JENNER MEJIA CODIGO: 17901846 TUTOR LEANDRO BERNAL ZAMORA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA

Más detalles

Multimedia Streaming. Memoria del proyecto Streaming Multimedia (video&audio) Departamento de desarrollo de software. Lexon S.A.

Multimedia Streaming. Memoria del proyecto Streaming Multimedia (video&audio) Departamento de desarrollo de software. Lexon S.A. Multimedia Streaming Memoria del proyecto Streaming Multimedia (video&audio). Lexon S.A. Memoria del proyecto de Streaming de video Introducción Mediante este proyecto se pretende desarrollar un sistema

Más detalles

Programación en C para plataforma CADmega128, basada en microcontrolador Atmel megaavr

Programación en C para plataforma CADmega128, basada en microcontrolador Atmel megaavr Laboratorio Equipos y Sistemas de Control Digital Guía Laboratorio Nº 1 Programación en C para plataforma CADmega128, basada en microcontrolador Atmel megaavr En esta experiencia se verá en forma aplicada

Más detalles

UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA

UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA DEPARTAMENTO DE ELECTRONICA Y TELECOMUNICACIONES ESCUELA UNIVERSITARIA DE INGENIERIA VITORIA GASTEIZ UNIVERSIDAD DEL PAIS VASCO EUSKAL HERRIKO UNIBERTSITATEA Ampliación de Sistemas Digitales Manual de

Más detalles

MODBUS INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez MODBUS 1. CARACTERÍSTICAS DEL BUS

MODBUS INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez MODBUS 1. CARACTERÍSTICAS DEL BUS INDICE 1. CARACTERÍSTICAS DEL BUS 2. PROTOCOLOS 3. CARACTERÍSTICAS DE LOS MENSAJES ENVIADOS 4. INSTRUCCIÓN PMCR 5. EJEMPLO DE APLICACIÓN a. Configuración puerto SCU41 b. Configuración variador V1000 c.

Más detalles

Paradigmas de Programación

Paradigmas de Programación Paradigmas de Programación 3.2. Orientación a Eventos Departamento de Informática Universidad de Valladolid Curso 2010-11 Grado en Ingeniería Informática Grado en Ingeniería Informática de Sistemas 11

Más detalles

Unidad 2: El sistema operativo. Trabajo sin conexión.

Unidad 2: El sistema operativo. Trabajo sin conexión. Unidad 2: El sistema operativo. Trabajo sin conexión. Un sistema operativo es un conjunto de programas de control que actúa como intermediario entre el usuario y el hardware de un sistema informático,

Más detalles

SOMI XVIII Congreso de Instrumentación MICROONDAS JRA1878 TRANSMISIÓN DE AUDIO Y VIDEO A TRAVÉS DE FIBRA ÓPTICA CON PREMODULACIÓN PCM

SOMI XVIII Congreso de Instrumentación MICROONDAS JRA1878 TRANSMISIÓN DE AUDIO Y VIDEO A TRAVÉS DE FIBRA ÓPTICA CON PREMODULACIÓN PCM TRANSMISIÓN DE AUDIO Y VIDEO A TRAVÉS DE FIBRA ÓPTICA CON PREMODULACIÓN PCM J. Rodríguez-Asomoza, D. Báez-López, E. López-Pillot. Universidad de las Américas, Puebla (UDLA-P) Departamento de Ingeniería

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC.

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. 1. Introducción... 1 2. Funcionamiento del Timer0... 1 2.1. Estructura general del Timer0...2 2.2. Entrada de reloj del modulo Timer0...2

Más detalles

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro.

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. Las Instrucciones A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. En general la instrucciones de los microcontroladores pueden clasificarse como:

Más detalles

Tema: Introducción a la Plataforma Arduino

Tema: Introducción a la Plataforma Arduino Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Periféricos Tema: Introducción a la Plataforma Arduino Objetivos Específicos. Conocer la plataforma de hardware libre Arduino 2. Desarrollar

Más detalles

REDES TEMA 6 EL NIVEL FÍSICO

REDES TEMA 6 EL NIVEL FÍSICO REDES TEMA 6 EL NIVEL FÍSICO ÍNDICE 1. INTRODUCCIÓN 2. TRANSMISIÓN ANALÓGICA LA RECOMENDACIÓN ITU-T V.24 3. TRANSMISIÓN DIGITAL INTERFASE DIGITAL X.21 4. CMUTACIÓN 5. GESTIÓN DE TERMINAL 6. PROBLEMAS EL

Más detalles

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE MECANICA ELECTRICA LABORATORIO DE ELECTRONICA PENSUM COMUNICACIONES 3

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE MECANICA ELECTRICA LABORATORIO DE ELECTRONICA PENSUM COMUNICACIONES 3 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE MECANICA ELECTRICA LABORATORIO DE ELECTRONICA PENSUM COMUNICACIONES 3 ~ 1 ~ ÍNDICE Introducción...página 3 Prácticas LabVolt...página

Más detalles

ETIQUETA DISEÑO DE PÁGINA

ETIQUETA DISEÑO DE PÁGINA ETIQUETA DISEÑO DE PÁGINA Es la tercera etiqueta de Excel 2007, agrupa las herramientas de temas 10, configuración de pagina, ajustes del área de impresión, opciones de la hoja (cuadriculas y encabezados),

Más detalles

TEMA II.- PROGRAMACIÓN CON EL CROCODILE TECHNOLOGY.

TEMA II.- PROGRAMACIÓN CON EL CROCODILE TECHNOLOGY. TEMA II.- PROGRAMACIÓN CON EL CROCODILE TECHNOLOGY. I. Introducción Aunque todavía no hemos introducido concepto alguno de programación si nos interesa primeramente conocer el manejo de las herramientas

Más detalles

CAPÍTULO III. ETAPA DE CONVERSIÓN Y FILTRADO. de la industria tienen algo en común, la utilización de electrónica de potencia dentro de

CAPÍTULO III. ETAPA DE CONVERSIÓN Y FILTRADO. de la industria tienen algo en común, la utilización de electrónica de potencia dentro de CAPÍTULO III. ETAPA DE CONVERSIÓN Y FILTRADO 3.. Introducción. Muchos de los sistemas electrónicos utilizados para aplicaciones dentro del campo de la industria tienen algo en común, la utilización de

Más detalles

MANUAL DE PRODUCTO. IRSC - Open ZN1CL IRSC. Edición 1.0 Versión 1.0

MANUAL DE PRODUCTO. IRSC - Open ZN1CL IRSC. Edición 1.0 Versión 1.0 MANUAL DE PRODUCTO IRSC - Open ZN1CL IRSC Edición 1.0 Versión 1.0 Index 1. INTRODUCCIÓN..3 1.1 INTRODUCCIÓN A LA EMISIÓN INFRARROJA 3 1.2 INTRODUCCIÓN A IRSC OPEN CAPTURE..5 2 OBTENIENDO DATOS CON IRSC

Más detalles

CIF-GPS GUÍA DE USUARIO

CIF-GPS GUÍA DE USUARIO CIF-GPS GUÍA DE USUARIO Secciones 1. VENTAJAS DE CIF-GPS 2. INSTALAR CIF-GPS 3. FUNCIONAMIENTO DE LA APLICACIÓN. 3.1 Visión general y conceptos 3.2 Entrar en CIF-GPS. 3.3 Ventana Principal. 3.4 Menús contextuales

Más detalles

PRÁCTICA II: ADQUISICIÓN DE DATOS CON LABVIEW

PRÁCTICA II: ADQUISICIÓN DE DATOS CON LABVIEW SISTEMAS ELECTRÓNICOS Y DE CONTROL LABORATORIO SISTEMAS ELECTRÓNICOS DE CONTROL PRÁCTICA II: ADQUISICIÓN DE DATOS CON LABVIEW Curso 05/06 - 2 - PRÁCTICA II ADQUISICIÓN DE DATOS CON LABVIEW II.1. INTRODUCCIÓN

Más detalles

ORBI 2012 Programador Universal USB Manual del Usuario

ORBI 2012 Programador Universal USB Manual del Usuario 1 ORBI 2012 Programador Universal USB Manual del Usuario 2 ORBI 2012 Programador Universal USB Manual del Usuario Indice : 1. Introducción 2 2. Principios de funcionamiento 2 3. Instalación del programador

Más detalles

SiAM Conversor Versión 2.0. siam CONVERSOR EXTERNO RS232-RS485 AUTO-VELOCIDAD AUTO-RTS. software i automatismes morvedre. Manual del usuario

SiAM Conversor Versión 2.0. siam CONVERSOR EXTERNO RS232-RS485 AUTO-VELOCIDAD AUTO-RTS. software i automatismes morvedre. Manual del usuario CONVERSOR EXTERNO RS232-RS485 AUTO-VELOCIDAD AUTO-RTS CARACTERÍSTICAS Conversor RS232/RS485 externo con detección automática de la transmisión (Auto-RTS) y detección automática de la velocidad (Auto-Velocidad)

Más detalles

Figura 1. Circuito simple con una batería, dos pedazos de alambre conductor y una bombilla

Figura 1. Circuito simple con una batería, dos pedazos de alambre conductor y una bombilla Experimento 3 BATERÍAS, BOMBILLAS Y CORRIENTE ELÉCTRICA Objetivos 1. Construir circuitos sencillos con baterías, bombillas, y cables conductores, 2. Interpretar los esquemáticos de circuitos eléctricos,

Más detalles

Manual del Manipulador K9 13 de Agosto de 1998 Steven T. Elliott - K1EL (Traducción al castellano: Jon Iza, EA2SN)

Manual del Manipulador K9 13 de Agosto de 1998 Steven T. Elliott - K1EL (Traducción al castellano: Jon Iza, EA2SN) Manual del Manipulador K9 13 de Agosto de 1998 Steven T. Elliott - K1EL (Traducción al castellano: Jon Iza, EA2SN) Introducción Este manual describe la operación del manipulador electrónico K9 que es un

Más detalles

Familias de microcontroladores de radio frecuencia.

Familias de microcontroladores de radio frecuencia. CAPITULO 3 Familias de microcontroladores de radio frecuencia. 3.1 Familias de rfpics. MICROCHIP ha desarrollado unas familias de microcontroladores con un anexo, que es una unidad transmisora de ASK o

Más detalles

Información sobre la configuración de una aplicación para transmitir datos ASCII por puerto serie, con pantallas terminales Magelis.

Información sobre la configuración de una aplicación para transmitir datos ASCII por puerto serie, con pantallas terminales Magelis. Información sobre la configuración de una aplicación para transmitir datos ASCII por puerto serie, con pantallas terminales Magelis. Materiales: En la confección de la presente Nota de Aplicación se utilizó

Más detalles

SKX Linker MANUAL DE PRODUCTO INTEGRACIÓN JRSECURITY ZN1RX RS485. Edición 1 Versión 0.1

SKX Linker MANUAL DE PRODUCTO INTEGRACIÓN JRSECURITY ZN1RX RS485. Edición 1 Versión 0.1 MANUAL DE PRODUCTO SKX Linker INTEGRACIÓN JRSECURITY ZNRX RS485 Edición Versión 0. ÍNDICE. Introducción... 3.. Skx linker... 3.2. Aplicación JR Security... 4 2. Instalación... 5 2.. instalación SKX linker.

Más detalles

Introducción a la Programación Orientada a Objetos con C++

Introducción a la Programación Orientada a Objetos con C++ Introducción a la Programación Orientada a Objetos con C++ Ignacio Alvarez García Ing. de Sistemas y Automática Universidad de Oviedo Septiembre 2014 Contenido 1. Introducción a la programación orientada

Más detalles

AUTOMATIZACIÓN - CURSO: 2010-2011- Práctica 4: Sistema de Monitorización de tiempo mediante Arduino

AUTOMATIZACIÓN - CURSO: 2010-2011- Práctica 4: Sistema de Monitorización de tiempo mediante Arduino AUTOMATIZACIÓN - CURSO: 2010-2011- Juan Antonio Corrales Ramón Carlos Alberto Jara Bravo Fernando Torres Medina Grupo de Innovación Educativa en Automática Departamento de Física, Ingeniería de Sistemas

Más detalles

Práctica 3ProgramacionRS232: Programación básica de la RS232

Práctica 3ProgramacionRS232: Programación básica de la RS232 Práctica 3ProgramacionRS232: Programación básica de la RS232 1 Objetivos El objetivo de esta práctica es la iniciación del alumno en la programación de las comunicaciones en un entorno de desarrollo basado

Más detalles

CAPÍTULO 2. La Instrumentación

CAPÍTULO 2. La Instrumentación CAPÍTULO 2 La Instrumentación La implementación en el laboratorio del sistema péndulo-carro que describimos en el capítulo anterior presenta algunos retos de instrumentación cuya solución no es sencilla.

Más detalles

Guía de Usuario Convertidor USB-Serial

Guía de Usuario Convertidor USB-Serial Guía de Usuario Convertidor USB-Serial Tecnología Digital del Bajío Av. Vicente Guerrero 1003 Irapuato, Gto. Mex. C.P. 36690 Teléfono: (462) 145 35 22 www.tecdigitaldelbajio.com ventas@tecdigitaldelbajio.com

Más detalles

CIF-GPS GUÍA DE USUARIO

CIF-GPS GUÍA DE USUARIO mensja CIF-GPS GUÍA DE USUARIO Secciones 1. VENTAJAS DE CIF-GPS 2. INSTALAR CIF-GPS 3. FUNCIONAMIENTO DE LA APLICACIÓN. 3.1 Visión general y conceptos 3.2 Entrar en CIF-GPS. 3.3 Ventana Principal. 3.4

Más detalles

ELECTRONICS WORKBENCH

ELECTRONICS WORKBENCH PRÁCTICA 1: INTRODUCCIÓN A LA SIMULACIÓN DE CIRCUITOS ELECTRÓNICOS DIGITALES CON ELECTRONICS WORKBENCH Ingeniería Técnica en Informática de Sistemas. Miguel Martínez Iniesta Juan Antonio Ruiz Palacios

Más detalles

TARJETA CONVERSORA ANALOGA/DIGITAL (A/D)

TARJETA CONVERSORA ANALOGA/DIGITAL (A/D) TARJETA CONVERSORA ANALOGA/DIGITAL (A/D) 1. INTRODUCCIÓN. Un conversor A/D es un dispositivo que mapea una tensión análoga en un código o palabra digital de n bits. Para esto toma muestras de la señal

Más detalles

Comunicación serial por Aircable Lessly Marlene Sabido Calzada. Seminario del Proyecto de Investigación en robótica Humanoide

Comunicación serial por Aircable Lessly Marlene Sabido Calzada. Seminario del Proyecto de Investigación en robótica Humanoide Comunicación serial por Aircable Lessly Marlene Sabido Calzada Seminario del Proyecto de Investigación en robótica Humanoide Objetivo Conocer el protocolo de comunicación serial RS232 Conocer el protocolo

Más detalles

Diseño de Sistemas embebidos y comunicaciones: Aplicaciones de telefonía, RF y localización remota. Ing. José Oliden Martínez

Diseño de Sistemas embebidos y comunicaciones: Aplicaciones de telefonía, RF y localización remota. Ing. José Oliden Martínez Diseño de Sistemas embebidos y comunicaciones: Aplicaciones de telefonía, RF y localización remota El controlador dentro de un sistema de Control DISPOSITIVO DE MEDICIÓN CONVERSOR ANÁLOGO DIGITAL CONTROLADOR

Más detalles

CONEXIÓN DIRECTA DE MÚLTIPLES SENSORES A MICROCONTROLADORES SIN UTILIZAR CONVERTIDOR ANALÓGICO DIGITAL

CONEXIÓN DIRECTA DE MÚLTIPLES SENSORES A MICROCONTROLADORES SIN UTILIZAR CONVERTIDOR ANALÓGICO DIGITAL CONEXIÓN DIRECTA DE MÚLTIPLES SENSORES A MICROCONTROLADORES SIN UTILIZAR CONVERTIDOR ANALÓGICO DIGITAL Custodio Ruiz, Ángel Augusto Torres, Rafael UNEXPO, Centro Instrumentación y Control cicunexpo@gmail.com

Más detalles

PANTALLA LED PROGRAMABLE I

PANTALLA LED PROGRAMABLE I PANTALLA LED PROGRAMABLE I La luz LED de escritura sirve para mostrar mensajes a través de una pantalla LED. Los textos y los efectos de visualización puede ser programadas a través del control remoto

Más detalles

Scanner. Que es un scanner?

Scanner. Que es un scanner? Scanner Que es un scanner? Un scanner es un dispositivo de entrada que digitaliza una imagen de un papel u otra superficie, y la almacena en la memoria de una computadora. Cómo funciona? Una fuente de

Más detalles

AxxonSoft. Sistema. Intellect. Guía breve de usuario. Versión 1.0.0

AxxonSoft. Sistema. Intellect. Guía breve de usuario. Versión 1.0.0 AxxonSoft Sistema Intellect Guía breve de usuario Versión 1.0.0 Moscú 2010 Índice ÍNDICE... 2 1 INTRODUCCIÓN... 3 1.1 Propósito de este documento... 3 1.2 Propósito del sistema Intellect... 3 2 PREPARACIÓN

Más detalles

Introducción. Frecuencia, longitud de onda y período. Dominio de tiempo y dominio de frecuencia. Ancho de banda

Introducción. Frecuencia, longitud de onda y período. Dominio de tiempo y dominio de frecuencia. Ancho de banda Introducción El nivel físico es el encargado de establecer una conexión entre dos nodos y de enviar los datos como unos y ceros (u otra forma análoga). Para ello, este nivel define detalles físicos como

Más detalles

USB. Teoría. INGENIERIA EN MICROCONTROLADORES Protocolo USB (UNIVERSAL SERIAL BUS) Protocolo

USB. Teoría. INGENIERIA EN MICROCONTROLADORES Protocolo USB (UNIVERSAL SERIAL BUS) Protocolo Protocolo USB INGENIERIA EN MICROCONTROLADORES Protocolo USB (UNIVERSAL SERIAL BUS) Teoría PROTOCOLO USB www.i-micro.com Ingeniería en Microcontroladores Teléfono 044 55 11 29 55 05 E-mail: cursos@i-micro.com

Más detalles

TEMA I.- CROCODILE TECHNOLOGY.

TEMA I.- CROCODILE TECHNOLOGY. TEMA I.- CROCODILE TECHNOLOGY. I. Introducción.- El Crocodile Technology es un programa de simulación muy adecuado para los niveles la Enseñanza Secundaria e incluso para algunos aspectos de la Tecnología

Más detalles

Unidad 3: El sistema operativo. Trabajo con conexión.

Unidad 3: El sistema operativo. Trabajo con conexión. Unidad 3: El sistema operativo. Trabajo con conexión. 1.- Red de ordenadores Vamos a describir que es una red informática o red de ordenadores. Una red informática es un sistema de interconexión entre

Más detalles

Manual de programación de los microcontroladores PIC para su uso en el Proyecto IOCards

Manual de programación de los microcontroladores PIC para su uso en el Proyecto IOCards Manual de programación de los microcontroladores PIC para su uso en el Índice 1. Introducción 2. Material necesario a. Hardware b. Software 3. Conexiónes Hardware 4. Configuración Hardware 5. Instalación

Más detalles

- Realizar procesamientos adicionales en función del estado de distintos dispositivos, como alocuciones o avisos sonoros.

- Realizar procesamientos adicionales en función del estado de distintos dispositivos, como alocuciones o avisos sonoros. 1. DESCRIPCIÓN DEL SISTEMA CENTRAL El sistema central para New Roulette es un equipo encargado de recopilar la información de todos los dispositivos (maquinas, progresivo y ruleta) con dos propósitos:

Más detalles

Instrucciones de Comunicaciones

Instrucciones de Comunicaciones Guía Rápida Instrucciones de Comunicaciones Introducción Guía Rápida Puertos lógicos (Asignación automática). Instrucciones de red. Instrucción para macros. Instrucciones para comunicaciones serie. OMRON

Más detalles

TUTORIAL Comunicación Serial

TUTORIAL Comunicación Serial 1 TUTORIAL Comunicación Serial OBJETIVOS Manejar el módulo USART para comunicaciones seriales asíncronas. Realizar transmisiones y recepciones seriales útiles para el control y monitoreo de eventos. INTRODUCCIÓN:

Más detalles

DISPLAYS DE CRISTAL LIQUIDO

DISPLAYS DE CRISTAL LIQUIDO DISPLAYS DE CRISTAL LIQUIDO INDICE MANUAL DE REFERENCIA DEL LCD 1.- INTRODUCCION 2.- CARACTERISTICAS DEL DISPLAY 2.1.- Aspecto físico 2.2.- Alimentación 2.3.- Los caracteres del LCD 2.4.- La memoria del

Más detalles

Memoria Virtual. Figura 1: Memoria Virtual

Memoria Virtual. Figura 1: Memoria Virtual 1 Memoria Virtual. Qué podemos hacer si un programa es demasiado grande para caber en la memoria disponible? Una posibilidad es usar superposiciones (overlays), como en MS-DOS: dividimos el programa en

Más detalles

Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC

Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC A. Muñoz, A. Millan, P. Ruiz-de-Clavijo, J. Viejo, E. Ostua, D. Guerrero Grupo ID2 (Investigación y Desarrollo Digital).

Más detalles

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario 5.1 Introducción Para la comunicación entre SATEDU y su estación terrena se necesita ajustar ciertos parámetros de comunicación de la Tarjeta de Comunicaciones como la tasa de transmisión, el número de

Más detalles

Tema: Arduino y Comunicación Serial con Visual Basic

Tema: Arduino y Comunicación Serial con Visual Basic Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Periféricos Tema: Arduino y Comunicación Serial con Visual Basic Objetivos Específicos. Utilizar el puerto USB como dispositivo de comunicación

Más detalles

Anexo B. Comunicaciones entre mc y PC

Anexo B. Comunicaciones entre mc y PC Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación

Más detalles

1. ÍNDICE. Índice de contenido 2. INTRODUCCIÓN 3. CONTENIDO 1. OBJETIVOS DEL PROYECTO

1. ÍNDICE. Índice de contenido 2. INTRODUCCIÓN 3. CONTENIDO 1. OBJETIVOS DEL PROYECTO ULPGC, Universidad de Las Palmas de Gran Canarias. Facultad de Informática. Asignatura: Diseño de Sistemas Basados en Microprocesadores Profesor: Ricardo Pérez García. Regador Automático ACOSTA PADRÓN,

Más detalles

MANUAL DE USUARIO CENTRO DE CONTROL DE FLOTAS MU-CCF-021-SN AGOSTO 2000 EDICIÓN: 1 REVISIÓN: 0

MANUAL DE USUARIO CENTRO DE CONTROL DE FLOTAS MU-CCF-021-SN AGOSTO 2000 EDICIÓN: 1 REVISIÓN: 0 CENTRO DE CONTROL DE FLOTAS MANUAL DE USUARIO MU-CCF-021-SN EDICIÓN: 1 ÍNDICE 1 INTRODUCCIÓN... 1.1 2 FUNCIONALIDAD... 2.1 3 REQUISITOS DEL SISTEMA... 3.1 4 INSTALACIÓN DEL PROGRAMA... 4.1 5 MANEJO DEL

Más detalles

ÍNDICE DE CONTENIDOS

ÍNDICE DE CONTENIDOS ÍNDICE DE CONTENIDOS 1. Conceptos generales sobre redes... 1. 2. Elementos básicos de una red. Hardware y Software... 3. 3. Configuración de una LAN. Protocolo TCP IP... 5. 4. Recursos compartidos en una

Más detalles

TECNOLOGIAS DE LA INFORMACION: ARQUITECTURA DEL ORDENADOR

TECNOLOGIAS DE LA INFORMACION: ARQUITECTURA DEL ORDENADOR TECNOLOGIAS DE LA INFORMACION: ARQUITECTURA DEL ORDENADOR En esta unidad vamos a estudiar el ORDENADOR, sus principios de funcionamiento, elementos que lo componen y las funciones que cumplen dentro del

Más detalles

SIMULACION DE UN ENTORNO Y MEMORIA VIRTUAL PARA UNA PLATAFORMA KHEPERA. Leonardo Solaque Nelson D. Muñoz Nelson Londoño Ospina

SIMULACION DE UN ENTORNO Y MEMORIA VIRTUAL PARA UNA PLATAFORMA KHEPERA. Leonardo Solaque Nelson D. Muñoz Nelson Londoño Ospina SIMULACION DE UN ENTORNO Y MEMORIA VIRTUAL PARA UNA PLATAFORMA KHEPERA Leonardo Solaque Nelson D. Muñoz Nelson Londoño Ospina GIRA 2 (Grupo de Investigación en Robótica y Areas Afines) Universidad de Antioquia

Más detalles

13º Unidad Didáctica. RAID (Redundant Array of Independent Disks) Eduard Lara

13º Unidad Didáctica. RAID (Redundant Array of Independent Disks) Eduard Lara 13º Unidad Didáctica RAID (Redundant Array of Independent Disks) Eduard Lara 1 RAID: INTRODUCCIÓN Sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replica los datos.

Más detalles

Circuitos, Sensores y Actuadores

Circuitos, Sensores y Actuadores Capítulo 3 Circuitos, Sensores y Actuadores 3.1. Introducción En el siguiente capítulo se hablará acerca del circuito a utilizar en nuestra mano, para que el sistema de control por flexión funcione, el

Más detalles

Práctica 1. Introducción al laboratorio y al ensamblador del PIC. 1. Objetivos. 2. Introducción. 2.1 Ensamblar y simular

Práctica 1. Introducción al laboratorio y al ensamblador del PIC. 1. Objetivos. 2. Introducción. 2.1 Ensamblar y simular Práctica Introducción al laboratorio y al ensamblador del PIC Práctica Introducción al laboratorio y al ensamblador del PIC. Objetivos El objetivo de esta primera sesión es que el alumno aprenda el manejo

Más detalles

Centro de Profesorado Luisa Revuelta (Córdoba) TEMA 10 OPCIONES AVANZADAS

Centro de Profesorado Luisa Revuelta (Córdoba) TEMA 10 OPCIONES AVANZADAS Centro de Profesorado Luisa Revuelta (Córdoba) TEMA 10 OPCIONES AVANZADAS 1.- CONTROL DE LA EJECUCIÓN Una vez que ya hemos aprendido a crear presentaciones, vamos a configurarlas para que al ejecutarla

Más detalles

Prácticas de Introducción a los Computadores Curso 2000-2001 1 WINDOWS 95

Prácticas de Introducción a los Computadores Curso 2000-2001 1 WINDOWS 95 Prácticas de Introducción a los Computadores Curso 2000-2001 1 Novedades WINDOWS 95 Windows 95 es un sistema operativo orientado a documentos. Permite la asociación de la extensión de cada fichero a un

Más detalles

Manual técnico de instalación del software para Android y dispositivos Shadow BT

Manual técnico de instalación del software para Android y dispositivos Shadow BT Manual técnico de instalación del software para Android y dispositivos Shadow BT Preparación general... 5 Instalación app... 7 Puesta en marcha... 9 Arranque manual... 10 Arranque automático... 11 Auto-arranque

Más detalles

Conversor. IB RS485 Ethernet

Conversor. IB RS485 Ethernet Conversor IB RS485 Ethernet 2010 Ibercomp SA Manual versión Marzo 2010 Si encuentra un error en este manual o sugiere alguna mejora o aclaración rogamos nos lo comunique. Página 1 de 11 Introducción El

Más detalles

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. 1 LENGUAJE ENSAMBLADOR El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. El lenguaje ensamblador expresa las instrucciones de una

Más detalles

Guía de Programación para Visual Basic 6

Guía de Programación para Visual Basic 6 Innova Service Tecnología www.istec.cl Guía de Programación para Visual Basic 6 Versión 1.1 Indice Introducción.1 Instalación y Enlace a Proyecto Visual Basic.3 Consideraciones Generales Nombres de funciones

Más detalles

COMO PROGRAMAR EL PUERTO PARALELO

COMO PROGRAMAR EL PUERTO PARALELO 1 PRESENTACION 2 El presente documento es una breve recopilación de datos referentes a como se programa el puerto paralelo para su utilización en automatismos, circuitos electronicos controlados por computadora

Más detalles

GE Power Management GE_LOCAL. Software de Comunicación. Instrucciones GEK 105568C

GE Power Management GE_LOCAL. Software de Comunicación. Instrucciones GEK 105568C GE Power Management Software de Comunicación GE_LOCAL Instrucciones GEK 105568C ,1',&( 1. INSTALACIÓN...3 1.1. REQUERIMIENTOS DEL SISTEMA...3 1.2. INSTALACIÓN DEL PROGRAMA...3 1.2.1. Instalación con disquetes....3

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN DE AUTÓMATAS SIEMENS S7-1200

INTRODUCCIÓN A LA PROGRAMACIÓN DE AUTÓMATAS SIEMENS S7-1200 INTRODUCCIÓN A LA PROGRAMACIÓN DE AUTÓMATAS SIEMENS S7-1200 1. PRESENTACIÓN DE LOS EQUIPOS DE PRÁCTICAS Autómata SIEMENS SERIE S7-1200 o CPU 1214C AC/DC/RLY o Según el fabricante, es un "controlador modular

Más detalles