Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MANUAL DE PRCTICAS
PROGRAMACIN AVANZADA
AUTOR:
Viridiana Brcenas Jimnez
Exp.: 153380
CONTENIDO
PRCTICA 1
PRCTICA 2
PRCTICA 3
PRCTICA 4
USO DEL PUERTO SERIAL PARA COMUNICACIN (CHAT CON PUERTO SERIAL).
PG.34
PRCTICA5
PRCTICA 6
PRCTICA 7
...
Nombre de la Asignatura
Nombre de la Prctica
Nmero de Prctica
Duracin (Horas)
MARCO TERICO
Introduccin.
El puerto paralelo de una PC o computadora [1] es ideal para usarse como herramienta de control de motores,
relevadores, LEDs (Diodos Emisores de Luz), etc. Este dispositivo posee un bus de datos de 8 bits y seales de
control de salida y otras de entrada que pueden ser usadas fcilmente (Tabla 1). La PC generalmente posee slo
uno de estos puertos llamado LPT1 (Terminal de las Lneas de Impresin), la direccin hexadecimal de este puerto
es 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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-25
Direccin
Entrada/ Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Entrada
Entrada
Entrada
Entrada
Entrada/ Salida
Entrada
Entrada/ Salida
Entrada/ Salida
Registro (bit)
Control(0)
Datos(0)
Datos(1)
Datos(2)
Datos(3)
Datos(4)
Datos(5)
Datos(6)
Datos(7)
Estado(6)
Estado(7)
Estado(5)
Estado(4)
Control(1)
Estado(3)
Control(2)
Control(3)
4
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 el
estndar IEEE 1284. El orden de los pines y la funcin de cada uno de ellos es la correspondiente a la Figura 1.
Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, estas direcciones pertenecen al registro de
datos, 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 estado
proveen 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 en
decimal tal como se muestra en la Tabla 2. La lectura ser devuelta en un byte en donde el bit 6 corresponde al pin
10, 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
Datos
Se compone de 8 bits, es
bidireccional.
Estado
Registro
de
entrada
de
informacin de 5 bits.
Control
Es un bidireccional de 4 bits, con
un bit de configuracin que no
tiene conexin al exterior.
Direccin LPT1
378H
379H
37AH
Descargar la utilidad denominada USERPORT .Descomprime el archivo en una carpeta del disco duro. No
importa el nombre.
Copiar el archivo "userport.sys" en la carpeta de sistema C:\WINDOWS\SYSTEM32\DRIVERS
Ejecuta el archivo UserPort.exe
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
a 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 finalizar
se debe ejecutar el lenguaje de programacin que acceda a los puertos y utilizar de forma transparente las
instrucciones primitivas para entrada/salida de datos.
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 4
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 de
un byte, mientras que las que no terminan en esta letra es decir el Outport se refieren a una palabra el
equivalente a dos byte.
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 son
necesarios 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 se
enciendan primero los indicadores correspondientes a nmero par y en seguida los correspondientes a
nmero impar, secuencia dada en nmeros binarios, ver ejemplo Figura 5.
7
2. Contador de 0-255: Desarrollar e implementar el programa necesario que muestre en una lnea de datos una
secuencia binaria correspondiente a un contador de 0 a 255, ver ejemplo Figura 6.
3. Corrimiento de izquierda a derecha: Desarrollar e implementar el programa que muestre en una lnea de
salida los datos correspondientes al corrimiento de bits de izquierda a derecha, ver ejemplo Figura 7.
8
4. Corrimiento del centro a los lados: Desarrollar e implementar el programa que muestre en una lnea de datos
el corrimiento de bits partiendo del centro del arreglo de LED hacia las laterales del mismo, ver ejemplo
Figura 8.
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 Gmez
Negrete, Espaol.
[2]http://olmo.pntic.mec.es/jmarti50/puerto_xp/userport.htm, 2004, USERPORT. Driver para acceder al puerto
paralelo en Windows NT/2000/XP, J.C.M.Castillo, Espaol.
[3]Tcnicas de programacin, Ed. McGraw Hill.
Inicio
/*Declaracin de libreras
#include<>*/
#include<conio.h>
#include<stdio.h>
#include<dos.h>
// direccin salida
{
/*Declaracin de variables locales. En caso de que se
requiera su uso*/
Int a,b,c,d,e,f,g;
float x;
Fin
10
Nombre de la Asignatura
Nombre de la Prctica
Nmero de Prctica
Duracin (Horas)
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 BIOS
de la mquina, en modo normal o de puerto paralelo estndar, adems de ste, estn las opciones bidireccional,
puerto paralelo extendido versin 1.7, versin 1.9 y el puerto de capacidad extendida. El modo de operacin Normal
es el ms elemental y solamente permite la escritura en las lneas de datos, pines 2 a la 9 del conector DB-25 del
[1]
puerto paralelo de la PC .
Elctricamente, el puerto paralelo entrega seales TTL (lgica de transistor a transistor)y como tal, se le puede
conectar cualquier dispositivo que cumpla con los niveles de voltaje especficos, sin embargo el hardware del puerto
paralelo es muy limitado en cuanto a su capacidad de manejo de corriente, es por eso que se tiene que ser muy
cuidadoso con el manejo de las seales del puerto, un corto circuito puede daar permanentemente la tarjeta madre
de la PC.
El manejo de potencia, es decir la manipulacin de altas corrientes, implica tener consideraciones de seguridad
elctrica 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.
[2]
El integrado 74LS244 funciona como etapa aislante y mejora la capacidad de manejo de corriente, Figura
1(A). Por cada lnea de entrada del puerto paralelo existe una etapa amplificadora-separadora dentro del
74LS244 con una tasa de entrega de corriente suficiente para desplegar la informacin a travs de LEDs,
Ver Figura 1(B).
11
Es deseable que la interconexin entre ambas etapas la digital y la de potencia se realice por un medio de
acoplamiento que asle elctricamente los dos sistemas. Esto se puede lograr con los dispositivos llamados
[3]
OPTO ACOPLADORES (por ejemplo el optoacoplador 4N25 ), Figura 2(A), mediante los cuales se obtiene
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 luz,
usualmente IRED (infra-rojo) o LEDs, actuando como emisores y utilizando dispositivos detectores de luz
(opto detectores), como receptores, Figura 2(B).
[4]
Un relevador es un interruptor accionado por un electroimn (Figura 3). Al pasar corriente elctrica por la
bobina el ncleo de hierro se magnetiza, convirtindose en un imn que ser ms potente mientras mayor
sea 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 magntico
y el ncleo deja de ser un imn, cortando totalmente el paso de corriente del sistema en caso de los sistemas
que manejan cargas inductivas como lo son motores, se impide el paso de corrientes parsitas que puedan
quedar de su movimiento inercial regresando por la lnea de alimentacin daando la etapa digital del sistema
en cuestin.
12
Figura 3. Relevador.
Relevador:
Existen varias formas de lograr que estos motores inviertan su sentido de giro una es utilizando una
fuente simtrica o dos fuentes de alimentacin con un interruptor simple de dos contactos y otra es utilizar
una fuente comn con un interruptor doble es decir uno de 4 contactos o un relevador que cuente con
esta configuracin (Figura 3). Aunque esta opcin es una de las ms prcticas, tiene sus inconvenientes
ya que los relevadores suelen presentar problemas mecnicos y de desgaste.
13
Transistor:
La segunda opcin es haciendo uso de transistores, estos conectados en modo corte y saturacin
[5]
(valores lgicos 1 y 0), as actan como interruptores (Figura 4 y Figura 5) .
Figura 5. Configuracin empleando 4 transistores, dos terminales de control y una fuente sencilla (Puente H).
[6]
14
Existen dos formas de emplear este circuito como elemento de control, una de ellas es controlar a los
motores en un slo sentido de giro (paro y arranque), en este caso se tiene la posibilidad de controlar
hasta 4 motores (Figura 7). En este circuito D1 y D2 sirven como seguro para el L293B de las tensiones
generadas por la induccin de las bobinas del motor.
La otra configuracin es la que se muestra en la Figura 8, esta permite controlar el motor en cuatro
estados: un sentido o en otro, detenerlo o dejarlo libre (se refiere a que cualquier seal en los terminales
de control no tendrn efecto sobre el motor).
15
Motores bipolares.
Para motores bipolares se deben identificar los cables a, b, c y d empleando un multmetro se puede medir la resistencia
entre cada par de terminales, los extremos a y b deben tener la misma resistencia que los extremos c y d, al medir la
resistencia en forma cruzada el multmetro no marca nada ya que corresponden a bobinas distintas. Para su control se
requiere de invertir las polaridades de los terminales de las bobinas 1 y 2 en una determinada secuencia para lograr un
giro a derecha, y en secuencia opuesta para que gire a izquierda (Figura 10).
Motores Unipolares.
El motor paso a paso de tipo unipolar es de fcil control, esto se debe a que tienen un terminal comn a
ambas bobinas. Una forma de identificar cada uno de los cables es analizar la forma de conexin interna de
estos motores.
16
1. Este motor tiene 6 cables, con el multmetro se mide resistencias por todos los cables. De este
estudio slo se obtienen tres valores distintos que adems se repiten, el primero valor corresponde a
la cifra de mayor resistencia, es decir a los extremos de las bobinas (a-b o bien c-d). El segundo valor
corresponde aproximadamente la mitad del valor nominal de la medicin anterior, por tanto esa debe
ser 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, esto
significa 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 cualquier
terminal 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 debe
conectar la terminal comn a la fuente de alimentacin, y seleccionar uno de los 4 cables restantes,
considerndolo como A y se conecta a GND (Tierra), el motor quedar enclavado en una sola
posicin, en seguida se debe tomar un segundo cable, cuando este sea conectado a GND el motor
dar 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 inicial del motor a identificar
B) Com1 y el Com2 se unen para formar una sola terminal, Com.
LN293
En la Figura 12, L1 y L2 son las bobinas del motor, los diodos D1 a D8 son para proteger al integrado de
las sobre tensiones generadas por dichas bobinas, los terminales 1 y 9 se unieron como terminal de
habilitacin, 1a, 1b, 2a y 2b son las entradas de control para la secuencia de las bobinas del motor.
17
Figura 12. Configuracin de control para motores PaP bipolar empleando LN293B.
ULN2803
[7]
El ULN2803
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 diagrama
interno, 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 la
Figura 14.
18
Figura 14. El ULN2803 tiene salidas invertidas, cada vez que enve un "1" por el pin In se enviar "0" a la
salida.
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 las
bobinas de a dos, de esta manera el campo magntico se duplica, el motor tiene mayor fuerza de giro y
retencin, la secuencia a seguir se muestra en la Figura 16. Este mtodo presenta mayor fuerza en cada
paso y el consumo de energa aumenta.
19
Una tercera propuesta es la resultante de la combinacin de las anteriores, mejor conocida como
secuencia de medios pasos esto es, que si tenemos un motor de 4 pasos puede ser usado como de 8
pasos. Para el caso anterior se anexa la secuencia en la Figura 17.
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 para
conectar el puerto paralelo a los mandos finales (motores de CD y Motores paso a paso) as como la hoja de datos
de los de los siguientes elementos elctricos:
74LS244
ULN2803
L293D
MOC 3011
RELEVADOR seleccionado (RAS 05).
20
METODOLOGA.
El alumno:
Mediante el uso de los circuitos integrados usados en la prctica aprender a controlar el movimiento de los motores
de 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 Hispanoamericana,
Mxico, 2000
[5]Boylestad Robert y Nashelsky Louis. Electrnica. Teora de Circuitos. Editorial Prentice Hall Hispanoamericana,
Mxico, 1998.
[6]Datasheet L293D.
[7]Datasheet ULN2803.
21
Nombre de la Asignatura
Nombre de la Prctica
Nmero de Prctica
Duracin (Horas)
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 byte
de informacin y cada byte puede representar una accin concreta que se puede definir de acuerdo a las
[1]
necesidades del programador .
Utilizando la Tabla1 y la Tabla2 se puede modificar o leer cualquier lnea de programacin direccionada al puerto
paralelo 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 a
una seal este tipo.
2. Se asigna el valor del puerto mediante la funcione Inportb (Figura 1).
La conexin para el circuito de entrada es la vista en la Figura 2A, Como se aprecia en el esquema, el circuito utiliza
una de las lneas de entrada para leer el estado de un push-buttom, en el esquema se utiliza la lnea de salida D1
para poder alimentar la resistencia de pull-up del push buttom, esto se aplica para no tener que utilizar una fuente
externa de 5v slo para alimentar a la resistencia. Para evitar que un fallo en el diseo del circuito dae a la PC es
necesario aislar las lneas del puerto paralelo. En la Figura 2B se observa el esquema de un circuito optoacoplado
[3]
para una lnea de entrada .
22
Figura 2. Lnea de entrada (lnea internamente invertida por hardware, conectada 5v corresponde a 0, conectada a GND
corresponde a 1).
Pin N (D-25)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-25
Lnea Puerto
SPP
-Strobe
D0
D1
D2
D3
D4
D5
D6
D7
-Ack
Busy
Paper-out
Select
-AutoLinefeed
-Error
-Initialize
-SelecPrinter
GND
Direccin
Registro(bit)
Entrada/ Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Entrada
Entrada
Entrada
Entrada
Control(0)
Datos(0)
Datos(1)
Datos(2)
Datos(3)
Datos(4)
Datos(5)
Datos(6)
Datos(7)
Estado(6)
Estado(7)
Estado(5)
Estado(4)
Entrada/ Salida
Control(1)
Entrada
Entrada/ Salida
Entrada/ Salida
Estado(3)
Control(2)
Control(3)
Puerto
Datos
Estado
Control
Direccin
LPT1
378H
379H
37AH
23
ADC(Convertidor Analgico Digital)
Un convertidor analgico/digital (Figura 3) es un circuito integrado que convierte seales anlogas en datos binarios
(ceros y unos).
[4]
Caractersticas Principales:
Convertidor ADC0804
Vcc: voltaje positivo de alimentacin
AGND: tierra del sistema anlogo
DGND: tierra del sistema digital
Vin(+): terminal positiva del voltaje de entrada
Vin(-): terminal negativa del voltaje de entrada
DB7-DB0: salidas de la conversin digital, con DB7 el MSB y DB0 el LSB
CLKin: entrada de reloj
CLKr: salida del reloj cuya frecuencia depende de una resistencia y un condensador externos
CS(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, el proceso de conversin se inicia
INTR: genera una interrupcin de nivel bajo cuando finaliza el proceso de conversin
Vref/2: este pin debe ser alimentado con la mitad del rango de voltaje analgico mximo que
va 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
24
Sensor de temperatura LM35.
El sensor de temperatura utilizado, es el circuito integrado LM35
siguientes:
[5]
El circuito integrado LM35 es un sensor de temperatura cuya tensin de salida es linealmente proporcional con la
temperatura en la escala Celsius. No necesita calibracin externa, posee slo tres terminales, es de bajo costo
EQUIPO Y MATERIALES.
PC.
Resistencias de 330 Ohms.
LEDs.
Cable interfaz Puerto paralelo (armado DB-25 macho).
Cables de conexin.
Protoboard.
LM35
ADC0804
25
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 en
digitales (Ver Figura 4).
10. El sensor LM35 configurado para entregar voltajes de acuerdo a la ecuacin de transformacin del
sensor.
METODOLOGA.
El alumno:
Debe construir un sistema de adquisicin de datos de temperatura de tal forma que los datos de temperatura se
muestren en la pantalla de la computadora (Figura 5).
Los datos deben ser adquiridos en la computadora mediante el puerto paralelo. El puerto debe ser configurado desde
el 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.
26
Inicio
/*Declaracin de libreras
#include<>*/
#include<conio.h>
#include<stdio.h>
#include<dos.h>
{
/*Declaracin de variables locales. En caso de que se
requiera su uso*/
Int a,b,c,d,e,f,g;
float x;
Fin
27
Nombre de la Asignatura
Nombre de la Prctica
Nmero de Prctica
Duracin (Horas)
MARCO TERICO
Introduccin.
[1]
El puerto serial se considera una de las conexiones ms simples. Su principal funcin es enviar y recibir datos bit
por 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 uno
por un slo canal.
Al puerto serial se le conocen con el nombre de puertos de comunicacin o COM, y tienen la caracterstica de ser
bidireccional. Esta caracterstica permite a cada uno de estos dispositivos que puedan tanto recibir como enviar
datos. 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 la
PC 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 embargo,
se demora 8 veces ms en realizar esta transmisin que si se contara con 8 cables, como sucede con un puerto
paralelo.
Las especificaciones del puerto serial estn contenidas en el estndar EIA RS-232C6. Este estndar posee varias
especificaciones, 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.
28
Construccin de interfaz para puerto serial.
Una PC convencional maneja un conector DB9 hembra cuya configuracin de los pines es la que se muestra en la
Figura 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
2
8
1
TD
RD
CTS
DCD
Transmit Data
Receive Data
Clear ToSend
Data CarrierDetect
DSR
DTR
RTS
RequestToSend
9
5
RI
GND
Ring Indicator
Ground
En el cuadro de dilogo Propiedades del Sistema (Figura 3), se debe elegir la pestaa Hardware y hacer
click sobre el botn "Administrador de dispositivos".
29
En el rbol de dispositivos, se debe elegir la carpeta de puertos y hacer click con el botn derecho del mouse
sobre el puerto que se desea conocer su direccionamiento (Figura 4). Elegir la opcin "Propiedades" del
men contextual.
Seleccionar la pestaa recursos del cuadro de dilogo, "Propiedades del puerto" y observar el direccionamiento que
aparece en el Intervalo de E/S, Figura 5, en esta venta aparecen dos valores el primero representa el intervalo de
direccionamiento al puerto serial, mientras que IRQ 04 representa el primer puerto serial (COM1).
30
Instrucciones para configurar el puerto serial.
[3]
abyte
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.
0x02
0x03
7 bits de datos
8 bits de datos
0x00
0x04
1 bits de parada
2 bits de parada
0x00
0x08
0x18
Sin paridad
Paridad impar
Paridad par
0x00
0x20
0x40
0x60
0x80
110 baudios
150 baudios
300 baudios
600 baudios
1200 baudios
0xA0
0xC0
0xE0
2400 baudios
4800 baudios
9600 baudios
Para configurar el puerto con algunos parmetros, basta con realizar una operacin OR con los valor deseado, por
ejemplo, 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 cuales
se almacenen los valores de retorno; en ambos casos se obtienen valores de 16 bits. Para la lectura de un dato
recibido, los 8 bits menos significativos corresponden al dato y los 8 ms significativos al estado del puerto; si alguno
de estos ltimos est en "1 ", un error ocurri; si todos estn en "0", el dato fue recibido sin error.
31
Cuando el comando es 2 3 (lee el carcter o el estado del puerto), el argumento abyte no se tiene en cuenta. Para
configurar el puerto COM1 con los parmetros del ejemplo dado anteriormente, basta con la instruccin:
El manejo de los comandos y las instrucciones para la configuracin de los puertos aqu expuestos slo tendrn
sentido en la medida en que se utilice el puerto serial para establecer una comunicacin bien con otras PC o bien con
dispositivos 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 comunicacin
con el puerto serial entre dos PCs. (debern estar soldados los pines correspondientes a RX entrada de datos Pin 2,
TX salida de datos Pin 3, GND tierra Pin 5 Figura 6)
METODOLOGA.
El alumno debe desarrollar e implementar el programa necesario para la ejecucin de un chat entre dos PCs
a travs del puerto serial de las mismas (Figura 7).
32
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
33
Inicio
/*Declaracin de libreras
#include<>*/
#include<conio.h>
#include<stdio.h>
#include<dos.h>
{
/*Declaracin de variables locales. En caso de que se
requiera su uso*/
Int a,b,c,d,e,f,g;
int bios com(int cmd, char abyte, int port); //ver Tabla 2
float x;
Fin
34
Nombre de la Asignatura
Nombre de la Prctica
(PIC16F877A).
Nmero de Prctica
Duracin (Horas)
MARCO TERICO
Qu es un Microcontrolador (C)?
Muchos de los sistemas digitales pueden disearse empleando C, la seleccin del dispositivo depende del tipo de
aplicacin. Un C es un procesador que cuenta con memoria ROM y RAM, puertos de entrada/salida (E/S) y otros
dispositivos de propsito especial como es el convertidor analgico/digital (A/D), contadores, temporizadores y
puertos de comunicacin, en otras palabras es un microcomputador con funciones especiales. En la Figura 1 se
indica la estructura interna tpica de un C.
En el mercado existen una serie de dispositivos para todas las aplicaciones. El nombre actual que se utiliza significa
[1]
PIC Peripheral Interface Controller (Controlador de Interfaz Perifrico) .
35
Clasificacin de C.
Un C se caracteriza por su arquitectura Harvard con memorias de programas y de datos independientes, lo que
permite la accesibilidad simultnea y la diversidad en la longitud de posiciones y el tamao de ambas memorias
(Figura 2).
36
Micro controladores Flash
Los microcontroladores que ofrecen una mayor flexibilidad para la programacin son los que cuentan con memoria
elctricamente borrable Flash, ya que permiten grabar y re grabar el integrado.
El PIC16F877(Figura 3) cuenta con las siguientes caractersticas
[2]
Compilador CCS C
Introduccin
Un compilador convierte el lenguaje de alto nivel a instrucciones en cdigo mquina; un cross-compiler es un
compilador que funciona en un procesador (normalmente una PC) diferente al procesador objeto. El
[3]
es un cross-compiles. Los programas son editados y compilados a instrucciones
compilador CSS C
mquina en el entorno de trabajo de la PC, el cdigo mquina puede ser cargado de la PC mediante
cualquier 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 directivas
especficas para PIC (#device, etc...); adems incluye funciones especficas (bit_set(), etc...). Se suministra
con un editor que permite controlar la sintaxis del programa.
37
Estructura de un programa.
Para escribir un programa en C con el CCS se deben tener en cuenta una serie de elementos bsicos de su
estructura (Figura 4).
Directivas de procesado: Controlan la conversin del programa a cdigo mquina por parte
del compilador.
Comentarios: Permiten describir lo que significa cada lnea del programa. Facilitan la
comprensin de las distintas expresiones tanto para el programador como para quien tiene que
interpretar dicho programa. No afecta a la compilacin.
Tipos de dato.
CCS C acepta los siguientes tipos de datos (Tabla 1, Tabla 2):
Tipo
Descripcin
Int1
Short
Un bit
0a1
Entero de 1 bit
Int
Int8
8 bit
0 a 255
Entero
Int16
Long
16 bit
0 a 65535
Entero de 16 bit
Int32
32 bit
0 a 4 294967295
Entero de 32 bit
-38
Float
32 bit
1,175x10 a
-38
3,402x10
Coma flotante
Char
8 bit
0 a 255
Carcter
Void
Sin valor
Signed Int8
8 bit
-128 a +127
Signed Int16
16 bit
-32768 a +32767
Signed Int32
32 bit
-2
-31
-31
a (+2 -1)
38
Tabla 2. Tablas constantes y variables empleadas en CCS C.
Decimal
123
Se pueden especificar en
octal, decimal, binario o
hexadecimal.
Constantes
Se pueden definir como sufijo
123
Octal (0)
0X123
Hexadecimal (0X)
0b010010
Binario (0b)
'X'
Carcter
'\010'
Carcter Octal
'\XA5'
Carcter
Hexadecimal
Int8
127U
Long
80UL
Signed INT16
80L
Float
3,14F
Char
Con comillas
simples 'C'
\n
Cambio de lnea
\r
Retorno de carro
\t
Tabulacin
\b
Backspace
Las variables
pueden ser
definidas con:
Variables
Flota temp_limt=500;
Static:
Una
variable local se
activa
como
global,
se
inicializa a cero y
mantiene su valor
al entrar y salir de
la funcin.
Auto:
(Usadas
por defecto no
hace falta que se
indique) donde la
variable
existe
mientras
la
funcin
este
activa.
Esta
variable no se
inicializa a cero.
Su valor se pierde
cuando sale de la
funcin.
Extern: Permite
el
uso
de
variables
en
compilaciones
mltiples.
Funciones.
Las funciones son bloques de sentencias; todas las sentencias se deben enmarcar dentro de las funciones,
estas deben definirse antes de utilizarse.
Una funcin puede ser invocada desde una sentencia de otra funcin. Una funcin puede devolver un valor a
la sentencia que la ha llamado. El tipo de dato se indica en la definicin de la funcin; en caso de no indicarse
nada se entiende que es un int8 y en caso de no devolver un valor se debe especificar el valor void. La
funcin, adems de devolver un valor, puede recibir parmetros o argumentos.
39
La estructura de una funcin es:
Tipo_datoNombre_Funcin (tipo param1, param2,)
{
(sentencias);
}
Donde la expresin debe manejar el mismo tipo de dato que el indicado en la definicin de la funcin. En
caso de no devolver nada se finaliza con RETURN (de esta forma el compilador vuelve a la ejecucin de la
sentencia de llamada). Tambin se puede finalizar la funcin tan slo con la llave de cierre }.
Declaraciones de control.
Las declaraciones son usadas para controlar el proceso de ejecucin del programa (Tabla3).
Tabla 3. Declaraciones de control 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-ELSE
dando lugar a los ELSE- IF; esto permite decisiones
mltiples.
If (expresin)
Sentencia_1;
Else
Sentencia_2;
Primero se evala la expresin y si es (TRUE 1) ejecuta la
Sentencia_1, en el caso contrario (FALSE 0) ejecuta la
Sentencia_2.
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 la
sentencia asociada. Si ninguno de los Case corresponde a la
constante se ejecuta Default (este comando es opcional).El comando
Break provoca la salida del Switch, de los contrario se ejecuta el
siguiente Case.
For ( inicializacin; condicin de finalizacin;
incremento)
{
Sentencias;
}
En las expresiones del For la inicializacin es una variable la cual
se le asigna una valor inicial con el que controlar
el bucle. La condicin de finalizacin sirve para
evaluar antes de ejecutar las sentencias si es
cierto o no, en el caso de ser cierta se ejecutan
las sentencias y en caso contrario se sale del For.
Por ltimo, la expresin de incremento o
decremento modifica la variable de control
despus de ejecutar el bucle.
While (expresin)
{
Sentencias;
}
La expresin se evala y la sentencia se ejecuta mientras la
expresin es verdadera, cuando es falsa se sale del While.
Do
{
Sentencias;
}
While (expresin);
40
Return: Se emplea para devolver datos en las funciones.
Break: Permite salir de un bucle, se utiliza para While, For, Do
y Switch.
Goto: Provoca un salto incondicional.
Otros
Comentarios.
Los comentarios en el programa facilitan la comprensin de las distintas expresiones tanto para el
programador como para quin tiene que interpretar dicho programa. No afectan a la compilacin por lo que
pueden ser tan extensos como el programador quiera.
Directivas.
Las directivas de pre-proceso comienzan con el smbolo # y continan con un comando especfico. La
sintaxis depende del comando. Algunos comandos no permiten otros elementos sintcticos en la misma
expresin. Muchas de las directivas utilizadas por CCS son extensiones del C estndar (Tabla 4).
#Include <16F84.h>
#Fuse XT, NOWDT, PUT, NOPROTECT
#Include <16F877.h>
#use delay (clock=40000000)
La habilitacin como entrada o salida se realiza a travs del registro TRISx. Un valor 0 en estos
registros indica que la terminal correspondiente del puerto es de salida, mientras que un valor 1
indica que ser de entrada.
La gestin del bus de datos se realiza a travs de los registros PORTx.
41
Tabla 5. Instrucciones para gestin de puertos.
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. Es
importante definir la velocidad inmediatamente despus del PIC ya que muchos drivers (como el
LCD) lo necesitan para configurarse.
3. Se puede describir la funcin principal MAIN () (desarrollo del programa principal).Y ampliar el
programa para que ejecute las operaciones que deseemos empleando las diferentes directivas antes
mencionadas.
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 se
enciendan primero los indicadores correspondientes a nmero par y en seguida los correspondientes a
nmero impar, secuencia dada en nmeros binarios, ver ejemplo Figura 5.
42
16. Contador de 0-255: Desarrollar e implementar el programa necesario que muestre en una lnea de datos una
secuencia binaria correspondiente a un contador de 0 a 255, ver ejemplo Figura 6.
17. Corrimiento de izquierda a derecha: Desarrollar e implementar el programa que muestre en una lnea de
salida los datos correspondientes al corrimiento de bits de izquierda a derecha, ver ejemplo Figura 7.
43
18. Corrimiento del centro a los lados: Desarrollar e implementar el programa que muestre en una lnea de datos
el corrimiento de bits partiendo del centro del arreglo de LED hacia las laterales del mismo, ver ejemplo
Figura 8.
EVALUACIN DE LA PRCTICA.
Conclusiones:_________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________.
Observaciones:_______________________________________________________________________
_____________________________________________________________________________________
______________________________________________________________________.
44
BIBLIOGRAFA:
[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 Alfa
Omega.
45
Inicio
/*Declaracin de libreras
#include<PIC en uso.h>*/
#include<16F877A.h>
#fuse XT, NOWDT, NOPROTECT
#Use delay (clock=4000000)
{
/*Declaracin de variables locales. En caso de que se
requiera su uso*/
/*Se verifica la accin a ejecutar y se determina el
cdigo 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
46
Nombre de la Asignatura
Nombre de la Prctica
Nmero de Prctica
Duracin (Horas)
MARCO TERICO
Entradas y salidas.
LCD.
Se acostumbra utilizar LCD con un nmero de lneas variable y un nmero de caracteres por lnea tambin
variable, por ejemplo, con 2x16 (Figura 1) donde, se trabaja con dos lneas de 16 caracteres cada una
[1]
(Tabla 1) .
47
Tabla 1. Comandos de control para LCD en C.
llamada.
Indica la posicin de acceso al LCD. Por ejemplo (1,1) indica
la primera posicin de la primera lnea.
Lcd_getc (byte x, byte y);
Lee el carcter de la posicin (x,y)
S es una variable de tipo Char. Esta funcin escribe la
variable en la posicin correspondiente. Si adems se indica:
Lcd_putc(char s);
\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:
String es una cadena o array de caracteres, valueses una
lista de variables separada por comas y fnamees una funcin.
El formato es %ntdonde n es opcional y puede ser:
1-9: para especificar cuantos caracteres se deben
especificar.
01-09: para indicar la cantidad de ceros a la
izquierda.
1.1-9.9: para coma flotante.
t puede indicar:
Printf (string)
Prinf(cstring, values)
Printf(fname, cstring,values)
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 exponencial.
w Entero sin signo con decimales insertados.
La 1 cifra indica el total, la 2 el nmero de
decimales.
El driver LCD.C est pensado para trabajar con el PORTD o el PORTB. Por defecto, utiliza el PORTD a menos que
le indiquemos lo contrario mediante.
#define use_portb_lcd TRUE
Por defecto este driver usa siete terminales para la comunicacin entre el LCD y el PIC.
48
Teclado (keypad).
Las entradas a travs de interruptores son muy habituales en los sistemas con microcontroladores para trabajar con
una mayor informacin o informacin alfanumrica (Figura 2).
El teclado 4x4 se utiliza para introducir los datos numricos en el microcontrolador. Consiste en 16 botones
organizados 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 se
deben configurar como entradas. Para que el teclado funcione apropiadamente, las resistencias del pulldown se deben conectar a los pines de entrada del microcontrolador. As se define el estado lgico sin pulsar
ningn botn (Figura 3)
2. Los pines de salida estn en uno lgico (1), mientras que se lee el estado lgico de los pines de entrada. Al
pulsar 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.
49
El compilador de C incluye el driver KBD.C para manejar el teclado. Las funciones que se incorporan son las
siguientes (Tabla 2):
Tabla 2. Instrucciones para manejo de teclado matricial 4X4 en C.
Kbd_init()
Kbd_getc()
Devuelve el valor de la tecla pulsada en funcin de la tabla que tiene programada. (Figura3). A
travs de la modificacin de esta tabla podemos adecuar el resultado del programa en distintas
cartulas del teclado.
El archivo KBD.C est pensado para trabajar con el PORTB o el PORTD. Activando o no la lnea #define
use.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 su
uso, 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 teclado
matricial, y como elemento de salida se muestre la informacin deseada en el Display, teniendo como interfaz de
comunicacin al PIC16F778A (Figura 5).
50
EVALUACIN DE LA PRCTICA.
Conclusiones:_________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________.
Observaciones:_______________________________________________________________________
_____________________________________________________________________________________
______________________________________________________________________.
BIBLIOGRAFA:
[1]Garca Breijo Eduardo. Compilador C CCS y simulador PROTEUS para micro controladores PIC. Editorial Alfa
Omega.
51
Inicio
/*Declaracin de libreras
#include<PIC en uso.h>*/
#include<16F877A.h>
#fuse XT, NOWDT, NOPROTECT
#Use delay(clock=4000000)
{
/*Declaracin de variables locales. En caso de que se
requiera su uso*/
/*Se verifica la accin a ejecutar y se determina el
cdigo 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
52
Nombre de la Asignatura
Nombre de la Prctica
Nmero de Prctica
Duracin (Horas)
MARCO TERICO.
Introduccin.
Los mdulos XBee/XBee-PRO fueron diseados para operar dentro del protocolo ZigBee soportando las
necesidades particulares de las redes de sensores de bajo costo y consumo, requiriendo alimentacin mnima y a la
vez 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 (VCC
y GND) y dos terminales de datos (Vin y Vout). Para la actualizacin de firmwares es necesario agregar las
conexiones de los pines RTS y DTR.
Los mdulos XBee fueron diseados para ser montados en un zcalo, no requiriendo ningn soldado. Para ello
disponen dos hileras de 10 pines separadas entre ellas por 22 mm (Figura 1).
53
Tabla 1. Detalles tcnicos del mduloXBee.
El mdulo requiere una alimentacin desde 2.8 a 3.4 V, la conexin a tierra y las lneas de transmisin de datos por
medio del UART (TXD y RXD) para comunicarse con un micro controlador, o directamente a un puerto serial
utilizando algn convertidor adecuado para los niveles de voltaje.
54
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 luego
transmitido y todo lo que ingresa como paquete RF, es guardado en el buffer de salida y luego enviado por el
pin 2 (Data out).
El modo Transparente viene por defecto en los mdulos Xbee. Este modo est destinado principalmente a la
comunicacin punto a punto, donde no es necesario ningn tipo de control. Tambin se usa para reemplazar
alguna conexin serial por cable, ya que es la configuracin ms sencilla posible y no requiere una mayor
configuracin.
En este modo, la informacin es recibida por el pin 3 del mdulo Xbee, y guardada en el buffer de entrada.
Dependiendo de cmo se configure el comando RO, se puede transmitir la informacin apenas llegue un
carcter (RO=0) o despus de un tiempo dado sin recibir ningn carcter serial por el pin 3. En ese
momento, se toma lo que se tenga en el buffer de entrada, se empaqueta, es decir, se integra a un paquete
RF, y se transmite. Otra condicin que puede cumplirse para la transmisin es cuando el buffer de entrada se
llena, esto es, ms de 100 bytes de informacin (Figura3).
55
El envo es transparente para el usuario, ya que el paquete recibido, puede o no ser entregado por el pin
DOUT (pin 3), lo que permite utilizar ese pin para el envo de otro tipo de informacin e incluso seguir
recibiendo desde otros mdulos.
Para crear un cable virtual, se debe notar que los pines de entrada/salida o I/O, estn asociados entre s, es
decir, vienen en pares. Por esto, slo se pueden crear cables entre estos pares de pines de distintos
mdulos (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.
Nombre PIN
Dn
(Con n entre 0 y 8)
Pn
(con n entre 0 y 1)
Configuracin I/O
Valor
0
1
2
3
4
5
0
1
2
IR
0x0-0xFFFF
(x 1 ms)
IT
0x0-0xFF
IA
0x0-0xFFFFFFFFFFFFFFFF
UI
0
1
Descripcin
Deshabilitado.
ADC(excepto 7 y 8)
Entrada Digital
Salida Digital L (Low)
Salida Digital H (High)
Deshabilitado
RSSI
PWM
Ajusta la tasa de muestreo de los
conversores ADC y digitales DIO.
Sin IR= 0x0A (10 en decimal),
entonces la tasa ser de 10ms o
100Hz
Nmero de muestras que gurda
en buffer antes enviarlas. Buffer
del mdulo es cercano a 93 bytes
de datos de muestra. Como los
conversores son de 10 bit, cada
muestra tiene 2 bytes, por lo que
deja un mximo de 46 muestras
(IT=0x2C) para el tamao del
buffer.
Indica la direccin del mdulo al
cual se le aceptarn los paquetes
para cambiar las salidas I/O.
Acepta direcciones de 16 y 64 bit.
Si IA=0xFFFFFFFFFFFFFFFF no
s aceptaran paquetes de ningn
mdulo. sta es la configuracin
por defecto. Si IA=0xFFFF se
aceptarn cambios de cualquiera
de los paquetes.
Este comando habilita o no la
salida por UART de los paquetes
recibidos.
Deshabilitado.
Habilitado.
56
Para su uso se debe escribir AT, ms el comando y luego el valor que se desea asignar. Por ejemplo si se
quiere configurar el pin 19 como convertidor analgico, se debe ingresar ATD12, donde D1 indica el
convertidor AD1 ubicado en el pin 19, y el 2 indica que se utilizar como convertidor analgico segn la tabla
anterior.
Montaje
La XBee Break out Board es una placa necesaria para adaptar los pines de 2 mm de separacin del mdulo XBee a
los 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.
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 lo
que si se desea utilizar direccionamiento de 16 bits, estos valores no deben ser usados). Para definirla se
ingresa 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 red
al cual se va a realizar la comunicacin. El rango debe estar entre 0x0 y 0xFFFE(las direcciones 0xFFFE y
0xFFFF se utilizan para direccionamiento de 64 bits).
As para habilitar el direccionamiento de 16 bit, se debe utilizar una direccin menor a 0xFFFEcon el
comando MY, de igual modo para DL y se debe dejar en cero el comando DH=0 (ATDH0). No se permite
usar 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 de
16 bit, y se habilita el uso de la direccin de 64 bit. Con este direccionamiento ya no es posible definir la
direccin de origen del mdulo, ya que sta se asigna automticamente. En este caso, la direccin del
mdulo corresponde a su nmero serial, que viene de fbrica y el cual es imposible de cambiar. Este nmero
se encuentra guardado en dos variables de 32 bit cada una (SL y SH) y es nico. SL lee los 32 bit menos
significativos 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 comandos
DL y DH. stos son de 32 bit cada uno (para el direccionamiento de 16 bit, DL se maneja como uno de 16,
mientras que DH se mantiene en cero) y juntos (DL+DH) forman el nmero de 64 bit que debe corresponder
con el nmero serial de otro mdulo formado por SL+SH. As para algn dato, DL debe ser igual a SL y DH
debe ser igual a SH, donde SL+SH corresponden al nmero serial de un mdulo destino configurado para
direccionamiento de 64 bits.
Para el direccionamiento de 64 bit, se debe dejar MY como 0xFFFF (ATMYFFFF) o 0xFFFE (ATMYFFFE) y
elegir una direccin de destino usando DL+DH, que debe corresponder a una direccin de 64 bit de otro
mdulo, indicando su nmero serial dado por SL+SH. Para consultar este nmero se debe ingresar ATSL (32
bit menos significativos) y luego ATSH (32 bit ms significativos), entregando como respuesta los nmeros
seriales en formato hexadecimal.
57
Software X-CTU.
X-CTU, permite configurar al mdulo XBEE de manera natural, fcil y rpida.
En la pestaa llamada PC Settings(Figura 5) es posible configurar el nmero y la velocidad del puerto serial, as
como la paridad, entre otras cosas. Adems permite configurar opciones ms generales para los comandos AT,
como el signo elegido para salir del modo de comandos, que por defecto corresponde al signo + (2B en
hexadecimal).
58
Figura 6. Opcin Range Test.
En la pestaa Range Test (Figura 6) es posible enviar una cadena de datos de cualquier tipo para probar el rango
de alcance de la seal. Esto genera automticamente datos y los enva por el mdulo, de tal forma que permite
verificar cuales datos llegan buenos y cuales no y a partir de esa estadstica determinar el rango o alcance de la
seal.
En la pestaa de Terminal (Figura 7), todo lo escrito aqu, entra directamente al mdulo como si estuviera en el
modo de comandos.
Esta pestaa de MODEM Configuration (Figura 8), permite leer, guardar o cargar cierta configuracin
predeterminada. Permite ver cmo est configurado cada mdem, cambiar alguna caracterstica o luego guardarla o
cargarla de una previamente guardada.
Usando Hyperterminal
Para abrir el Hyperterminal ingresar en Windows a Inicio->Programas->Accesorios->Comunicaciones. Crear una
nueva conexin utilizando el puerto al cual se encuentra el mdulo. En este ejemplo el puerto es el COM31. Se elige
la configuracin bsica de 9600 baudios 8N1 y sin Control de Flujo. Antes de iniciar la conexin se recomienda
ingresar a Archivos->Propiedades. En la ventana emergente elegir la pestaa Settings y presionar el botn ASCII
Setup. Activar las casillas Echo typed characters locally (permite ver lo que se enva por el puerto) y Append line
feeds to in comming line end (agrega fin de lnea a los mensajes entrantes). Lo anterior evita que se sobrescriban
59
los comandos AT que se envan con las respuestas del mdem (Figura 9).
Se parte con el signo +++ que indica el ingreso al modo de comandos (Figura 10). El Hyperterminal llamado Xbee
Explorer 2, ser el que posea el ECHO en sus conectores. El comando SL y SH entregarn el nmero serial de 64
bit de cada mdem.
Este nmero servir para diferenciarlos entre ellos en caso de cualquier error en la configuracin, ya que este no se
puede modificar. El comando BD=3, indica que la comunicacin entre el Host y el mdem es de 9600 baudios. El
comando CH=0x0C, indica que se elige el canal 12. La PAN ID es ID=0x3332. Tanto BD, CH como ID poseen los
valores 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 1,
lo 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 DIN
en uno, sale por el DOUT del otro. Luego se cortocircuitan los pines DIN y DOUT del mismo mdem para provocar el
ECHO. Esto har que todo lo que se escriba en un mdem, se devolver y aparecer en la pantalla de vuelta.
60
EQUIPO Y MATERIALES.
PIC16F877A
PRERREQUISITOS.
El alumno debe acudir al laboratorio de Programacin Avanzada contando con el PIC16F877A acondicionado
elctricamente para interactuar con el modulo de comunicacin XBee, teniendo como interfaz de entrada el teclado
matricial 4x4 y como interfaz de salida la pantalla LCD.
METODOLOGA.
El alumno debe diseare implementar un programa que permita establecer comunicacin inalmbrica entre dos
mdulos 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).
EVALUACIN DE LA PRCTICA.
Conclusiones:________________________________________________________________________
_____________________________________________________________________________________
______________________________________________________________________.
Observaciones:_______________________________________________________________________
_____________________________________________________________________________________
______________________________________________________________________.
61
BIBLIOGRAFA:
[1]Gua de usuario XBee serie 1: http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf