Ver Mensaje Individual
  #21  
Antiguo 02-08-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Reputación: 0
JoseFco cantidad desconocida en este momento
Bueno aqui esta algo de ayuda para el amigo:




Con esto podras practicar un poco y entender como mandar y recibir por el serial port, usando en componente Comport.

Aqui el codigo:

Código Delphi [-]
unit SerieT;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CPort;
type
  TForm1 = class(TForm)
    Button1: TButton;
    ComPort: TComPort;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ComPortRxChar(Sender: TObject; Count: Integer);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
//Esto te permite que en el memo puedas ver hex y ascii.
 procedure AddHexString(S : String; Lines : TStrings );
var AddS, HexS, CopyS : String;
    i : Integer;
const SLen = 8;
begin
  while Length(S) > 0 do
    begin
      AddS := Copy(S,1,SLen);
      HexS := '';
      Delete(S,1,SLen);
      for i := 1 to SLen do
        begin
          CopyS := Copy(AddS,i,1);
          if CopyS <> '' then
            HexS := HexS + ' ' + Format('%2.2x',[Byte(CopyS[1])]) //
          else
            HexS := HexS + '   ';
        end;
       while Length(AddS) < SLen do
         AddS := AddS + ' ';
       for i := 1 to SLen do
         case AddS[i] of
           #0..#31 : AddS[i] := '.';
           #127    : AddS[i] := '.';
         end;
       Lines.Add(HexS+' : '+AddS);
    end;
    end;

// este es el procedure para recibir por el serial port
//(recuerda en el comport Events poner el procedure  OnRxChar
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort.ReadStr(Str, Count);
  AddHexString(Str,Memo1.Lines);
end;
// aqui esta el primer boton
procedure TForm1.Button1Click(Sender: TObject);
begin
if not ComPort.Connected then
 ComPort.Open;
 Comport.WriteStr(#01);//cambia este byte a enviar si quieres
end;
// aqui esta el segundo boton
procedure TForm1.Button2Click(Sender: TObject);
begin
if not ComPort.Connected then
 ComPort.Open;
 Comport.WriteStr(#02); //puedes cambiar este byte si quieres
end;
// aqui esta el tercer boton
procedure TForm1.Button3Click(Sender: TObject);
begin
if not ComPort.Connected then
 ComPort.Open;
 Comport.WriteStr(#03); // tambien puedes cambiar su valor
end;
// salir de la aplicacion
procedure TForm1.Button4Click(Sender: TObject);
begin
Close;
end;
//aqui puedes cambiar los parametros del comport
procedure TForm1.Button5Click(Sender: TObject);
begin
 ComPort.ShowSetupDialog;
end;
end.

Solo tienes que unir los pines 2 y 3 del puerto serie y podras monitorear lo que envias.Por otra parte tambien este programita te funcionara como un monitor.
Cambiendo los bytes a enviar en el procedure de los buttons podras ir jugando con ellos y encontrar que es lo que quieres que tu micro reciba.

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
begin
if not ComPort.Connected then
 ComPort.Open;
 Comport.WriteStr(#03); //cambia este numero, por el codigo que 
//quieras mandar a tu micro
end;


Un Saludo.
Responder Con Cita