This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
– Frequência Timer = Frequência do Frequência Timer = Frequência do Clock Clock
(12 * (256 - Valor (12 * (256 - Valor THTHii ))))
Timer 0 no Modo 2Timer 0 no Modo 2
Osc.1/12
TL08 bits
TH08 bits
TF0T0
TR0
INT0
GATE
interrupçãoC / T
recarga
Timers/contadoresTimers/contadores
• Modo 3:Modo 3:
– TL0 funciona como um timer/contador de 8 TL0 funciona como um timer/contador de 8 bits controlado por TR0.bits controlado por TR0.
– TH0 funciona como timer de 8 bits TH0 funciona como timer de 8 bits controlado por TR1 e usa TF1 para overflowcontrolado por TR1 e usa TF1 para overflow
– Timer 1 fica habilitado todo o tempo, mas Timer 1 fica habilitado todo o tempo, mas não pode gerar interrupção. Se Timer 1 não pode gerar interrupção. Se Timer 1 também for posto no Modo 3, ele pára.também for posto no Modo 3, ele pára.
Timer/contadorTimer/contador
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON
TFi - flag de overflow do Timer i. Se o 8051 forconfigurado para gerar interrupção quando
esteflag vai para 1 (um), seu valor volta para 0
(zero)automaticamente após execução da rotina
deinterrupção.
TRi - bit de controle do Timer iTRi = 0 Timer i desligado = 1 Timer i ligado
OBS: os bits de TCON podem ser acessadosdiretamente
Timer/contadorTimer/contador
gate C/T M1 M0 gate C/T M1 M0 TMOD
gate = 0 Timer i é habilitado se TRi = 1= 1 Timer i é habilitado se INTi = 1 e TRi
= 1
C/T = 0 Timer i funciona como contador= 1 Timer i funciona como timer
M1,M0 = 00 Timer ifunciona no Modo 0 = 01 Timer ifunciona no Modo 1 = 10 Timer ifunciona no Modo 2 = 11 Timer 0funciona no Modo 3
Timer 1 pára.
OBS: os bits de TMOD NÃONÃO podem ser acessadosdiretamente
– Modo 1Modo 1• Transmissão assíncrona, 10 bits sendo 1 start bit, Transmissão assíncrona, 10 bits sendo 1 start bit,
8 bits de dados e 1 stop bit8 bits de dados e 1 stop bit• Na recepção, o stop bit é armazenado em RB8Na recepção, o stop bit é armazenado em RB8i i ((ii
indica qual a interface serial usada, caso haja indica qual a interface serial usada, caso haja mais de uma).mais de uma).
• Baudrate variávelBaudrate variável
Interface SerialInterface Serial
• Vários modos de operaçãoVários modos de operação– Modo 2Modo 2
• Transmissão assíncrona, 11 bits sendo 1 start Transmissão assíncrona, 11 bits sendo 1 start bit, 8 bits de dados, 1 bit especial (valor definido bit, 8 bits de dados, 1 bit especial (valor definido por TB8por TB8ii) e 1 stop bit.) e 1 stop bit.
• Na recepção, o bit especial é armazenado em Na recepção, o bit especial é armazenado em RB8RB8ii
• Baudrate = 1/32 ou 1/64 Freq.ClockBaudrate = 1/32 ou 1/64 Freq.Clock
– Modo 3Modo 3• Transmissão igual ao Modo 2Transmissão igual ao Modo 2• Baudrate variávelBaudrate variável
– É realizada assim que um byte é armazenado em SBUFÉ realizada assim que um byte é armazenado em SBUF– Ao transmitir faz com que o bit TIAo transmitir faz com que o bit TIii seja 1 seja 1
• RecepçãoRecepção– Ao receber faz com que o bit RIAo receber faz com que o bit RIii seja 1. seja 1.– Modo 0 (comunicação síncrona):Modo 0 (comunicação síncrona):
• É realizada quando RIÉ realizada quando RIii =0 e REN =0 e RENii =1 =1
– Modo 1, 2 e 3 (comunicação assíncrona):Modo 1, 2 e 3 (comunicação assíncrona):• É realizada quando RENÉ realizada quando RENii =1 e ocorre a chegada de um start =1 e ocorre a chegada de um start
– Pode ou não ser habilitada.Pode ou não ser habilitada.– Quando habiitada, é gerada se TIQuando habiitada, é gerada se TIii = 1 ou RI = 1 ou RIii
= 1.= 1.– O mesmo vetor de interrupção é usado tanto O mesmo vetor de interrupção é usado tanto
para transmissão quanto para recepção. O para transmissão quanto para recepção. O valor de TIvalor de TIii e RI e RIii deve ser testado para deve ser testado para verificar se houve transmissão e/ou verificar se houve transmissão e/ou recepção, respectivamente.recepção, respectivamente.
SM2i Se Modo = 0, SM2i deve ser 0. Se Modo = 1, define se o stop bit deve ser igual a 1 para que RIi = 1 Se Modo = 2 ou 3, define se o bit especial deve ser igual a 1 para
que RIi = 1. (Comun. em rede)
RENi Habilita a recepção.
TB8i Nos modos 0 e 1, guarda cópia do bit 8 de transmissão Nos modos 2 e 3, guarda o valor do bit especial.
RB8i No modo 0 não é usado. No modo 1, se SM2i = 0, guarda o stop bit recebido. Nos modos 2 e 3, guarda o valor do bit especial recebido.
TIi Flag de fim de transmissão. TIi = 1 quando o último bit começa a ser transmitido.
RIi Flag de fim de recepção. RIi = 1 quando o último bit é recebido.
Interface SerialInterface Serial• Comunicação em Rede ou MultiprocessadorComunicação em Rede ou Multiprocessador
– Quando modo = 2 ou 3, e se SM2Quando modo = 2 ou 3, e se SM2ii = 1, a interrupção de recepção só é gerada = 1, a interrupção de recepção só é gerada se o bit especial = 1.se o bit especial = 1.
– Esta característica pode ser usada em redes mestre-escravo da seguinte forma:Esta característica pode ser usada em redes mestre-escravo da seguinte forma:
1) Se o mestre deseja se comunicar com um dos escravos,1) Se o mestre deseja se comunicar com um dos escravos, primeiro ele envia o endereço do escravo. primeiro ele envia o endereço do escravo.
2) Endereços diferem de dados porque endereços tem o bit2) Endereços diferem de dados porque endereços tem o bit especial = 1 e os dados tem este bit = 0. especial = 1 e os dados tem este bit = 0. 3) Se SM23) Se SM2ii = 1, nenhum escravo será interrompido por = 1, nenhum escravo será interrompido por bytes de dados. Mas todos serão interrompidos por bytes bytes de dados. Mas todos serão interrompidos por bytes de endereços. de endereços.
4) Ao receber seu endereço, o escravo faz com que 4) Ao receber seu endereço, o escravo faz com que SM2 SM2i i = 0 de modo a permitir a recepção de bytes de= 0 de modo a permitir a recepção de bytes de dados. dados.
Interface SerialInterface Serial• Taxas de Comunicação (Baud Rates)
– A interface serial requer um clock 16 vezes maior que a taxa de comunicação desejada.
• Baudrate Modo 0 = Freq. Clock / 12
• Baudrate Modo 2– SMOD é o bit 7 do registrador PCON
– baudrate = (2SMOD/64) x Freq. Clock, ouFreq. Clock / 64 se SMOD = 0Freq. Clock / 32 se SMOD = 1
Interface SerialInterface Serial• Baudrate Modos 1 e 3
– Pode ser fornecido pelo pelo Timer1 (padrão) ou pelo gerador de baudrate (apenas no 80517).
– Para usar o timer 1 faça BD = 0. Baudrate = (2SMOD / 32) x Freq.Timer1
• Se Modo Timer1 = 2 (auto-reload) Baudrate = 2SMOD x Freq.Clock
12 x 32 x (256 - TH1)
– Para usar o gerador de baudrate faça BD = 1 (BD é o bit 7 do registrador ADCON). Bom para taxas de 4800 e 9600 bit/s) Baudrate = (Freq. Clock x 2SMOD) / 2496