Delphi控制并行端口位操作
http://tech.ddvip.com 2006年07月30日 社区交流
本文详细介绍Delphi控制并行端口位操作
再加入一个CheckBox组件,修改的Caption属性为“监控并口”,并在它的OnClick事件中加入:
procedure TForm1.CheckBox9Click(Sender: TObject);
begin
Timer1.Enabled:=CheckBox9.Checked;
end;
编译运行程序,点击“监控并口”,就可以监控并口LPT1数据端口378H的状态,并可以实时地修改它的状态。
为了方便查看、验证数据端口378H的状态,我做了一个小小的并口测试电路,该电路使用了一个打印接口、8个LED(发光二极管)和8个1K的电阻,连接线路如图所示:

按照电路图制作完成后,安装到电脑的并口上,运行编写好的程序就可以方便地查看数据端口378H的各个位的电位高低了。
最后,我们再来做一个走马灯实验。
先声明一个全局变量 tb:在“Form1:TForm1”的下面加上“tb:BYTE”:
var
Form1: TForm1;
tb:BYTE;
再在Form1中加入一个Timer和一个CheckBox,修改Timer2的Enabled属性为False,修改Interval属性为300,双击Timer2,在它的OnTimer事件中加入:
procedure TForm1.Timer2Timer(Sender: TObject);
var
B:BYTE;
begin
if tb=0 then
tb:=1
else
tb:=tb * 2;
WritePort($378,tb);
B:=ReadPort($378);
CheckBox1.Checked:=((B or $FE)=$FF);
CheckBox2.Checked:=((B or $FD)=$FF);
CheckBox3.Checked:=((B or $FB)=$FF);
CheckBox4.Checked:=((B or $F7)=$FF);
CheckBox5.Checked:=((B or $EF)=$FF);
CheckBox6.Checked:=((B or $DF)=$FF);
CheckBox7.Checked:=((B or $BF)=$FF);
CheckBox8.Checked:=((B or $7F)=$FF);
end;
修改CheckBox10的Caption属性为“走马灯演示”,再双击CheckBox10,在它OnClick事件中加入:
procedure TForm1.CheckBox10Click(Sender: TObject);
begin
Timer2.Enabled:=CheckBox10.Checked;
end;
编译运行程序。

点击“走马灯演示”,有没有看到“走马灯”的效果?通过修改Timer2的Interval可以调节速度,更多、更Cool的效果就看你的创意了。
注意:以上嵌入汇编访问并口的方法只能在Win9X下使用,若要在WinNT/2K下访问并口应该使用 Windows API 函数或专门读写并口的DLL、VXD。
以上程序在Win98+Delphi6.0下测试通过
作者:东亮 责编:豆豆技术应用