...
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. 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 desta apostila: 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 APE...