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

📄 unit1.~pas

📁 指导你如何通过串口发送数据和ASC码
💻 ~PAS
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Comm1: TComm;
    mReceive: TMemo;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    optCOM: TRadioGroup;
    Label3: TLabel;
    txtInput: TEdit;
    GroupBox1: TGroupBox;
    optAnswer: TRadioButton;
    optDial: TRadioButton;
    BitBtn4: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure Comm1ReceiveData(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure txtInputKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Procedure TimeDelay(DT:DWORD);//延迟函数

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  //打开通信端口
  Comm1.PortOpen := True;
  TimeDelay(100);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if optAnswer.Checked then
   Comm1.OutputString('AT&L1A' + Chr(13))
  else
   Comm1.OutputString('ATX1&L1D' + Chr(13));
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
  Comm1.PortOpen := False;
  if optCOM.ItemIndex =0 then
    Comm1.CommPort := pnCOM1
  else
    Comm1.CommPort := pnCOM2;
  //打开通信端口
  Comm1.PortOpen := True;
  //升高电压
  Comm1.DTREnabled := True;
  Comm1.RTSEnabled := True;
end;

procedure TForm1.Comm1ReceiveData(Sender: TObject);
begin
  //将接收的数据显示到Memo组件中
  mReceive.Text := mReceive.Text + Comm1.Input ;
  //设置Memo的光标至最下方
  mReceive.SelStart := Length(mReceive.Text);
  mReceive.SelLength := 0;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  mReceive.Text := ''; //清除Memo组件的内容
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  Close; //结束程序的执行
end;

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


procedure TForm1.txtInputKeyPress(Sender: TObject; var Key: Char);
begin
  //看看是否按下了ENTER
  if Key=Chr(13) then
    if Comm1.PortOpen then
      Comm1.OutputString(txtInput.Text + Chr(13));
end;

end.

⌨️ 快捷键说明

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