Páginas

terça-feira, 24 de agosto de 2010

Um Pouco Sobre Porta Paralela.

•O que é a interface paralela?

•Quantas entradas e saídas ela possui?
•Construindo a interface.
•Manipulando no Pascal.

O QUE É A INTERFACE PARALELA?

Quando iniciamos o estudo da informática aprendemos que o computador possui saídas e entradas. A Porta Paralela nada mais é do que um dispositivo de entrada e saída paralelo. Oras, mas o que é paralelo?
Há duas formas de se transmitir dados. Uma delas é a forma serial.
Serial, como o cognato indica, é transmitir em série, ou seja, um bit após o outro. Transmitir de forma paralela é transmitir vários bits ao mesmo tempo.
Em uma primeira impressão, a transmissão paralela pode parecer a mais apropriada. Porém, devemos lembrar do conceito de multiplexação. Tal conceito, que no momento não precisa ser estudado a fundo, se baseia no fato de comutar vários bits de forma tão rápida que eles são transmitidos por um único fio, ou seja, de forma serial. Para quem tem raciocínio rápido, fica fácil compreender: pela forma serial a limitação de bits é dada pela velocidade com que transmissor e receptor se chaveiam, enquanto que na paralela, a limitação é física e dada pelo número de fios.
Endereços de entrada e saída

D7 ~ D0 Pinos de Dados (registo no endereço 0x378 para LPT1)
S7 ~ S3 Pinos de Estado (registo no endereço 0x379 para LPT1)
C3 ~ C0 Pinos de Controle (registo no endereço 0x37a para LPT1)

Aplicações da porta paralela

A porta paralela, por não possuir uma alta velocidade de transmissão, tem, atualmente, sua aplicação limitada a impressoras e scanners.
Atualmente, em caso de transmissões rápidas, se utiliza a interface USB (Universal Serial Bus), que atinge taxas de transmissão bem maiores.
Na Eletrônica, a porta paralela pode servir para controlar qualquer tipo de processo. Pode, por exemplo, fazer a interface entre o PC e um sensor. O sensor, ao ser acionado, mandaria tal informação para a porta paralela e o PC procederia ao disparo de sirenes, conectadas as saídas da porta paralela.
Devemos lembrar que a corrente de saída da porta paralela não é alta, sendo suficiente para, no máximo, acender LEDs. Para circuitos que necessitem de maior potência, devemos utilizar buffers ou amplificadores de correntes transistorizados.

Endereço de memória

A maioria dos PCs atuais possui uma porta paralela. Cada registrador desta porta paralela possui um endereço de memória. Por padrão, temos que:

Entrada: 379H
Saída: 378H

No caso de termos duas portas paralelas, teremos dois endereços de saída e dois endereços de entrada.

QUANTAS ENTRADAS E SAÍDAS ELA POSSUI?

Observe o esquema:

ENTRADA = Bits: D7 D6 D5 D4 D3 D2 D1 D0
SAÍDA = Bits: S7 S6 S5 S4 S3

Pois bem, tendo identificado os bits de saída/entrada, procederemos à idealização da Interface Didática.

A Interface Didática possui 5 bits de entrada e 8 bits de saída. Os bits de entrada são controlados por meio de chaves seletoras que estão conectadas ao terra (nível lógico 0) e ao VCC (nível lógico 1). Já os bits de saída terão como indicador um LED, que acenderá ao haver nível lógico 1 e ficará apagado ao haver nível lógico 0.

CONSTRUINDO A INTERFACE

Circuito de saída

O circuito de saída é composto por 8 leds, com corrente limitada por 8 resistores, que estarão dispostos da seguinte forma:

Um resistor na faixa de 180 a 560 é o suficiente para verificar o acendimento do LED. São necessários 8 resistores e 8 leds. O terminal mais comprido de cada LED deverá estar conectado ao pino 18, estando o menor conectado a um resistor e o resistor conectado à saída. Para saber quais são os pinos de saída, verifique o esquema na página anterior.

Circuito de entrada

O circuito de entrada é composto de cinco chaves. O terminal comum da chave (normalmente, o do meio) deve ser conectado a uma das entradas (verificar esquema) e qualquer um dos outros dois deve ser conectado ao terra. Quando a entrada estiver conectada ao terra teremos nível 0. Quando estiver em aberto, teremos nível 1.

MANIPULANDO NO PASCAL

Relembrando o que foi aprendido no início deste artigo:

Endereço Função

$378 Saída

$379 Entrada

Escrevendo para a saída

Não é possível simplesmente mudar o status de um dos bits de saída. É necessário enviar todo um byte (conjunto de 8 bits) para a saída. Suponhamos que, por exemplo, você queira que o bit D4 assuma nível 1, permanecendo os demais em nível 0.

Você deverá enviar o byte 00010000 (D7-D0), ou, em hexadecimal, $10. E se quiséssemos que D2 e D5 fiquem em nível alto? Devemos enviar 00100100, ou, em hexadecimal, $24.

No Pascal:

O Pascal possui uma array chamada port que lhe dá acesso direto as portas do computador. Assim sendo, podemos, por exemplo, usar:

Port[$378]:=$FF;

O dado (byte) a ser enviado deve ser, necessariamente, informado em hexadecimal. Caso você queira enviar direto uma variável para a porta paralela, lembre-se que ela deve ser do tipo byte.

No Delphi:

O Delphi, infelizmente, não possui a array port. Porém, existem diversos componentes que fazem tal interface e ainda, é possível, fazê-la por meio de instruções em ASM, supondo que a variável b (de tipo byte) contenha o dado a ser enviado:

asm

mov dx,$378

mov al,b

out dx,al

end;

Lendo da porta paralela

O procedimento de leitura inclui um passo a mais. O mascaramento. Pois bem, suponhamos que queremos criar um sistema que lê a porta paralela e emite um beep caso o bit S3 esteja acionado.

Simplesmente comparar se a entrada vale $08 não é o suficiente pelo simples fato de que a entrada só assumirá tal valor caso APENAS S3 esteja acionado. Como proceder, então?

Basta utilizarmos o mascaramento com a função lógica AND (A AND B será 1 caso A e B sejam 1). Observe:

Bit de exemplo 01001010

$08 00001000

Resultado: 00001000


Assim sendo, temos, em Pascal:

B:=Port[$379];

If (B AND $04 = $04) then ...

E, na variável B (do tipo byte), teremos o valor lido.

E em Delphi, utilizando ASM:

asm

mov dx, PortaLpt

in al,dx

mov dado,al

end;

if (dado AND $04 = $04) then ...

E teremos, na variável dado (do tipo byte), o valor lido.


Enfim Esta postagem Foi retirada do Site do amigo "Rogério" mais Um Gênio que faz do seu tempo livre, um complemento para ensinar.

Att. Marcelo Bacana.

Nenhum comentário:

Postar um comentário

teste comentario