Escolar Documentos
Profissional Documentos
Cultura Documentos
TEMPORIZADORES E CONTADORES
Contador: o sinal deve permanecer pelo menos 1 ciclo de máquina em nível alto e
outro ciclo de máquina em nível baixo. Portanto, a freqüência máxima de resposta do
contador será de 1/24 da freqüência do clock.
IE =
EA - - ES ET1 EX1 ET0 EX0
todas externa 0
serial timer/counter 0
timer/counter 1 externa 1
61
MCS51
Módulo 5 Prof. Celso
TIMER 1 TIMER 0
TMOD =
GATE C/T M1 M0 GATE C/T M1 M0
M1 M0 REGISTROS
0 0 THi – 8 bits Contador de 13 bits
TLi – 5 bits Compatível com 8048
0 1 THi – 8 bits Contador de 16 bits
TLi – 8 bits
1 0 THi – recarga Contador de 8 bits com
TLi – 8 bits recarga
1 1 TH0 – 8 bits 2 contadores de 8 bits
TL0 – 8 bits
TH1 e TL1 - parado
TIMERS/COUTERS INTERRUPÇÕES
TCON =
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IE0
overflow borda/nível
timer 1 externa 0
run/stop flag da interrupção
timer 1 externa 0
overflow borda/nível
timer 0 externa 1
run/stop flag da interrupção
timer 0 externa 1
62
MCS51
Módulo 5 Prof. Celso
MODOS DE OPERAÇÃO
63
MCS51
Módulo 5 Prof. Celso
64
MCS51
Módulo 5 Prof. Celso
Escolha do modo:
Modo 0 = 13 bits Î 213 = 8.192 contagens possíveis :::: THi, TLi = 8.192-N
Modo 1= 16 bits Î 216 = 65.536 contagens possíveis :::: THi, TLi = 65.536-N
Modo 2 = 8 bits Î 28 = 256 contagens possíveis :::: THi e TLi = 256-N
8
Modo 3 = 8 bits Î 2 = 256 contagens possíveis :::: TH0 e TL0 = 256-N
Comandos para:
Ligar temporizador/contador: SETB TR0 ou SETB TR1
Desligar temporizador/contador: CLR TR0 ou CLR TR1
Comandos quando não utiliza rotina de interrução:
Esperar acabar um tempo programado: JNB TF0, $ ou JNB TF1, $
Apagar flags: CLR TF0 ou CLR TF1
65
MCS51
Módulo 5 Prof. Celso
66
MCS51
Módulo 5 Prof. Celso
Cálculo de N:
12.10 6
N= = 10.000
12.100
Programando IE
67
MCS51
Módulo 5 Prof. Celso
12MHz
Cálculo de N: N= = 10.000 ∴modo 1 escolhido
12.100
Escolhendo o timer 0
Modo 1 Î valor inicial = 65536-10000 = 55536
TMOD = 01h
GATE C/T* M1 M0 GATE C/T* M1 M0
0 0 0 0 0 0 0 1
IE = 82h
EA - - ES ET1 EX1 ET0 EX0
1 0 0 0 0 0 1 0
$mod51
68
MCS51
Módulo 5 Prof. Celso
12MHz
Cálculo de N: N= = 10.000 ∴modo 1 escolhido
12.100
Escolhendo o timer 0
Modo 1 Î valor inicial = 65536-10000 = 55536
TMOD = 01h
GATE C/T* M1 M0 GATE C/T* M1 M0
0 0 0 0 0 0 0 1
IE = 82h
EA - - ES ET1 EX1 ET0 EX0
1 0 0 0 0 0 1 0
$mod51
recarga equ 55536 ; valor de carga do timer
69
MCS51
Módulo 5 Prof. Celso
TMOD = 01h
GATE C/T* M1 M0 GATE C/T* M1 M0
IE = 82h
EA - - ES ET1 EX1 ET0 EX0
70
MCS51
Módulo 5 Prof. Celso
SA SB % nivel alto
0 0 0
0 1 20 %
1 0 50 %
1 1 80 %
71