Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   ASM y Microcontroladores (https://www.clubdelphi.com/foros/forumdisplay.php?f=44)
-   -   ayuda con componente comport (https://www.clubdelphi.com/foros/showthread.php?t=58774)

JoseFco 02-08-2008 18:36:10

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.

dperezju 02-08-2008 18:50:37

Hombre muchas gracias esto es más de lo que esperaba les agradesco en demasia, pense que solo respondian preguntas muy avanzadas pero el día que fui a la reunión de programadores delphi, me di cuenta que es una comunidad muy unida.

Un saludo a todos!!!!

JoseFco 02-08-2008 20:45:08

Cita:

Empezado por dperezju (Mensaje 305317)
Hombre muchas gracias esto es más de lo que esperaba les agradesco en demasia, pense que solo respondian preguntas muy avanzadas pero el día que fui a la reunión de programadores delphi, me di cuenta que es una comunidad muy unida.

Un saludo a todos!!!!

Amigo en lo que te podamos ayudar aqui estamos.Desafortunadamente en los PIC si no puedo hacer nada.Pero con el componente Comport y Delphi.Pues lo poco que aprendimos en este mismo club, pues esta a la orden.;)


Un Saludo.


La franja horaria es GMT +2. Ahora son las 17:29:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi