Vous êtes sur la page 1sur 19

OBJETIVO: Mostrar el armado de un circuito simple, mediante el puerto serial para encender y apagar los leds por medio

de un programa establecido en C++. MARCO TERICO: Dev-C++ es un entorno de desarrollo para los lenguajes C y C++. Adems del consabido editor, aade un compilador y otras utilidades menos evidentes que lo convierten en un gran aliado en la programacin. Dev-C++ integra utilidades como un debugger, un explorador de clases y paquetes, un depurador de cdigo y un asistente de proyecto. Todo ello junto al completo editor con realce de sintaxis y predictor de expresiones. La inclusin de bibliotecas estticas y DLL, adems de otras plantillas de Dev-C++, ayuda a que los primeros pasos en la programacin sean ms sencillos. FASES DE UN PROGRAMA EN DEV C++: 1.- Arranque de la aplicacin 2.- Escritura del cdigo fuente 3.- Compilacin 4.- Montaje 5.- Ejecucin 6.- Depuracin En el arranque se da doble click en el icono de Dev C++, la escritura del cdigo en C el cual codifica el programa (men archivo nuevo cdigo fuente). En la compilacin el cdigo fuente es comprobado sintcticamente por Dev C++ y traducido al lenguaje maquina ( aun no ejecutable y denominado cdigo objeto). CONCEPTOS GENERALES DE PUERTOS Se dividen en 2 tipos: a) Puertos fsicos de la computadora: son conectores integrados en tarjetas de expansin en la tarjeta principal Tarjeta Madre" de la computadora; diseados con formas y caractersticas electrnicas especiales, utilizados para interconectar una gran gama de dispositivos externos con la computadora, es decir, los perifricos. Vara la velocidad de transmisin de datos y la forma fsica del puerto acorde al estndar y al momento tecnolgico. Anteriormente los puertos venan integrados exclusivamente en tarjetas de expansin denominadas tarjetas controladoras, posteriormente se integraron en la tarjeta principal Tarjeta Madre" y tales controladoras perdieron competencia en el mercado, pero actualmente se siguen comercializando sobre todo para servidores.

b) Puertos lgicos de la computadora: son puntos de acceso entre equipos para el uso de servicios y flujo de datos entre ellos, ejemplos el puerto 21 correspondiente al servicio FTP (permite el intercambio de archivos) el puerto 515 que est asociado con el servicio de impresin. Los puertos generalmente tienen ms de un uso en la computadora e inclusive en dispositivos que no se conectan directamente al equipo, por lo que no hay una clasificacin estricta, sin embargo se pueden dividir en 7 segmentos bsicos:

1) Puertos de uso general: son aquellos que se utilizan para conectar diversos dispositivos independientemente de sus funciones (impresoras, reproductores MP3, bocinas, pantallas LCD, ratones (Mouse), PDA, etc.) Puerto eSATA Puerto USB Puerto FireWire IEEE1394 Puerto SCSI Puerto paralelo / LPTx Puerto serial / COMx 2) Puertos para impresoras: soportan solamente la conexin de impresoras y algunos Plotter. Puerto Centronics para impresora

Nombre Servicio SMTP*

de

Nmero puerto 25 42 21 515

de

Protocolo TCP*** UDP**** TCP TCP

Alias Mail Name Spooler

Nameserver FTP** Printer

*SMTP: Simple Mail Transfer Protocol protocolo de transferencia simple de correo, permite el intercambio de texto por correo electrnico. ** FTP: File Transfer Protocol protocolo de transferencia de archivos, permite la carga de archivos hacia y desde un equipo a otro. *** TCP: protocolo de control de transmisin, permite el flujo de datos entre los equipos conectados en una red. **** UDP: protocolo de datagramas de usuario, permite el intercambio de datagramas paquetes de datos con suficiente informacin sobre el origen, destino y contenido, sin que se haya realizado una conexin previa.

USO DE INSTRUCCIONES PARA EL MANEJO DEL PUERTO PARALELO Distinguimos dos elementos: la parte transmisora y la parte receptora

La parte transmisora coloca la informacin en las lneas de datos e informa a la parte receptora que la informacin (los datos) est disponible; entonces la parte receptora lee la informacin en las lneas de datos e informa a la parte transmisora que ha tomado la informacin (los datos). Aqu en la transmisin ambas partes sincronizan su respectivo acceso a las lneas de datos, el receptor no podr leer las lneas de datos hasta que la parte transmisora no se lo permita o indique y de la misma forma la parte transmisora no colocar nueva informacin en las lneas de datos hasta que la parte receptora quite la informacin y le indique a la parte transmisora que ya ha tomado los datos y enviado a otro punto, a sta coordinacin de operaciones se le llama acuerdo entendimiento. Los sistemas operativos basados en DOS y compatibles gestionan las interfaces de puerto paralelo con los nombres LPT1, LPT2 y as sucesivamente, Unix en cambio los nombra como /dev/lp0, /dev/lp1, y dems. Las direcciones base de los dos primeros puertos son: LPT1 = 0x378 Y LPT2 = 0x278.

Nombre del puerto LPT1 LPT2 LPT3

Interrupcin # IRQ 7 IRQ 5 IRQ 7

Direccin de inicio E/S 0x378 0x278 0x3bc

Direccin final de E/S 0x37f 0x27f 0x3bf

COMUNICACIN CON EL PUERTO PARALELO EN LENGUAJE C. El lenguaje C permite tanto la lectura como la escritura de los puertos paralelo. Para leer el puerto existen las instrucciones inport e inportb, mientras que para escribir estn las instrucciones outport y outportb. La sintaxis de estas instrucciones es la siguiente: unsigned inport (unsigned portid); unsigned char inportb (unsigned portid); void outport (unsigned portid, unsigned value); void outportb (unsigned portid, unsigned char value); Ejemplo: Palabra = inport(puerto); outport (puerto, Palabra); Byte = inportb (puerto); outportb (puerto, Byte); Las instrucciones que terminan en b ese refieren a la lectura o escritura de un byte, mientras que las que no terminan en esta letra se refieren a una palabra (dos byte). La variable puerto debe contener la direccin de memoria del puerto paralelo, este valor puede ser 378h, 3BCh 278h. Por ltimo no hay que olvidar colocar la siguiente directiva del preprocesador que le indica al C que se usarn las funciones inport, outport, inportb u outportb, declaradas en el archivo dos.h. #include <dos.h>

PUERTO SERIE Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y perifricos, donde la informacin es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que enva varios bits simultneamente.1 La comparacin entre la transmisin en serie y en paralelo se puede explicar usando una analoga con las carreteras. Una carretera tradicional de un slo carril por sentido sera como la transmisin en serie y una autova con varios carriles por sentido sera la transmisin en paralelo, siendo los vehculos los bits que circulan por el cable.

En tecnologas bsicas, un puerto serie es una interfaz fsica de comunicacin en serie a travs de la cual se transfiere informacin mandando o recibiendo un bit. A lo largo de la mayor parte de la historia de los ordenadores, la transferencia de datos a travs de los puertos de serie ha sido generalizada. Se ha usado y sigue usndose para conectar los ordenadores a dispositivos como terminales o mdems. Los ratones, teclados, y otros perifricos tambin se conectaban de esta forma. Mientras que otras interfaces como Ethernet, FireWire, y USB mandaban datos como un flujo en serie, el trmino "puerto serie" normalmente identifica el hardware ms o menos conforme al estndar RS232, diseado para interactuar con un mdem o con un dispositivo de comunicacin similar. Actualmente en la mayora de los perifricos serie, la interfaz USB ha reemplazado al puerto serie por ser ms rpida. La mayor parte de los ordenadores estn conectados a dispositivos externos a travs de USB y, a menudo, ni siquiera llegan a tener un puerto serie. El puerto serie se elimina para reducir los costes y se considera que es un puerto heredado y obsoleto. Sin embargo, los puertos serie todava se encuentran en sistemas de automatizacin industrial y algunos productos industriales y de consumo. Los dispositivos de redes, como los enrutadores y switches, a menudo tienen puertos serie para modificar su configuracin. Los puertos serie se usan frecuentemente en estas reas porque son sencillos, baratos y permiten la interoperabilidad entre dispositivos. La desventaja es que la configuracin de las conexiones serie requiere, en la mayora de los casos, un conocimiento avanzado por parte del usuario y el uso de comandos complejos si la implementacin no es adecuada.

PUERTO SERIE ASINCRNICO A travs de este tipo de puerto la comunicacin se establece usando un protocolo de transmisin asncrono. En este caso, se enva en primer lugar una seal inicial anterior al primer bit de cada byte, carcter o palabra codificada. Una vez enviado el cdigo correspondiente, se enva inmediatamente una seal de stop despus de cada palabra codificada. La seal de inicio (start) sirve para preparar al mecanismo de recepcin o receptor, la llegada y registro de un smbolo, mientras que la seal de stop sirve para predisponer al mecanismo de recepcin para que tome un descanso y se prepare para la recepcin del nuevo smbolo. La tpica transmisin start-stop es la que se usa en la transmisin de cdigos ASCII a travs del puerto RS-232, como la que se establece en las operaciones con teletipos. El puerto serie RS-232 (tambin conocido como COM) es del tipo asincrnico, utiliza cableado simple desde 3 hilos hasta 25 y conecta computadoras o microcontroladores a todo tipo de perifricos, desde terminales a impresoras y mdems pasando por mouses.

La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante el chip UART 8250 (computadoras de 8 y 16 bits, PC XT) o el 16550 (IBM Personal Computer/AT y posteriores). El RS-232 original tena un conector tipo DB-25, sin embargo la mayora de dichos pines no se utilizaban, por lo que IBM estandariz con su gama IBM Personal System/2 el uso del conector DB-9 (ya introducido en el AT) que se usaba, de manera mayoritaria en computadoras. Sin embargo, a excepcin del mouse, el resto de perifricos solan presentar el DB-25La norma RS-422, similar al RS-232, es un estndar utilizado en el mbito industria.

LOS LEDS. LED es la abreviatura en lengua inglesa para Light Emitting Diode, que en su traduccin al espaol correspondera a Diodo Emisor de Luz. Un LED consiste en un dispositivo que en su interior contiene un material semiconductor que al aplicarle una pequea corriente elctrica produce luz. La luz emitida por este dispositivo es de un determinado color que no produce calor, por lo tanto, no se presenta aumento de temperatura como si ocurre con muchos de los dispositivos comunes emisores de luz. El color que adquiera la luz emitida por este dispositivo depender de los materiales utilizados en la fabricacin de este. En realidad depender del material semiconductor, que dar una luz que puede ir entre el ultravioleta y el infrarrojo, incluyendo en el medio toda la gama de colores visibles al ojo humano.

PIC El sistema se comunica por medio del puerto serie, enviando informacin hacia un Pic. El Pic es un dispositivo electrnico, el cual est programado, para enviar y recibir informacin.

MATERIALES

8 leds de diferentes colores 1 Protoboard 2 Conector macho (paralelo y serial) 1 resistencias de 1 [k?] Cables de cobre de diferentes colores C++ 2 capacitores 1 potencimetro Compuerta TLL PIC 4017 555 PROCEDIMIENTO Es recomendable tener unos cuantos leds ms y unas resistencias. Con esos antecedentes ahora vamos a explicar los detalles del circuito: El Circuito

Donde dice "Pin puerto paralelo" puede ser cualquier Pin del 2 al 9. No olvidar hacer una conexin al pin 25 que es tierra El circuito consiste en un led con una resistencia, la resistencia se usa para limitar la intensidad y no pedir ms de la que el puerto paralelo es capaz de dar (5 mA). Cuando se active el pin el led se encender. En este proyecto lo que se quiere mostrar es como, con un simple circuito, se puede controlar mediante la computadora una fila de LEDs los que se van a encender en una secuencia que nosotros vamos a controlar con un pequeo programa escrito en el lenguaje de programacin Turbo C++. El circuito que se va armar ser montado sobre una plaqueta, la cual conduce la corriente elctrica, llamada "protoboard". Como nuestro objetivo es controlar los diodos LEDs con la computadora, esto es encenderlos y apagarlos segn como queramos. Los LEDs son diodos que tienen la capacidad de emitir luz cuando

circula una corriente por ellos. Esta corriente debe ser del orden de los 10 mA (miliampers). Para limitar la corriente que pasa por los LEDs se usan las resistencias que se oponen al paso de ella. Para controlar un circuito externo con la computadora se usar el puerto paralelo de ella, para conectar el puerto con el circuito se necesitar el cable paralelo o conector DB-25. El paso siguiente es soldar cable fino UTP a los pines internos del conector. Como los pines estn numerados del nmero 1 al 25, solo usaremos los pines numerados del 2 al 9, tambin se tiene que soldar un cable al pin 25 (que es el pin de masa o tierra elctrica) para tener una descarga a tierra comn, para nuestro circuito y la computadora. Una vez construido el cable se lo puede conectar al protoboard. Solo se deben usar cinco entradas y cinco salidas, ya que son solo cinco LEDs los que controlamos. Las cinco salidas estn conectadas por medio de una resistencia limitadora de corriente a una LED cada una. Estas resistencias son de un valor de 1[k?] y permite que circule una corriente de 10 mA (miliampere) por cada diodo. La siguiente imagen puede ayudar a apreciar mejor la conexin del circuito:

*Nota: A fin de que todo funcione bien se recomienda primero solo armar en el circuito con un solo led a fin de que el programa no sea engorroso y fin de verificar el armado de los circuitos y de verificar que la estructura de control este bien hecho.

El siguiente paso es escribir las directivas y comandos en el programa: PROGRAMA DEL CIRCUITO CON PUERTO PARALELO #include <stdio.h> #include <conio.h> #include <windows.h> typedef short _stdcall (*inpfuncPtr)(short portaddr); typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); int main(void) { HINSTANCE hLib; inpfuncPtr inp32; oupfuncPtr oup32; /* Load the library */ hLib = LoadLibrary("inpout32.dll"); if (hLib == NULL) { printf("LoadLibrary Failed.\n"); getchar();

return -1; } oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32"); if (oup32 == NULL) { printf("GetProcAddress for Oup32 Failed.\n"); getchar(); return -1; } /***** Write the data register */ (oup32)(0x378,128); sleep(500); (oup32)(0x378,64); sleep(500); (oup32)(0x378,32); sleep(500); (oup32)(0x378,16); sleep(500); (oup32)(0x378, 8); sleep(500); (oup32)(0x378,4); sleep(500); (oup32)(0x378,2); sleep(500); (oup32)(0x378,1); sleep(500); (oup32)(0x378,0); FreeLibrary(hLib); getchar(); system("pause"); return 0; }

Compilacin del programa para el puerto paralelo.

PROCEDIMIENTO DE CIRCUITO EN SERIE Se monta el circuito, ya con el pic 4017, y 555, resistencia, potencimetro y capacitores, se realiza el programa con las libreras adecuadas la conexin en serie.

#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <commdlg.h> #include <windef.h> #include <iostream> using namespace std; #define READ_TIMEOUT 500 void main() { int n; int k; cout << "0=Apagar la secuencia de leds - 1= Para Mantener Prendidala secuencia" << endl; cin >> k; if(k==0) { TCHAR* currentuser = L"COM1"; LPCWSTR *lstr = (LPCWSTR *)(&currentuser); HANDLE hComm; DWORD dwRead; OVERLAPPED osReader = {0}; DWORD dwRes; hComm = CreateFile( *lstr, GENERIC_READ | GENERIC_WRITE, 0,0,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0); if (hComm == INVALID_HANDLE_VALUE) printf("*Error opening port\n"); else printf("*Port opened succesfully\n"); osReader.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (osReader.hEvent == NULL) printf("*Error creating overlapped event; abort\n");

CloseHandle(osReader.hEvent); //wait for user int a; cout << "Presione 1 para volver a encender la secuencia " << endl; scanf("%d", &a); } else if (k==1) { cout << " La secuencia Sigue Prendida " << endl;

Compilacion del programa

ejecucion del programa

Circuito

PROGRAMA EN GRAFICO: LEDS #include <winbgim.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <math.h> #include <dos.h> #include <cstdio> #include <iostream> using namespace std; int h=0; int main() { int monitor=DETECT; int modo; initgraph(&monitor, &modo, ""); do{ delay(400); for(h=0; h<=40; h=h+40) { cleardevice(); setcolor(YELLOW);{ circle(50+h, 50, 20); setfillstyle(1, YELLOW);

floodfill(50+h, 50, YELLOW); delay(400); } } delay(400); for(h=0; h<=120; h=h+40) { cleardevice(); setcolor(GREEN);{ circle(130+h, 50, 20); setfillstyle(1, GREEN); floodfill(130+h, 50, GREEN); delay(400); } } delay(400); for(h=0; h<=40; h=h+40) { cleardevice(); setcolor(RED);{ circle(290+h, 50, 20); setfillstyle(1, RED); floodfill(290+h, 50, RED); delay(400);} }

}while(h!=2); getch(); closegraph(); }

Compilacion del grafico

Ejecucion del programa

INSTITUTO TECNOLOGICO DE PIEDRAS NEGRAS

PROGRAMACION BASICA

UNIDAD VIII:PUERTOS.

C A T E D R A T I C O : I N G . HECTOR CARLOS VALEDEZ MOYEDA

INGENIERIA MECATRONICA

EQUIPO #2: BRENDA IVETTE HERNNDEZ MTZ. JAZMIN VERA GUEVARA OMAR ALEJANDRO BORREGO CRISTIAN ORLANDO MARTINEZ IBARRA FRANCO MONDRAGON ESQUIVEL JOSE DANIEL RAMOS ALVARADO

PIEDRAS NEGRAS COAHUILA A, 07 DE JULIO DE

2013.

Vous aimerez peut-être aussi