Delphi控制并行端口位操作(2)

2008-02-23 07:18:04来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


if CheckBox8.Checked then

b:=b or $80;

WritePort($378,b); //写数据端口

end;

   输入完成后,把CheckBox2到CheckBox8这7个CheckBox组件的OnClick事件设置为CheckBox1的OnClick事件:CheckBox1Click。

   此时编译运行程序,已经可以通过点击这8个CheckBox来控制LPT1的数据端口的各个位的电位高低了。

   下面再加入监控并口的数据端口状态的功能。

   在Form1中加入一个Timer组件:Timer1,修改它的Enabled属性为False,Interval属性为1。

   在Timer1的OnTimer事件中加入:

procedure TForm1.Timer1Timer(Sender: TObject);

var

B:BYTE;

begin

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;

   再加入一个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下测试通过

上一篇: 怎样隐藏应用程序的任务条图标
下一篇: Delphi编写后台监控软件

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi 与SQL编程(二)

下一篇:AnsiString?PChar?赋值?转换?