注册 登录
编程论坛 Delphi论坛

Delphi下使用串口控制顾客显示屏

wbhfq_dw 发布于 2004-05-09 15:51, 4177 次点击

使用Delphi编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,就需要使用外来方式。我们这里提供了API_COM.DLL这个链接库供调用。
首先把API_COM.DLL文件复制到编写的源程序目录下,接着在程序的开头声明调用的三个函数来源:
var
  Form1: TForm1;
{加入下面三行声明}
function com_init(com:Integer; baud:Dword):Boolean;stdcall;external 'api_com.dll';
function com_rest:Boolean;stdcall;external 'api_com.dll';
function com_send(buf:PChar; len:Integer):Boolean;stdcall;external 'api_com.dll';

implementation

{$R *.DFM}

Com_init(1,2400)是打开串口进行通讯,1是打开COM1,波特率为2400。如果打开成功,它会返回逻辑真告知串口打开。
Com_rest是关闭串口。
Com_send(命令,长度)是发送数据到串口。

{在窗体创建时打开端口}
procedure TForm1.FormCreate(Sender: TObject);
begin
Com_init(1,2400);
end;

{在按钮中发送内容}
procedure TForm1.Button1Click(Sender: TObject);
begin
PDStr:=Chr(2)+Chr(77);{控制顾客显示屏开钱箱指令}
if com_send(Pchar(PDStr),Length(PDStr)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
end;

{在关闭窗体时关闭端口}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Com_rest;
end;
上面语句是控制顾客显示屏开钱箱的命令,其他的命令集只需要改变按钮中的PDStr的值即可:
下面是控制顾客显示屏显示1234.56的命令:
PDStr:=Chr(27)+Chr(81)+Chr(65)+’1234.56’+Chr(13);
if com_send(Pchar(PDStr),Length(PDStr)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
下面是控制顾客显示屏显示“总计”灯的命令:
PDStr:= Chr(27)+Chr(115)+’2’;
if com_send(Pchar(PDStr),Length(PDStr)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
如果需要控制串口的POS58打印机打印,也只需要重新给PDStr赋值:
PDStr:=’Delphi Printer on COM1’+chr(10);
要POS58开钱箱,则需要如下赋值:
PDStr:= Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255);
3 回复
#2
多情天使2004-05-10 01:08
恩,楼主这个挺有用
#3
yangguofa2004-05-10 08:46

兄台,你这个链接库API-COM.DLL能否也发布上来大家学习学习,我对这方面也很感兴趣,

能否多求教求教你!

谢谢.

yangguofa@126.com

#4
hao00302006-02-13 10:05

请教LZ用VB能实现吗?

1