capítulo 8 a interface de comunicação serial da família de microcontroladores mcs-51 da intel

8
Prentice Hall Microcontroladores 8051 1 Capítulo 8 Capítulo 8 A interface de comunicação serial A interface de comunicação serial da família de microcontroladores da família de microcontroladores MCS-51 da Intel MCS-51 da Intel

Upload: sharis

Post on 04-Jan-2016

22 views

Category:

Documents


0 download

DESCRIPTION

Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel. Capítulo 8. A interface de comunicação serial :. 8051 Internal Bus. Write to SBUF. D S Q CL. SBUF. RXD P3.0 ALT Output Function. Shift. Zero Detector. Start SHIFT TX Control - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 1

Capítulo 8Capítulo 8

A interface de comunicação serial A interface de comunicação serial da família de microcontroladores da família de microcontroladores

MCS-51 da IntelMCS-51 da Intel

Page 2: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 2

Capítulo 8Capítulo 8 A interface de comunicação serial:

(SCON) = SM0 SM1 SM2 REN TB8 RB8 TI RI

SM0 SM1 Modo Descrição Baud Rate0 0 0 Registrador de Deslocamento fosc./120 1 1 UART de 8 bits variável1 0 2 UART de 9 bits fosc./64 ou fosc./321 1 3 UART de 9 bits variável

Símbolo Nome e SignificadoSM2 Habilita a característica de comunicação de multiprocessadores no modo 2 e 3. Nesses

modos, se SM2=1, RI não será ativado se o nono bit de dado recebido for igual a 0. Nomodo 1, se SM2=1, RI não será ativado se um stop bit válido não for recebido. No modo 0,deverá ser 0.

REN Bit habitador da recepção serial. Setado/limpado por software para habilitar ou desabilitara recepção serial.

TB8 É o nono bit de dado que será transmitido no modo 2 e 3. Setado ou limpado por software.RB8 No modo 2 e 3, é o nono bit de dado que foi recebido. No modo 1, se SM2=0, RB8 é o stop

bit que foi recebido. No modo 0, RB8 não é usado.TI É o flag de interrupção de transmissão. Setado por hardware no final do tempo do 8 bit no

modo 0 ou no início do stop bit em outros modos, em qualquer transmissão serial. Deveráser limpado por software.

RI É o flag de interrupção de recepção. Setado por hardware no final do tempo do 8 bit nomodo 0 ou na metade do tempo do stop bit em outros modos, em qualquer recepção serial.Deverá ser limpado por software.

Page 3: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 3

SBUF

Zero Detector

Start SHIFT TX ControlTX Clock TI SEND

D S QCL

Shift

Write to SBUF

S6

RX Clock RI Receive RX ControlStart 111111110 Shift

Serial PortInterrupt

REN

RIbarra

Input Shift Register

TX.DP3.1 ALTOutput Function

Load SBUF

Shift

SBUF

8051 Internal Bus

8051 Internal Bus

Read SBUF

RXDP3.0 ALTOutput

Function

Shift Clock

RX.DP3.0 ALTInput Function

Figura 1: A interface de comunicação serial no modo 0.

Page 4: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 4

SBUF

Zero Detector

Start SHIFT DATA TX ControlTX Clock TI SEND

D S QCL

Write to SBUF

Timer 1Overflow

RX Clock RI Load SBUF RX Control Shift Start 1FFh

Serial PortInterrupt

Input Shift Register (9 bits)

Load SBUF

Shift

SBUF

8051 Internal Bus

8051 Internal Bus

Read SBUF

TXD

Figura 2: A interface de comunicação serial no modo 1.

TB8

16

16

2

SMOD=0

SMOD=1

1 to 0 transition detector

RXD

Bit Detector

Sample

Page 5: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 5

Capítulo 8Capítulo 8

Timer 1Baud Rate (bits/seg) Freq. Osc. (MHz) SMOD C/Tbarra Modo Valor Recar.Modo 0 Máx: 1MHz 12 X X X XModo 2 Máx: 375K 12 1 X X X

Modo 1, 3: 62,5K 12 1 0 2 FFh19,2K 11,059 1 0 2 FDh

9,6K 11,059 0 0 2 FDh4,8K 11,059 0 0 2 FAh2,4K 11,059 0 0 2 F4h1.2K 11,059 0 0 2 E8h

137,5 11,059 0 0 2 1Dh110 6 0 0 2 72h110 12 0 0 1 FEEBh

Page 6: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 6

Capítulo 8Capítulo 8

Figura 2: Fluxograma e programa fonte estruturado do exercício resolvido 1.

Rotina de atendimento a interrupção do canal de comunicação serial (0023h)

RETI

(0023h)ISerial: RETI

Page 7: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 7

Capítulo 8Capítulo 8

Programa Principal:

(0100h)PROGP: MOV SCON,#10h

MOV IE,#90hMOV A,#55h

LOOP: MOV SBUF, A

JNB TI,$

CLR TICPL A SJMP LOOPEND

(SCON) #10h(IE) #90h(A) #55h

(SBUF) (A)

(TI) = 0 S

N

(TI) #0b

(A) not (A)

Page 8: Capítulo 8 A interface de comunicação serial da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 8

DEFSEG EXEM, ABSOLUTE ; Define segmento de programa EXEM SEG EXEM

ORG 0000h ; Após o Reset da CPU, o programa prossegue no endereço 0000hAJMP 0100h ; (duranteo acionamento da chave de Reset ou após a energização do

; sistema através do circuito de Reset formado por um resistor em; paralelo com um diodo e em série com um capacitor que está ligado ao; pino de Reset da CPU). Como foi pedido que o programa principal fosse; escrito no endereço de memória de programa 0100h, usou-se um salto; incondicional para tal posição de memória.

ORG 0023h ; Após uma interrupção do canal serial , o programa prossegue noRETI ; endereço '0023h' e retorna da rotina de atendimento da fonte de

; interrupção do canal de comunicação serial.

ORG 0100h ; Início do programa principal

MAIN: MOV SCON,#10h ;(SCON) # 00010000b. Programa o canal serial como registrador de; deslocamento e baud rate de fosc./12 (modo 0).

MOV IE,#90h ; (IE)=1001 0000b. Faz (EA)=1 (cada interrupção é habilitada pelo seu; bit habilitador); (ES)=1 (Habilita a interrupção de comunicação serial)

MOV A,#55h ; (A) #55h (dado a ser transmitido)

LOOP: MOV SBUF,A ; (SBUF) (A). Carrega o dado a ser transmitido no (SBUF) e é iniciada; a transmissão serial

JNB TI,$ ; Se (TI)=0 (o dado ainda não foi transmitido serialmente bit a bit)

; (PC) $ ( salta para o próprio endereço da instrução JNB). Aguarda ser; transmitido. Quando o dado é transmitido faz (TI)=1 e é gerado uma; interrupção do canal serial (salta para o endereço 0023h - rot. de serviço; de com. serial)

CLR TI ; (TI) 0 (Libera canal de comunicação serial para a transmissão de um; novo dado)

CPL A ; (A) complemento de um do (A)SJMP LOOP ; Loop do programa principalEND