Manual de Prácticas Programacion Avanzada

download Manual de Prácticas Programacion Avanzada

of 61

Transcript of Manual de Prácticas Programacion Avanzada

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    1/61

    MANUAL DE PRCTICAS PROGRAMACIN AVANZADA

    AUTOR:Viridiana Brcenas Jimnez

    Exp.: 153380

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    2/61

    CONTENIDO

    PRCTICA 1 USO DEL PUERTO PARALELO DE LA COMPUTADORA (Salida)

    PG. 3

    PRCTICA 2 USO DEL PUERTO PARALELO DE LA COMPUTADORA PARA EL CONTROL DE MOTORES DE CD

    DE CONMUTACIN ELECTRNICA (MOTORES PASO A PASO).PG.21

    PRCTICA 3 ADQUISICIN DE DATOS DE TEMPERATURA (CONFIGURACIN DEL PUERTO PARALELO DE

    ENTRADA).PG.27

    PRCTICA 4 USO DEL PUERTO SERIAL PARA COMUNICACIN (CHAT CON PUERTO SERIAL).

    PG.34

    PRCTICA5 INTRODUCCIN AL USO DE MICROCONTROLADORES (PIC16F877A).

    PG.46

    PRCTICA 6 USO DE C CONFIGURADO PARA ENTRADA Y SALIDA DE DATOS (PIC16F877A).

    PG.

    PRCTICA 7 TRANSMISIN/RECEPCIN DE DATOS VA UN MDULO DE COMUNICACIN XBee.

    PG.52

    ...

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    3/61

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la Prctica USO DEL PUERTO PARALELO DE LA COMPUTADORA (Salida)

    Nmero de Prctica 1 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno comprender el uso del puerto paralelo para efectuar acciones de control (on/off), tambin, aprender configurar el puerto paralelo de salida para procesar seales

    MARCO TERICO

    Introduccin.

    El puerto paralelo de una PC o computadora [1] es ideal para usarse como herramienta de control de motoresrelevadores, LEDs (Diodos Emisores de Luz), etc. Este dispositivo posee un bus de datos de 8 bits y seales decontrol de salida y otras de entrada que pueden ser usadas fcilmente (Tabla 1). La PC generalmente posee sluno de estos puertos llamado LPT1 (Terminal de las Lneas de Impresin), la direccin hexadecimal de este puertes igual a 0x378 888 en decimal, esto se puede verificar fcilmente en el setup de la PC.

    Tabla1. Configuracin del puerto paralelo estndar.

    Pin (D-25) Lnea Puerto SPP Direccin Registro (bit)

    1 -Strobe Entrada/ Salida Control(0)2 D0 Salida Datos(0)3 D1 Salida Datos(1)4 D2 Salida Datos(2)5 D3 Salida Datos(3)6 D4 Salida Datos(4)7 D5 Salida Datos(5)8 D6 Salida Datos(6)9 D7 Salida Datos(7)

    10 -Ack Entrada Estado(6)11 Busy Entrada Estado(7)12 Paper-out Entrada Estado(5)13 Select Entrada Estado(4)14 -Auto-Linefeed Entrada/ Salida Control(1)15 -Error Entrada Estado(3)16 -Initialize Entrada/ Salida Control(2)17 -SelecPrinter Entrada/ Salida Control(3)18-25 GND

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    4/61

    El hardware del puerto paralelo.

    El puerto paralelo de una tpica PC utiliza un conector hembra de tipo D de 25 pines (DB-25 S), definido este por eestndar IEEE 1284. El orden de los pines y la funcin de cada uno de ellos es la correspondiente a la Figura 1.

    Figura 1. Orden y func in de pines para DB-25 S.

    Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, estas direcciones pertenecen al registro ddatos, el registro de estado y el registro de control. El registro de datos es un puerto de lectura-escritura de ocho bits

    Los distintos pines (bits) de salida correspondientes al bus de datos no pueden ser escritos en forma independiente

    por lo que siempre que se modifiquen se deben escribir los ocho bits nuevamente. Los registros de control y estadproveen la interfase a las otras lneas de E/S.

    Para leer el estado de los pines de entrada se debe realizar una lectura a la direccin hexadecimal 0x379 889 edecimal tal como se muestra en la Tabla 2. La lectura ser devuelta en un byte en donde el bit 6 corresponde al pin10, el bit 5 corresponde al pin 12, el bit 4 corresponde al pin 13 y el bit 3 corresponde al pin 15.

    Tabla 2. Direcciones a puerto.

    Puerto Direccin LPT1

    DatosSe compone de 8 bits, esbidireccional.

    378H

    EstadoRegistro de entrada deinformacin de 5 bits.

    379H

    ControlEs un bidireccional de 4 bits, conun bit de configuracin que notiene conexin al exterior.

    37AH

    Instrucciones en C para configurar el puerto paralelo.

    En primera instancia se debe habilitar el puerto paralelo para su uso, para esto se recurre al USERPORT.

    Manejo del USERPORT.

    Para poder leer y escribir en el puerto paralelo es necesario un driver (archivo *.sys) que comunique el software condispositivo hardware. El proceso a seguir para instalar el driver que permita acceder a el puerto paralelo:

    Descargar la utilidad denominada USERPORT .Descomprime el archivo en una carpeta del disco duro. Noimporta el nombre.

    Copiar el archivo "userport.sys" en la carpeta de sistema C:\WINDOWS\SYSTEM32\DRIVERS Ejecuta el archivo UserPort.exe

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    5/61

    Figura 2. Ventana principal USERPORT.

    Para iniciar el driver, accionar el botn START, si se desea detener la ejecucin seleccionar el botn STOP(Figura 2).

    El direccionamiento de los puertos, est indicado en el cuadro de dilogo del USERPORT, en este se hace referencia los rangos habituales que se asigna a los puertos en un PC. Si el direccionamiento del puerto no coincide con los

    que aparecen, se puede aadir un nuevo rango de direcciones escribindolas en notacin hexadecimal. Para finalizase debe ejecutar el lenguaje de programacin que acceda a los puertos y utilizar de forma transparente lainstrucciones primitivas para entrada/salida de datos.

    Configuracin de puerto paralelo salida (escritura)

    Con ocho bits se puede escribir en el puerto un total de 256 valores diferentes, cada uno representa un byte dinformacin y cada byte representa una accin concreta. Con la Tabla 1 y Tabla 2 se puede modificar o leecualquiera de las lneas de programacin de salida del puerto paralelo mediante el uso de las instrucciones deacceso al mismo, en el lenguaje de programacin C, Turbo C y C++.

    1. Determinar que salida del puerto paralelo es el que se va utilizar. Se debe tomar es esta salida y conectarla aun diodo LED en serie a una resistencia de 330 Ohm como se muestra en la Figura 3.

    Figura 3. Lnea de salida. NOTA: "Pin puerto paralelo" puede ser cualquier Pin del 2 al 9.

    2. Se indica que seal ser la que se va a enviar, esto aplicado en la funcin Outportb tal como en la Figura donde se indica que se enviara un dato a travs del puerto de datos.

    Las instrucciones que terminan en b, como seria en el caso del Outportb, se refieren a la lectura o escritura dun byte, mientras que las que no terminan en esta letra es decir el Outport se refieren a una palabra eequivalente a dos byte.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    6/61

    Figura 4. Formato de instruccin de salida a puerto paralelo.

    EQUIPO Y MATERIALES. PC. Resistencias de 330 Ohms. LEDs. Cable interfaz Puerto paralelo (armado DB-25 macho). Alambre para conexin AWG 22. Protoboard.

    PRERREQUISITOS.

    El alumno debe traer armado el cable de interfaz para puerto paralelo y los circuitos requeridos que sonnecesarios para la comunicacin de salida del puerto paralelo contemplando slo las lneas de datos.

    METODOLOGA.

    El alumno debe realizar las siguientes aplicaciones visible en un arreglo de LEDs:

    1. Secuencia par e impar: Desarrollar e implementar un programa que muestre en una lnea de salida donde senciendan primero los indicadores correspondientes a nmero par y en seguida los correspondientes anmero impar, secuencia dada en nmeros binarios,ver ejemplo Figura 5.

    Figura 5. Tablero de LEDs indicado res secuenc ia de nmeros PAR e IMPAR.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    7/61

    2. Contador de 0-255: Desarrollar e implementar el programa necesario que muestre en una lnea de datos unsecuencia binaria correspondiente a un contador de 0 a 255, ver ejemplo Figura 6.

    Figura 6. Tablero de LEDs indicado res con tador 0-255.

    3. Corrimiento de izquierda a derecha: Desarrollar e implementar el programa que muestre en una lnea dsalida los datos correspondientes al corrimiento de bits de izquierda a derecha, ver ejemplo Figura 7.

    Figura 7. Tablero de LEDs ind icadores secuencia de Izquierda a Derecha.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    8/61

    4. Corrimiento del centro a los lados: Desarrollar e implementar el programa que muestre en una lnea de datoel corrimiento de bits partiendo del centro del arreglo de LED hacia las laterales del mismo, ver ejemplFigura 8.

    Figura 8. Tablero de LEDs ind icadores secuencia de Derecha a Izquierda.

    EVALUACIN DE LA PRCTICA.

    Conclusiones:__________________________________________________________________________________________________________________________________________________________________________________________________________________________________.Observaciones:_______________________________________________________________________

    __________________________________________________________________________.

    BIBLIOGRAFA.

    [1]http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm,1999, El puerto paralelo de la PC, por Virgilio GmeNegrete, Espaol.[2]http://olmo.pntic.mec.es/jmarti50/puerto_xp/userport.htm, 2004, USERPORT. Driver para acceder al puertparalelo en Windows NT/2000/XP, J.C.M.Castillo, Espaol.[3]Tcnicas de programacin, Ed. McGraw Hill.

    http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htmhttp://olmo.pntic.mec.es/jmarti50/puerto_xp/userport.htmhttp://olmo.pntic.mec.es/jmarti50/puerto_xp/userport.htmhttp://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm
  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    9/61

    Figura Anexa (A)

    Diagrama de flujo propuesto para la programacin.

    Inicio

    /*Declaracin de libreras#include*/

    #include#include#include

    /*Declaracin de variables globales. Encaso de que el programador lo desee*/

    #define salida 0x378 // direccin salida

    /*Pude direccionar la salida por puertoempleando el Outport tal y como se indicaen la Figura4*/

    /*Declaracin de la funcin principal */Voidmain()

    {

    /*Declaracin de variables locales. En caso de que serequiera su uso*/

    Int a,b,c,d,e,f,g;float x;

    /*Se verifica la accin a ejecutar y se determina elcdigo ms adecuado para el programador: If, Else,For ,etc */

    Palabra = inport(puerto);outport (puerto, Palabra);Byte = inportb (puerto);outportb (puerto, Byte);

    /*Se finaliza la ejecucin de la funcin principal*/

    }

    Fin

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    10/61

    1

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la Prctica USO DEL PUERTO PARALELO DE LA COMPUTADORA PARAEL CONTROL DE MOTORES DE CD Y DE CONMUTACIN

    ELECTRNICA (MOTORES PASO A PASO).

    Nmero de Prctica 2 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno podr reconocer las diferentes configuraciones para accionar y controlar motores de CD y de conmutacinelectrnica (paso a paso) empleando drivers de uso especfico y el puerto paralelo.

    MARCO TERICO

    Interfaz para el puerto paralelo.

    Actualmente, la mayora de los puertos instalados en las PC son de tipo multimodal configurables a travs del BIOSde la mquina, en modo normal o de puerto paralelo estndar, adems de ste, estn las opciones bidireccionapuerto paralelo extendido versin 1.7, versin 1.9 y el puerto de capacidad extendida. El modo de operacin Normaes el ms elemental y solamente permite la escritura en las lneas de datos, pines 2 a la 9 del conector DB-25 depuerto paralelo de la PC [1].

    Elctricamente, el puerto paralelo entrega seales TTL (lgica de transistor a transistor)y como tal, se le puedconectar cualquier dispositivo que cumpla con los niveles de voltaje especficos, sin embargo el hardware del puertoparalelo es muy limitado en cuanto a su capacidad de manejo de corriente, es por eso que se tiene que ser muycuidadoso con el manejo de las seales del puerto, un corto circuito puede daar permanentemente la tarjeta madrde la PC.

    El manejo de potencia, es decir la manipulacin de altas corrientes, implica tener consideraciones de seguridadelctrica para los operarios y de proteccin para el sistema digital en este caso el puerto paralelo de la PC.

    Para disminuir el riesgo de dao al puerto se emplea una etapa de aislamiento.

    El integrado 74LS244 [2] funciona como etapa aislante y mejora la capacidad de manejo de corriente, Figur1(A). Por cada lnea de entrada del puerto paralelo existe una etapa amplificadora-separadora dentro de

    74LS244 con una tasa de entrega de corriente suficiente para desplegar la informacin a travs de LEDsVer Figura 1(B).

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    11/61

    1

    Figura 1. A) Circuito 74LS244, B) Configuracin de conexin a Puerto Paralelo.

    Es deseable que la interconexin entre ambas etapas la digital y la de potencia se realice por un medio dacoplamiento que asle elctricamente los dos sistemas. Esto se puede lograr con los dispositivos llamadoOPTO ACOPLADORES (por ejemplo el optoacoplador 4N25

    [3]), Figura 2(A),mediante los cuales se obtien

    un acoplamiento ptico y, al mismo tiempo, un aislamiento elctrico.

    El acoplamiento se efecta en el rango del espectro infra-rojo a partir de dispositivos emisores de luzusualmente IRED (infra-rojo) o LEDs, actuando como emisores y utilizando dispositivos detectores de luz(opto detectores), como receptores, Figura 2(B).

    Figura 2. A) Opto acoplador 4N25, B) Configuracin del 4N25 salida.

    Un relevador

    [4]

    es un interruptor accionado por un electroimn (Figura 3). Al pasar corriente elctrica por lbobina el ncleo de hierro se magnetiza, convirtindose en un imn que ser ms potente mientras mayosea la intensidad de la corriente y el nmero de vueltas de la bobina.

    Al abrirse nuevamente el interruptor y dejar de pasar corriente por la bobina, desaparece el campo magnticy el ncleo deja de ser un imn, cortando totalmente el paso de corriente del sistema en caso de los sistemaque manejan cargas inductivas como lo son motores, se impide el paso de corrientes parsitas que puedaquedar de su movimiento inercial regresando por la lnea de alimentacin daando la etapa digital del sistemen cuestin.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    12/61

    1

    Figura 3. Relevador.

    Motores de corriente directa.

    El funcionamiento se basa en la interaccin entre el campo magntico del imn permanente y el generado por labobinas, ya sea una atraccin o una repulsin hace que el eje del motor comience su movimiento. Cuando unbobina es recorrida por la corriente elctrica, esta genera un campo magntico con dos polos un polo NORTE y unpolo SUR. Esto permite que mediante la inversin de la polaridad se consiga el cambio de giro del motor.

    Divers para manejo de motores de CD.

    Relevador:

    Existen varias formas de lograr que estos motores inviertan su sentido de giro una es utilizando unafuente simtrica o dos fuentes de alimentacin con un interruptor simple de dos contactos y otra es utilizauna fuente comn con un interruptor doble es decir uno de 4 contactos o un relevador que cuente conesta configuracin (Figura 3). Aunque esta opcin es una de las ms prcticas, tiene sus inconvenienteya que los relevadores suelen presentar problemas mecnicos y de desgaste.

    Figura 3. Cambio de giro de un motor de CD mediante un rel de 4 contactos.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    13/61

    1Transistor:

    La segunda opcin es haciendo uso de transistores, estos conectados en modo corte y saturaci(valores lgicos 1 y 0), as actan como interruptores (Figura 4 y Figura 5) [5].

    Figura 4. Configuracin con dos transistores complementarios y una terminal de control(Corte y saturacin) usando fuente dual.

    Figura 5. Configu racin empleando 4 transistores, dos terminales de contro l y una fuente sencilla (Puente H).

    Circuito integrado L293B:

    La tercera opcin es haciendo uso del L293B [6]. Se trata de un driver para motores de 4 canales (Figur6), sus ventajas son las siguientes:

    5. Cada canal es capaz de entregar hasta 1A de corriente.6. Posee una entrada de alimentacin independiente que alimenta los 4 drivers.7. El control de los drivers es compatible con seales TTL es decir con 5 voltios (seales lgicas).8. Cada uno de los 4 drivers puede ser activado de forma independiente (por su terminal de entrada),

    habilitado de dos en dos con un slo terminal (Enable).

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    14/61

    1

    Figura 6. Circu ito in tegrado L293B.

    Existen dos formas de emplear este circuito como elemento de control, una de ellas es controlar a lomotores en un slo sentido de giro (paro y arranque), en este caso se tiene la posibilidad de controlahasta 4 motores (Figura 7). En este circuito D1 y D2 sirven como seguro para el L293B de las tensione

    generadas por la induccin de las bobinas del motor.

    Figura 7. Driver configurado para controlar mo tores en un solo sentido.

    La otra configuracin es la que se muestra en la Figura 8, esta permite controlar el motor en cuatroestados: un sentido o en otro, detenerlo o dejarlo libre (se refiere a que cualquier seal en los terminalesde control no tendrn efecto sobre el motor).

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    15/61

    1

    Figura 8. Configu racin del L293B para motor de CD (Forma de cont rol 2).

    Motores paso a paso.

    Los motores paso a paso son comnmente utilizados en situaciones en que se requiere un cierto grado de precisinEl ngulo de giro de estos motores es muy variado pasando desde los 90 hasta los 1.8 e incluso 0.72, cada ngulde giro, (tambin llamado paso) se efecta enviando un pulso en uno de sus terminales.

    Los Motores-PaP suelen ser clasificado en dos tipos, segn su diseo y fabricacin pueden ser Bipolares oUnipolares (Figura 9).

    Figura 9. Configu racin de las bobinas de Motores PaP.

    Motores bipolares.

    Para motores bipolares se deben identificar los cables a, b, c y d empleando un multmetro se puede medir la resistenciaentre cada par de terminales, los extremos a y b deben tener la misma resistencia que los extremos c y d, al medir laresistencia en forma cruzada el multmetro no marca nada ya que corresponden a bobinas distintas. Para su control srequiere de invertir las polaridades de los terminales de las bobinas 1 y 2 en una determinada secuencia para lograr ugiro a derecha, y en secuencia opuesta para que gire a izquierda (Figura 10).

    Figura 10. Secuencia de Pasos para un motor Bipolar.

    Motores Unipolares.

    El motor paso a paso de tipo unipolar es de fcil control, esto se debe a que tienen un terminal comn aambas bobinas. Una forma de identificar cada uno de los cables es analizar la forma de conexin interna deestos motores.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    16/61

    11. Este motor tiene 6 cables, con el multmetro se mide resistencias por todos los cables. De est

    estudio slo se obtienen tres valores distintos que adems se repiten, el primero valor corresponde la cifra de mayor resistencia, es decir a los extremos de las bobinas (a-b o bien c-d). El segundo valocorresponde aproximadamente la mitad del valor nominal de la medicin anterior, por tanto esa debser la resistencia entre el terminal comn y ambos extremos de una bobina, por ejemplo entre aCom1 o b-Com1, c-Com2 o d-Com2 (Figura 11A). La ltima seal es cuando no marca nada, estosignifica que se midieron los cables de bobinas distintas.

    2. Lo que sigue ahora es unir los dos Com1 y el Com2 (Figura 11B). Aqu la resistencia entre cualquieterminal y el comn es la misma (aproximadamente la mitad de la resistencia entre los extremos de

    las bobinas). Al unir los comunes los cuatro cables restantes corresponden a: a, b, c, y d, se debconectar laterminal comn a la fuente de alimentacin, y seleccionar uno de los 4 cables restantesconsiderndolo como A y se conecta a GND (Tierra), el motor quedar enclavado en una solposicin, en seguida se debe tomar un segundo cable, cuando este sea conectado a GND el motodar un primer paso.

    Aqu pueden ocurrir 3 cosas:1. Que el motor gire a derecha (Terminal b).2. Que gire a izquierda (Terminal d).3. No pasa nada (Terminal c).

    Figura 11. Bobinas de Motor paso a paso unipolar: A)configuracin inic ial del motor a identificarB) Com1 y el Com2 se unen para formar una sola terminal, Com.

    Drivers tiles para el manejo de motores paso a paso (Bipolares).

    LN293

    En la Figura 12,L1 y L2 son las bobinas del motor, los diodos D1 a D8 son para proteger al integrado delas sobre tensiones generadas por dichas bobinas, los terminales 1 y 9 se unieron como terminal dehabilitacin, 1a, 1b, 2a y 2b son las entradas de control para la secuencia de las bobinas del motor.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    17/61

    1

    Figura 12. Configuracin de control para motores PaP bipolar empleando LN293B.

    Drivers tiles para el manejo de motores paso a paso (unipolares).

    ULN2803

    El ULN2803 [7]es un arreglo de transistores Drlington capaz de manejar hasta 500mA en sus salidas(Figura 13). Las salidas del ULN2803 estn invertidas respecto de las entradas, y de acuerdo al diagraminterno, se puede apreciar que son de colector abierto.

    La configuracin para el manejo de motores paso a paso empleando el Driver ULN2803 se muestra en laFigura 14.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    18/61

    1

    Figura 13. Configuracin del ULN2803.

    Figura 14. El ULN2803 tiene salidas invertidas, cada vez que enve un " 1" por el pin In se enviar " 0" a lasalida.

    Secuencias para manejo de giro de motores paso a paso empleando el ULN2803

    La secuencia que se requiere para hacer que el motor gire en un slo sentido se muestra en la Figura 15

    Figura 15. Secuencias para hacer que el motor gire en un sentido, si se desea que gire en sentido opuesto,invertir dicha secuencia.

    Al trabajar con una sola bobina se pierde un poco el torque del motor. Otra propuesta es activar lasbobinas de a dos, de esta manera el campo magntico se duplica, el motor tiene mayor fuerza de giro retencin, la secuencia a seguir se muestra en la Figura 16. Este mtodo presenta mayor fuerza en cadpaso y el consumo de energa aumenta.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    19/61

    1

    Figura 16. Secuencia de giro activando dos bobinas a la vez.

    Una tercera propuesta es la resultante de la combinacin de las anteriores, mejor conocida comsecuencia de medios pasos esto es, que si tenemos un motor de 4 pasos puede ser usado como de 8pasos. Para el caso anterior se anexa la secuencia en la Figura 17.

    Figura 17. Secuencia de medios pasos para motor de 4 pasos.

    EQUIPO Y MATERIALES.

    Fuente de alimentacin. Motor de CD de 3 0 6 volts. Motor a pasos bipolar y unipolar. Circuitos (ULN2803, L293D, 74LS244, MOC 3011, RELEVADOR RAS 05) Caimanes. Puerto Paralelo. Protoboard.

    PRERREQUISITOS.

    Que el alumno acuda al laboratorio de Programacin Avanzada contando con los circuitos necesarios armados paraconectar el puerto paralelo a los mandos finales (motores de CD y Motores paso a paso) as como la hoja de datosde los de los siguientes elementos elctricos:

    74LS244 ULN2803 L293D MOC 3011 RELEVADOR seleccionado (RAS 05).

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    20/61

    2

    METODOLOGA.El alumno:

    Mediante el uso de los circuitos integrados usados en la prctica aprender a controlar el movimiento de los motorede corriente directa, a pasos unipolar y bipolar mediante el puerto paralelo.

    EVALUACIN DE LA PRCTICA.Conclusiones:_________________________________________________________________________

    __________________________________________________________________________________________________________________________________________________________.Observaciones:_______________________________________________________________________

    ___________________________________________________________________________________________________________________________________________________________.BIBLIOGRAFA:Williams, Arthur. Microprocesadores, dispositivos optoelectrnicos, perifricos y de interfaz. Serie de circuitos.[1]Tutorial en web (PDF, html) El puerto paralelo de la PC por Virgilio Gmez Negrete.[2]Datasheet74LS244.[3]Datasheet 4N25.[4]Maloney J. Timothy. Electrnica Industrial. Dispositivos y Sistemas. Editorial Prentice Hall HispanoamericanaMxico, 2000

    [5]Boylestad Robert y Nashelsky Louis. Electrnica. Teora de Circuitos. Editorial Prentice Hall HispanoamericanaMxico, 1998.[6]Datasheet L293D.[7]Datasheet ULN2803.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    21/61

    2

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la PrcticaADQUISICIN DE DATOS DE TEMPERATURA

    (CONFIGURACIN DEL PUERTO PARALELO DE ENTRADA).

    Nmero de Prctica 3 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno comprender el funcionamiento del sensor de temperatura LM-35 y el de un convertidor Analgico Digita(ADC) de 8 bits de resolucin. Realizar mediante puerto paralelo un sistema de adquisicin de temperatura y emonitoreo de la misma en la PC.

    MARCO TERICO

    Configuracin de puerto paralelo escritura.

    Con ocho bits se puede escribir en el puerto paralelo un total de 256 valores diferentes, cada valor representa un bytde informacin y cada byte puede representar una accin concreta que se puede definir de acuerdo a lasnecesidades del programador[1].

    Utilizando la Tabla1 y la Tabla2se puede modificar o leer cualquier lnea de programacin direccionada al puertoparalelo mediante el uso de las instrucciones de acceso.

    Entrada.

    1. Determinar que lnea del puerto paralelo se va a usar como seal de entrada, verificando que corresponda una seal este tipo.

    2. Se asigna el valor del puerto mediante la funcione Inportb(Figura 1).

    Figura 1. Instruccin de salida de datos para puerto paralelo.

    La conexin para el circuito de entrada es la vista en la Figura 2A, Como se aprecia en el esquema, el circuito utilizuna de las lneas de entrada para leer el estado de un push-buttom, en el esquema se utiliza la lnea de salida Dpara poder alimentar la resistencia de pull-up del push buttom, esto se aplica para no tener que utilizar una fuenteexterna de 5v slo para alimentar a la resistencia. Para evitar que un fallo en el diseo del circuito dae a la PC enecesario aislar las lneas del puerto paralelo. En la Figura 2Bse observa el esquema de un circuito optoacopladopara una lnea de entrada[3].

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    22/61

    2

    Figura 2. Lnea de entrada (lnea internamente invertida por hardware, conectada 5v corresponde a 0, conectada a GNDcorresponde a 1).

    Tabla1. Configuracin del puerto paralelo estndar.

    Pin N (D-25) Lnea PuertoSPP

    Direccin Registro(bit)

    1 -Strobe Entrada/ Salida Control(0)2 D0 Salida Datos(0)3 D1 Salida Datos(1)4 D2 Salida Datos(2)5 D3 Salida Datos(3)6 D4 Salida Datos(4)7 D5 Salida Datos(5)8 D6 Salida Datos(6)9 D7 Salida Datos(7)10 -Ack Entrada Estado(6)11 Busy Entrada Estado(7)12 Paper-out Entrada Estado(5)13 Select Entrada Estado(4)

    14-Auto-

    LinefeedEntrada/ Salida Control(1)

    15 -Error Entrada Estado(3)16 -Initialize Entrada/ Salida Control(2)

    17 -SelecPrinter Entrada/ Salida Control(3)18-25 GND

    Tabla 2. Direcciones a puerto.

    PuertoDireccin

    LPT1Datos 378HEstado 379HControl 37AH

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    23/61

    2ADC(Convert idor Analgico Digital)

    Figura 3. ADC0804, resoluc in a 8 bits (1 byte).

    Un convertidor analgico/digital (Figura 3) es un circuito integrado que convierteseales anlogas endatos binario(ceros y unos).

    El convertidor analgico/digitalADC0804 [4] es un circuito integrado capaz de convertir unamuestra analgica entr0v y 5v, a un valor binario de 8 dgitos. Para conocer la resolucin del convertidor se tiene que conocer el valomximo que la entrada de informacin a utilizar y la cantidad mxima de la salida en dgitos binarios. Para eADC0804 la resolucin se determina de la forma siguiente:

    Caractersticas Principales:

    ConvertidorADC0804

    Vcc:voltaje positivo de alimentacinAGND:tierra delsistema anlogoDGND: tierra del sistema digitalVin(+): terminal positiva del voltaje de entradaVin(-): terminal negativa del voltaje de entrada

    DB7-DB0:salidas de la conversin digital, con DB7 el MSB y DB0 el LSBCLKin:entrada de relojCLKr:salida del reloj cuya frecuencia depende de unaresistencia y un condensador externoCS(chip select):, para que el ACD0804 funcione debe estar en bajo.RD:cuando este pin est en bajo, las salidas tri-estado estn activas y se puede leer el dato.WR:cuando va a nivel bajo, elproceso de conversin se iniciaINTR:genera una interrupcin de nivel bajo cuando finaliza el proceso de conversinVref/2:este pin debe ser alimentado con la mitad del rango de voltaje analgico mximo queva a recibir el ADC0804 por el pin Vin (+). Ejemplo: para un rango de entrada entre 0,5v y

    3,5v el valor de Vref/2 ser igual a:(3,5 0,5 )/2 o sea 1,5v

    http://www.monografias.com/trabajos36/signos-simbolos/signos-simbolos.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos11/tebas/tebas.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos11/tierreco/tierreco.shtmlhttp://www.monografias.com/trabajos11/tierreco/tierreco.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos10/restat/restat.shtmlhttp://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml#PROCEhttp://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml#PROCEhttp://www.monografias.com/trabajos10/restat/restat.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos11/tierreco/tierreco.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos11/tebas/tebas.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos36/signos-simbolos/signos-simbolos.shtml
  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    24/61

    2

    Sensor de temperatura LM35.

    El sensor de temperatura utilizado, es el circuito integrado LM35 [5], cuyas caractersticas principales son lasiguientes:

    El circuito integrado LM35 es un sensor de temperatura cuya tensin de salida es linealmente proporcional con ltemperatura en laescala Celsius. No necesita calibracin externa, posee slo tres terminales, es de bajo costo

    Factor de escala: 10mV/C (garantizado entre 9,8 y 10,2mV/C). Rango de utilizacin: -55C< T

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    25/61

    2

    PRERREQUISITOS.

    Que el alumno acuda al laboratorio de Programacin Avanzada contando con:

    9. El ADC de 8 bits configurado de tal manera que de forma automtica transforme valores analgicos endigitales (Ver Figura 4).

    10. El sensor LM35 configurado para entregar voltajes de acuerdo a la ecuacin de transformacin delsensor.

    METODOLOGA.

    El alumno:

    Debe construir un sistema de adquisicin de datos de temperatura de tal forma que los datos de temperatura semuestren en la pantalla de la computadora (Figura 5).

    Figura 5. Interfaz entre el puerto paralelo de la PC y el sensor LM35.

    Los datos deben ser adquiridos en la computadora mediante el puerto paralelo. El puerto debe ser configurado desdeel software de la PC y monitoreado a travs de la misma. El formato para mostrar es de 2 dgitos y dos decimales.

    EVALUACIN DE LA PRCTICA.Conclusiones:_________________________________________________________________________

    __________________________________________________________________________________________________________________________________________________________.Observaciones:_______________________________________________________________________

    ___________________________________________________________________________________________________________________________________________________________.BIBLIOGRAFA:[1]Tutorial en Web (PDF, html) El puerto paralelo de la PC por Virgilio Gmez Negrete.[2]Tcnicas de programacin, Ed. McGraw Hill.[3]Williams, Arthur. Microprocesadores, dispositivos opto electrnicos, perifricos y de interfaz. Serie de circuitos.[4]Datasheet ADC0804.[5]Datasheet LM35.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    26/61

    2

    Figura Anexa (B)

    Diagrama de flujo propuesto para la programacin.

    Inicio

    /*Declaracin de libreras#include*/

    #include#include#include

    /*Declaracin de variables globales. Encaso de que el programador lo desee*/

    /*Declaracin de la funcin principal */Voidmain()

    {/*Declaracin de variables locales. En caso de que serequiera su uso*/

    Int a,b,c,d,e,f,g;float x;

    /*Se verifica la accin a ejecutar y se determina elcdigo ms adecuado para el programador: If, Else,For ,etc */

    Palabra = inport(puerto);Byte = inportb (puerto);

    /*Se finaliza la ejecucin de la funcin principal*/}

    Fin

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    27/61

    2

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la PrcticaUSO DEL PUERTO SERIAL PARA COMUNICACIN (CHAT CON

    PUERTO SERIAL).

    Nmero de Prctica 4 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno comprender el uso del puerto serial para efectuar acciones de intercambio de informacin entre PC y PC

    MARCO TERICOIntroduccin.

    El puerto serial [1]se considera una de las conexiones ms simples. Su principal funcin es enviar y recibir datos bpor bit, este posee un conector estndar y trabaja con un protocolo que permite la conexin de dispositivos a la PC.

    Se le denomina como puerto serial debido a que toma un byte de datos y transmite cada uno de los 8 bits uno a unopor un slo canal.

    Al puerto serial se le conocen con el nombre de puertos de comunicacin o COM, y tienen la caracterstica de sebidireccional. Esta caracterstica permite a cada uno de estos dispositivos que puedan tanto recibir como enviadatos. Su funcionamiento normal depende de un dispositivo especial denominado UART debido a las siglas en ingls

    para Universal Asynchronous Reciever/Transmitter. Este dispositivo controlador toma la salida paralela del bus, y laPC lo convierte a forma serial, lo que permite la transmisin de los datos a travs del puerto.

    Dentro de sus principales ventajas se encuentra la necesidad de un slo cable para transmitir los 8 bits, sin embargose demora 8 veces ms en realizar esta transmisin que si se contara con 8 cables, como sucede con un puertoparalelo.

    Las especificaciones del puerto serial estn contenidas en el estndar EIA RS-232C6. Este estndar posee variaespecificaciones, algunas son:

    Un espacio (es un cero lgico) est entre los +3 volts y los +25 volts.

    Una marca (es un uno lgico) que est entre los -3 volts y los -25 volts.

    La zona entre los +3 volts y los -3 volts no est definida.

    Un circuito abierto de voltaje no debe exceder los 25 volts con respecto a la tierra.

    Un mximo largo de 15 metros garantizando mximo de transferencia.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    28/61

    2Construccin de interfaz para puerto serial.

    Una PC convencional maneja un conector DB9 hembra cuya configuracin de los pines es la que se muestra en laFigura 1 (a), de igual forma se presenta la configuracin para el DB9 macho en la Figura 1 (b):

    Figura 1. Configuracin de los pines del conector DB9: a) Tipo hembra, b) Tipo macho.

    Tabla 1. Configuracin del los pines del conector DB9.

    3 TD Transmit Data Salida de Datos Serial TX2 RD Receive Data Entrada de Datos Serial RX8 CTS Clear ToSend Esta lnea indica que el MODEM est listo para intercambiar datos.1 DCD Data CarrierDetect Cuando el MODEM detecta un carrier del otro MODEM al final de la lnea

    este se activa.

    6 DSR Data Set Ready Esto le dice a UART que el MODEM est listo para establecer unaconexin.4 DTR Data Terminal Ready Esta lnea le informa al MODEM que la UART est lista para transmitir

    datos.7 RTS RequestToSend Este es opuesto a DSR. Le indica al MODEM que la UART no est lista

    para establecer una conexin.9 RI Ring Indicator Se activa cuando el MODEM detecta una seal de ring desde el PSTN.5 GND Ground Tierra

    Configuracin del USERPORT para manejo del puerto serial.

    Puerto serial: Este no aparece por defecto reflejado en la ventana de USERPORT [2].Para conocer el direccionamiento de un puerto en una PC con Windows XP se debe hacer lo siguiente

    Desde el Panel de Control, abrir la carpeta de sistema (Figura 2)

    Figura 2. Smbolo del sis tema.

    En el cuadro de dilogo Propiedades del Sistema (Figura 3), se debe elegir la pestaa Hardware y hace

    click sobre el botn "Administrador de dispositivos".

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    29/61

    2

    Figura 3. Vista ventana Propiedades del sistema .

    En el rbol de dispositivos, se debe elegir la carpeta de puertos y hacer click con el botn derecho del moussobre el puerto que se desea conocer su direccionamiento (Figura 4). Elegir la opcin "Propiedades" demen contextual.

    Figura 4. Administrador de dispositivos , seleccin de puerto.

    Seleccionar la pestaa recursos del cuadro de dilogo, "Propiedades del puerto" y observar el direccionamiento quaparece en el Intervalo de E/S, Figura 5, en esta venta aparecen dos valores el primero representa el intervalo ddireccionamiento al puerto serial, mientras que IRQ 04 representa el primer puerto serial (COM1).

    Figura 5. Ventana Propiedades del puerto.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    30/61

    3Instrucciones para configurar el puerto serial.

    En lenguaje C, existe una instruccin especial para manejar la comunicacin serial [3]. Esta instruccin posee lasiguiente sintaxis: int bios com(int cmd, char abyte, int port );

    Tabla 2. Instrucciones para manejo de puerto serie.

    cmdEspecifica la operacin a realizar

    abyte es un carcter que se enviar por el puerto serial

    portes la identificacin del puerto serial (desde 0 para COM1

    hasta 3 para COM4)

    El parmetro cmdpuede tener los siguientes valores y significados:

    0 Inicializa el puerto port con los valores dados por abyte1 Enva el carcter abyte por el puerto port2 Lee el carcter recibido por el puerto port3 Retorna el estado del puerto port

    Para la inicializacin del puerto, el carcter abyte tiene las interpretaciones que se muestran en la Tabla 3.

    Tabla 3. Interpretaciones para el carcter abyte.

    0x020x03

    7 bits de datos8 bits de datos

    0x000x04

    1 bits de parada2 bits de parada

    0x000x08

    0x18

    Sin paridadParidad impar

    Paridad par

    0x000x200x400x600x80

    0xA00xC00xE0

    110 baudios150 baudios300 baudios600 baudios

    1200 baudios

    2400 baudios4800 baudios9600 baudios

    Para configurar el puerto con algunos parmetros, basta con realizar una operacin OR con los valor deseado, poejemplo, para 1200 baudios, sin bit de paridad, sin bit de parada y 8 bits, basta con seleccionar la palabra dada por:

    abyte = 0x80 | 0x00 | 0x00 | 0x03

    o lo que es equivalente,abyte = 0x83

    Para la lectura de un carcter que se haya recibido o del estado del puerto, se deben utilizar variables en las cualesse almacenen los valores de retorno; en ambos casos se obtienen valores de 16 bits. Para la lectura de un datorecibido, los 8 bits menos significativos corresponden al dato y los 8 ms significativos al estado del puerto; si algunde estos ltimos est en "1 ", un error ocurri; si todos estn en "0", el dato fue recibido sin error.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    31/61

    3

    Cuando el comando es 2 3 (lee el carcter o el estado del puerto), el argumento abyteno se tiene en cuenta. Paraconfigurar el puerto COM1 con los parmetros del ejemplo dado anteriormente, basta con la instruccin:

    Bios com (0,0x83,0); /*(inic ializar, parmetros, COM1)*/

    El manejo de los comandos y las instrucciones para la configuracin de los puertos aqu expuestos slo tendrsentido en la medida en que se utilice el puerto serial para establecer una comunicacin bien con otras PC o bien condispositivos electrnicos como microcontroladores.

    EQUIPO Y MATERIALES.

    2 PC 1 Cable interfaz puerto serie.

    PRERREQUISITOS.

    Que el alumno acuda al laboratorio de Programacin Avanzada contando con un cable para establecer comunicacincon el puerto serial entre dos PCs. (debern estar soldados los pines correspondientes a RX entrada de datos Pin 2TX salida de datos Pin 3, GND tierra Pin 5 Figura 6)

    Figura 6. Conexin entre DB9 para realizar comunicacin de puerto a puerto.

    METODOLOGA.

    El alumno debe desarrollar e implementar el programa necesario para la ejecucin de un chat entre dos PCa travs del puerto serial de las mismas (Figura 7).

    Figura 7. Comunicacin serial(Chat)

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    32/61

    3

    VALUACIN DE LA PRCTICA.Conclusiones:_________________________________________________________________________

    _________________________________________________________________________________________________________________________________________________________________________.Observaciones:_______________________________________________________________________

    ___________________________________________________________________________________.BIBLIOGRAFA:

    [1]http://www.monografias.com/trabajos-pdf/puertos-ordenador/puertos-ordenador.pdf[2]Manual de configuracin del User Port. Web:http://hem.passagen.se/tomasf/UserPort/[3]http://andersonramirez.tripod.com/rs232.htm

    http://www.monografias.com/trabajos-pdf/puertos-ordenador/puertos-ordenador.pdfhttp://hem.passagen.se/tomasf/UserPort/http://andersonramirez.tripod.com/rs232.htmhttp://andersonramirez.tripod.com/rs232.htmhttp://hem.passagen.se/tomasf/UserPort/http://www.monografias.com/trabajos-pdf/puertos-ordenador/puertos-ordenador.pdf
  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    33/61

    3

    Figura Anexa (C)

    Diagrama de flujo propuesto para la programacin.

    Inicio

    /*Declaracin de libreras#include*/

    #include#include#include

    /*Declaracin de variables globales. Encaso de que el programador lo desee*/

    /*Declaracin de la funcin principal */Voidmain()

    {/*Declaracin de variables locales. En caso de que serequiera su uso*/

    Int a,b,c,d,e,f,g;int bios com(int cmd, char abyte, int port); //ver Tabla 2float x;

    /*Se verifica la accin a ejecutar y se determina elcdigo ms adecuado para el programador: If, Else,For ,etc */

    Bioscom (0,0x83,0); /*(inicializar, parmetros, COM1)*/

    /*Se finaliza la ejecucin de la funcin principal*/}

    Fin

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    34/61

    3

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la PrcticaINTRODUCCIN AL USO DE MICROCONTROLADORES

    (PIC16F877A).

    Nmero de Prctica 5 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno aprender a identificar las instrucciones bsicas para controlar los puertos de salida de u

    Microcontrolador (C), mostrando la salida en un tablero indicador de LEDs.

    MARCO TERICOQu es un Microcontrolador (C)?

    Muchos de los sistemas digitales pueden disearse empleando C, la seleccin del dispositivo depende del tipo daplicacin. Un C es un procesador que cuenta con memoria ROM y RAM, puertos de entrada/salida (E/S) y otrosdispositivos de propsito especial como es el convertidor analgico/digital (A/D), contadores, temporizadores ypuertos de comunicacin, en otras palabras es un microcomputador con funciones especiales. En la Figura 1 sindica la estructura interna tpica de un C.

    Figura 1. Estructura interna tipica de un C.

    En el mercado existen una serie de dispositivos para todas las aplicaciones. El nombre actual que se utiliza significPIC Peripheral Interface Controller (Controlador de Interfaz Perifrico) [1].

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    35/61

    3Clasificacin de C.

    Un C se caracteriza por su arquitectura Harvard con memorias de programas y de datos independientes, lo quepermite la accesibilidad simultnea y la diversidad en la longitud de posiciones y el tamao de ambas memoria(Figura 2).

    Figura 2.Esquema representativo de arquitectura Harvard.

    Genricamente se clasifican segn el tamao de los datos en: De 8 bits De 16 bits De 32 bits

    Microchipslo fabrica de 8 y 16 bits. Estos de dividen en tres grandes gamas:

    1. Gama Base4. 33 instrucciones mquina de 12 bits de longitud cada una.5. Su capacidad de memoria y el nmero de recursos internos son reducidos.6. Est compuesto por 14 modelos de los cuales 6 estn encapsulados con slo 6 patitas.7. Se los apoda como enanos.

    2. Gama Media11. El repertorio de instrucciones es de 35, de 14 bits cada una.12. Dispone de un vector de interrupcin.13. Es una gama numerosa que alcanza 71 modelos diferentes.14. Se hallan encapsulados con 8 patitas y llegan hasta los que tienen 68 patitas.

    3. Gama Mejorada1. Dispone de 77 instrucciones de 16 bits cada una.

    2. 2 vectores de interrupcin.3. Esta gama responde a la nomenclatura: PIC18Xxxx.4. Puede alcanzar una capacidad de memoria de programa de 128 Kb, la de datos 3963 bytes y

    la EEPROM hasta 1Kb.5. Dispone de perifricos muy especializados, como un convertidor analgico/digital de 10 bits;

    hasta 5 temporizadores.

    Mientras tanto las caractersticas ms relevantes de los PIC de 32 bits son las siguientes:

    1. CPU de 80 MHz, 1.56 DMIPS/MHz.2. Cambio rpido de contexto y respuesta de interrupciones.3. Capacidad de manipulacin individual de bits.4. 10/100 Ethernet, CAN2.0b, USB host/device/OTG

    5. Controlador de interrupciones anidadas.6. Puerto maestro de 16 bits para soporte de QVGA y memoria7. Tensin desde 2.3 a 3.6 v, tolerancia de I/O: 5v

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    36/61

    3Micro cont roladores Flash

    Los microcontroladores que ofrecen una mayor flexibilidad para la programacin son los que cuentan con memoriaelctricamente borrable Flash, ya que permiten grabar y re grabar el integrado.

    El PIC16F877(Figura 3)cuenta con las siguientes caractersticas [2]:

    Memoria de Programa tipo Flash 8Kx14Memoria Datos 368 bytesEEPROM 256 bytes

    33 pines de Entrada/SalidaEncapsulado: 40 pines DIP, 44 pines PLCC y 44 pines TQFPSoporta Xtal 20MHzVoltaje de Operacin: 2.0 hasta 5.5VDC

    Perifricos:

    1 Convertidor A/D de 10-bits (8 canales)2 Mdulos CCP (Captura, Comparador, PWM)1 Modulo I2C1 USART (Puerto Serie)2 Timers de 8 bits1 Timer 16 bits

    Figura 3. Configuracin de pines del PIC16F877.

    Compilador CCS C

    Introduccin

    Un compilador convierte el lenguaje de alto nivel a instrucciones en cdigo mquina; un cross-compileres ucompilador que funciona en un procesador (normalmente una PC) diferente al procesador objeto. E

    compilador CSS C

    [3]

    es un cross-compiles. Los programas son editados y compilados a instruccionemquina en el entorno de trabajo de la PC, el cdigo mquina puede ser cargado de la PC mediantecualquier programador y puede ser depurado desde el entorno de trabajo de la misma.

    El CCS es C estndar y, adems de las directivas estndar (#include, etc...), suministra unas directivasespecficas para PIC (#device, etc...); adems incluye funciones especficas (bit_set(), etc...). Se suministracon un editor que permite controlar la sintaxis del programa.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    37/61

    3Estructura de un programa.

    Para escribir un programa en C con el CCS se deben tener en cuenta una serie de elementos bsicos de sestructura (Figura 4).

    Directivas de procesado: Controlan la conversin del programa a cdigo mquina por partdel compilador.

    Programas o Funciones: Conjunto de instrucciones. Puede haber uno o varios; en cualquiecaso siempre debe haber uno definido como principal mediante la inclusin de la llamada main().

    Instrucciones: Indican cmo se debe comportar el PIC en todo momento.

    Comentarios: Permiten describir lo que significa cada lnea del programa. Facilitan lcomprensin de las distintas expresiones tanto para el programador como para quien tiene queinterpretar dicho programa. No afecta a la compilacin.

    Figura 4. Estructura bsica de un programa.

    Tipos de dato.

    CCS C acepta los siguientes tipos de datos (Tabla 1, Tabla 2):

    Tabla 1. Tipos de datos usados en CCS C.

    Tipo Tamao Rango Descripc in

    Int1Short Un bit 0 a 1 Entero de 1 bit

    IntInt8

    8 bit 0 a 255 Entero

    Int16Long

    16 bit 0 a 65535 Entero de 16 bit

    Int32 32 bit 0 a 4 294967295 Entero de 32 bit

    Float 32 bit1,175x10- a3,402x10-38

    Coma flotante

    Char 8 bit 0 a 255 Carcter

    Void - - Sin valor

    Signed Int8 8 bit -128 a +127 Enero con signo

    Signed Int16 16 bit -32768 a +32767Entero largo con

    signo

    Signed Int32 32 bit -2-31 a (+2-31-1)Entero 32 bit con

    signo

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    38/61

    3

    Tabla 2. Tablas constantes y variables empleadas en CCS C.

    Funciones.

    Las funciones son bloques de sentencias; todas las sentencias se deben enmarcar dentro de las funcionesestas deben definirse antes de utilizarse.

    Una funcin puede ser invocada desde una sentencia de otra funcin. Una funcin puede devolver un valor ala sentencia que la ha llamado. El tipo de dato se indica en la definicin de la funcin; en caso de no indicarsenada se entiende que es un int8 y en caso de no devolver un valor se debe especificar el valor void. Lfuncin, adems de devolver un valor, puede recibir parmetros o argumentos.

    Constantes

    Se pueden especificar enoctal, decimal, binario o

    hexadecimal.

    123 Decimal

    123 Octal (0)

    0X123 Hexadecimal (0X)

    0b010010 Binario (0b)

    'X' Carcter

    '\010' Carcter Octal

    '\XA5' CarcterHexadecimal

    Se pueden definir como sufijo

    Int8 127U

    Long 80UL

    Signed INT16 80L

    Float 3,14F

    CharCon comillassimples 'C'

    Tambin se pueden definircomo caracteres especiales.

    \n Cambio de lnea

    \r Retorno de carro

    \t Tabulacin

    \b Backspace

    Variables

    Las variables se utilizan paranombrar posiciones dememoria RAM; se debendeclarar obligatoriamente,antes de utilizarlas; para ellose debe indicar el nombre y eltipo de dato que se manejar.

    Estas pueden ser del tipo :Local: Slo se utilizan en lafuncin en la que fuerondeclaradas.Global: Se pueden utilizar entodas las funciones delprograma. Estas son puestasa cero cuando se inicia lafuncin principal main ()

    Se define de la siguiente forma:

    Tipo Nombre_variable[=valor inic ia]

    TIPO hace referencia a cualquiera delos tipos de datos vistos. ElNOMBRE_VARIABLE puede sercualquiera y el valor inicial es opcional,ejemplo:

    Flota temp_limt=500;

    Las variablespueden ser

    definidas con:

    Static: Unavariable local seactiva comoglobal, seinicializa a cero ymantiene su valoral entrar y salir dela funcin.

    Auto: (Usadaspor defecto no

    hace falta que seindique) donde lavariable existemientras lafuncin esteactiva. Estavariable no seinicializa a cero.Su valor se pierdecuando sale de lafuncin.

    Extern: Permiteel uso devariables encompilacionesmltiples.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    39/61

    3

    La estructura de una funcin es:Tipo_datoNombre_Funcin (tipo param1, param2,){

    (sentencias);}

    La forma de devolver un valor es mediante la sentencia RETURN:

    return (expresin);return expersin;

    Donde la expresindebe manejar el mismo tipo de dato que el indicado en la definicin de la funcin. Ecaso de no devolver nada se finaliza con RETURN(de esta forma el compilador vuelve a la ejecucin de lasentencia de llamada). Tambin se puede finalizar la funcin tan slo con la llave de cierre }.

    Declaraciones de contro l.

    Las declaraciones son usadas para controlar el proceso de ejecucin del programa (Tabla3).

    Tabla 3. Declaraciones de cont rol aceptadas por el compilador CCS C.Instruccin. Estructura de la funcin.

    If-Else: Con ayuda de esta instruccin se pueden

    tomar decisiones. Pueden anidarse los IF-ELSEdando lugar a los ELSE- IF; esto permite decisionesmltiples.

    If (expresin)Sentencia_1;

    ElseSentencia_2;

    Primero se evala la expresiny si es (TRUE 1) ejecuta laSentencia_1, en el caso contrario (FALSE 0) ejecuta laSentencia_2.

    Switch:Es un caso particular de una decisinmltiple. NOTA: No pueden existir dos Case con la

    misma Constante.

    Switch (expresin){

    Case constante 1:Sentencias;Break;Case constante 2:Sentencias;Break;Default:Sentencia;

    }Evala la expresin y en orden a la Constante adecuada realiza lasentencia asociada. Si ninguno de los Case corresponde a laconstante se ejecuta Default (este comando es opcional).El comandoBreak provoca la salida del Switch, de los contrario se ejecuta elsiguiente Case.

    For: Se usa para repetir sentencias.Nota: Se pueden anidad bucles For utilizando

    distintas variables de control.

    For ( inicializacin; condicin de finalizacin;incremento){

    Sentencias;}

    En las expresiones del For la inicializacin es una variable la cualse le asigna una valor inicial con el que controlarel bucle. La condicin de finalizacin sirve paraevaluar antes de ejecutar las sentencias si escierto o no, en el caso de ser cierta se ejecutanlas sentencias y en caso contrario se sale del For.Por ltimo, la expresin de incremento odecremento modifica la variable de controldespus de ejecutar el bucle.

    While: se utiliza para repetir sentencias.Do-While: La condicin de finalizacin se evala al

    final del bucle, por lo que las sentencias se ejecutan almenos una vez.

    While (expresin){

    Sentencias;}

    La expresin se evala y la sentencia se ejecuta mientras laexpresin es verdadera, cuando es falsa se sale del While.

    Do{

    Sentencias;}While (expresin);

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    40/61

    4

    OtrosReturn: Se emplea para devolver datos en las funciones.Break: Permite salir de un bucle, se utiliza para While, For, Doy Switch.Goto:Provoca un salto incondicional.

    Comentarios.

    Los comentarios en el programa facilitan la comprensin de las distintas expresiones tanto para eprogramador como para quin tiene que interpretar dicho programa. No afectan a la compilacin por lo qu

    pueden ser tan extensos como el programador quiera. Utilizando //. Al colocar estos signos se comienza el comentario y finaliza la lnea.

    //comentario que termina al final de la lnea.

    Utilizando /* y */. Se debe utilizar al inicio y al final del comentario.

    /*Este comentario no fi naliza al final de la lnea finaliza cuando se cierra el comentario*/

    Directivas.

    Las directivas de pre-proceso comienzan con el smbolo # y continan con un comando especfico. Lsintaxis depende del comando. Algunos comandos no permiten otros elementos sintcticos en la mismexpresin. Muchas de las directivas utilizadas por CCS son extensiones del C estndar (Tabla 4).

    Tabla 4. Directivas de accin particular#DEVICE chip:permite definir el PIC con el que se realizar

    la aplicacin.#device PIC16F84

    #FUSES options :Permite definir la palabra de configuracinpara programar un PIC. Para un PIC16F84 las opciones

    posibles son:LP, XT, HS, RC, NOWDT, WDT, NOPUT, PUT, PROTECT,

    NOPROTECT.

    #device PIC16F84#Fuse XT, NOWDT, PUT, NOPROTECT

    #Include file name: Permite incluir fichero en el programa. #Include #Fuse XT, NOWDT, PUT, NOPROTECT

    #Use Delay (Clock=Speed):Permite define las frecuenciasdel oscilador del PIC, el compilador lo utiliza para realizarclculos de tiempo. Se puede utilizar M, MHz, K y KHz para

    definir frecuencias.

    #Include #use delay (clock=40000000)

    Gestin de los puertos.

    Los microcontroladores PIC tienen terminales de entrada/salida divididos en puertos, que se encuentranombrados alfabticamente A, B, C, etc. Cada puerto puede tener hasta 8 terminales que, de manerbsica, se comportan como una entrada/salida digital. En funcin de las caractersticas del PIC, cada puertopuede tener, adems, asignado un bloque funciona (Tabla 5).

    La habilitacin como entrada o salida se realiza a travs del registro TRISx. Un valor 0 en estoregistros indica que la terminal correspondiente del puerto es de salida, mientras que un valor 1indica que ser de entrada.

    La gestin del bus de datos se realiza a travs de los registros PORTx.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    41/61

    4

    Tabla 5. Instrucciones para gestin de puertos.#Byte variable= constante; #byte TrisA=0x85 //variable TrisA en 85h

    #byet PortA=0x05//variable PortA en 05hUna vez definidas estas variables se pueden configurar y controlar lospuertos a travs de los comandos de asignacin.

    Tris A=0xFF; //8 terminales de entradaTris B=0x00;//8 terminales de salidaTris C=0x0F;//4 terminales de mayor peso de salida, 4terminales de menor peso de entrada.

    Escritura en los puertos:PORTC=0c0a;//Salida del dato 00001010 por el puerto C.

    Lectura de puertos:Valor=PORTA;//Asigna el dato del puert o A a VALOR

    Manejo de registros y variables bit a bit Bit_clear(var,bit); // pone a 0 el bit especifi co(0-7) de la variable

    Bit_set(var,bit); //pone a 1 el bit especifi co (0-7) de la variable.

    Bit_test(var,bit); //Muestra el bit especi fico (0-7) de la variable.

    El primer programa.

    Los pasos ms importantes para la ejecucin de un primer programa son:1. Utilizar la instruccin de cabecera donde se especifican las caractersticas del C PIC.2. Se definen, mediante las correspondientes directivas, la velocidad del PIC y el puerto utilizado. E

    importante definir la velocidad inmediatamente despus del PIC ya que muchos drivers (como eLCD) lo necesitan para configurarse.3. Se puede describir la funcin principal MAIN () (desarrollo del programa principal).Y ampliar e

    programa para que ejecute las operaciones que deseemos empleando las diferentes directivas antemencionadas.

    4. Se procede a la compilacin del programa.

    EQUIPO Y MATERIALES.

    PC. Programador de PICS. PIC 16f877A configurado para trabajar. LEDs Resistencias de 330 Ohms. Tablilla de pruebas.

    PRERREQUISITOS.

    Que el alumno acuda al laboratorio de Programacin Avanzada contando con:

    1. El PIC16F877A acondicionado para su uso.

    METODOLOGA.El alumno debe realizar las siguientes aplicaciones visible en un arreglo de LEDs:

    15. Secuencia par e impar: Desarrollar e implementar un programa que muestre en una lnea de salida donde senciendan primero los indicadores correspondientes a nmero par y en seguida los correspondientes anmero impar, secuencia dada en nmeros binarios,ver ejemplo Figura 5.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    42/61

    4

    Figura 5. Tablero de LEDs indicado res secuenc ia de nmeros PAR e IMPAR.

    16. Contador de 0-255: Desarrollar e implementar el programa necesario que muestre en una lnea de datos unasecuencia binaria correspondiente a un contador de 0 a 255, ver ejemplo Figura 6.

    Figura 6. Tablero de LEDs indicado res con tador 0-255.

    17. Corrimiento de izquierda a derecha: Desarrollar e implementar el programa que muestre en una lnea desalida los datos correspondientes al corrimiento de bits de izquierda a derecha, ver ejemplo Figura 7.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    43/61

    4

    Figura 7. Tablero de LEDs ind icadores secuencia de Izquierda a Derecha.

    18. Corrimiento del centro a los lados: Desarrollar e implementar el programa que muestre en una lnea de datoel corrimiento de bits partiendo del centro del arreglo de LED hacia las laterales del mismo, ver ejemplFigura 8.

    Figura 8. Tablero de LEDs ind icadores secuencia de Derecha a Izquierda.

    EVALUACIN DE LA PRCTICA.Conclusiones:_________________________________________________________________________

    __________________________________________________________________________________________________________________________________________________________.

    Observaciones:__________________________________________________________________________________________________________________________________________________________________________________________________________________________________.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    44/61

    4BIBLIOGRAFA:[1]http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/110701.htm[2] Datasheet PIC16F877.[3] Garca Breijo Eduardo. Compilador C CCS y simulador PROTEUS para micro controladores PIC. Editorial AlfaOmega.

    http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/110701.htmhttp://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/110701.htm
  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    45/61

    4

    Figura Anexa (D)

    Diagrama de flujo propuesto para la programacin.

    Inicio

    /*Declaracin de libreras#include*/

    #include#fuse XT, NOWDT, NOPROTECT#Use delay (clock=4000000)

    /*Declaracin de variables globales. En

    caso de que el programador lo desee*/#byte porta= 0x05#byte portb= 0x06

    /*Declaracin de la funcin principal */Voidmain()

    {/*Declaracin de variables locales. En caso de que serequiera su uso*/

    /*Se verifica la accin a ejecutar y se determina elcdigo ms adecuado para el programador: If, Else,For ,etc */

    Set_tris_a(0x1F);Set_tris_b(0x00);

    While (1){

    Output_b(input_a());//salida del puerto}/*Se finaliza la ejecucin de la funcin principal*/}

    Fin

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    46/61

    4

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la Prctica USO DE C CONFIGURADO PARA ENTRADA Y SALIDA DE DATOS(PIC16F877A).

    Nmero de Prctica 6 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno aprender a identificar y manejar las instrucciones para controlar los puertos de un Microcontrolador (C)usando como elemento de entrada un teclado matricial de 4x4, y como elemento de salida una pantalla LCD de 2x16

    MARCO TERICO

    Entradas y salidas.

    LCD.

    Se acostumbra utilizar LCD con un nmero de lneas variable y un nmero de caracteres por lnea tambinvariable, por ejemplo, con 2x16 (Figura 1) donde, se trabaja con dos lneas de 16 caracteres cada una(Tabla 1) [1].

    Figura 1. LCD 2X16 tipo HD44780.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    47/61

    4Tabla 1. Comandos de contro l para LCD en C.

    El driverLCD.C est pensado para trabajar con el PORTD o el PORTB. Por defecto, utiliza el PORTD a menos quele indiquemos lo contrario mediante.

    #define use_portb_lcd TRUE

    Por defecto este driverusa siete terminales para la comunicacin entre el LCD y el PIC.

    El bus de datos es de 8 bits, aunque tambin existe laposibilidad de trabajar con 4 bits (con un menor nmerode caracteres). El compilador C incluye un fichero(driver) que permite trabajar con un LCD. El archivoLCD.C y debe llamarse como un #include.Este archivodispone de varias funciones definidas, como porejemplo: Lcd_int();Es la primera funcin que debe serllamada.

    Borra el LCD y lo configura en el formato de 4 bits, con doslneas y con caracteres de 5x8 puntos, en modo encendido,cursor apagado y sin parpadeo.

    Configura el LCD con un auto incremento del puntero dedirecciones y sin desplazamiento del display real.

    Lcd_gotoxy(byte x, byte y);Indica la posicin de acceso al LCD. Por ejemplo (1,1) indicala primera posicin de la primera lnea.

    Lcd_getc (byte x, byte y); Lee el carcter de la posicin (x,y)

    Lcd_putc(char s);

    S es una variable de tipo Char. Esta funcin escribe lavariable en la posicin correspondiente. Si adems se indica:\f se limpia el LCD.\n el cursor se va a la posicin (1,2).\b el cursor retrocede una posicin.

    El compilador de C ofrece una funcin ms verstil para trabajar con el LCD:

    Printf (string)Prinf(cstring, values)

    Printf(fname, cstring,values)

    String es una cadena o array de caracteres, valueses unalista de variables separada por comas y fnamees una funcin.

    El formato es %ntdonde nes opcional y puede ser:1-9: para especificar cuantos caracteres se debenespecificar.01-09: para indicar la cantidad de ceros a laizquierda.1.1-9.9: para coma flotante.

    t puede indicar:

    c carcter.s cadena de carcter.u Entero sin signo.d Entero con signo.Lu Entero largo sin signo.

    Ld Entero largo con signo.x Entero hexadecimal (minsculas).X Entero hexadecimal (maysculas).Lx Entero largo hexadecimal (minsculas).LX Entero largo hexadecimal (minsculas).f Flotante con truncado.g Flotante con redondeo.e Flotante en formato exponenc ial.w Entero sin signo con decimales insertados.La 1 cifra indica el total, la 2 el nmero dedecimales.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    48/61

    4Teclado (keypad).

    Las entradas a travs de interruptores son muy habituales en los sistemas con microcontroladores para trabajar conuna mayor informacin o informacin alfanumrica (Figura 2).

    Figura 2. Teclado matric ial 4X4

    El teclado 4x4 se utiliza para introducir los datos numricos en el microcontrolador. Consiste en 16 botonesorganizados en forma de matriz en cuatro filas y cuatro columnas.

    El teclado se utiliza de la siguiente manera.

    1. Cuatro pines del microcontrolador se debe configurar como salidas, mientras que los otros cuatro pines sedeben configurar como entradas. Para que el teclado funcione apropiadamente, las resistencias del pull-down se deben conectar a los pines de entrada del microcontrolador. As se define el estado lgico sin pulsaningn botn (Figura 3)

    Figura 3. Esquema de conexin del teclado 4x4.

    2. Los pines de salida estn en uno lgico (1), mientras que se lee el estado lgico de los pines de entrada. Alpulsar un botn, un uno lgico aparece en algn pin de entrada.

    3. Al combinar unos y ceros en los pines de salida se define cual botn fue pulsado.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    49/61

    4El compilador de C incluye el driver KBD.C para manejar el teclado. Las funciones que se incorporan son lassiguientes (Tabla 2):

    Tabla 2. Instrucciones para manejo de teclado matricial 4X4 en C.

    Kbd_init() Inicializa el sistema, debe ser la primera funcin en el programa.

    Kbd_getc()Devuelve el valor de la tecla pulsada en funcin de la tabla que tiene programada. (Figura3). Atravs de la modificacin de esta tabla podemos adecuar el resultado del programa en distintas

    cartulas del teclado.

    Figura 4. Definicin de teclas el archivo KBD.C

    El archivo KBD.C est pensado para trabajar con el PORTB o el PORTD. Activando o no la lnea #defineuse.portb_lcd TRUE podemos seleccionar el PORTB.

    Se puede trabajar con el LCD y el teclado a travs de puertos separados o compartiendo el mismo puerto.

    EQUIPO Y MATERIALES. PC. Programador de PICS. PIC 16F877A configurado para trabajar. Resistencias de 330 Ohms. Un LCD de 2x16. Un teclado matricial de 4x4.

    PRERREQUISITOS.

    El alumno debe acudir al laboratorio de programacin avanzada contando con el PIC16F877A acondicionado para suso, as como debidamente conectado para su interaccin con el teclado matricial 4x4 y la pantalla LCD.

    METODOLOGA.

    El alumno debe desarrollar el programa que permita establecer como elemento de entrada de datos al tecladomatricial, y como elemento de salida se muestre la informacin deseada en el Display, teniendo como interfaz decomunicacin al PIC16F778A (Figura 5).

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    50/61

    5

    Figura 5. Ejemplo. Conexin ent re PIC16F877A, Pantalla LCD y Teclado matricial.

    EVALUACIN DE LA PRCTICA.Conclusiones:_________________________________________________________________________

    __________________________________________________________________________________________________________________________________________________________.Observaciones:_______________________________________________________________________

    ___________________________________________________________________________________________________________________________________________________________.BIBLIOGRAFA:[1]Garca Breijo Eduardo. Compilador C CCS y simulador PROTEUS para micro controladores PIC. Editorial AlfaOmega.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    51/61

    5

    Figura Anexa (E)

    Diagrama de flujo propuesto para la programacin.

    Inicio

    /*Declaracin de libreras#include*/

    #include#fuse XT, NOWDT, NOPROTECT#Use delay(clock=4000000)

    /*Declaracin de variables globales. Encaso de que el programador lo desee*/

    #byte porta= 0x05#byte portb= 0x06

    /*Declaracin de la funcin principal */Voidmain()

    {/*Declaracin de variables locales. En caso de que serequiera su uso*/

    /*Se verifica la accin a ejecutar y se determina elcdigo ms adecuado para el programador: If, Else,For ,etc */

    Set_tris_a(0x1F);Set_tris_b(0x00);

    While (1){

    Output_b(input_a());//salida del puerto}

    /*Se finaliza la ejecucin de la funcin principal*/}

    Fin

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    52/61

    5

    Nombre de la Asignatura LABORATORIO DE PROGRAMACIN AVANZADA

    Nombre de la Prctica TRANSMISIN/RECEPCIN DE DATOS VIA UN MDULO DECOMUNICACIN XBee.

    Nmero de Prctica 7 Duracin (Horas) 2

    OBJETIVO (Resultado del aprendizaje)

    El alumno implementar un programa para establecer una comunicacin inalmbrica (empleando antenas XBeeentre dos PIC16F877 acondicionados a una pantalla LCD de 2x16 para mostrar los datos recibidos y un tecladomatricial de 4X4 como elemento de entrada.

    MARCO TERICO.

    Introduccin.

    Los mdulos XBee/XBee-PRO fueron diseados para operar dentro del protocolo ZigBee soportando lasnecesidades particulares de las redes de sensores de bajo costo y consumo, requiriendo alimentacin mnima y a lavez permitiendo el transporte confiable de datos entre dispositivos remotos.

    El mdulo opera dentro de la banda ISM (Industrial, Scientific and Medical) utilizando una frecuencia de 2.4 GHz.Los requerimientos mnimos de conexin (Tabla 1) consisten en proveer alimentacin mediante dos terminales (VCCy GND) y dos terminales de datos (Vin y Vout). Para la actualizacin de firmwares es necesario agregar lasconexiones de los pines RTS y DTR.

    Los mdulos XBee fueron diseados para ser montados en un zcalo, no requiriendo ningn soldado. Para ellodisponen dos hileras de 10 pines separadas entre ellas por 22 mm (Figura 1).

    Figura 1.Vista inferior y superior de mdu loXBee.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    53/61

    5Tabla 1. Detalles tcnicos del mdu loXBee.

    Circuito bsico para el XBee.

    La Figura 2muestra las conexiones mnimas que necesita el mdulo Xbee para poder ser utilizado. Luego de esto,se debe configurar segn el modo de operacin que se desea para la aplicacin requerida por el usuario.

    Figura 2. Conexiones mnimas requeridas para el mduloXBee.

    El mdulo requiere una alimentacin desde 2.8 a 3.4 V, la conexin a tierra y las lneas de transmisin de datos pomedio del UART (TXD y RXD) para comunicarse con un micro controlador, o directamente a un puerto seriautilizando algn convertidor adecuado para los niveles de voltaje.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    54/61

    5

    Configuracin del mdulo XBee.

    Modo Transparente

    En este modo todo lo que ingresa por el pin 3 (Data in), es guardado en el buffer de entrada y luegotransmitido y todo lo que ingresa como paquete RF, es guardado en el buffer de salida y luego enviado por epin 2 (Data out).

    El modo Transparente viene por defecto en los mdulos Xbee. Este modo est destinado principalmente a lacomunicacin punto a punto, donde no es necesario ningn tipo de control. Tambin se usa para reemplazaralguna conexin serial por cable, ya que es la configuracin ms sencilla posible y no requiere una mayorconfiguracin.

    En este modo, la informacin es recibida por el pin 3 del mdulo Xbee, y guardada en el buffer de entradaDependiendo de cmo se configure el comando RO, se puede transmitir la informacin apenas llegue uncarcter (RO=0) o despus de un tiempo dado sin recibir ningn carcter serial por el pin 3. En esemomento, se toma lo que se tenga en el buffer de entrada, se empaqueta, es decir, se integra a un paqueteRF, y se transmite. Otra condicin que puede cumplirse para la transmisin es cuando el buffer de entrada sellena, esto es, ms de 100 bytes de informacin (Figura3).

    Figura 3.Correspondencia de buff er.

    Cable Virtual I/O

    Se utilizan para crear un canal de comunicacin de manera transparente entre los pines de un mdulo y otroCada pin de entrada tiene su propio pin de salida ya definido entre nodos, esto permite una forma totalmentesimple de enviar informacin, controlar o medir de manera sencilla y rpida, sin necesidad de complicadasconfiguraciones.

    Figura 4. El esquemtico de los pines.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    55/61

    5

    El envo es transparente para el usuario, ya que el paquete recibido, puede o no ser entregado por el pinDOUT (pin 3), lo que permite utilizar ese pin para el envo de otro tipo de informacin e incluso seguirecibiendo desde otros mdulos.

    Para crear un cable virtual, se debe notar que los pines de entrada/salida o I/O, estn asociados entre s, esdecir, vienen en pares. Por esto, slo se pueden crear cables entre estos pares de pines de distintosmdulos (Tabla 2).

    Cabe mencionar que DIO8 (ni DO8 ni DI8, pines 4 y 9 respectivamente) no puede usarse como cable virtual.

    Tabla 2.Comandos para Cable Virtual.Configuracin I/O

    Nombre PIN Valor Descripcin

    Dn(Con n entre 0 y 8)

    012345

    Deshabilitado.

    ADC(excepto 7 y 8)Entrada Digital

    Salida Digital L (Low)Salida Digi tal H (High)

    Pn(con n ent re 0 y 1)

    012

    DeshabilitadoRSSIPWM

    IR0x0-0xFFFF

    (x 1 ms)

    Ajus ta la tasa de muestreo de losconversores ADC y digitales DIO.

    Sin IR= 0x0A (10 en decimal),entonces la tasa ser de 10ms o

    100Hz

    IT 0x0-0xFF

    Nmero de muestras que gurdaen buffer antes enviarlas. Buffer

    del mdulo es cercano a 93 bytesde datos de muestra. Como los

    conversores son de 10 bit, cadamuestra tiene 2 bytes, por lo quedeja un mximo de 46 muestras

    (IT=0x2C) para el tamao delbuffer.

    IA 0x0-0xFFFFFFFFFFFFFFFF

    Indica la direccin del mdulo alcual se le aceptarn los paquetes

    para cambiar las salidas I/O.Acepta di recciones de 16 y 64 bit .

    Si IA=0xFFFFFFFFFFFFFFFF nos aceptaran paquetes de ningn

    mdulo . sta es la configuracinpor defecto. Si IA=0xFFFF seaceptarn cambios de cualquiera

    de los paquetes.

    UI01

    Este comando habilita o no lasalida por UART de los paquetesrecibidos.

    Deshabilitado.Habilitado.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    56/61

    5

    Para su uso se debe escribir AT, ms el comando y luego el valor que se desea asignar. Por ejemplo si sequiere configurar el pin 19 como convertidor analgico, se debe ingresar ATD12, donde D1 indica econvertidor AD1 ubicado en el pin 19, y el 2 indica que se utilizar como convertidor analgico segn la tablaanterior.

    Montaje

    La XBee Break out Board es una placa necesaria para adaptar los pines de 2 mm de separacin del mdulo XBee alos 2.5 mm de separacin del protoboard. Se deben montar los zcalos y las tiras de pines correspondientes a los

    puntos de conexin de esta placa.

    Direccionamiento de los mdulos.

    Los mdulos permiten 2 tipos de direccionamiento. La de 16 bit y la de 64 bits. La principal diferencia es que en la de64 bit, es posible obtener una mayor cantidad de direcciones y por lo tanto, una mayor cantidad de nodos o equiposfuncionando en la misma red. Son a travs de estas direcciones que los mdulos se comunican entre s.

    1. Direccionamiento de 16 bit.

    El comando MY, define un nmero de 16 bit como direccin del mdulo dentro de la red. El rango se

    encuentra entre 0x0 y 0xFFFE (la direccin 0xFFFF y 0xFFFE son para habilitar la direccin de 64-bit, por loque si se desea utilizar direccionamiento de 16 bits, estos valores no deben ser usados). Para definirla seingresa ATMY y el nmero en formato hexadecimal, pero sin el 0x.

    El comando DL, permite definir un nmero de 16 bit como direccin del mdulo de destino dentro de la redal cual se va a realizar la comunicacin. El rango debe estar entre 0x0 y 0xFFFE(las direcciones 0xFFFE y0xFFFF se utilizan para direccionamiento de 64 bits).

    As para habilitar el direccionamiento de 16 bit, se debe utilizar una direccin menor a 0xFFFEcon ecomando MY, de igual modo para DL y se debe dejar en cero el comando DH=0 (ATDH0). No se permiteusar la direccin 0xFFFE ni 0xFFFE para el direccionamiento de 16.

    2. Direccionamiento de 64 bits

    El nmero 0xFFFF y 0xFFFE del comando MY, se usa cuando se desea desactivar el direccionamiento de16 bit, y se habilita el uso de la direccin de 64 bit. Con este direccionamiento ya no es posible definir ladireccin de origen del mdulo, ya que sta se asigna automticamente. En este caso, la direccin demdulo corresponde a su nmero serial, que viene de fbrica y el cual es imposible de cambiar. Este nmerose encuentra guardado en dos variables de 32 bit cada una (SL y SH) y es nico. SL lee los 32 bit menossignificativos del nmero serial y SH los 32 ms significativos.

    Cuando se utiliza direccionamiento de 64 bit, para asignar una direccin de destino, se utilizan los comandosDL y DH. stos son de 32 bit cada uno (para el direccionamiento de 16 bit, DL se maneja como uno de 16mientras que DH se mantiene en cero) y juntos (DL+DH) forman el nmero de 64 bit que debe correspondecon el nmero serial de otro mdulo formado por SL+SH. As para algn dato, DL debe ser igual a SL y DHdebe ser igual a SH, donde SL+SH corresponden al nmero serial de un mdulo destino configurado paradireccionamiento de 64 bits.

    Para el direccionamiento de 64 bit, se debe dejar MY como 0xFFFF (ATMYFFFF) o 0xFFFE (ATMYFFFE) yelegir una direccin de destino usando DL+DH, que debe corresponder a una direccin de 64 bit de otromdulo, indicando su nmero serial dado por SL+SH. Para consultar este nmero se debe ingresar ATSL (32bit menos significativos) y luego ATSH (32 bit ms significativos), entregando como respuesta los nmerosseriales en formato hexadecimal.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    57/61

    5

    Software X-CTU.

    X-CTU, permite configurar al mdulo XBEE de manera natural, fcil y rpida.

    Figura 5. Opcin PCsetting .

    En la pestaa llamada PC Settings(Figura 5) es posible configurar el nmero y la velocidad del puerto serial, ascomo la paridad, entre otras cosas. Adems permite configurar opciones ms generales para los comandos ATcomo el signo elegido para salir del modo de comandos, que por defecto corresponde al signo + (2B enhexadecimal).

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    58/61

    5Figura 6. Opcin Range Test .

    En la pestaa Range Test (Figura 6) es posible enviar una cadena de datos de cualquier tipo para probar el rangode alcance de la seal. Esto genera automticamente datos y los enva por el mdulo, de tal forma que permiteverificar cuales datos llegan buenos y cuales no y a partir de esa estadstica determinar el rango o alcance de laseal.

    Figura 7. Opcin Terminal .

    En la pestaa de Terminal (Figura 7), todo lo escrito aqu, entra directamente al mdulo como si estuviera en emodo de comandos.

    Figura 8. Opcin Modem Configuration .

    Esta pestaa deMODEM Configuration (Figura 8)

    , permite leer, guardar o cargar cierta configuracinpredeterminada. Permite ver cmo est configurado cada mdem, cambiar alguna caracterstica o luego guardarla ocargarla de una previamente guardada.

    Usando Hyperterminal

    Para abrir el Hyperterminal ingresar en Windows a Inicio->Programas->Accesorios->Comunicaciones. Crear unanueva conexin utilizando el puerto al cual se encuentra el mdulo. En este ejemplo el puerto es el COM31. Se eligela configuracin bsica de 9600 baudios 8N1 y sin Control de Flujo. Antes de iniciar la conexin se recomiendaingresar a Archivos->Propiedades. En la ventana emergente elegir la pestaa Settings y presionar el botn ASCISetup. Activar las casillas Echo typed characters locally (permite ver lo que se enva por el puerto) y Append linefeeds to in comming line end (agrega fin de lnea a los mensajes entrantes). Lo anterior evita que se sobrescriban

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    59/61

    5los comandos AT que se envan con las respuestas del mdem (Figura 9).

    Figura 9. Configuracin h yperterminal

    Figura 10. Comando AT por hyperterminal.

    Se parte con el signo +++ que indica el ingreso al modo de comandos ( Figura 10). El Hyperterminal llamado XbeeExplorer 2, ser el que posea el ECHO en sus conectores. El comando SL y SH entregarn el nmero serial de 64bit de cada mdem.

    Este nmero servir para diferenciarlos entre ellos en caso de cualquier error en la configuracin, ya que este no sepuede modificar. El comando BD=3, indica que la comunicacin entre el Host y el mdem es de 9600 baudios. Ecomando CH=0x0C, indica que se elige el canal 12. La PAN ID es ID=0x3332. Tanto BD, CH como ID poseen losvalores indicados atrs como valores por defecto.

    La direccin del mdulo 2 qued como MY=0xBBBB, mientras que la de destino es DL=0xAAAA. Para el mdulo 1lo anterior es al revs. Al final el comando WR graba todos los parmetros en la memoria. Con el comando CN se

    sale del modo de comandos.

    La configuracin anterior har que los dos mdems se comuniquen entre s, donde todo lo que entra por el PIN DINen uno, sale por el DOUT del otro. Luego se cortocircuitan los pines DIN y DOUT del mismo mdem para provocar eECHO. Esto har que todo lo que se escriba en un mdem, se devolver y aparecer en la pantalla de vuelta.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    60/61

    6

    EQUIPO Y MATERIALES.

    Mdulo de comunicacin XBee.

    Zcalo de montaje para XBee.

    PIC16F877A

    Teclado matricial 4X4.

    Pantalla LCD 2X16.

    PRERREQUISITOS.

    El alumno debe acudir al laboratorio de Programacin Avanzada contando con el PIC16F877A acondicionadoelctricamente para interactuar con el modulo de comunicacin XBee, teniendo como interfaz de entrada el tecladomatricial 4x4 y como interfaz de salida la pantalla LCD.

    METODOLOGA.

    El alumno debe diseare implementar un programa que permita establecer comunicacin inalmbrica entre dosmdulos XBee(configurados como elemento I/O), empleando como elemento de entrada un teclado matricial 4X4

    como elemento de salida una pantalla LCD 2X16 y como elemento de control al PIC16F877A(Figura 5).

    Figura 5.Diagrama a bloques para transmisin y recepcin mediante mdulos XBee.

    EVALUACIN DE LA PRCTICA.Conclusiones:________________________________________________________________________

    ___________________________________________________________________________________________________________________________________________________________.Observaciones:_______________________________________________________________________

    ___________________________________________________________________________________________________________________________________________________________.

  • 7/24/2019 Manual de Prcticas Programacion Avanzada

    61/61

    6BIBLIOGRAFA:[1]Gua de usuario XBee serie 1:http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf

    http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdfhttp://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdfhttp://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdfhttp://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf