Upload
cabezon-tatengue
View
284
Download
3
Embed Size (px)
Citation preview
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.htm7/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.shtml7/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.pdf7/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.htm7/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