PDA

Ver la versión completa : Programa De Comunicacion En Puertos Serie



borlam
26-01-2006, 03:37
Me gustaría saber donde encontrar codigos en C++ preferentemente en entorno Builder que se comuniquen por el puerto serie.
DEseo realizar un programa de comunicaciones por el puerto serie sobre Windows. Agradecería cualquier ayuda. Gracias

ChotaJr
15-03-2006, 09:01
:mad: JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JAJKA JA
PARA MI QUE ERES UN POBRE PENDEJO DE MIERDA, DISCULPA QUE LO DIGA ASI AMIGO PERO ESO DE LOS PUERTOS DE COMUNICAIONES ES UNA PINCHE CAGADA DE PROGRAMA SI VAS A USAR EL PUERTO SERIE DEBES DE USAR LA INT 14 CON SUS RESPECTIVOS SERVICOS EL 00,01,02 Y 03 OBVIAMENTE YA SABES EL AX VAN LOS PARAMETROS COMO LA VEL DE TTANSMISIOSN , PARIDAD BIT DE PARADA ETC ETC EL EL DX ENVIAR Y RECIBES EL CARACTERQ QUE DESEAS TRANSMITIR Y/O ENVIAR , INCLUSIVE LO PUEDES HACER CON LA INT 21 Y EL SERVICIO ES CRE QUE EL 30H 0 31H NO RECUERDO BIEN DEBERIAS CHECARLO, AUNQUE ESTE ES EL METODO MAS ANTIGUO Y YA PASADO DE MODA LO QUE RECOMNIENDO ES LA INT 14 CON SUS RESPECTIVOS SERVICIOS , Y OBVIAMENTE LA FORMA MAS FACIL DE HACERLOCON C++ ES USAR LAS FUNCIONES INPORT Y OUTPORT QUE ESTAN DE LA VERGA DE FACIL DE USAR, SOLO CHECA LOS EJEMPLOS QUE VIENEN CON C++ Y VERAS QUE TE CAGAS DE LA RISA DE LO FACIL QUE ES HACER ESO bY Bicholey

SxR
15-03-2006, 15:27
CHOTA, la pregunta que tu has hecho no es mucho más inteligente así que por favor usa lenguaje más moderado o serás expulsado.

ChotaJr
18-03-2006, 10:16
:mad: CHALE CARNAL A QUE PRREGUNTA TE REFIERES SI YO NO HE HECHO PREGUNTA ALGUNA EN ESTE FORO A EXCEPCION DE UNA CURIOSIDAD POR QUE TAMBIEN QUERIA COLABORAR.
UNO QUIERE AYUDAR Y UDS SE ENOJAN. NO ENTIENDO PORQUE

SxR
18-03-2006, 15:24
Ayudar no implica insultar, no crees?

ChotaJr
01-04-2006, 22:28
:mad: :mad: :mad:
COMO CONSIDERO QUE A ESTE APARTADO OS HACE FALTA UN POCO MAS HE AQUI EL CODIGO :

#include <iostream.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>

#define PUERTO 0x3F8

void margen();
void inicializar();
void main(void)
{

unsigned char TECLA, CH;
int i=3,j=3,m=3,f=14;
clrscr();
margen();//llamamos a la funcion margen para que dibuje la pantalla
gotoxy(3,3);

inicializar();//llamamos a la funcion inicializar para que prepare al puerto

while (TECLA!=27)//Mientras no presionemos escape...
{
if (inportb(PUERTO+5)&1)//
{
CH=inportb(PUERTO);//guardo en CH el valor que esta en el puerto
//limpiamos el puerto
if (CH==13)//preguntamos si el caracter recibido es enter
{
i=3;
f++;//controla la posicion del cursor

if (f==23)
{
window(3,14,77,22);
delline();
f=22;
window(1,1,80,25);
gotoxy(i,f);
}
}
if (CH!=NULL)//preguntamos si el caracter no es nulo
{
if(CH=='\r')//para que el cursor se mantenga siempre al final
CH='\n';
gotoxy(i,f);printf("%c",CH);//imprimimos el caracter
i++;
if (i==78)
{
i=3;
f++;
if (f==23)
{
window(3,14,77,22);
delline();
f=22;
window(1,1,80,25);
gotoxy(i,f);
}
}

}

}
if (kbhit())//preguntamos si se presiono alguna tecla
{
gotoxy(j,m); //mandamos el cursor al final de cada caracter
j++;//con j escribimos la palabra
if (j==78)
{
j=3;
m++;
if (m==13)
{
window(3,3,77,12);
delline();
m=12;
window(1,1,80,25);
gotoxy(j,m);
}
}
TECLA=getche();//guardamos la tecla presionada
if (TECLA==13)//preguntamos si la tecla presionada es un enter
{
gotoxy(3,m+1);printf("");//al apretar enter probocamos un salto de linea
j=3;
m++;
if (m==13)
{
window(3,3,77,12);
delline();
m=12;
window(1,1,80,25);
gotoxy(j,m);
}
}
if (TECLA!=27)//preguntamos si es distinto de escape
{
while(!inportb(PUERTO+5)&1);
outportb(PUERTO,TECLA);//enviamos el caracter al puerto
}
}
}
}


void margen ()
{
int i;

for (i = 1; i < 80; i++) //Dibujamos los margenes
{
gotoxy (i, 1); printf ("Û");
gotoxy (i,24); printf ("Û");
}

for (i = 1; i < 80; i++)
{
gotoxy (i, 2); printf ("Í");
gotoxy (i,23); printf ("Í");
}

for (i = 1; i < 80; i++)
{
gotoxy (i,13); printf ("Í");
}

for (i = 2; i < 24; i++)
{
gotoxy (1 ,i); printf ("Û");
gotoxy (79,i); printf ("Û");
}

for (i = 2; i < 24; i++)
{
gotoxy (2 ,i); printf ("º");
gotoxy (78,i); printf ("º");
}
gotoxy (2 , 2); printf ("É");
gotoxy (2 ,23); printf ("È");
gotoxy (78, 2); printf ("»");
gotoxy (78,23); printf ("¼");
gotoxy(3,2);printf("Escribiste:");
gotoxy(3,13);printf("Recibiste:");
gotoxy(64,24);printf("ESC -> Salir.");

}

void inicializar()
{
outportb(PUERTO+1,0);//
outportb(PUERTO+3,0x80);//
outportb(PUERTO+0,0x0C);//
outportb(PUERTO+1,0x00);//
outportb(PUERTO+3,0x03);//
outportb(PUERTO+2,0XC7);
outportb(PUERTO+4,0X0B);

}


:mad: :mad: :mad: :mad: ES MUY FACIL DE ENTENDER OBVIAMENTE PODRIAMOS HACERLO PARA CUALQUIER COM SOLO TENEIS QUE PONER LA INT DE DICHO PUERTO YA SEA COM1 COM2 COM3 O COM4 ES MAS INCLUSIVE FUNCIONA CON EL USB SOLO HAY QUE SABER USARLO, CABE DESTACAR QUE ESTE CODIGO NO ES MIO ANDA CIRCULANDO POR AHI EN LA RED PERO COMO OS DIJE EN UN MENSAJE ANTERIOR TAMBIEN SE PUEDE HACER CON LOS SERVICIOS DE LA INT 14 YA LO HICE Y TAMBIEN FUNCIONA AUNQUE AQUI USAMOS LAS FUNCIONES INPORT Y OUTPORT DE C++ ES TAN FACIL DE ENTERNDEREL CODIGO QUE NO HACE FALTA DECIR MAS.
:mad: :mad:
POR CIERTO HOY ES 1 ABRIL DE 2006 MI AMADA JESENIA CUMPLE 19 AÑOS
FELIZ CUMPLEAÑOS AUNQUE NO VEAS ESTE MENSAJE:
JESENIA TE AMO NO IMPORTA DONDE ESTES.

universoft
25-06-2006, 06:34
chota el conocimiento se encuentra haciendo fluir la informacion cuando nos llega para asi porder aprender de quienes nos la entregan y quienes nos la reciben.

universoft
25-06-2006, 06:35
pd.
gracias por los las lineas.
has aportado al crecimiento de la humanidad.