编程日日帖(7)

编程爱好者

Delphi

在Win9x下读写并口

输入/输出设备是实现计算机系统与人或其它设备、系统之间进行信息交换的装置。并口(并行端口的简称)作为计算机与外围设备进行数据、信号传输的主要通道,在工业控制上有着广泛的应用,它有3个端口:数据端口、状态端口和控制端口,常用的并口为LPT1,它的3个端口的地址分别为:378H、379H和37AH,下面介绍Delphi在Win9x下访问并口的方法。

在MASM宏汇编语言中,可以用 IN和OUT指令操作并口,但在Delphi开发平台中并没有提供相应的函数和方法来对并口进行读写操作。幸运的是Delphi可以嵌入汇编程序,通过直接嵌入汇编指令IN和OUT可方便地对并口进行读写,用这种方法对并口进行读写方便、快捷。

使用下面的 ReadPort 函数和 WritePort 过程可以读写并口,参数 Port 为要操作的端口地址。

(1)读端口数据

function ReadPort(Port:WORD):BYTE;

var

bResult:BYTE;

begin

ASM //开始嵌入汇编语言

MOV DX, Port;//利用汇编语句操作并口

IN AL, DX;

MOV B, AL;

END;//结束嵌入汇编语言

Result:=bResult;

end;

利用上述函数读数据端口378H的数据的代码为:ReadPort($378)

(2)向端口写数据

procedure WritePort(Port:WORD;ConBy

te:BYTE);

begin

ASM//开始嵌入汇编语言

MOV DX, Port; //利用汇编语句操作并口

MOV AL, ConByte;

OUT DX, AL;

END; //结束嵌入汇编语言

end;

利用上述过程将数据端口378H的数据写1的代码为:WritePort($378,$01)