Conteúdo! " #!!! $ " % "!

Documentos relacionados
Porta Série SÉRIE x PARALELO PORTA SÉRIE. Comunicação série SÉRIE PARALELA

Interface Serial. Prof. Adilson Gonzaga

Interrupções 8051 Porta Serial

Microcontroladores. Interface Serial e RTC. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

SEL 337 Aplicação de Microprocessadores II

COMUNICAÇÃO SERIAL. Prof. Clayrton Henrique Microprocessadores Aula 30 Rev.02

17/04/2017. Comunicação Serial. Comunicação Serial. Comunicação de Dados em Microprocessadores. . Comunicação Paralela. Comunicação Serial

Comunicação Serial. Comunicação Serial

Laboratório de Microprocessadores e Microcontroladores

Comunicação Serial II. Prof. Clayrton Henrique Microprocessadores Aula 31 Rev.03

EEC2104 Microprocessadores

Laboratório de Microprocessadores e Microcontroladores

Acetatos de apoio às aulas teóricas

Laboratório de Microprocessadores e Microcontroladores

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada

2.4 Temporização da CPU

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Comunicação Serial - Revisão

Organização de Memórias

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

MICROCONTROLADOR 8051

Porta série no dscope...

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

Aula 10 Microcontrolador Intel 8051 Parte 2

Lista de Exercícios 2

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

Comunicação de Dados. Comunicação de Dados

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca

EXPERIÊNCIA 6: COMUNICAÇÃO SERIAL. Prof. Dr. André Riyuiti Hirakawa e Prof. Dr. Paulo Sérgio Cugnasca

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Comunicação Serial PIC16F877A. Leandro Resende Mattioli. Centro Federal de Educação Tecnológica de Minas Gerais Unidade Araxá

Microcontrolador 8051

SEMINÁRIO ASSEMBLY: Arquitetura 8051

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

programáveis por software

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

Prof. Adilson Gonzaga

Interrupção. Prof. Adilson Gonzaga

Temporizadores e Contadores (Timer/Counter)

Microcontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

CAPÍTULO II FAMÍLIA MCS-51

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

Ex.: Rotinas de tempo

Família 8051 (introdução) 2011/1

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Temporizadores e Contadores

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

Universal Asynchronous Receiver Transmitter 8250/14550/16550/16550A

Memória de Dados Interna. Memória de Dados Interna

Modelo de Comunicação

Lista de Exercícios 1

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

REDES DE COMPUTADORES E A CAMADA FÍSICA

Microcontrolador 8051:

Laboratório de Microprocessadores e Microcontroladores

Métodos de Transmissão. Padrões RS

Microcontroladores 8051

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Laboratório de Microprocessadores e Microcontroladores

Microcontroladores 2 EL08D Turma M12

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

Marcio Marcos Machado Junior. Professor orientador: Sérgio Stringari

EXERCÍCIOS 2 Prof. Adilson Gonzaga

Prof. Adilson Gonzaga

CAPÍTULO 3 Interfaces Seriais RS-232 e RS-485

Laboratório de Microprocessadores e Microcontroladores

14/3/2016. A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios:

Aula 8. Multiplexadores. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

208 = D0 h TMOD. MOV TMOD,#20h ;TMOD = Timer 1 no ;Modo 2, controle por software SCON. ;Canal Serial

Laboratório de Microprocessadores e Microcontroladores

Nome Endereço IRQ COM1 3F8 4 COM2 2F8 3 COM3 3E8 4 COM4 2E UART - Universal Asynchronous Receiver/Transmitter. descrição

Atividade de Participação de Aula 02 (Individual) Aluno: Data: 17/08/2017

Microprocessadores. Organização de Memória

Prof. Adilson Gonzaga

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

O microcontrolador Quatro partes importantes

16/3/2009. Aula 6. Engenharia de Sistemas Embarcados

Aula 6. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura e Ambiente de Desenvolvimento

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

µcontroladores da Família 51

Aula 8 Microcontrolador 8051

Aula 8 Microcontrolador 8051

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

Barramento. Prof. Leonardo Barreto Campos 1

Estrutura Básica de um Computador

8051 Estudo de Caso. Prof. Carlos E. Capovilla - CECS/UFABC 1

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Sistemas Processadores e Periféricos Porta Serial Prática 14

Prof. Adilson Gonzaga

Estudar os passos que devem ser feitos (ponto de partida até o objetivo)

Aula. Princípios de Comunicação

Acetatos de apoio às aulas teóricas

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

Lista de Exercícios 1

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2017

Transcrição:

Interfaces Seriais

Conteúdo! "#!!! $"%"!

Como conectar equipamentos uns aos outros? " & '!! (! )

Interface Paralela Dados + controle Equipamento 1 Equipamento 2

Interface Paralela Todos os bits de uma palavra são transmitidos simultaneamente Cada canal necessita de diversos fios Vantagens: - Maior velocidade. - Simplicidade das interfaces. Desvantagens: - Muitos fios > custo - Ruído, perda de sincronismo Menores distâncias

Interface Serial Dados + controle Equipamento 1 Equipamento 2 Síncrona Assíncrona Isócrona

Tipos de Interfaces Seriais - 1 Síncrona Transmissor e receptor utilizam o mesmo clock com mesma freqüência e fase Transferência de blocos Cada bloco: Caracteres de sincronismo Dados Checagem de erro Pequeno overhead: para cada bloco: + 3 bytes (2 sincronismo, 1 checksum) ex.: bloco=1024 bytes + 3 bytes = 1027 bytes 0,3% de tempo extra!

Tipos de Interfaces Seriais - 2 Assíncrona Clocks do transmissor e do receptor podem estar ligeiramente diferentes ressincronismo a cada byte Transferência de bytes Para cada byte mais 2 ou 3 bits: start bit bit de paridade stop bits (1 a 2) Grande overhead: para cada byte + 3 bits = 11 bits = 37,5% de tempo extra! = < velocidade

Tipos de Interfaces Seriais - 3 Isócrona Clock incluído ou incorporado ao dado ressincronismo a cada pacote Transferência de pacotes Contínuo e sem checagem dos dados Útil para aplicações de transferência de grande quantidade de dados e sem precisão. Ex: Vídeo conferência

Padrões de Comunicação Serial (í í ó (-/ * * (-1 * * (-13 * * 2() * * $$$-./01 * * &+ * (!, *

Padrões de Comunicação Serial (í í ó $, $+$, * ( * & * (4# * 4 5( (! *

Embora as interfaces seriais síncronas s sejam mais rápidas, r as interfaces seriais assíncronas são mais utilizadas. Facilidade de implementação Menor Custo Atualmente alcança velocidades compatíveis com as síncronas

Código: Comunicação Serial Assíncrona Conjunto de regras pelas quais informações ou dados (ex: números, letras) podem ser convertidos a uma representação do código e vice-versa. Para transmitir a informação através de uma interface é necessário que ela esteja codificada de alguma forma. A unidade mais básica de informação para nós é o bit, que pode ter valores 0 ou 1. Toda informação utilizada pelos computadores é codificada de alguma forma em seqüências de bits.

Comunicação Serial Assíncrona Código ASCII: Abreviação de: American Standard Code for Information Interchange. Código universal para intercâmbio de informações, concebido especialmente para utilização em transmissão, recepção e processamento de dados. ASCII para 7 bits: 2 7 = 128 caracteres podem ser representados. ASCII para 8 bits: 2 8 = 256 caracteres diferentes. ex.: o código ASCII 0100 0001 = 65D = 41H representa o caractere "A".

Comunicação Serial Assíncrona Paridade:(1) Bit acrescentado ao dado, destinado à detecção de erros. Paridade par: número par de bits no estado 1. Paridade ímpar: número ímpar de bits no estado 1. ex.: caractere "A em ASCII de 7 bits: 1 0 0 0 0 0 1. com paridade ímpar: como tem-se 2 bits no estado 1, o bit de paridade também será 1, de forma que no total tem-se 3 bits em 1 (ímpar). bit de paridade: 1 1 0 0 0 0 0 1.

Comunicação Serial Assíncrona Paridade:(2) Ex.: dado com bit de paridade: 1 1 0 0 0 0 0 1. vamos supor que por um erro de transmissão, um dos bits 0 transformou-se em 1: 1 1 0 0 0 0 0 1 -------> 1 1 0 0 1 0 0 1. ao verificar a paridade, o receptor perceberá que há um número par de 1, e indicará que houve algum erro na transmissão, e que esse byte é inválido. E se houver um número par de mudanças?

Comunicação Serial Assíncrona Transmissão de um Caractere: Ex.: Transmissão do caractere A em ASCII com paridade ímpar e dois stop bits: 1 1 0 0 0 0 0 1 = b7 b6 b5 b4 b3 b2 b1 b0 Start b0 b1 b2 b3 b4 b5 b6 b7 Stop Stop

Comunicação Serial Assíncrona Transmissão de um Caractere: Quando não há dados sendo transmitidos, a linha fica em nível lógico 1. Paridade: par, ímpar ou sem paridade. Normalmente se usa 1 ou 2 stop bits. Estes devem garantir que o receptor terá tempo de receber e armazenar o caractere, antes de receber o próximo. A quantidade de bits na informação transmitida também pode variar: de 5 a 8 bits. Obs: Transmissor e receptor devem ter as mesmas configurações quanto a velocidade, tamanho da palavra, paridade e número de stop bits!

Comunicação Serial Assíncrona Transmissão de um Caractere: O receptor reconhece a borda de descida do Start Bit e sincroniza seu clock. Após 1 ciclo e meio começa a fazer a leitura dos demais bits a cada clock. Se as freqüências do transmissor e do receptor estiverem perfeitamente sincronizadas, as leituras serão efetuadas exatamente no meio de cada ciclo. Tolerância a pequenas variações dos clocks de Tx e Rx. Start b0 b1 b2 b3 b4 b5 b6 b7 Stop Stop Sincroniza demais leituras

Comunicação Serial Assíncrona Bit Rate: Baud Rate: É o número de bits por segundo transmitidos através s da interface serial. É o número de transições (ou eventos) por segundo. Cada evento pode transmitir mais de 1 bit: ex.: modems, onde a variação de fase da portadora poderia representar dois ou mais bits. Quando cada evento representa apenas 1 bit, então o Bit Rate e o Baud Rate são iguais.

RS-XXX

Comunicação Serial Assíncrona RS-232: Padrão físico e elétrico. Conector DB25 (no caso dos computadores PC, usa-se normalmente um DB9, com os principais sinais). 6) 6)0 ç! /, 6-,*6 / 76- *6 1 8 9(-,( 3 &! (- 6,( 6(5-6( 8 (:!;-;+6 3. 6& 6-6&6., &!-,*&.8 7&!- *& 1 6,!5-6, 1 <!5&! 0 :-

Comunicação Serial Assíncrona RS-232 Null Modems: Conector simplificado, usado para transferência de dados Hyperterminal do Windows: permite desabilitar sinais de controle de fluxo.

Comunicação Serial Assíncrona RS-232: Padrão físico e elétrico Opera com tensões referenciadas ao terra. Nível lógico 0 : tensão entre +3 e +15V Nível lógico 1: tensão entre - 3 e - 15V Faixas de tensão inválido + 15V 0 +3V 0V - 3V 1-15V Valores típicos: + 12V e - 12V nível lógico inválido nível lógico inválido

Comunicação Serial Assíncrona RS-232: "Single ended": sinal referenciado à terra Tx Rx Terra = 0 V Problemas: Quedas de tensão ao longo do fio Susceptível a ruídos e diferenças de potencial de terras Limite de distância +/- 15m (depende da taxa e qualidade do cabo) Taxa máxima: 20Kbps

Comunicação Serial Assíncrona RS-422: "Differencial Voltage Pairs": Sinal Diferencial Tx + Va - Vb < - 0.2V = 0 Tx - Va - Vb > +0,2V = 1 Vantagens: par trançado Mais imune a cross-talk Mais resistente a quedas de tensão Limite de distância: +/- 1200m (depende da taxa e cabo) Taxa máxima: 10Mbps Não define conector

Comunicação Serial Assíncrona RS-485: Semelhante ao RS-422, mas com drivers tri-state: Permite topologias de redes multiponto. Rede do tipo mestre-escravo. Até 64 dispositivos. Componentes para RS 422 e RS 485: Am26LS32 driver. Am26LS32 receiver. MAX 481 / 483 / 485 / 487 / 1487 - transceivers.

Comunicação Serial Assíncrona RS-485: Exemplo de topologia de rede com RS 485 Mestre End. 0 Tx Rx Tx Rx Tx Rx Escravos End. 1 End. n - 1

Comunicação Serial Assíncrona RS-485: Filosofia Mestre-Escravo: 1 mestre, n - 1 escravos, cada um com o seu endereço. Mestre: toma a iniciativa da comunicação. Escravos: só respondem às mensagens a eles endereçadas. TxD do mestre: Chega a todos RxD dos escravos. TxD dos escravos: Em alta impedância, quando um escravo for responder, conecta seu transmissor. Mestre: fica ciclicamente interrogando um por um os escravos, que respondem com seus dados, se possuírem. Boa solução para sistemas com poucos dispositivos, baixo tráfego ou onde a velocidade não for crítica.

Comunicação Serial Assíncrona UART: Universal Asynchronous Receiver / Transmiter. Conversão paralela / serial. Inserção / retirada automática do Start-bit e Parity bit. Velocidades programáveis. Interrupções para transmissão / recepção. Indicação de erros. Exemplos: 8251 e 82C51, da Intel. 16550 (usado nos PCs).

Comunicação Serial 80C51 UART interna: Muitos microcontroladores possuem UARTs internas, como o 80C51. Existem modelos de 80C51 com duas UARTs, como o DS80C320 da DALLAS. UART do 80C51: Pode-se facilmente escrever ou ler dados via interface serial. Realiza todo o processo de serialização, adição de start bits e stop bit. Permite transferência via interrupções ou wait for flag.

Estrutura da UART do 80C51

Comunicação Serial 80C51 Usando a UART: São necessários os seguintes passos para configurar corretamente a UART interna do 80C51: Definir a taxa de comunicação. Definir a origem do clock de comunicação. Programar o canal serial. Habilitar / desabilitar interrupções, caso se deseje (a técnica de wait for flag também pode ser utilizada).

Comunicação Serial 80C51 Usando a UART: Modos de Operação: Modo 0: Shift Register de 8 bits dado: RXD clock: TXD = 1/12 clock do 80C51(fixo)

Comunicação Serial 80C51 Usando a UART: Modos de Operação: Modo 1: UART de 8 bits com taxa de comunicação variável. dado: TXD e RXD. clock: ajustável através do Timer 1 (não pode ser o Timer 0). 10 bits: 1 start bit, 8 bits de dado, 1 stop bit. paridade: opcional, por software.

Comunicação Serial 80C51 Usando a UART: Modos de Operação: Modo 2: UART de 9 bits com taxa de comunicação fixa. dado: TXD e RXD. clock: 1/32 ou 1/64 clock do 80C51 (fixo). 11 bits: 1 start bit, 8 bits de dado, 9o. bit programável, 1 stop bit. paridade: opcional, por software.

Comunicação Serial 80C51 Usando a UART: Modos de Operação: Modo 3: UART de 9 bits com taxa de comunicação variável. dado: TXD e RXD. clock: ajustável através do Timer 1 (não pode ser o Timer 0). 11 bits: 1 start bit, 8 bits de dado, 9o. bit programável, 1 stop bit. paridade: opcional, por software.

Comunicação Serial 80C51 Usando a UART: Modos de Operação: Modo 2 e Modo 3: permitem comunicação multiprocessadores. 1 mestre, n escravos, cada um com seu endereço. 9o. bit: =1 indica que a mensagem do mestre é de endereço (todos a examinam, e o escravo selecionado passa a pegar as mensagens seguintes de dados, com o 9o. bit = 0; os demais as ignoram, até o 9o. bit voltar a ser 1). o escravo pode também transmitir mensagens ao mestre, após estabelecida a conexão, mas para tanto não deve setar o 9o. bit.

Comunicação Serial 80C51 Usando a UART: Programar o Timer1 para gerar o "Baud Rate (Modo 1 e Modo 3).

Comunicação Serial 80C51 Programando o Timer Timer1 no modo 2 (auto-reload) Cálculo: Baud Rate = k x FreqOsc 32 x 12 x [256 - (TH1)] se SMOD = 0, k=1 SMOD = bit 7 de PCON se SMOD = 1, k=2 Ou seja: se SMOD = 0 TH1 = 256 - ((FreqOsc / 384) / Baud) se SMOD = 1 TH1 = 256 - ((FreqOsc / 192) / Baud)

Comunicação Serial 80C51 Programando o Timer - exemplo: Ex.: cristal de 11.0592 Mhz e deseja-se 19200bps. Supondo SMOD = 0. TH1 = 256 - ((11059000 / 384) / 19200) TH1 = 256-1,5 = 254.5. Impossível! Se usarmos para 254 teremos 14.400bps, se setarmos para 255 teremos 28.800bps! O que fazer? Basta mudar SMOD para 1. TH1 = 256 - ((11059000 / 192) / 19200) TH1 = 256-3 = 253.

Comunicação Serial 80C51 Programando o Timer: Timer/Counter mode: TMOD (89h) bit endereçável 7------T1------4 3-----T0--------0 Gate C/T M1 M0 1 0 (modo 2) contador out timer TH1 (8Dh) = valor de recarga em TL1 TCON (88h) byte endereçável ---T1--- ---T0---- ---T1---- ---T0---- TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0 TF = overflow TR = liga /desliga IE = habilitação de interrupção Timer 1: sem interrupção: 0100 xxxx

Comunicação Serial 80C51 Programando o Canal Serial: Modo Serial: SCON (98h) bit endereçável. 7--------------------------------------0 SM0 SM1 SM2 REN TB8 RB8 TI RI 0 1 0 1 modo enable serial reception receive interrupt flags transmite interrupt flags (devem ser limpos por software). SM0 e SM1 definem o modo 0 0 modo 0 = 8 bit Shift Register = Oscillator / 12 0 1 modo 1 = 8 bit UART = Baud Rate set by Timer 1 1 0 modo 2 = 9 bit UART = Oscillator / 32 1 1 modo 3 = 9 bit UART = Set by Timer 1. SM2 = flag para "Multiprocessor comunication". Caso esteja setada, RI somente será setado caso o nono bit recebido seja 1. Nos usos mais comuns, SM2 = 0. REN = deve estar setado para que a recepção seja habilitada.

Comunicação Serial 80C51 Programando o Canal Serial: Modo Serial continuação: SCON (98h) bit endereçável. 7--------------------------------------0 SM0 SM1 SM2 REN TB8 RB8 TI RI 0 1 0 1 modo enable serial reception receive interrupt flags transmite interrupt flags (devem ser limpos por software). TB8 é usado nos modos 2 e 3. O nono bit a ser transmitido é o nele contido. RB8: idem a TB8 para recepção. O nono bit recebido será nele armazenado. TI: Transmit Interrupt Quando TI está setado, o programa pode assumir que a porta serial está pronta para transmitir o próximo byte. RI: Receive Interrupt Sempre que o 80C51 receber um byte completo, RI será setado, informando ao software que o byte precisa ser lido, antes que seja recebido um novo valor.

Comunicação Serial 80C51 Programando o Canal Serial: Modo Serial continuação: PCON (87h) byte endereçável 7--------------------------------------0 SM0D X X X X X X X SMOD = 0: Modo 2: divide clock do 80C51 por 64 SMOD = 0: Modos 1 e 3: divide saída Timer 1 por 32 SMOD = 1: Modo 2: divide clock do 80C51 por 32 SMOD = 1: Modos 1 e 3: divide saída Timer 1 por 16

. Comunicação Serial 80C51 Programando o Canal Serial: Interrupções. IE (A8h) bit endereçável. 7----------------4----------------------0 EA ES ET1 EX1 ET0 EX0 Por que usar interrupções? Qual a alternativa? Um esquema do tipo: wait for flag, onde o programa fica em loop perguntando ao dispositivo: "- Já recebeu dado?, ou - Acabou de transmitir o último dado? No caso do wait for flag, o tempo de processamento gasto no pooling dos dispositivos é considerável: poderia ser usado no caso de programas pequenos e simples. As interrupções são uma maneira mais simples e limpa de fazer o mesmo serviço...

Comunicação Serial 80C51 Programando o Canal Serial: Lendo e enviando dados: Os dados devem ser lidos ou escritos em SBUF (99h), por exemplo, se quisermos escrever o caractere "A" na porta serial, isso pode ser feito como a seguir: MOV SBUF,#'A' ou MOV SBUF, #41H

Comunicação Serial 80C51 Programando o Canal Serial: Exemplo de configuração sem interrupção: ; inicializacoes. MOV TMOD,#00100000B ; Timer 1 no modo 2 MOV TH1,#0FDH ; configura para 9600bps MOV TCON,#01000000B ; Ativa Timer 1 MOV PCON,#00000000B ; SMOD recebe 0 (Timer 1/32) MOV SCON,#01000000B ; canal serial no modo 1 MOV IE,#00000000B ; desabilita interrupções

Comunicação Serial 80C51 Usando o Canal Serial com wait for flag : Envio de caracteres - rotina CO (character output): CO: JNB TI,$ ; lê estado TI da serial CLR TI ; Se TI OK, limpa TI MOV SBUF,B ; escreve dado JNB TI,$ ; espera sua transmissao RET Recebimento de caracteres - CI (character input): CI: JNB RI,$ ; lê estado RI da serial CLR RI ; Se RI OK dado está presente, ; limpa RI MOV B,SBUF ; lê dado RET

Comunicação Serial 80C51 Usando o Canal Serial com wait for flag : Exemplo de rotina para imprimir uma mensagem (da ROM para a serial): PRINT: MOV A,#00h MOVC A,@A+DPTR JZ PFIM MOV B,A ACALL CO INC DPTR SJMP PRINT PFIM: RET

Usando o Canal Serial com interrupções Recebimento de caracteres MOV TMOD,#00100000B ; Timer 1 no modo 2 MOV TH1,#0FDH ; configura para 9600bps MOV TCON,#01000000B ; Ativa Timer 1 MOV PCON,#00000000B ; SMOD recebe 0 (Timer 1/32) MOV SCON,#01010000B ; canal serial no modo 1, com interrupção MOV DPTR,#9000H ; ponteiro para dado recebido MOV IE,#10010000B ; habilita interrupções CLR C ; limpa carry JNC $ ; aguarda fim de string LJMP 0000H ; volta ao Programa Monitor... CIINT: JNB RI, FIM2 ; se for interrupção de transmissão, MOV A, SBUF ; lê dado MOVX @DPTR, A ; caso contrário armazena-o INC DPTR ; incrementa ponteiro de dados FIM1: CLR RI ; limpa RI=pedido interrupção de recepção FIM2: CLR TI ; limpa TI=pedido interrupção de transmissão RETI FIM3: SETB C ; indica fim de string AJMP FIM1