📄 k8055.pas
字号:
unit K8055;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Math, Buttons, JvExControls, JvgCheckBox,
JvLED;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
SK6: TCheckBox;
SK5: TCheckBox;
Timer1: TTimer;
Button3: TButton;
Label12: TLabel;
GroupBox2: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
GroupBox3: TGroupBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
CheckBox10: TCheckBox;
CheckBox11: TCheckBox;
CheckBox12: TCheckBox;
CheckBox13: TCheckBox;
GroupBox4: TGroupBox;
Edit1: TEdit;
Button2: TButton;
GroupBox5: TGroupBox;
Edit2: TEdit;
Button1: TButton;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Timer2: TTimer;
SpeedButton1: TSpeedButton;
GroupBox6: TGroupBox;
TrackBar1: TTrackBar;
Label10: TLabel;
GroupBox7: TGroupBox;
TrackBar2: TTrackBar;
Label7: TLabel;
GroupBox8: TGroupBox;
ProgressBar1: TProgressBar;
Label14: TLabel;
GroupBox9: TGroupBox;
ProgressBar2: TProgressBar;
Label16: TLabel;
Edit3: TEdit;
JvLED2: TJvLED;
JvLED3: TJvLED;
JvLED4: TJvLED;
JvLED5: TJvLED;
JvLED1: TJvLED;
JvLED6: TJvLED;
JvLED7: TJvLED;
JvLED8: TJvLED;
JvLED9: TJvLED;
JvLED10: TJvLED;
JvLED12: TJvLED;
JvLED13: TJvLED;
JvLED14: TJvLED;
Edit4: TEdit;
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure DigitalOut(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
timed:boolean;
n:longint;
DisableOtherFunctionCall,xxx:boolean;
implementation
{$R *.DFM}
function OpenDevice(CardAddress: Longint): Longint; stdcall; external 'K8055d.dll';
procedure CloseDevice; stdcall; external 'K8055d.dll';
function ReadAnalogChannel(Channel: Longint):Longint; stdcall; external 'K8055d.dll';
procedure ReadAllAnalog(var Data1, Data2: Longint); stdcall; external 'K8055d.dll';
procedure OutputAnalogChannel(Channel: Longint; Data: Longint); stdcall; external 'K8055d.dll';
procedure OutputAllAnalog(Data1: Longint; Data2: Longint); stdcall; external 'K8055d.dll';
procedure ClearAnalogChannel(Channel: Longint); stdcall; external 'K8055d.dll';
procedure ClearAllAnalog; stdcall; external 'K8055d.dll';
procedure SetAnalogChannel(Channel: Longint); stdcall; external 'K8055d.dll';
procedure SetAllAnalog; stdcall; external 'K8055d.dll';
procedure WriteAllDigital(Data: Longint);stdcall; external 'K8055d.dll';
procedure ClearDigitalChannel(Channel: Longint); stdcall; external 'K8055d.dll';
procedure ClearAllDigital; stdcall; external 'K8055d.dll';
procedure SetDigitalChannel(Channel: Longint); stdcall; external 'K8055d.dll';
procedure SetAllDigital; stdcall; external 'K8055d.dll';
function ReadDigitalChannel(Channel: Longint): Boolean; stdcall; external 'K8055d.dll';
function ReadAllDigital: Longint; stdcall; external 'K8055d.dll';
function ReadCounter(CounterNr: Longint): Longint; stdcall; external 'K8055d.dll';
procedure ResetCounter(CounterNr: Longint); stdcall; external 'K8055d.dll';
procedure SetCounterDebounceTime(CounterNr, DebounceTime:Longint); stdcall; external 'K8055d.dll';
procedure TForm1.Button3Click(Sender: TObject);
var h,CardAddr:longint;
begin
CardAddr:= 3-(integer(sk5.Checked) + integer(sk6.Checked) * 2);
h:= OpenDevice(CardAddr);
case h of
0..3: label12.caption:='Card '+ inttostr(h)+' connected';
-1: label12.caption:='Card '+ inttostr(CardAddr)+' not found';
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i, Data1, Data2: longint;
begin
timer1.enabled:=false;
Edit1.text:=inttostr(ReadCounter(1));
Edit2.text:=inttostr(ReadCounter(2));
ReadAllAnalog(Data1,Data2);
ProgressBar1.Position:=Data1;
ProgressBar2.Position:=Data2;
Label14.caption:=inttostr(Data1);
Label16.caption:=inttostr(Data2);
i:=ReadAllDigital;
CheckBox1.checked:=(i and 1)>0;
CheckBox2.checked:=(i and 2)>0;
CheckBox3.checked:=(i and 4)>0;
CheckBox4.checked:=(i and 8)>0;
CheckBox5.checked:=(i and 16)>0;
JvLED1.Status:=(i and 1)>0;
JvLED2.Status:=(i and 2)>0;
JvLED3.Status:=(i and 4)>0;
JvLED4.Status:=(i and 8)>0;
JvLED5.Status:=(i and 16)>0;
timer1.enabled:=true;
Edit4.Text:=IntToStr(data2-100)+' C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -