程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi控制並行端口位操作(3)

Delphi控制並行端口位操作(3)

編輯:Delphi

三、具體實現

下面的例子是控制並口的數據端口378H的各個位的電位高低。數據端口的8個位:D0~D7分別對應並行接口的2~9腳,關於並行接口其它的引腳的說明就查看相關資料,這裡就不多說了。

首先運行 Delphi,新建一個工程,按一下F12在Form1的單元文件Unit1中加入讀寫端口的代碼:

function ReadPort(Port:Word):BYTE;
procedure WritePort(Port:Word;ConByte:BYTE);
function ReadPort(Port:Word):BYTE;
var
B:BYTE;
begin
ASM
MOV DX, Port;
IN AL, DX;
MOV B, AL;
END;
Result:=B;
end;
procedure WritePort(Port:Word;ConByte:BYTE);
begin
ASM
MOV DX, Port;
MOV AL, ConByte;
OUT DX, AL;
END;
end;

添加8個 CheckBox 組件,修改它們的 Caption(標題)屬性分別為 D0 到 D7 ,將它們按右到左進行排列好。

雙擊 CheckBox1,在CheckBox1組件的OnClick(單擊)事件中加入以下的程序代碼:

procedure TForm1.CheckBox1Click(Sender: TObject);
var
b:BYTE;
begin
b:=0;
if CheckBox1.Checked then
b:=b or $01;
if CheckBox2.Checked then
b:=b or $02;
if CheckBox3.Checked then
b:=b or $04;
if CheckBox4.Checked then
b:=b or $08;
if CheckBox5.Checked then
b:=b or $10;
if CheckBox6.Checked then
b:=b or $20;
if CheckBox7.Checked then
b:=b or $40;
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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved