PDA

View Full Version : [Q] Lap trinh doc du lieu tu cong parallel trong Delphi



bipbip
11-10-2002, 10:27
Trong Pascal, để nhận 1 byte từ cổng náo đó ta chỉ cần dùng cái PortArray ( vd: port[$379] ) là OK ngay. Nhưng trong Delphi thi` ti`m mãi vẫn không thấy đâu. Các bác co' ai biết thì xin chỉ giúp. Xin hậu tạ !

Mach2
11-10-2002, 16:44
Hic!
Bạn có thể đọc câu trả lời cho việc này bằng câu hỏi của tôi "Điều khiển cổng trong Win2000" đó. Điều khiển cổng trong Win98 thì không có chuyện gì còn WinNT thì thua. Ai biết chỉ dùm với!

Mach2
11-10-2002, 16:55
À quên, tôi chưa đưa đoạn lệnh nhận tín hiệu lên. Bạn dùng các hàm và thủ tục sau.
Đây này.

function Inport(address: word):byte;
var data: word;
begin
asm
mov dx, address
in ax, dx
mov data, ax
end;
inport:=data;
end;

procedure Outport(address: word; data:word);
begin
asm
mov dx, address
mov ad, data
out dx, ax
end;
end;

Thế đấy, Delphi không hiểu sao mà lại bỏ đi không cho xài cái lệnh Port[] cho nó đơn giản, hên là vẫn còn support asm.

bipbip
12-10-2002, 17:56
Rat cam on ban ! tui khong biet Delphi co the dùng duoc ASM, Có được ASM thì hay wa' rồi.

Nếu đọc chỉ cần một byte thì tôi nghĩ nên khai báo biến Data là byte thôi.

function Inport(address: word):byte;
var data:byte;
begin
asm
mov dx, address
in al, dx
mov data, al
end;
inport:=data;
end;

Một lần nữa cảm ơn các bạn đã quan tâm