编程日日帖(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)