⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 RS232串口通讯随书源码
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, TComm1, ExtCtrls;

type
  TForm1 = class(TForm)
    cmbCMD: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    mReceive: TMemo;
    lblMsg: TLabel;
    Button1: TButton;
    Button2: TButton;
    Comm1: TComm;
    Timer1: TTimer;
    Label3: TLabel;
    txtSLM: TEdit;
    Label4: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cmbCMDClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  CmdFlag:Boolean;
  Procedure TimeDelay(DT:DWORD);
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Comm1.PortOpen := True;
  cmbCMD.Clear;
  cmbCMD.Items.Add('AUTOLog');
  cmbCMD.Items.Add('AUTOStart');
  cmbCMD.Items.Add('BATt');
  cmbCMD.Items.Add('BAUd');
  cmbCMD.Items.Add('CLock');
  cmbCMD.Items.Add('CONtinue');
  cmbCMD.Items.Add('Default');
  cmbCMD.Items.Add('DISp');
  cmbCMD.Items.Add('ELapsed');
  cmbCMD.Items.Add('EXChange');
  cmbCMD.Items.Add('EXPosure');
  cmbCMD.Items.Add('Format');
  cmbCMD.Items.Add('FREE');
  cmbCMD.Items.Add('FW');
  cmbCMD.Items.Add('HAndshake');
  cmbCMD.Items.Add('OFf');
  cmbCMD.Items.Add('PAuse');
  cmbCMD.Items.Add('PErcentile');
  cmbCMD.Items.Add('Print');
  cmbCMD.Items.Add('PW');
  cmbCMD.Items.Add('RANge');
  cmbCMD.Items.Add('Reset');
  cmbCMD.Items.Add('SETup');
  cmbCMD.Items.Add('TW');
  cmbCMD.Items.Add('VErsion');
  cmbCMD.ItemIndex := 0;
  cmbCMDClick(nil);
  Timer1.Enabled := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 CmdFlag := True;
end;

//以下是延迟函数,单位毫秒
Procedure TimeDelay(DT:DWORD);
var
 TT:DWORD;
begin
  //取得现在的Tick值
  TT:=GetTickCount();
  //计算Tick差值是否超过设置值
  while GetTickCount()-TT<DT do
   Application.ProcessMessages; //释放控制权
end;


procedure TForm1.cmbCMDClick(Sender: TObject);
begin
  case cmbCMD.ItemIndex of
  0:lblMsg.Caption := '自动记录测量的数值';
  1:lblMsg.Caption :='开始的时间。';
  2:lblMsg.Caption :='返回噪音计内的电池存量。';
  3:lblMsg.Caption :='串行通信的Baud Rate值。';
  4:lblMsg.Caption :='噪音计内的日期时间。';
  5:lblMsg.Caption :='开始噪音计的测量。';
  6:lblMsg.Caption :='将噪音计内的设置值重设为默认值。';
  7:lblMsg.Caption :='目前显示在噪音计上的参数。';
  8:lblMsg.Caption :='取得目前已测量的经过时间。';
  9:lblMsg.Caption :='目前的交换率。';
  10:lblMsg.Caption :='曝露时间。';
  11:lblMsg.Caption :='输出格式。';
  12:lblMsg.Caption :='剩下的时间,以及噪音计内存内剩下的记录数。';
  13:lblMsg.Caption :='RMS信号的频率加权值。';
  14:lblMsg.Caption :='流量控制协议。';
  15:lblMsg.Caption :='关闭噪音计。';
  16:lblMsg.Caption :='暂停噪音计的测量工作。';
  17:lblMsg.Caption :='目前所计算的百分比种类。';
  18:lblMsg.Caption :='将数据由打印机或计算机以目前的输出格式输出。';
  19:lblMsg.Caption :='目前噪音计内所使用的峰值信号的频率加权值。';
  20:lblMsg.Caption :='目前噪音计的测量范围。';
  21:lblMsg.Caption :='重置噪音计。';
  22:lblMsg.Caption :='返回目前噪音计内的设置值。';
  23:lblMsg.Caption :='噪音计目前所使用的时域加权种类。';
  24:lblMsg.Caption :='取得版本号码。';
  End;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Comm1.PortOpen := False;
  Close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Buf:String;
  Pos1:integer;
begin
 if CmdFlag then
  begin
   Comm1.OutputString(cmbCMD.Text + Chr(13));
   TimeDelay(300);
   mReceive.Text := Comm1.Input;
   CmdFlag := False;
  end;
 Comm1.OutputString('DISP'+ Chr(13));
 TimeDelay(300);
 Buf := Comm1.Input ;
 Pos1 := Pos('LEQ',Buf);
 if Pos1>0 then
   txtSLM.Text := Copy(Buf,Pos1+4,6);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -