3
300850
Unregistered / Unconfirmed
GUEST, unregistred user!
//关于如何实现多机通信的简易办法!
//整理:300850
//在多机通信中由于计算机无第九位而只有奇偶校验位,在一般情况下,多采用配奇偶校验位的方法,使奇偶校验位为1或0。而通过以下的方法,通过直接操作端设置奇偶校验位的值,从而方便了协议的制定。
以下的函数我只是简要的写了一下,在WIN98下实现没问题,2000下需是调用一些驱动才能实现,侍我在以后的贴子中跟上。
procedure WriteComm(IsAddr: Boolean);
begin
if IsAddrthen
WritePort(PortAddress+3,$3B) //写端口
else
WritePort(PortAddress+3,$2B)
WriteCommData;//写端口数据。
end;
procedure TFmMain.WritePort(Port: Word;TmpValue : byte);
begin
if bWin98 then
begin
asm
PUSH AX
PUSH DX
MOV DX,Port
MOV AL,TmpValue
OUT DX,AL
POP DX
POP AX
end
end
else
begin
outportb(Port,TmpValue);//win2000,XP下写端口
end;
end;
//整理:300850
//在多机通信中由于计算机无第九位而只有奇偶校验位,在一般情况下,多采用配奇偶校验位的方法,使奇偶校验位为1或0。而通过以下的方法,通过直接操作端设置奇偶校验位的值,从而方便了协议的制定。
以下的函数我只是简要的写了一下,在WIN98下实现没问题,2000下需是调用一些驱动才能实现,侍我在以后的贴子中跟上。
procedure WriteComm(IsAddr: Boolean);
begin
if IsAddrthen
WritePort(PortAddress+3,$3B) //写端口
else
WritePort(PortAddress+3,$2B)
WriteCommData;//写端口数据。
end;
procedure TFmMain.WritePort(Port: Word;TmpValue : byte);
begin
if bWin98 then
begin
asm
PUSH AX
PUSH DX
MOV DX,Port
MOV AL,TmpValue
OUT DX,AL
POP DX
POP AX
end
end
else
begin
outportb(Port,TmpValue);//win2000,XP下写端口
end;
end;