Você está na página 1de 22

TUTORIAL

Comunicao Serial no 8051

ndice
ndice.................................................................................................................................................... 2 Introduo.............................................................................................................................................3 Material Necessrio.............................................................................................................................. 4 Montagem.............................................................................................................................................6 Montagem do Cabo Serial.................................................................................................................... 7 Montagem do Hardware....................................................................................................................... 8 Montagem do Software...................................................................................................................... 15 Testando o Funcionamento................................................................................................................. 16 Concluso........................................................................................................................................... 22

Introduo
Neste tutorial explicarei como montar um circuito para comunicao serial entre o computador e o microcontrolador 8051. O exemplo mostrado nesse tutorial bem simples e pretende apenas ensinar o funcionamento bsico da comunicao serial. Ento para exemplificar o funcionamento do projeto vamos criar um programa que retorne um caractere para cada tecla digitada no computador. Caso a tecla digitada seja um 'A' (maisculo), o programa retorna o caractere 'K', caso contrrio, retorna um ponto de interrogao (?). Para executar as tarefas desse tutorial, voc deve ter conhecimento prvio do procedimento de gravao no 8051.

Material Necessrio
Para este tutorial, voc precisar dos seguintes componentes:
Tabela de componentes necessrios para a montagem do tutorial. Informaes retiradas do site http://www.SoldaFria.com.br em 10/05/2010. Os preos podem variar e so de total responsabilidade do site mencionado.

Capacitor Eletroltico 1uF x 50V

R$ 0,60

Circuito Integrado MAX232 (ICL232, HIN232)

R$2,30

Soquete 16 Pinos Estampado

R$0,18

Capa para conector DB9 Bege com kit Curto

R$0,63

Conector DB9 Fmea 180 Graus Solda Fio

R$0,84

Conector 5045-4 (KK 4 Vias Macho)

R$0,24

Alojamento Para Conector kk Molex 5051-4

R$0,33

Cabo Manga 3 Vias Sem Blindagem (metro)

R$0,90

Total

R$ 6,02

Voc pode encontrar todos esses componentes facilmente na Santa Ifignia, na loja Mult Comercial (http://www.multcomercial.com.br/) , ou ainda no site Solda Fria (http://soldafria.com.br/loja/). Voc tambm vai precisar do seguinte datasheet: MAX232 Driver/Receiver conversor RS232 para TTL; http://pdf1.alldatasheet.com/datasheet-pdf/view/207382/TI/MAX232N.html

Corte tambm alguns fios de cobre para grampear a protoboard.

Montagem
Para montar esse circuito voc precisar da protoboard configurada com o esquema bsico do microcontrolador AT89S52, conforme descrito no tutorial de gravao. Vide figura abaixo.

Alm disso, voc precisar montar o cabo, conforme o prximo tpico.

Montagem do Cabo Serial


Para montar o cabo necessrio para esse projeto, basta seguir as instrues da tabela de pinagem e o resultado final deve parecer com a foto abaixo.

Mapeamento dos Pinos Pino GND RXD TXD DTR DSR RTS CTS DB9 5 2 3 4 6 7 8 Conector 1 3 4

Muita ateno na montagem do cabo, pois apenas os pinos 5, 2 e 3 do DB9 so ligados no conector. Os pinos 4 e 6 e os pinos 7 e 8 so ligados entre si, conforme a ilustrao na tabela acima. Esse cabo chamado de Null-Modem, pois ele fora o handshaking automtico, ou seja, o computador entender que o dispositivo conectado ao cabo estar sempre disponvel. O pino TXD o responsvel por enviar as informaes do computador para o 8051 e o RXD recebe os dados. O pino GND o terra, responsvel por equilibrar a tenso da comunicao.

Montagem do Hardware
A montagem do circuito deste projeto na protoboard a parte mais fcil desse tutorial, bastando apenas seguir as imagens:

Primeiro ache um bom lugar para colocar o MAX232 na protoboard. Repare no chanfro existente na carcaa do circuito integrado que facilita a localizao do pino 1 do componente. No esquema abaixo voc pode conferir a posio e a identificao dos pinos existentes no MAX232. Os que realmente nos interessam so os pinos 15 e 16, onde ligaremos a alimentao, os pinos 1, 2, 3, 4, 5 e 6, onde ligaremos os capacitores de polarizao e os pinos 11, 12, 13 e 14, onde ligaremos os fios de comunicao.

Precisamos ento ligar a alimentao do MAX232. Para isso basta grampear o terminal positivo no pino 16...

E o terminal negativo no pino 15 do MAX232.

Em seguida, precisamos colocar os capacitores de polarizao. O primeiro vai no pino 1 e no pino 3 do MAX232, sendo que o plo negativo vai no pino 3...

O segundo capacitor vai nos pinos 4 e 5 com o negativo virado para o pino 5; o terceiro capacitor tem seu negativo ligado no pino 6 do MAX232 e o positivo no negativo da rede de alimentao. Isso mesmo, invertido, assim como o quarto capacitor, que tem o positivo ligado no pino 1 e o negativo, no positivo da rede.

1 Pi no

GND

Pino 3 RXD
o Pin XD 4T

Coloque ento o conector de quatro pinos na protoboard. Repare que o pino 2 no utilizado. Isso porque o nico conector que eu tinha aqui era de 4 pinos, mas voc pode usar um de 3 pinos.

A primeira coisa a fazer grampear o pino 1 do conector no negativo da rede, ou seja, no terra.

A parte final da montagem do circuito a mais importante, pois quando conectamos os fios da comunicao. O primeiro o que vai do pino 10 do 8051 at o pino 12 do MAX232.

O segundo fio (azul) vai do pino 11 do 8051 para o pino 11 do MAX232, e o fio branco o que liga o pino 14 do MAX232 para o pino 2 do conector. Se voc prestou ateno, deve ter percebido que eu liguei o TR1OUT do MAX232 no RXD do conector que vai ligado no computador. Isso acontece porque o pino 14 o que envia dados do MAX232 e o pino 2 do conector o que recebe dados para o computador.

O ltimo fio (marrom) liga o pino 13 do MAX232 no pino 3 do conector. Perceba que ele tambm invertido para que a comunicao funcione.

Agora falta ligar o cabo. Uma ponta na porta serial do computador...

A outra ponta do cabo serial deve ser ligada no conector grampeado na protoboard.

Montagem do Software
O software no complicado, mas alguns detalhes importantes devem ser comentados aqui. Comeando pelo include da primeira linha. Ele necessrio para o RIDE51 carregar parmetros do microcontrolador escolhido. O comando ORG 23H aponta para o endereo de gatilho da serial. Quando alguma informao vinda pela serial completa o buffer do 8051, o processador interrompe o que est fazendo e executa os comandos que esto nesse endereo, como a chamada para a funo SERIAL_IRQ. Os outros comandos so comuns e seguem o fluxo normal do Assembly. Estude as configuraes da serial do 8051 e tambm a lgica de desvios para entender o resto do cdigo. Por ltimo o comando RETI um retorno especial da interrupo para orientar o procesador a fazer o que estava fazendo antes de ser interrompido pela chegada de informaes. No caso do cdigo abaixo ficar eternamente em loop, nada de mais.
$include(REG51.inc) ORG LJMP ; SERIAL IRQ ORG LJMP INICIO_PROG: ORG 0000H 0040H 0023H SERIAL_IRQ 0040H

; HABILITANDO SERIAL MOV IE, #90H MOV SCON, #50H MOV PCON, #00H MOV TMOD, #20H MOV TH1, #0F4H SETB TR1 ; FICANDO EM LOOP INFINITO JB P2.0, $ SERIAL_IRQ: ORG 0100H

; SERIAL RECEBENDO MOV A, SBUF CLR RI ; VERIFICANDO INFO RECEBIDA CJNE A, #'A', SERIAL_ERRADO ; VALOR CORRETO MOV A, #'K' MOV SBUF, A JNB TI, $ CLR TI RETI ; VALOR ERRADO SERIAL_ERRADO: MOV MOV JNB CLR RETI

A, #3FH SBUF, A TI, $ TI

END

Testando o Funcionamento
Bom, depois de codificar o programa de comunicao do microcontrolador e compil-lo em um arquivo HEX (para isso utilize o comando Build All do RIDE51), vamos gravar o executvel no 8051.

Basta abrir o ISP Flash Programming e selecionar o arquivo HEX compilado.

Depois s clicar em Write ou Program, dependendo da verso do ISP Flash Programmer.

Espere terminar o procedimento e clique em OK na caixa de dilogo que aparecer. Se algo der errado, verifique o circuito de gravao. Utilize o tutorial de gravao para comparar as conexes e ver se est tudo certo.

Depois do programa gravado no 8051, cabo serial conectado no MAX232 e tudo pronto, falta testar a aplicao. Para isso vamos usar o HyperTerminal da Hilgraeve. Em alguns casos, pode ser necessrio instalar esse componente, pois nem todos os Windows trazem esse programa instalado por padro.

Depois de abrir o HyperTerminal, um assistente de criao de Nova Conexo aberto e o programa solicita um nome para essa conexo e voc pode tambm selecionar um cone. Eu utilizei o nome: Tutorial Serial. Voc pode escolher um que lhe agrade mais.

Ainda no assistente de criao de nova conexo, precisamos escolher a porta na qual vamos estabelecer a comunicao. No meu caso a COM1, mas dependendo de qual porta voc conectou o cabo, pode ser a COM2. Eu j tive problemas com essa porta, ento o melhor conectar o cabo na COM1 mesmo.

Depois de escolher a porta, falta configur-la. Como o cdigo exemplo desse tutorial foi escrito para configurar a comunicao do microcontrolador para a velocidade de 2400 bits por segundo, vamos utilizar essa configurao tambm no computador. Alm disso no devemos utilizar nenhum controle de fluxo, j que estamos usando um cabo Null-Modem.

Terminando o assistente o HyperTerminal j nos conecta automaticamente com o 8051. Mas antes vamos verificar algumas configuraes. Para isso clique no boto propriedades na barra de ferramentas.

Na aba de Configuraes precisamos alterar a emulao para o protocolo ANSI.

Finalmente clicando no boto Configurao ASCII da aba Configuraes, vamos ligar o eco dos caracteres digitados para vermos na tela as teclas que estamos digitando e que esto sendo enviadas para o 8051 via serial.

Se tudo deu certo, basta digitar alguma coisa na tela principal da conexo para que ela seja enviada para o microcontrolador. Se for qualquer diferente de A maisculo, o 8051 responde com um ponto de interrogao, mas quando digitamos o A, aparece a letra K de volta. Desssa forma podemos constatar que a comunicao est funcionando e o 8051 est respondendo de acordo com a programao.

Concluso
Bom, neste tutorial aprendemos como montar, programar e testar uma comunicao serial entre o computador PC e o microcontrolador 8051. No pude entrar em detalhes sobre Baud Rate que taxa de transferncia da comunicao e as diversas configuraes de timers, osciladores e interrupo do microcontrolador, seno esse tutorial seria muito grande. Agora cabe a voc esmiuar os detalhes dessa tecnologia que de nova no tem nada, mas sem o conhecimento prvio da comunicao serial no possvel partir para a comunicao via USB, pois o princpio o mesmo, mudando apenas os protocolos e formas de comunicao. At a prxima!