Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introduo :
Bem vindo ao primeiro ttulo da srie O Guia das Cincias Ocultas, onde abordaremos questes que
as pessoas no teriam coragem nem de perguntar s suas mes.
A Porta Paralela..... afinal.... serve para qu ? Seria uma porta de canalizao de energia para o seu
computador...?
Na verdade a porta paralela uma porta bi-direcional de dados, onde os dados so enviados atravs
de um determinado nmero de pinos e so recebidos por um outro nmero de pinos.
Lembra nas aulas de informtica, aquela estria chatssima e depressiva de perifricos de entrada e
sada e bl bl bl.......
Pois , a porta paralela a interface de comunicao entre perifricos de sada de um determinado
tipo e um computador.
Mas porque a maioria dominante de perifricos que utilizam a porta paralela so as impressoras ?
Sinceramente eu no tenho uma resposta exata para isso, mas acredito que como nosPCs antigos a
taxa de transferncia de dados das portas seriais eram horrveis, era mais prtico (e mais rpido)
utilizar a impressora com as portas paralelas, desse modo a impresso seria mais rpida, mais
estvel e facilitaria a criao dos sistemas de troca de dados entre elas e os computadores, alm de
simplificar a eletrnica contida nas mesmas. Bom, isso a minha opinio pessoal.
transmisso bi-direcional de dados por apenas uma porta, mas esses cartes so de uso especfico e
com certeza no vieram em seu computador.
Pode-se transmitir 1 byte (8 bits) por vez (pela porta de dados) e receber at 9 bits por vez (atravs
das portas de controle e status).
A sada fsica da porta paralela, se faz por um conector DB25 fmea, o cabo de conexo geralmente
utilizado por uma impressora consiste em um conector DB25 (25 pinos) macho e um conector
Centronics (34 pinos) macho. O conector DB25 apresenta o nmero dos pinos na parte plstica onde
os mesmos esto fixados.
Vamos as pinos :
Pinagem
(DB25)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Pinagem
(Centronics)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
32
31
36
18 25
19 30
Sinal
Direo
Porta
* Invertido ?
nStrobe
Data 0
Data 1
Data 2
Data 3
Data 4
Data 5
Data 6
Data 7
nAck
Busy
Paper Out/End
Select
nAuto-Linefeed
nError/nFault
nInitialize
nSelect Printer
nSelect In
Ground
In/Out
Out
Out
Out
Out
Out
Out
Out
Out
In
In
In
In
In/Out
In
In/Out
In/Out
Controle
Dados
Dados
Dados
Dados
Dados
Dados
Dados
Dados
Status
Status
Status
Status
Controle
Status
Controle
Controle
Sim
No
No
No
No
No
No
No
No
No
Sim
No
No
Sim
No
No
Sim
Gnd
A porta paralela trabalha com nvel TTL de tenso, isso significa +5V para nvel 1 e 0V para nvel 0.
A letra n na frente do sinal, significa que o sinal ativo de nvel baixo. Por exemplo nError, Se
houver um erro na impressora, ento esse sinal 0, quando o sinal for 1, significa que a impressora
est OK (isso s faz alguma diferena se voc for trabalhar com uma impressora).
O sinal que tiver um sim no item invertido, invertido pelo hardware, ou seja, se voc for
mandar para a impressora algo como 1111 e o bit dois for invertido, voc deve mandar 1101, para
que o programa que est efetuando a comunicao pela porta paralela entenda isso como 1111.
A Porta de dados :
Endereo
378H (base)
Nome
Porta de dados
Direo
Out
Bit n
7
6
5
4
3
2
1
0
Propriedades
Data 7 (pino 9)
Data 6 (pino 8)
Data 5 (pino 7)
Data 4 (pino 6)
Data 3 (pino 5)
Data 2 (pino 4)
Data 1 (pino 3)
Data 0 (pino2)
Essa a porta de dados, para enviar dados por ela basta enviar um nmero x (0 a 256 8 bits) pelo
endereo 378H. Se voc tentar ler o dado escrito nessa porta, vai visualizar apenas o ltimo dado
escrito. Veja mais detalhes na seo de exemplos.
A Porta de Status :
Endereo
379H (base + 1)
Nome
Porta de status
Direo
In (only)
Bit n
7
6
5
4
3
2
1
0
Propriedades
Busy
Ack
Paper Out
Select In
Error
Irq (not)
Reserved
Reserved
A porta de Status serve apenas para leitura, qualquer dado enviado a esta porta ser ignorado.
A Porta de Controle :
Endereo
380H (base + 2)
Nome
Porta de controle
Direo
In/Out
Bit n
7
6
5
4
3
2
1
0
Propriedades
sem uso
sem uso
Enable bi-direc. port
Enable IRQ via ack line
Select printer
Initialize printer (reset)
Auto linefeed
Strobe
A porta de controle originalmente apenas uma porta de sada, mas alguns bits podem ser utilizados
para leitura.
O maior problema de usar os bits da porta de controle como bits de entrada, o fato deles serem
coletor-aberto, ou seja no esto nem em nvel 0 nem em 1, dependendo do circuito, se faz
necessrio o uso de um resistor de pull-up.
Pino
11
10
12
13
17
16
14
1
Invertido ?
Sim
No
No
No
Sim
No
Sim
Sim
Se voc no tem experincia na construo de circuitos, aconselho voc a utilizar somente os 4 bits
da porta de status, exatamente pelo fato da porta de controle ser coletor-aberto. O no uso de
resistores de pull-up, vai gerar em muitos casos, instabilidade na entrada. Se voc vai ligar a porta
diretamente a um microcontrolador, ai ento no h problema, visto que os uC j tem resistores
internos de pull-up.
5. Exemplos reais
Observe o esquema :
Se voc quer testar a sada de dados de sua porta paralela, ento monte esse pequeno circuito e
prepare-se para a diverso.
Esse circuito composto por um latch octal tri-state (74HC573) que neste circuito est apenas
atuando como isolador entre o circuito da porta e o circuito construdo.
Bsicamente, voc tem 256 formas de acender esses leds (1 byte).
No esquea de ligar o negativo da bateria aos pinos ground da paralela.
Vamos ao famigerados exemplos em basic :
Os programas so cortesia de Leandro Schunk
Exemplo 1
Neste exemplo, voc digita um valor e este ser enviado para a porta paralela :
10 INPUT X
OUT &H378, X
GOTO 10
Exemplo 2
Quer brincar de super mquina ?
DECLARE FUNCTION TEMPO (T)
CLS
OUT &H378, 0
X=1
WHILE INKEY$ <> CHR$(27)
WHILE X <= 128
OUT &H378, X
X=X*2
T = TIMER: WHILE TIMER < T + .04: WEND
WEND
X = 64
WHILE X >= 1
OUT &H378, X
X=X/2
T = TIMER: WHILE TIMER < T + .04: WEND
WEND
X=2
WEND
OUT &H378, 0
FUNCTION TEMPO (T)
FTEMP = TIMER + T
WHILE FTEMP > TIMER
WEND
END FUNCTION
Exemplo 3
Com as setas voc controla a direo das luzes
CLS
OUT &H378, 1
X=1
Y=2
WHILE 1
SLEEP
SELECT CASE INKEY$
CASE "2"
IF X < 128 THEN
X=X*2
ELSE
X=1
END IF
OUT &H378, X
CASE "1"
IF X > 1 THEN
X=X/2
ELSE
X = 128
END IF
OUT &H378, X
CASE CHR$(27)
END
END SELECT
WEND
OUT &H378, 0
Como voc pode ver, enviar um dado para a porta paralela facil, basta usar o comando OUT, que
tambm usado em assembly.