PORTA PARALELA

CARIVAS 18/04/2013 00:21:29
#422108
olá, minha dúvida é sobre as entradas da LPT1!
Bem, já sei que o código de entrada de dados é inp(&H379s), ou simplesmente 889.
Os pinos 10, 11, 12, 13 e 15 são entradas.
Mas não estou conseguindo ler cada pino, tenho dúvidas sobre o código decimal ou hexa de cada pino de entrada.
Obrigado!
AJSO 18/04/2013 12:39:31
#422128
Resposta escolhida
Caro CARIVAS

COMUNS EN COMPUTADORES DESKTOP
CONECTOR DE 25 PINOS
Sim são entradas

10 - AKNOWLEDGE
11 - BUSY
12 - PAPER END
13 - SELECT OUT
14 - AUTO FEED
15 - ERROR


QUASE COMUNS EM COMPUTADORES - USO EM SERVIDORES DE IMOPRESSÂO E OUTROS DISPOSITIVOS.....
CONECTOR 36 PINOS
São entradas
10 - Ack
11 - Busy
12 - Paper End
13 - Select Out
14 - Auto Feed
15 ao 18 Não conectato




Boa Sorte
CARIVAS 18/04/2013 18:29:58
#422157
Muito obrigado, mas não é bem isso!
Quero saber por exemplo: pra mandar sinal pra saída uso por exemplo a seguinte sintaxe:
out(888,1) ou out(&H378S, 1) para o pino D0.
Sei que pra ler sinal da entrada da porta uso o seguinte: inp(889, pino) ou inp(&H379S, pino).
A minha dúvida é justamente o que colocar pra ler o pino, entende?
Vi um exemplo assim: inp(&H379, 111), só que não consegui interpretar a ponto de escrever os códigos de todos os pinos!
Se alguém puder me ajudar quero saber o código para cada pino da entrada.
Obrigado!
CARIVAS 30/04/2013 18:43:57
#422755
Então! Peço encarecidamente novamente, alguém pode me ajudar? to precisando saber disso pra implementar num trabalho da faculdade!
AJSO 01/05/2013 12:07:48
#422778
Caro CARIVAS

Para uma explicação mais simples seria de forma resumida assim:

Não tenho a idéia de seu dispositivo conectado na para alela com ENTRADAS e SAIDAS........... para enviar e receber dados de forma genérica.
Utilizando a biblioteca IMPOUT32.dll


Public Declare Function Inp Lib [Ô]inpout32.dll[Ô] Alias [Ô]Inp32[Ô] (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib [Ô]inpout32.dll[Ô] Alias [Ô]Out32[Ô] (ByVal PortAddress As Integer, ByVal Value As Integer)

Enviando dados na Porta paralela.......

A função [Ô]out[Ô] é usada para enviar um bit de dado para a porta. Para exemplificar, observe a sintaxe abaixo:

out [porta] , [número]


onde: out é a declaração da sub
porta é o endereço da porta que se quer controlar
número é o dado que queremos escrever na mesma.

O endereço pode ser escrito em hexadecimal ou em decimal, assim como o dado (número). Como existem somente 8 linhas de dados, o valor máximo que se pode enviar à porta é 255 (11111111, em binário).

Seta a porta em 00000000

out 888, 0 [ô] aqui usamos o Registrador de Dados da porta LPT1 (888)


Seta a porta em 00000001 (pino 2, D0)
out 888, 1 ou out &h378, 1

(Observe que podemos usar hexadecimal ou decimal para indicar a mesma porta)

Seta a porta em 00000010 (pino 3, D1)
out 888, 2

Seta a porta em 00000100 (pino 4, D2)
out &h378, 4
ou out 888, 4

Seta a porta em 00001000 (pino 5, D3)
out 888, 8

Seta a porta em 11111111
out 888, 255


Para mudarmos mais de um bit no mesmo comando, basta somar o número do bit:

Seta a porta em 00001011
out 888, 11 => Aqui estamos setando (pino 2, D0), (pino 3, D1) e (pino 5, D3)


Recebendo dados na Porta Paralela................

Para receber informações externas pela Porta Paralela, seráusado as 5 linhas do Registrador de Status.
A leitura de uma informação através da LPT será feita pela instrução inp. A sintaxe desse comando é a seguinte:

[variável] = inp ([port])


Resultado:

variável é a variável que declaramos, pode ser qualquer uma, mas prefira um nome sugestivo
inp instrução que indica ao programa que usaremos o Registrador de Status da porta paralela
port é o registrador que se quer ler.

Suponhamos que declaramos uma variável como Estado_Porta, teremos então:


Dim Estado_Porta As String

Estado_Porta = inp(889) [ô] aqui usamos o Registrador de Status da LPT1 (889)
[ô]Estado_Porta = Inp(&H379S)

MessageBox.Show(Estado_Porta)


O exemplo abaixo mostra o significado de cada bit do byte recebido, através das funções inp( ) ou Recebe(), usando o Circuito conectado à Porta Paralela.
Observe que os bits, Ack, Paper end, Slct out e Error, trabalham de maneira normal, diferente de Busy, que só é ativado quando tiver um sinal 0 (zero) no pino 11:



Numero dos pinos 11 10 12 13 15 nenhum pino relacionado
Byte lido em binario 0 1 1 1 1 1 1 0
Byte Lido em Hex 126

Para identicar o pino nessa configuração da esquerda para a direita......................

Esse resultado consegui com meu circuito conectado a porta paralela os valores podem ser diferentes no seu circuito ou dispositivo conectado a porta paralela.............

Boa Sorte
CARIVAS 08/05/2013 01:23:11
#423094
cara obrigado acho que resolveu meu problema!
Vlw!
Tópico encerrado , respostas não são mais permitidas