Upload
sharis
View
22
Download
0
Embed Size (px)
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
Citation preview
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
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.
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.
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
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
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
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)
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