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

📄 unit1.~pas

📁 delphi6编写的读电子称数据(添加MSComm控件)
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, MSCommLib_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    MSComm1: TMSComm;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Button2: TButton;
    Label5: TLabel;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    Label6: TLabel;
    Label9: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Edit10: TEdit;
    Label11: TLabel;
    Edit11: TEdit;
    Label12: TLabel;
    Edit12: TEdit;
    Label13: TLabel;
    Edit9: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure MSComm1Comm(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    procedure comopen;  //设置串口状态
  public
    { Public declarations }
    comstate:integer;  //状态变量,用来表示电子称是连接状态,断开状态
    scom:string;       //串口号
    sbt:string;        //波特率
    comorder,startchar,endchar,charstartno,charlong:string;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  comstate:=0;
  scom:='COM1';
  sbt:='9600,n,8,1';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if comstate=0 then
   begin
      comopen;
      Button1.Caption :='断开电子称';
      comstate:=1;
   end
   else
   begin
     if MSComm1.PortOpen =true then
     MSComm1.PortOpen :=false;
      Button1.Caption :='连接电子称';
      comstate:=0;
   end;
end;
procedure TForm1.comopen;
var s1:string;
begin
    if MSComm1.PortOpen then
       MSComm1.PortOpen :=false;
    if scom='COM1' then
      MSComm1.CommPort:=1
    else
      MSComm1.CommPort:=2;
    MSComm1.Settings :=sbt;
    MSComm1.InputMode:=0;
    MSComm1.InputLen :=1;
    MSComm1.RThreshold := 1;
    MSComm1.SThreshold := 1;
    MSComm1.PortOpen :=true;
end;
procedure TForm1.MSComm1Comm(Sender: TObject);
var ssss,sstr,slend,strcom,sweight: string;
begin
  //提示:串口数据是按字节发送和接收的,一个字节一个字节的接收的
  if MSComm1.PortOpen=true then
     ssss:=MSComm1.Input; //读数据
  if ssss=chr(strtoint(startchar)) then  //如果是开始字符,则清空字符串
    strcom:='';
  if ssss=chr(strtoint(endchar)) then
  begin           // 如果是结束字符,则输出重量
    sweight:=copy(strcom,strtoint(charstartno)+1,strtoint(charlong));
    Edit1.Text  :=sweight;
  end
  else            //如果不是是结束字符,则继续接受数据
   strcom:=strcom+ssss;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //设置状态
  scom   := ComboBox2.Text;
  sbt    := ComboBox3.Text;
  comorder       := Edit8.Text;
  startchar      := Edit10.Text;
  endchar        := Edit11.Text;
  charstartno    := Edit12.Text;
  charlong       := Edit9.Text;
end;

end.

⌨️ 快捷键说明

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