PORTA PARALELA
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!
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!
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
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
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!
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!
Então! Peço encarecidamente novamente, alguém pode me ajudar? to precisando saber disso pra implementar num trabalho da faculdade!
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
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
cara obrigado acho que resolveu meu problema!
Vlw!
Vlw!
Tópico encerrado , respostas não são mais permitidas