Você está na página 1de 6

MC-LAB - LABORATÓRIO 11: INTERFACE PROGRAMÁVEL DE COMUNICAÇÃO

SERIAL 8251

1. Objetivos

Ensinar o uso das interfaces programáveis de comunicação.

2. Equipamento necessário

 Unidade microcomputador MC-1


 Fonte de alimentação de +5 volts MB-2F
 Unidade de serviço PU-116 (Chaves e Indicadores Luminosos)
 Unidade de USART MC-3/3.
 Um osciloscópio.
 Gerador de pulsos
3. Teoria

 LEIA ATENTAMENTE A TEORIA EXPOSTA NESTE ITEM E NA SEÇÃO 16.4 DO


GAONKAR.
 TRAGA O GAONKAR PARA O LABORATÓRIO.

O módulo MC-3/3 é a unidade de interface programável de comunicação do sistema MC-LAB. Esta unidade
consiste de um dispositivo USART (Universal Synchronous Asynchronous Receiver Transmitter) 8251 e
vários circuitos integrados que viabilizam sua conexão com os barramentos do MC-LAB. A Figura 1 mostra o
diagrama esquemático da MC-3/3.
O circuito integrado 74LS245 é um buffer bidirecional para o barramento de dados. Os endereços são deco-
dificados pelo 74LS138, que é um decodificador de 3 para 8 linhas. Um flip-flop (7474) controla um LED
indicador da seleção da unidade.
Os sinais da USART 8251 podem ser divididos em dois grupos: os pertencentes à conexão com o micro-
computador (MC-1) e os relacionados com o dispositivo de comunicação. Os sinais relacionados com o mi-
crocomputador são controlados pelos CIs 74LS245, 74LS138 e algumas portas adicionais. Os sinais rela-
cionados com o dispositivo de comunicação são usados na interface com um Modem ou outro periférico.
Devido a grande quantidade de periféricos (MOUSE, CRT, etc) que possuem uma interface deste tipo, simi-
lar a de um Modem, a USART é usada em uma vasta linha de aplicações. Observe, no entanto, que embora
a unidade MC-3/3 ofereça uma interface compatível com a lógica da norma EIA-RS-232, ela não proporcio-
na sinais elétricos compatíveis com a mesma. Componentes adicionais (CIs 1488 e1489) deverão ser adi-
cionados caso esta compatibilidade elétrica seja necessária. Os endereços das quatro portas do temporiza-
dor programável estão mostradas na Tabela 1.
Nome da porta Endereço
Dados B0
Comando/Status B1
Tabela 1 - Endereços das Portas do 8251

67
Figura 1 - MC-3/3 - Diagrama Esquemático

68
4. Experimentos

 PARA EXECUTAR OS PROGRAMAS, COMPLETE E CONFIRA TODOS OS CÓDIGOS


HEXADECIMAIS DAS INSTRUÇÕES.
 ESTE EXPERIMENTO SÓ FUNCIONA BEM SE O FLAT CABLE DO MC-1 FOR CONECTADO
DIRETAMENTE NO MÓDULO MC-3/3, ISTO É, ELE DEVE SER O PRIMEIRO A RECEBER OS
SINAIS DO MC-1.

4.1. Modo Assíncrono.


A USART é um circuito integrado que converte os dados provenientes de um microcomputador transmissor,
na forma paralela, em dados na forma serial; ele também recebe dados, na forma serial, de um periférico,
para envia-los na forma paralela ao microcomputador receptor. Neste experimento usaremos a USART
8251A.
O programa mostrado na tabela abaixo exemplifica o modo assíncrono de funcionamento da USART, lendo
as chaves conectadas à Porta A da MC-1 (fonte de dados em paralelo) e os enviando à USART.
Conecte 8 chaves à Porta A do 8155 (MC-1), /TxC a um gerador de pulsos (TTL 0 a 5V) de 1 kHz (reco-
menda-se fortemente o uso do 8253 para essa finalidade), /CTS e /DSR a “0”. Observe com um oscilos-
cópio os dados em série na saída da USART (pino TxD) para diferentes valores de entrada.
Este programa também testa o uso de /RTS e /DTR, alternando os estados lógicos destas saídas segundo a
tabela de comandos na parte final do programa da Tabela 2. Verifique que TxE (TxEmpty) segue os valores
de /CTS (“0” e “1”) e que TxD estará em “1” com /CTS também em “1”.
END. OPCODE OPERANDOS LABEL ASSEMBLY COMENTÁRIOS
LXI SP,20A0 define o stack pointer
XRA A zera acumulador
OUT 20 programa as portas do 8155 (MC-1)
OUT B1 resete seguro da 8251
OUT B1
OUT B1
MVI A,40
OUT B1
MVI A,4D instrução de modo assíncrono 8251
OUT B1 envia à 8251
AGAIN: MVI C,04 Inicializa contador
LXI D,TABELA posição da tabela de comando
LE: LDAX D lê a instrução de comando
OUT B1 carrega a instrução de modo
IN 21 lê as chaves
OUT B0 envia dados à USART p/ transmissão
STATUS: IN B1 lê o status da USART
ANI 01 verifica status transmissão (TxRDY)
JZ STATUS espera a transmissão ser concluída.
INX D incrementa endereço do comando
DCR C Decrementa contador
JNZ LE
JMP AGAIN a último comando foi executo

tabela de comando
TABELA: 01 TxEnable = 1, DTR =0, RTS = 0
03 TxEnable = 1, DTR = 1, RTS = 0
21 TxEnable = 1, DTR = 0, RTS = 1
23 TxEnable = 1, DTR = 1, RTS = 1
Tabela 2 - Modo Assíncrono

69
Escolha uma combinação das chaves (Porta A) e desenhe as formas de onda de /TxC. TxD, /DTR,
/RTS, TxE e TxRDY para dois ciclos completos de transmissão. Justifique as formas de onda em fun-
ção do programa.

4.2. Interface de Transmissão/Recepção


Este experimento melhora o programa da Tabela 1 para testar o modo de assíncrono de transmis-
são/recepção. O programa da Tabela abaixo lê os dados das chaves conectados à Porta A, e os envia à
USART; ele recebe os mesmos dados da USART e os transfere à Porta B.
Conecte /CTS a uma chave e coloque a chave inicialmente em “0”. Conecte /TxC e /RxC a um gerador de
pulsos de 1 kHz, 8 chaves à Porta A (MC-1), /DSR a uma chave e TxD a RxD. A Porta C mostrará o valor do
/DSR e a Porta B o valor recebido dos dados.
END. OPCODE OPERANDOS LABEL ASSEMBLY COMENTÁRIOS
LXI SP 20A0 define o stack pointer
MVI A,0E programa as portas do 8155 (MC-1)
OUT 20
XRA A resete seguro da 8251
OUT B1
OUT B1
OUT B1
MVI A,40
OUT B1
MVI A, 4D palavra de modo assíncrono 8251
OUT B1 estabelece o modo
MVI A,05 palavra de comando. TxEN=1,RxEN=1
OUT B1 carrega a instrução de modo
LE IN 21 lê dado
OUT B0 envia dados ao USART
STATUS: IN B1 lê o status da USART
ANI 02 verifica status recepção (RxRDY)
JZ STATUS espera receber dado (RxRDY = 1)
IN B0 lê os dados da USART
OUT 22 envia dados à porta B
IN B1 lê o status da USART
ANI 80 verifica DSR
JNZ DSR_1 se DSR = “1” vá para DSR_1
OUT 23 se DSR = “0” envia 00 à porta C
JMP LE lê novamente a porta A
DSR_1: MVI A, FF se DSR = “1” envia FF à porta C
OUT 23
JMP LE lê novamente a porta A
Tabela 3 - Interface Assíncrona de Transmissão/Recepção
Escolha uma combinação das chaves (Porta A) e desenhe as formas de onda de TxC. TxD, TxE,
TxRDY e RxRDY para dois ciclos completos de transmissão. Justifique as formas de onda em função
do programa.
Qual a influência do pino /DSR na transmissão?

4.3. Entrada de Pulso Único.


Este experimento mostra, passo a passo, como utilizar a USART no modo assíncrono, funcionando como
receptor.
O receptor aceita dados na forma serial através do terminal RxD e os converte em dados em paralelo se-
gundo o formato apropriado. O programa dado na tabela abaixo define o modo assíncrono, com um bit
START precedendo 8 bits de dados e um único bit de STOP, seguindo os precedentes.
Quando a USART funciona no modo assíncrono e está aguardando um caracter, isto é, não se encontra no
processo de recepção de um caracter, ele espera que se produza um nível lógico “0” na linha RxD. Quando
isto ocorre, a USART interpreta como um bit START e habilita um contador interno. Quando a contagem

70
chega ao tempo de meio bit, a linha RxD é inspecionada novamente. Se ainda permanece em “0”, o USART
o interpreta como um bit válido de START e começa a formar o caracter. Caso contrário, o USART inter-
rompe a operação e se prepara para começar a recepção de outro caracter, incluindo um novo bit START.
Após receber os bits de dados, a USART os transfere ao registrador de dados do receptor. O programa da
tabela abaixo lê os dados deste registrador e os transfere à Porta A do MC-1.
Conecte uma chave à RxD e a leve a “1”. Conecte um push-button sem rebote (PB1 ou PB2) a /RxC. Execu-
te o programa mostrado na tabela abaixo. Passe a chave ligada a RxD a “0” e pressione o push-button. O
microcomputador terá recebido o bit START e estará pronto a aceitar 8 bits de dados. Passe a chave para
“1” e pressione o push-button 8 vezes. Deste modo, os oito bits de dados (“uns”) serão recebidos pelo
USART.
Outro pulso RxC finaliza a operação; pressione novamente o push-button (bit STOP) e observe que os LEDS
da Porta A se acendem.
Repita a operação com outro caracter, lembrando-se sempre da seguinte ordem: um bit START (“0”) 8 bits
de dados (“0” ou “1”) e um bit STOP (“0” ou “1”).
END. OPCODE OPERANDOS LABEL ASSEMBLY COMENTÁRIOS
LXI SP 20A0 define o stack pointer
MVI A, 01 programa as portas do MC-1
OUT 20
XRA A resete seguro da 8251
OUT B1
OUT B1
OUT B1
MVI A,40
OUT B1
MVI A,4D palavra de modo assíncrono
OUT B1 estabelece o modo
MVI A, 04 palavra de comando
OUT B1 carrega a instrução de comando
STATUS: IN B1 lê o status do USART
ANI 02 verifica se o receptor está pronto
JZ STATUS se não, lê novamente o status
IN B0 se está pronto, lê os dados do USART
OUT 21 envia os dados à porta A
JMP STATUS lê novamente o status
Tabela 4 - Entrada de pulso único

4.4. Modo Síncrono


Este experimento mostra como funciona o USART como transmissor no modo síncrono.
O transmissor aceita dados em paralelo do processador, agrega a informação adicional correspondente,
converte os dados para a forma serial e os transmite pela linha TxD. No modo síncrono não existem bits
adicionais (exceto o de paridade, se esta estiver habilitada) gerados pelo transmissor, a menos que o pro-
cessador falhe em enviar um caracter à USART. Neste caso a USART transmitirá um caracter de sincronis-
mo (SYN). Isto é necessário pelo fato de que as comunicações síncronas, contrariamente ao que ocorre
com as assíncronas, não permitem intervalos entre caracteres, isto é, que a linha fique ociosa.
Se a USART está operando no modo SYN duplo, dois caracteres SYN serão transmitidos antes que se pos-
sa enviar a mensagem. A USART não gerará caracteres SYN a menos que o programa tenha previsto pelo
menos um caracter, neste caso a USART preencherá os intervalos na transmissão, mas não a iniciará.
A quantidade de caracteres SYN é especificada no começo da operação da USART, mediante a programa-
ção. Nos dois modos, síncrono e assíncrono, a transmissão estará inibida até que a transmissão esteja habi-
litada (TxEN) e a entrada /CTS possua seu estado lógico ativo.
O programa da tabela abaixo define o modo síncrono, um caracter SYN (55) e envia ao USART um único
caracter que inicia a transmissão.
Conecte /CTS a “0” e ligue um gerador de pulsos à entrada /TxC. Fixe a freqüência do gerador de pulsos em
1Hz (recomenda-se fortemente a utilização do 8253 para essa finalidade). Conecte um LED à saída TxD
e outro à entrada /TxC. O estado inicial da saída TxD é “1”.

71
Execute o programa da tabela abaixo e observe como os bits de dados (oito zeros) são transmitidos, segui-
dos pelos caracteres SYN (zeros e uns alternadamente).
END. OPCODE OPERANDOS LABEL ASSEMBLY COMENTÁRIOS
LXI SP 20A0 define o stack pointer
XRA A resete seguro da 8251
OUT B1
OUT B1
OUT B1
MVI A,40
OUT B1
MVI A, 8C palavra de modo síncrono da 8251
OUT B1 estabelece o modo
MVI A,55 define o caracter SYN
OUT B1
MVI A, B7 define a instrução de comando
OUT B1
MVI A, 00 define os dados
OUT B0
RST 1 retorne ao monitor
Tabela 5 - Modo síncrono

72

Você também pode gostar