Академический Документы
Профессиональный Документы
Культура Документы
Projeto Fnix
BRAZIL IP
Responsveis: Diogo Jos Costa Alves {djca@cin.ufpe.br} Gustavo Jos Cavalcanti Cmara {gjcc@cin.ufpe.br}
Microcontrolador 8051
Fnix Project
Histrico de Alteraes
Data Verso Descrio Autor
24/07/03
0.1
Exemplo da descrio de um timer no modo Diogo, Gustavo de operao 0. Adicionada funcionalidade referente ao timer nos modo 1 e 3. Adicionada funcionalidade referente ao timer nos modos 0 e 2. Correo de pequenos erros. Correo de pequenos erros. Correo de pequenos erros. Correo de erros e melhoria na exposio das funcionalidades e diagramas. Diogo Gustavo Diogo, Gustavo Diogo, Gustavo Carlos, Diogo, Viviane Gustavo
Lista de Aprovadores
Nome Cargo
Timer
fenix_especificacao_8051_timer.doc
Pg 2/18
Microcontrolador 8051
Fnix Project
Contedo
1. Convenes, termos e abreviaes..................................................................................................... 4 2. Funcionalidade Timer n funcionando no modo 0............................................................................ 4 2.1 Descrio........................................................................................................................................ 5 2.2 Diagrama Comportamental......................................................................................................... 7 3. Funcionalidade Timer n funcionando no modo 1............................................................................ 7 3.1 Descrio........................................................................................................................................ 7 3.2 Diagrama Comportamental......................................................................................................... 9 4. Funcionalidade Timer n funcionando no modo 2.......................................................................... 10 4.1 Descrio...................................................................................................................................... 10 4.2 Diagrama Comportamental....................................................................................................... 12 5. Funcionalidade Timer 0 funcionando no modo 3.......................................................................... 12 5.1 Descrio...................................................................................................................................... 12 5.2 Diagrama Comportamental....................................................................................................... 14 6. Funcionalidade Timer 1 quando o Timer 0 est no modo 3 .......................................................... 15 6.1 Descrio...................................................................................................................................... 15 6.2 Diagrama Comportamental....................................................................................................... 17 Referncias.......................................................................................................................................... 18 [1] Documento de Requisitos; Documento de Especificao de Requisitos do Micro-controlador 8051, http://www.brazilip.org/fenix/projetos/8051/docs/BrazilIP_Requisitos_8051.doc;..................18 [2] MCS-51 Microcontller Family User Manual; Nmero 272383-002; fevereiro de 1994; Intel Corporation, em: http://www.cin.ufpe.br/~msml/especificacao/datasheet/intel_8051_27238302.pdf; ................................................................................................................................................................ 18 [3] Data Sheet 80C51 8-bit microcontroller family, 24 de Janeiro de 2003, Philps Semiconductors, em: http://www.cin.ufpe.br/~msml/especificacao/datasheet/P80C3XX2_8XC5XX2_6_datasheet.pdf; ................................................................................................................................................................ 18 [4] Documento de Especificao da Memria do Microcontrolador 8051;....................................... 18 fenix_especificacao_8051_memoria.doc;........................................................................................... 18
Timer
fenix_especificacao_8051_timer.doc
Pg 3/18
Microcontrolador 8051
Fnix Project
Bit que habilita o Timer n quando o GATE.n est ativado. Essa notao informa que o SINAL ser ativado no nvel lgico baixo. Registrador Timer Control, vide especificao da memria. Registradores TH0 e TH1, vide especificao da memria. Referindo-se a quaisquer dos Timers do 8051 (0 ou 1), e neste caso todos os termos fluxo de eventos que possuem um sufixo n devem ter esse n substitudo pelo valor usado em Timer n, ou seja, 0 ou 1. Registradores TL0 e TL1, vide especificao da memria. Registrador Timer Mode, vide especificao da memria. Fonte externa do clock para o Timer n.
TLn TMOD Tn
Timer
fenix_especificacao_8051_timer.doc
Pg 4/18
Microcontrolador 8051
Fnix Project
2.1
Descrio
Pr-condies: Os bits M0 e M1 relativos ao Timer n com que se quer trabalhar (ver descrio de TMOD na especificao da memria para saber os bits referentes ao Timer 0 e ao Timer 1) no devem estar setados (M0=0 e M1=0) para configurar o Timer n para funcionar no modo 0. Ps-condies: No se aplica.
2. No modo de operao zero apenas 13 bits so considerados (0-12), sendo os cinco bits menos significativos os cinco menos significativos do TLn e os os oito restantes os oito bits de THn. Os trs bits restantes de TLn so ignorados. Qualquer valor pode ser carregado neles (TLn e THn) antes do incio do funcionamento do Timer n, para configurar seu valor inicial. 3. O bit TRn setado, iniciando assim o funcionamento do Timer n. 4. O registrador (THn + TLn) vai sendo incrementado quando a fonte de clock passa de 1 para 0 at que atinja o valor 8191. 5. Quando o valor nos registradores THn + TLn for 8191, e ocorrer uma nova transio no clock, o Timer n seta o bit TFn (TFn=1), zera o timer (THn = 0 e TLn = 0) e retorna ao passo 4 desse fluxo.
Timer Clock
THou registrador (trador (TL0 ou Th0) a T1s tanto a TL0 como a TH0, TLn (5 bits) sendo que se for relacionado a TL0 o sufixo n ser n (8 bits) Figura 1. Timer n no modo 0.
TFn
Timer
fenix_especificacao_8051_timer.doc
Pg 5/18
Microcontrolador 8051
Fnix Project
[FS002] Fluxo secundrio Alterar Valor do Timer n 1. A qualquer momento o valor sendo incrementado pelo Timer n nos registradores TLn e THn podem ser alterados. Primeiro zeramos o bit TRn (TRn = 0) para que o Timer n seja desabilitado. O novo valor carregado em THn e TLn. O Timer n reiniciado setando TRn (TRn = 1).
2. 3.
[FS003] Fluxo secundrio Fonte de Clock Externa 1. Antes de iniciar o funcionamento do Timer n (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD C/T.n setado (C/T.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer n comear a incrementar o valor THn + TLn, s que para isso usar um clock externo, conectado a Tn.
1. Antes de iniciar o funcionamento do Timer n (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD GATE.n setado (GATE.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer n ir incrementar o valor nos registradores THn + TLn apenas quando INTn = 1.
Timer
fenix_especificacao_8051_timer.doc
Pg 6/18
Microcontrolador 8051
Fnix Project
2.2
Diagrama Comportamental
pr am ar odo ogr _m
I e dl TFn = 1, TLn = 0 e TH n = 0 ( ados porhar ar set dw e) par a_cont agem i ci ni a_cont agem overl fow O verl fow I em ent ncr ando r ni a_cont ei ci agem i em ent ncr a T R n = 1 (e I T n/ = 1 caso G at n = 1 ) N e. ( n set TR ado porsofw ar I Tn/ entad t e N r a ext na) er
Ti er n no m odo 0 m
3.1
Descrio
Pr-condies: Os bits M0 e M1 relativos ao Timer n com que se quer trabalhar (ver descrio de TMOD na especificao da memria para saber os bits referentes ao Timer 0 e ao Timer 1) devem estar setados de forma que M0=1 e M1=0, para configurar o Timer n para funcionar no modo 1. Ps-condies: No se aplica.
Timer
fenix_especificacao_8051_timer.doc
Pg 7/18
Microcontrolador 8051
Fnix Project
2. No modo de operao um 16 bits so considerados (0-15), sendo os oito bits menos significativos os oito de TLn e os os oito restantes os oito bits de THn. Qualquer valor pode ser carregado neles (TLn e THn) antes do incio do funcionamento do Timer n, para configurar seu valor inicial. 3. O bit TRn setado, iniciando assim o funcionamento do Timer n. 4. O registrador (THn + TLn) vai sendo incrementado quando a fonte de clock passa de 1 para 0 at que atinja o valor 65535. 5. Quando o valor nos registradores THn + TLn for 65535, e ocorrer uma nova transio no clock, o Timer n seta o bit TFn (TFn=1), zera o timer (THn = 0 e TLn = 0) e retorna ao passo 4 desse fluxo.
Timer Clock
THou registrador (trador (TL0 ou Th0) a T1s tanto a TL0 como a TH0, TLn (8 bits) sendo que se for relacionado a TL0 o sufixo n ser n (8 bits) Figura 2. Timer n no modo 1.
TFn
[FS002] Fluxo secundrio Alterar Valor do Timer n 1. A qualquer momento o valor sendo incrementado pelo Timer n nos registradores TLn e THn podem ser alterados. Primeiro zeramos o bit TRn (TRn = 0) para que o Timer n seja desabilitado. 2. O novo valor carregado em THn e TLn.
Timer fenix_especificacao_8051_timer.doc Pg 8/18
Microcontrolador 8051
Fnix Project
[FS003] Fluxo secundrio Fonte de Clock Externa 1. Antes de iniciar o funcionamento do Timer n (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD C/T.n setado (C/T.n = 1). Quando TRn for setado (TRn = 1), o Timer n comear a incrementar o valor THn + TLn, s que para isso usar um clock externo, conectado a Tn.
2.
1. Antes de iniciar o funcionamento do Timer n (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD GATE.n setado (GATE.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer n ir incrementar o valor nos registradores THn + TLn apenas quando INTn = 1.
3.2
Diagrama Comportamental
pr am ar odo ogr _m
T R n = 0, C /T. = 0 ou 1, n G at n = 0 ou 1 e. ( ados porsofw ar set t es) T Fn = 1, T Ln = 0 e TH n = 0 ( ados porhar ar set dw e) i ci ni a_cont agem overl fow O verl fow
I e dl
I em ent ncr ando r ni a_cont ei ci agem i em ent ncr a T R n = 1 (e I T n/ = 1 caso G at n = 1 ) N e. ( n set TR ado porsofw ar I T n/ entad t e N r a ext na) er
Ti er n no m odo 1 m
Timer
fenix_especificacao_8051_timer.doc
Pg 9/18
Microcontrolador 8051
Fnix Project
4.1
Descrio
Pr-condies: Os bits M0 e M1 relativos ao Timer n com que se quer trabalhar (ver descrio de TMOD na especificao da memria para saber os bits referentes ao Timer 0 e ao Timer 1) devem estar setados de forma que M0=0 e M1=1, para configurar o Timer n para funcionar no modo 2. Ps-condies: No se aplica.
2. No modo de operao dois 8 bits so considerados (0-7), sendo eles os oito bits de TLn, que ser incrementado quando o Timer estiver funcionando. No registrador THn armazenado um valor para recarregar o registrador TLn quando ocorrer overflow no Timer n. Qualquer valor pode ser carregado neles (TLn e THn) antes do incio do funcionamento do Timer n, para configurar seu valor inicial. 3. O bit TRn setado, iniciando assim o funcionamento do Timer n. 4. O registrador TLn vai sendo incrementado quando a fonte de clock passa de 1 para 0 at que atinja o valor 255. 5. Quando o valor no registrador TLn for 255, e ocorrer uma nova transio no clock, o Timer n seta o bit TFn (TFn=1), e carrega em TLn o valor armazendo em THn, e retorna ao passo 4 desse fluxo. Timer Clock TLn (8 bits) TFn
Microcontrolador 8051
Fnix Project
[FS001] Fluxo secundrio Timer n Desabilitado 1. O Timer n incrementado automaticamente apenas quando o bit TRn est setado. Sempre que o bit TRn assumir o valor zero, o incremento automtico do Timer n (THn + TLn) interrompido. 2 Os valores em TLn e THn permanecem os mesmos, e o incremento reiniciado quando TRn =1.
[FS002] Fluxo secundrio Alterar Valor do Timer n 1. A qualquer momento o valor sendo incrementado pelo Timer n nos registradores TLn e THn podem ser alterados. Primeiro zeramos o bit TRn (TRn = 0) para que o Timer n seja desabilitado. 2. O novo valor carregado em THn e TLn. 3. O Timer n reiniciado setando TRn (TRn = 1).
[FS003] Fluxo secundrio Fonte de Clock Externa 1. Antes de iniciar o funcionamento do Timer n (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD C/T.n setado (C/T.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer n comear a incrementar o valor THn + TLn, s que para isso usar um clock externo, conectado a Tn.
1. Antes de iniciar o funcionamento do Timer n (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD GATE.n setado (GATE.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer n ir incrementar o valor no registrador TLn apenas quando INTn = 1.
Timer
fenix_especificacao_8051_timer.doc
Pg 11/18
Microcontrolador 8051
Fnix Project
4.2
Diagrama Comportamental
pr am ar odo ogr _m
T R n = 0, C /T. = 0 ou 1, n G at n = 0 ou 1 e. ( ados porsofw ar set t es) T Fn = 1, T Ln = TH n ( ados porhar ar set dw e) i ci ni a_cont agem overl fow O verl fow
I e dl
I em ent ncr ando r ni a_cont ei ci agem i em ent ncr a T R n = 1 (e I T n/ = 1 caso G at n = 1 ) N e. ( n set TR ado porsofw ar I T n/ entad t e N r a ext na) er
Ti er n no m odo 2 m
5.1
Descrio
Pr-condies: Os bits M0 e M1 relativos ao Timer 0 (ver descrio de TMOD na especificao da memria para saber os bits referentes ao Timer 0) devem estar setados de forma que M0=1 e M1=1, para configurar o Timer 0 para funcionar no modo 3. Ps-condies: No se aplica.
Timer
fenix_especificacao_8051_timer.doc
Pg 12/18
Microcontrolador 8051
Fnix Project
a. b.
O bit de TMOD C/T.n = 0, para que a fonte de clock do Timer seja 1/12 da freqncia do oscilador interno. O bit de TMOD Gate.n = 0, para que a ativao do Timer seja determinada apenas pelo bit TRn do registrador TCON.
3. Qualquer valor pode ser carregado no registrador (TL0 ou TH0) antes do incio do funcionamento do Timer, para configurar seu valor inicial. 4. O bit TRn setado, iniciando assim o funcionamento do Timer. 5. O registrador (TL0 ou TH0) vai sendo incrementado quando a fonte de clock passa de 1 para 0 at que atinja o valor 255. 6. Quando o valor no registrador (TL0 ou TH0) for 255, e ocorrer uma nova transio no clock, o Timer seta o bit TFn (TFn=1), o valor do registrador (TL0 ou TH0) passa a ser 0, e retorna ao passo 5 desse fluxo. Timer Clock Timer Clock TL0 (8 bits) TH0 (8 bits) Figura 4. Timer 0 no modo 3. TF0 TF1
[FS002] Fluxo secundrio Alterar Valor do Timer 1. A qualquer momento o valor sendo incrementado pelo Timer no registrador (TL0 ou TH0) podem ser alterados. Primeiro zeramos o bit TRn (TRn = 0) para que o Timer seja desabilitado. 2. O novo valor carregado no registrador (TH0 ou TL0). 3. O Timer reiniciado setando TRn (TRn = 1).
Timer
fenix_especificacao_8051_timer.doc
Pg 13/18
Microcontrolador 8051
Fnix Project
1. Antes de iniciar o funcionamento do Timer (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD C/T.n setado (C/T.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer comear a incrementar o valor do registrador (TH0 ou TL0), s que para isso usar um clock externo, conectado a Tn.
1. Antes de iniciar o funcionamento do Timer (ou se ele estiver em funcionamento basta desativ-lo, setando TRn = 0), o bit de TMOD GATE.n setado (GATE.n = 1). 2. Quando TRn for setado (TRn = 1), o Timer ir incrementar o valor no registrador (TH0 ou TL0) apenas quando INTn = 1.
5.2
Diagrama Comportamental
pr am ar odo ogr _m
I e dl TFn = 1, TL0 = 0 ou TH 0 = 0 ( ados porhar ar set dw e) par a_cont agem i ci ni a_cont agem overl fow O verl fow I em ent ncr ando r ni a_cont ei ci agem i em ent ncr a T R n = 1 (e I T n/ = 1 caso G at n = 1 ) N e. ( n set TR ado porsofw ar I T n/ entad t e N r a ext na) er
Ti er 0 no m odo 3 m
Timer
fenix_especificacao_8051_timer.doc
Pg 14/18
Microcontrolador 8051
Fnix Project
Pr-condies: Com o Timer 0 no modo 3, os bits relacionados ao Timer 1 agora esto relacionados ao Timer em TH0. Mesmo assim o Timer 1 ainda pode ser usado. Ele no funciona no modo 3, mas pode ser colocado normalmente nos modos 0, 1 ou 2. Ps-condies: No se aplica.
Timer Clock
TH1ou registrador (trador (TL0 ou Th0) a T1s tanto a TL0 como a TH0, TL1 (5 bits) sendo que se for relacionado a TL0 o sufixo n ser n (8 bits)
Timer
fenix_especificacao_8051_timer.doc
Pg 15/18
Microcontrolador 8051
Fnix Project
Timer Clock
TH1ou registrador (trador (TL0 ou Th0) a T1s tanto a TL0 como a TH0, TL1 (8 bits) sendo que se for relacionado a TL0 o sufixo n ser n (8 bits) TL1 (8 bits)
Timer Clock
Reload TH1 (8 bits) Figura 5. Timer 1 no modo 0, 1 e 2 respectivamente, com o Timer 0 no modo 3.
Timer
fenix_especificacao_8051_timer.doc
Pg 16/18
Microcontrolador 8051
Fnix Project
6.2
Diagrama Comportamental
pr am ar odo ogr _m
O verl fow
i em ent ncr a
r ni a_cont ei ci agem
Timer
fenix_especificacao_8051_timer.doc
Pg 17/18
Microcontrolador 8051
Fnix Project
Referncias
[1] Documento de Requisitos; Documento de Especificao de Requisitos do Micro-controlador 8051, http://www.brazilip.org/fenix/projetos/8051/docs/BrazilIP_Requisitos_8051.doc; [2] MCS-51 Microcontller Family User Manual; Nmero 272383-002; fevereiro de 1994; Intel Corporation, em: http://www.cin.ufpe.br/~msml/especificacao/datasheet/intel_8051_27238302.pdf; [3] Data Sheet 80C51 8-bit microcontroller family, 24 de Janeiro de 2003, Philps Semiconductors, em: http://www.cin.ufpe.br/~msml/especificacao/datasheet/P80C3XX2_8XC5XX2_6_datasheet.pdf; [4] Documento de Especificao da Memria do Microcontrolador 8051; fenix_especificacao_8051_memoria.doc;
Timer
fenix_especificacao_8051_timer.doc
Pg 18/18