100分的问题。 (100分)

L

lehu

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个设备。其通讯协议如下所示:
系统发一个负脉冲给COM口,然后延时500-1000MS然后发55H(十六进制)给COM,
接收八个BCD码,其中前二个,是该设备的
号-------最后要求提供该设备号
然后发04H给COM。再接收八个BCD码。
这八个BCD码,前四个分别是分,时,日,月
其中每个码的高四位表示十位,每个码的低四位表示个位,
后四个分别是8个卡号。
如果发现“分”是0FFH那么,表示该设备中已经无数据。
否则,发一个负脉冲给COM。再接收第二个卡号及时间。
直到发现“分”是0FFH。
然后发送分时日月的十六进制的BCD。
使用spcomm或是mscomm或是tcomm。
要求给出源码。或是email:ggfttft@163.net
 
不是我说你
你分析的这么清楚了,怎么不自己写写
这样你的能力会提高
不要太偷懒
sorry
 
我才学了二十来天DELPHI现在接到任务了。我对于串口通讯是点也不懂呀。
我是一个很菜很菜的菜鸟。
 
网上有串口通信的例子
你先用例子调通 通信
再学着例子做通信
我得第一个任务也是串口:)
 
有QQ吗?我们QQ谈一下,我就知道这么一个网站。但是这里好象没有源码下载吧。
 
通讯倒是没问题,可是负电平这个东东我还真不知道怎么整
 
负电平,好象就是给一个0或是1
 
告诉我你的邮件地址,我发一个串口控件给你。我用了好久挺好用的。
 
去www.51delphi.com下载一个工业控制软件,比spcomm或是mscomm或是tcomm
好多了。
 
谢谢。ggfttft@163.net
 
procedure TForm1.FormCreate(Sender: TObject);
begin
mscomm1.InBufferCount:=0;
mscomm1.InputLen:=0;
mscomm1.CommPort:=1;
mscomm1.PortOpen:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
bytesend:array[0..2] of byte;
begin
bytesend[0]:=$1;
bytesend[1]:=$055;
bytesend[2]:=$04;
mscomm1.InputMode:=cominputmodebinary;
mscomm1.Output:=bytesend[0];
sleep(800);
mscomm1.Output:=bytesend[1];
memo1.Text:=memo1.Text+mscomm1.Input
end;

怎么不行呀。怎么错了呀。
 
顶部