Ler Dados da Porta Paralela

Delphi

29/05/2005

Olá a todos.
Gostaria de poder ler todos os pinos da porta paralela (LPT1)
Vi um exemplo no Rogercom.Com, onde ele mnostra como ler os primeiros oitos pinos ( conforme abaixo )

Const
Base = $378; //Endereço base da porta LPT;
Dados = Base+0; //Endereço para escrita dos dados;
Status = Base+1; //Endereço para leitura dos dados;
Controle = Base+2; //Endereço para escrita;
DadosEPP = Base+4; //ou Base+0, lê e escreve no modo EPP.
BIT0 = $01; // 0000-0001
BIT1 = $02; // 0000-0010
BIT2 = $04; // 0000-0100
BIT3 = $08; // 0000-1000
BIT4 = $10; // 0001-0000
BIT5 = $20; // 0010-0000
BIT6 = $40; // 0100-0000
BIT7 = $80; // 1000-0000
BIT8
BIT09
....
type
TPorta = class(TForm)
Function Recebe(PortaLpt:word):Byte; //Recebe byte da P.Paralela.
Procedure Envia(PortaLpt:word; Valor:byte); //Envia byte p/ a P.Paralela.
end;
var Form1: TForm1;
var Lpt: TPorta;
implementation
{$R *.DFM}
//-----------------------------------------------------------
Procedure TPorta.Envia(PortaLpt:word; Valor:byte);
begin
asm
mov dx,PortaLpt
mov al,Valor
out dx,al end;
end;
//-----------------------------------------------------------
Function TPorta.Recebe(PortaLpt:word):Byte;
Var ret:byte;
begin
asm
mov dx, PortaLpt
in al,dx
mov ret,al
end;
Recebe := ret;
end;
==================================
Gostaria de completar a rotina para ler todos os 32 pinos
Será alguém pode me ajudar (acho que preciso determinar os proximos endereços Hexadecimais da sequecia...
Abraços
Neto


Neto

Neto

Curtidas 0

Respostas

Massuda

Massuda

29/05/2005

Nem todos os pinos da porta paralela estão de fato conectados... se não me engano, apenas 24 dos 32 pinos são usados, sendo que alguns são somente leitura e outros são somente escrita (devido ao modo como o 8255 é usado no PC). Procure limitar a corrente drenada da porta paralela a 500mA (não estou certo desse valor, talvez seja menos). Uma fonte de informação geral sobre a porta paralela é [url=http://www.lvr.com/parport.htm]esta página[/url] (em inglês).


GOSTEI 0
POSTAR