sel 337 –aplicação de microprocessadores 3 - comunicacao  · interface serial no 80c51

Download SEL 337 –Aplicação de Microprocessadores 3 - Comunicacao   · Interface serial no 80C51

Post on 09-Feb-2019

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

SEL

337

Prof. Dr. Marcelo A. C. Vieira

SEL 337 Aplicao de Microprocessadores II

Comunicao Serial

SEL

337

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialDIREO DE TRANSFERNCIA DE DADOS

SIMPLEX

HALF DUPLEX

FULL DUPLEX

TRANSM

TRANSM

RECEP

RECEP

TRANSMRECEPTRANSM

RECEP

TRANSM

RECEP

Fluxo de Dados

Fluxo de Dados

Fluxo de Dados

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialTIPOS

SNCRONA Um sinal de CK separado associado com o dado

ASSNCRONA No existe sincronismo entre transmissor e receptor re-sincronizao feita caractere por caractere.

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialASSNCRONA

Cada caractere transmitido individualmente

Para cada um bits de incio e de fim de transmisso (start e stop bits)

Bits de dados(5 a 8)

Start bit Stop bit

Bits de dados(5 a 8)

Start bit

Stop bit

... ...

Bit de paridade

n Repouso (nvel lgico 1).

n Start bit (nvel lgico 0).

n Stop bit (nvel lgico 1).

Comunicao SerialASSNCRONA

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialASSNCRONA

Dados de 8 bits (+ start bit, stop bit e paridade).

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialRS 232-C

Padronizada pela EIA (Electronics Industries Association EUA)

RS ] Recommended Standard 232 ] nro. da norma C ] nro. de revises da norma

Tipo de comunicao ] serial assncrona Caractersticas:

Taxa de Comunicao de 75 a 19200 Baud

Comprimento do cabo de ligao entre equipamentos: menor do que 15 metros, sem amplificao. No existe isolao eltrica entre os equipamentos

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialRS 232-C

Caractersticas Eltricas do sinal a LGICA NEGATIVA

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialRS 232-C

Caractersticas Funcionais do CircuitoTransmisso de Dados (TxD)

TxDDTE DCE

Linha permanece em nvel lgico 1 (-12 V) enquanto no tiver dados

Recepo de Dados (RxD)

RxDDTE DCE

Linha permanece em nvel lgico 1 (-12 V) enquanto no tiver dados

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialInterface serial no 80C51

Porta serial Full duplex Dois registradores SBUFfisicamente separados:

um para transmisso outro para recepo

80

8890

98

A0

A8

B0

B8

C0

C8

D0

D8

E0

E8

F0

F8

P0

P1

P2

P3

SP DPL DPH PCON

TCONTMOD TL0 TL1 TH0 TH1

SCONSBUF

IE

IP

PSW

ACC

B

87

8F

97

9FA7AF

B7

BFC7

CFD7

DF

E7

EF

F7

FF

Transmisso inicia to logo se escreve um dado no SBUF (endereo 99h)

Reg. SCON usado para programar a interface serial

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialInterface serial no 80C51Programao dos modos de operao

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialInterface serial no 80C51Programao dos modos de operao

Gru

po d

e Si

stem

as D

igita

is

Comunicao SerialInterface serial no 80C51

Operao no modo 11. TRANSMISSO

Escreve-se o dado no SBUF StopBit transmitido setado o flag TI em SCON Limpa-se o Flag

2. RECEPO

Incio quando detectada StartBit

StopBit recebido setado o flag RI em SCON

O dado pode ser lido no SBUF Limpa-se o Flag

Gru

po d

e Si

stem

as D

igita

is

Comunicao Serial

Taxa de Comunicao80

889098A0A8B0B8C0C8D0D8E0E8F0F8

P0

P1

P2

P3

SP DPL DPH PCONTCONTMOD TL0 TL1 TH0 TH1

SCONSBUF

IE

IP

PSW

ACC

B

87

8F979FA7AFB7BFC7CFD7DFE7EFF7FF

Usado para programar o Baud rate

Utiliza o Timer 1 (ou tambm o Timer 2 no 8052) para programar o Baud rate

Gru

po d

e Si

stem

as D

igita

is

Temporizadores e Contadores (Timer/Counter) T/C

Registrador TMOD (Timer/Counter Mode) No enderevel a Bit

Dividido em duas partes com igual significado:

TL1 TH1

Gru

po d

e S

iste

mas D

igitais

Comunicao SerialInterface serial no 80C51

Taxa de Comunicao (Baud Rate)

Modos 0 e 2 Baud rate fixo Modos 1 e 3 Baud rate varivel (pode ser gerado tanto pelo Timer 1 como pelo Timer 2):

Se SMOD = 0 ] K = 1Se SMOD = 1 ] K = 2

- Enderevel byte

- Valor default = 0

Gru

po d

e S

iste

mas D

igitais

Comunicao SerialInterface serial no 80C51

Taxa de Comunicao (Baud Rate)

Deve-se calcular o valor de TH1 (MSB do contador 1, que no Modo 2 carregado em TL1 no fim de cada contagem)

(*) Arredonda-se TH1 para o inteiro mais prximo Como o arredonda-mento pode no produzir o Baud Rate desejado, deve-se escolher uma outra freqncia para o cristal adotando-se o valor arredondado de TH1.

Valor ideal de f = 11,0592MHz

Valor inteiro de 8 bits

(0 a 255)

Gru

po d

e Si

stem

as D

igita

isTemporizadores e Contadores (Timer/Counter) T/C

Registrador TCON (Timer/Counter Control) Enderevel a Bit

SETB TR1 ; Dispara(liga) o T/C1

SETB TR0 ; Dispara(liga) o T/C0

CLR TR1 ; Pra (Desliga) o T/C1

CLR TR0 ; Pra (Desliga) o T/C0

Programao dos T/C:

Gru

po d

e Si

stem

as D

igita

is

Comunicao Serial

Interrupo80

889098A0A8B0B8C0C8D0D8E0E8F0F8

P0

P1

P2

P3

SP DPL DPH PCONTCONTMOD TL0 TL1 TH0 TH1

SCONSBUF

IE

IP

PSW

ACC

B

87

8F979FA7AFB7BFC7CFD7DFE7EFF7FF

Programar a Interrupo de Comunicao Serial.

Gru

po d

e Si

stem

as D

igita

is

Para usar as interrupes do MCS-51 , seguir os seguintes passos :(Exemplo para a Interrupo Serial)

Estrutura de interrupo

1. Setar o bit EA (Enable All) do registrador IE SETB EA

2. Setar o bit do registrador IE correspondente interrupo utilizada SETB ES

3. Escrever a sub-rotina de atendimento de interrupo no endereo correspondente.

Gru

po d

e Si

stem

as D

igita

is

Testes iniciais:

- Programar a Serial do 89S52 (9600, 8, N, 1)

a) Sem interrupo

1. Enviar caractere indefinidamente para o Terminal

2. Receber e ecoar para o Terminal todo caractere recebido

b) Com interrupo

3. Receber e ecoar para o Terminal todo caractere recebido

4. Enviar uma frase para o Terminal ASCII

5. Selecionar a mensagem a ser enviada do P via teclado do Terminal

SEL

415

Uso da memria de programa para

armazenamento de dados no volteis

Gru

po d

e Si

stem

as D

igita

is

Utiliza a memria de programa (ROM) para armazenar dados

denominado modo de endereamento indexado

Utilizado para armazenamento de tabelas (dados no volteis)

enderevel pelo ponteiro de dados DPTR (16 bits)

necessrio utilizar uma diretiva do compilador para armazenar atabela de dados (o compilador deve saber diferenciar o que instruo e o que dados parar escrever na memria de programa)

Instruo:

MOVC A,@A+DPTR

Instruo para Memria de Programa

Exemplo:MOV DPTR, #0F0BHCLR AMOVC A,@A+DPTR

Gru

po d

e Si

stem

as D

igita

is

ORG 0MOV DPTR, #TABELA

LOOP:MOV A, P0MOVC A, @A+DPTRMOV 30H, ASJMP LOOP

TABELA: DB 0,6,10,12,14,16,17,18

Exemplo de ProgramaTabela de converso para clculo de 20*log(num+1), sendo num o

valor colocado na porta P0

Gru

po d

e Si

stem

as D

igita

is

Como fica na memria ROM (Flash) no 8051?

Gru

po d

e Si

stem

as D

igita

is

FIM