TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama...
Transcript of TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama...
![Page 1: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/1.jpg)
TEMPORIZADORES Y CONTADORES (T/C)(Timers/Counters)
![Page 2: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/2.jpg)
TEMPORIZADORES Y CONTADORES 2
Objetivos
? Conocer y comprender la utilidad de los temporizadores y contadores.
? Comprender su estructura y lógica de funcionamiento.
? Sintetizar programas que hagan uso del sistema de contadores/temporizadores.
? Sintetizar manejadores de interrupción para los contadores/temporizadores.
![Page 3: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/3.jpg)
TEMPORIZADORES Y CONTADORES 3
Resumen de contenidos
1 Introducción.
2 Los Temporizadores/Contadores 0 y 1.2.1 Características básicas.2.2 Hardware involucrado.2.3 Diagrama de bloques.2.4 Registros SFR TMOD y TCON.2.5 Modos de funcionamiento.2.6 Ejemplos.
3 Interrupciones asociadas a los contadores/temporizadores.
4 Ejemplos de aplicación.4.1 Medición del ancho de un pulso positivo.4.2 Medición del período de una señal.4.3 Generación de un pulso.4.4 Generación de una señal PWM.
![Page 4: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/4.jpg)
TEMPORIZADORES Y CONTADORES 4
1 - Introducción
![Page 5: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/5.jpg)
TEMPORIZADORES Y CONTADORES 5
1 - Introducción
? Contabilizar eventos externos– Contar cajas en una cinta transportadora, vehículos en una carretera, ...– Velocidad de un motor (encoder)
Muchas aplicaciones de automatización y regulación necesitan ...
?Medir frecuencias/periodos de señales digitales– Sensores.– Receptores de señales infrarrojas, radio ...
? Realizar retardos de precisión o tareas periódicas– Semáforos, pasos a nivel, ...– Generación de señales PWM, ondas cuadradas, control de potencia
![Page 6: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/6.jpg)
TEMPORIZADORES Y CONTADORES 6
1 - Introducción
Motor Encoder
Pulsos
FrecuenciaTensión
PIDanalógico
Referencia
Puenteen H
ModuladorPWM
PWM
EJEMPLO: Control velocidad motor asignatura Regulación Automática
![Page 7: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/7.jpg)
TEMPORIZADORES Y CONTADORES 7
1 - Introducción
EncoderMotor
Pulsos
Puenteen H
PWM
PIDdigital
Referencia
Microcontrolador
EJEMPLO: Control velocidad motor asignatura Regulación Automática
![Page 8: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/8.jpg)
TEMPORIZADORES Y CONTADORES 8
1 - Introducción
EJEMPLO:
? El encoder genera una onda cuadrada con frecuencia proporcional a la velocidad del motor? Midiendo el ancho del periodo ON (Ton) se podría calcular la velocidad
Toff = “0” Ton = “1”
Encoder
Pulsos
![Page 9: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/9.jpg)
TEMPORIZADORES Y CONTADORES 9
1 - Introducción
Medir ancho de un pulso
“0” “1”
Cuenta=0
Nivel0?
SI
Incrementacuenta
Nivel1?
SI
Encoder
Pulsos µCP1.0
... MOV DPTR,#0es_0: JNB P1.0,es_0es_1: INC DPTR JB P1.0,es_1 ...
... MOV DPTR,#0es_0: JNB P1.0,es_0es_1: INC DPTR JB P1.0,es_1 ...
... MOV DPTR,#0es_0: JNB P1.0,es_0es_1: INC DPTR JB P1.0,es_1 ...
![Page 10: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/10.jpg)
TEMPORIZADORES Y CONTADORES 10
1 - Introducción
Medir ancho de un pulso
“0” “1”
Cuenta=0
Nivel0?
SI
Incrementacuenta
Nivel1?
SI
Encoder
Pulsos µCP1.0
unsigned int contador=0;while (!P1.0) {}while (P1.0) { contador++; }
![Page 11: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/11.jpg)
TEMPORIZADORES Y CONTADORES 11
1 - Introducción
? Problemas al resolverlo por software.– Hay que saber cuánto tardan en ejecutarse las instrucciones.– No se puede trabajar con frecuencias altas.– Si hay interrupciones es imposible lograr precisión.– La CPU desperdicia su tiempo y no puede hacer otras cosas.
? Los microcontroladores integran temporizadores/contadores (T/C).– No necesitan circuitos adicionales (integración).– Sin sobrecargar a la CPU (funcionamiento en paralelo con la CPU).– Programación sencilla y transparente.
? Solución: Emplear contadores y/o temporizadores (T/C).
![Page 12: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/12.jpg)
TEMPORIZADORES Y CONTADORES 12
1 - Introducción
? Los T/C tienen innumerables aplicaciones.– Contabilización de eventos.
• Encoders, contadores de objetos, ...
– Generación de señales digitales. PWM.• Control de potencia, motores de continua, motores AC, motores P. a P., ...• Generación de señales para transmisión/recepción de datos.
– Medición de señales digitales.• Sensores de humedad, de distancia, de luminosidad...
– Temporizaciones.• Retardos, tareas periódicas, planificación de tareas, ...
? Cada generación de microcontroladores añade más capacidad.– Intel 8051 -> 2 T/C: T/C0, T/C1– Intel 8052 -> 3 T/C: T/C0, T/C1, T/C2– Siemens SAB80C517 -> 3 T/C: T/C0, T/C1, T/C2 , unidad comparación/captura– Motorola MPC555 (32 bits) -> 2 Time Processor Unit 3 (TPU3)– Atmel T89C51CC01 -> 3 T/C: T/C0, T/C1, T/C2 , unidad comparación/captura
![Page 13: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/13.jpg)
TEMPORIZADORES Y CONTADORES 13
2 – Los Temporizadores/Contadores 0 y 1T/C 0 y T/C 1 en la familia MCS-51
![Page 14: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/14.jpg)
TEMPORIZADORES Y CONTADORES 14
? Dos temporizadores/contadores “casi” idénticos: T/C0 y T/C1
? Registro de cuenta de hasta 16 bits
– Cuenta tiempo: TEMPORIZADOR
– Cuenta eventos: CONTADOR
? Contabilización ascendente (cuenta = cuenta+1).
? El desborde se usa para detectar el fin de cuenta/temporización.
? Dispone de hardware/software para arrancar y parar la cuenta.
2 - T/C 0 y T/C 1 en la familia MCS-51
Características básicas
![Page 15: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/15.jpg)
TEMPORIZADORES Y CONTADORES 15
? A OTRO SITIO
2.1 Características básicas
1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0
Valor cuenta = 9746h = 38726
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 16: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/16.jpg)
TEMPORIZADORES Y CONTADORES 16
2.2 Hardware involucrado
TEMPORIZADOR/CONTADOR 0 (T/C 0)– Registros (zona SFR):
• TMOD (modo operación) (dir. 89h por máscara).• TCON (control operación) (dir. 88h bit a bit).• TL0, TH0 (registros cuenta) (dir. 8Ah y 8Ch).
– Terminales (Pines):• T0 (P3.4) (entrada de pulsos).• /INT0 (P3.2) (control de puerta).
TEMPORIZADOR/CONTADOR 1 (T/C 1)– Registros (zona SFR):
• TMOD (modo operación) (dir. 89h por máscara).• TCON (control operación) (dir. 88h bit a bit).• TL1, TH1 (registros cuenta) (dir. 8Bh y 8Dh).
– Terminales (Pines):• T1 (P3.5) (entrada de pulsos).• /INT1 (P3.3) (control de puerta).
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 17: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/17.jpg)
TEMPORIZADORES Y CONTADORES 17
2.3 Diagrama de bloques
TEMPORIZADOR/CONTADOR 0 (T/C 0)– SFR: TMOD (modo operación), TCON (control operación), TL0, TH0 (registros cuenta).– Pines: T0 (P3.4) (entrada de pulsos), /INT0 (P3.2) (control de puerta).
TEMPORIZADOR/CONTADOR 1 (T/C 1)– SFR: TMOD (modo operación), TCON (control operación), TL1, TH1 (registros cuenta).– Pines: T1 (P3.5) (entrada de pulsos), /INT1 (P3.3) (control de puerta).
Controlde puerta
ContadorGeneración:
- Eventos externos
- Señal reloj interno
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 18: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/18.jpg)
TEMPORIZADORES Y CONTADORES 18
2.3 Diagrama de bloques
TEMPORIZADOR/CONTADOR 0 (T/C 0)– SFR: TMOD (modo operación), TCON (control operación), TL0, TH0 (registros cuenta).– Pines: T0 (P3.4) (entrada de pulsos), /INT0 (P3.2) (control de puerta).
TEMPORIZADOR/CONTADOR 1 (T/C 1)– SFR: TMOD (modo operación), TCON (control operación), TL1, TH1 (registros cuenta).– Pines: T1 (P3.5) (entrada de pulsos), /INT1 (P3.3) (control de puerta).
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
(P3.4)
pin/INT0
(P3.2)
1
01 = cerrado
Contador
Controlde puerta
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 19: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/19.jpg)
TEMPORIZADORES Y CONTADORES 19
2.3 Diagrama de bloques
TEMPORIZADOR/CONTADOR 0 (T/C 0)– SFR: TMOD (modo operación), TCON (control operación), TL0, TH0 (registros cuenta).– Pines: T0 (P3.4) (entrada de pulsos), /INT0 (P3.2) (control de puerta).
TEMPORIZADOR/CONTADOR 1 (T/C 1)– SFR: TMOD (modo operación), TCON (control operación), TL1, TH1 (registros cuenta).– Pines: T1 (P3.5) (entrada de pulsos), /INT1 (P3.3) (control de puerta).
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
(P3.4)
pin/INT0
(P3.2)
1
01 = cerrado
Contador
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 20: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/20.jpg)
TEMPORIZADORES Y CONTADORES 20
2.3 Diagrama de bloques
TEMPORIZADOR/CONTADOR 0 (T/C 0)– SFR: TMOD (modo operación), TCON (control operación), TL0, TH0 (registros cuenta).– Pines: T0 (P3.4) (entrada de pulsos), /INT0 (P3.2) (control de puerta).
TEMPORIZADOR/CONTADOR 1 (T/C 1)– SFR: TMOD (modo operación), TCON (control operación), TL1, TH1 (registros cuenta).– Pines: T1 (P3.5) (entrada de pulsos), /INT1 (P3.3) (control de puerta).
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
(P3.4)
pin/INT0
(P3.2)
1
01 = cerrado
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 21: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/21.jpg)
TEMPORIZADORES Y CONTADORES 21
2.3 Diagrama de bloques
TEMPORIZADOR/CONTADOR 0 (T/C 0)– SFR: TMOD (modo operación), TCON (control operación), TL0, TH0 (registros cuenta).– Pines: T0 (P3.4) (entrada de pulsos), /INT0 (P3.2) (control de puerta).
TEMPORIZADOR/CONTADOR 1 (T/C 1)– SFR: TMOD (modo operación), TCON (control operación), TL1, TH1 (registros cuenta).– Pines: T1 (P3.5) (entrada de pulsos), /INT1 (P3.3) (control de puerta).
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
(P3.4)
pin/INT0
(P3.2)
1
01 = cerrado
Interrupción
(si está habilitada)
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 22: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/22.jpg)
TEMPORIZADORES Y CONTADORES 22
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
2 - T/C 0 y T/C 1 en la familia MCS-51
2.3 Diagrama de bloques
T/C 1
T/C 0
![Page 23: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/23.jpg)
TEMPORIZADORES Y CONTADORES 23
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
T/C 0T/C 1
2.4 Registros SFR TMOD y TCON
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 24: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/24.jpg)
TEMPORIZADORES Y CONTADORES 24
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 25: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/25.jpg)
TEMPORIZADORES Y CONTADORES 25
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin-INT0
1
01 = cerrado
InterrupciónBit C/TSelección modo
contador o temporizador. 0 -> temporizador
1 -> contador
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 26: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/26.jpg)
TEMPORIZADORES Y CONTADORES 26
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
? Operación como temporizador– Cuentan ciclos de máquina (1 ciclo máquina (C.M.) = 12 ciclos de reloj).
? Operación como contador– Detección de flancos de bajada en el pin T0 (P3.4).– Muestreo cada CM -> Flanco de bajada = detectar “1” y después “0”.– Máxima frecuencia detectable será 1/24 frecuencia reloj.
“0”“1”
C.M.
“0”“0”
C.M.
01
2.4 Registros SFR TMOD y TCON
pinT0
Pulso muy estrecho:¡se pierde!
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 27: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/27.jpg)
TEMPORIZADORES Y CONTADORES 27
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Bit TR0Activación T/C 0.
0 -> desactivado1 -> activado
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 28: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/28.jpg)
TEMPORIZADORES Y CONTADORES 28
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Bit GATEControl de puerta.
0 -> interno (software) 1 -> externo (hardware)
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 29: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/29.jpg)
TEMPORIZADORES Y CONTADORES 29
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Bit GATEControl de puerta.
0 -> interno (software) 1 -> externo (hardware)
D1 0 D
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 30: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/30.jpg)
TEMPORIZADORES Y CONTADORES 30
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Bit GATEControl de puerta.
0 -> interno (software) 1 -> externo (hardware)
D0 1 1
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 31: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/31.jpg)
TEMPORIZADORES Y CONTADORES 31
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Modo Modo 0: Contador 13 bits. Modo 1: Contador 16 bits. Modo 2: Cont. 8 bit autorrecarga Modo 3: Desdoble (T/C0)
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 32: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/32.jpg)
TEMPORIZADORES Y CONTADORES 32
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
ContadorRegistros SFR TH0 y TL0.
Ascendente.Y cuando desborda ...
111...100111...101111...110111...111000...000000...001000...010 1
Interrupción2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 33: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/33.jpg)
TEMPORIZADORES Y CONTADORES 33
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Bit TF0Timer flag 0.
1 -> desbordePERO NO SE DETIENE
EL CONTADOR
2.4 Registros SFR TMOD y TCON
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 34: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/34.jpg)
TEMPORIZADORES Y CONTADORES 34
Ejemplo:
Se desea temporizar un intervalo de 125 ?s. ¿Cuál es el valor acargar como cuenta inicial?
Para un valor de fOSC=12MHz:
Duración de 1 Ciclo Máquina:
1
12MHz*12=1? s
Si se utilizan 8 bits: 256-125=131=83H
Si se utilizan 16 bits: 65536-125=65411=FF83H
Duración=125?s=1?s*125Duración=125?s=1?s*Cuenta
THx=? TLx=131
THx=255 TLx=131
THx=? TLx=131
THx=255 TLx=131
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 35: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/35.jpg)
TEMPORIZADORES Y CONTADORES 35
Ejemplo:
Se desea temporizar un intervalo de 2s. ¿Cuál es el valor acargar como cuenta inicial? (fOSC=12MHz)
Duración=2000000? s=1? s*Cuenta
Duración=2000000? s=1? s*2000000 No cabe en 16 bits
No cabe en 16 bits
Solución: Contabilizar desbordes del contador (Con 16 bits cada
desborde equivale a 65536 ? s).
Desbordes = 30 Resto_hasta_completar = 33920
Cuenta = 30*65536+33920 = 2000000
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 36: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/36.jpg)
TEMPORIZADORES Y CONTADORES 36
M1 M0 Modo
0 0 0Temporizador/contador de 8 bits con THx. TLx actúa como preescala de 5 bits (los demenor peso) (13 bits en total). (los 3 bits de mayor peso de TLx son de valorindeterminado)
0 1 1 Temporizador/contador de 16 bits, con THx y TLx en cascada
1 0 2 Temporizador/contador de 8 bits con autorrecarga. THx contiene el valor de recargapara TLx tras cada desbordamiento
1 1 3Para el temporizador 0, TL0 y TH0 son dos temporizadores/contadores de 8 bits,controlados con los bits de control de los temporizadores 0 y 1 respectivamente.Temporizador 1 inactivo.
2.5 Modos de funcionamiento
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 37: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/37.jpg)
TEMPORIZADORES Y CONTADORES 37
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
M1 M0 Modo
0 0 0 Temporizador/contador de 8 bits con THx. TLx actúa como preescala de 5 bits (13 bitsen total).
0 1 1 Temporizador/contador de 16 bits, con THx y TLx en cascada
1 0 2 Temporizador/contador de 8 bits con autorrecarga. THx contiene el valor de recargapara TLx tras cada desbordamiento
1 1 3Para el temporizador 0, TL0 y TH0 son dos temporizadores/contadores de 8 bits,controlados con los bits de control de los temporizadores 0 y 1 respectivamente.Temporizador 1 inactivo.
TL05 bits
de menor peso
TH08 bits
MODO 0: Contador de 13 bits
LSB MSB
13 bits
2.5 Modos de funcionamiento
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 38: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/38.jpg)
TEMPORIZADORES Y CONTADORES 38
LSB MSB
16 bits
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
M1 M0 Modo
0 0 0 Temporizador/contador de 8 bits con THx. TLx actúa como preescala de 5 bits (13 bitsen total).
0 1 1 Temporizador/contador de 16 bits, con THx y TLx en cascada
1 0 2 Temporizador/contador de 8 bits con autorrecarga. THx contiene el valor de recargapara TLx tras cada desbordamiento
1 1 3Para el temporizador 0, TL0 y TH0 son dos temporizadores/contadores de 8 bits,controlados con los bits de control de los temporizadores 0 y 1 respectivamente.Temporizador 1 inactivo.
TL0 8 bits
TH08 bits
MODO 1: Contador de 16 bits
2.5 Modos de funcionamiento
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 39: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/39.jpg)
TEMPORIZADORES Y CONTADORES 39
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
M1 M0 Modo
0 0 0 Temporizador/contador de 8 bits con THx. TLx actúa como preescala de 5 bits (13 bitsen total).
0 1 1 Temporizador/contador de 16 bits, con THx y TLx en cascada
1 0 2 Temporizador/contador de 8 bits con autorrecarga. THx contiene el valor de recargapara TLx tras cada desbordamiento
1 1 3Para el temporizador 0, TL0 y TH0 son dos temporizadores/contadores de 8 bits,controlados con los bits de control de los temporizadores 0 y 1 respectivamente.Temporizador 1 inactivo.
TL0 8 bits
TH08 bits
MODO 2: Contador de 8 bits con autorrecarga
Recarga
2.5 Modos de funcionamiento
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 40: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/40.jpg)
TEMPORIZADORES Y CONTADORES 40
M1 M0 Modo
0 0 0 Temporizador/contador de 8 bits con THx. TLx actúa como preescala de 5 bits (13 bitsen total).
0 1 1 Temporizador/contador de 16 bits, con THx y TLx en cascada
1 0 2 Temporizador/contador de 8 bits con autorrecarga. THx contiene el valor de recargapara TLx tras cada desbordamiento
1 1 3Para el temporizador 0, TL0 y TH0 son dos temporizadores/contadores de 8 bits,controlados con los bits de control de los temporizadores 0 y 1 respectivamente.Temporizador 1 inactivo.
MODO 3: Desdoble T/C 0
2.5 Modos de funcionamiento
OSC 1/12
TL0??????
TH0??????
TF0
pin T0
Intr
TR1
TF1 Intr
GATE
pin INT0
TR0
TL0 8 bits
TH08 bits
C/T1
0
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 41: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/41.jpg)
TEMPORIZADORES Y CONTADORES 41
Se desea contabilizar los vehículos que circulan por una carretera.NO excederán de 30.000.
? PASO 1: ¿Contador o temporizador?– Contador.
? PASO 2: ¿Control puerta externo o interno? (GATE)– Interno.
? PASO 3: Modo 0 (13 bits), Modo 1 (16 bits) o Modo 2 (8 bits rec.)– Modo 1. En principio podemos contar hasta 65535.
? PASO 4: ¿Valor inicial del contador?– 0.
2.6 Ejemplo de un contador
µCT0 0
Cuenta
12
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 42: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/42.jpg)
TEMPORIZADORES Y CONTADORES 42
– Contador.– Interno– Modo 1. En principio podemos contar hasta 65535.– 0.
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
10 10
TH0=0x00; TL0=0x00;
2.6 Ejemplo de un contadorSe desea contabilizar los vehículos que circulan por una carretera.NO excederán de 30.000.
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 43: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/43.jpg)
TEMPORIZADORES Y CONTADORES 43
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
10 10
TH0=0x00; TL0=0x00;
2.6 Ejemplo de un contador
Se desea contabilizar los vehículos que circulan por una carretera. NO excederán de 30.000.
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A; sbit TF0=TCON^5, TR0=TCON^4; void main(void) { int vehiculos;/* Para contabilizar vehículos */ TMOD = 0x05; /* 0101(b => T/C 0, control sw, contador, modo 1 */ TH0=0x00; TL0=0x00; /* sigue ... */ }
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 44: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/44.jpg)
TEMPORIZADORES Y CONTADORES 44
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A; sbit TF0=TCON^5, TR0=TCON^4; void main(void) { int vehiculos; TMOD = 0x05; /* T/C 0, modo 1, soft, contador */ TH0=0x00; TL0=0x00; TR0=1; /* arrancar timer */ while(1) { /* hacer otras cosas */ TR0=0; /* evitar condiciones de carrera */ vehiculos = TH0*256 + TL0; TR0=1; } }
vehiculos = TH0;vehiculos = vehiculos << 8;vehiculos = vehiculos | TL0;
2.6 Ejemplo de un contadorSe desea contabilizar los vehículos que circulan por una carretera.NO excederán de 30.000.
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 45: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/45.jpg)
TEMPORIZADORES Y CONTADORES 45
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A; sbit TF0=TCON^5, TR0=TCON^4; void main(void) { unsigned long vehiculos, desbordes=0; TMOD = 0x05; /* timer 0, modo 1, soft. */ TH0=0x00; TL0=0x00; TF0=0; TR0=1; /* arrancar timer */ while(1) { /* hacer otras cosas */ if (TF0==1) { TF0=0; desbordes++; } TR0=0; /* evitar condiciones de carrera */ vehiculos = desbordes*65536 + TH0*256 + TL0; TR0=1;
}}
2.6 Ejemplo de un contador (ampliación)Se desea contabilizar los vehículos que circulan por una carretera.Mejora, 4.000 millones de vehículos.
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 46: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/46.jpg)
TEMPORIZADORES Y CONTADORES 46
2.6 Ejemplo de un temporizadorSe desea realizar un retardo de 10 ms. Reloj del ?C de 12 Mhz
SMáquinaCiclo ?1reloj de períodos 12
Mhz 121 ??
desbordehastacuentasSmS 000.10000.1010 ?? ?
? PASO 1: ¿Contador o temporizador?– Temporizador.
? PASO 2: ¿Control puerta externo o interno? (GATE)– Interno.
hFDcuenta 08536.55000.10536.65216 ?????
? PASO 3: Modo 0 (13 bits), Modo 1 (16 bits) o Modo 2 (8 bits rec.)– Modo 1.
? PASO 4: ¿Valor inicial del contador?
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 47: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/47.jpg)
TEMPORIZADORES Y CONTADORES 47
2.6 Ejemplo de un temporizadorSe desea realizar un retardo de 10 ms. Reloj del ?C de 12 Mhz
TH0=0xD8; TL0=0xF0;
– Temporizador.– Interno– Modo 1.– 55.536 (D8F0h)
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
T/C 1 T/C 0
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
00 10
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 48: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/48.jpg)
TEMPORIZADORES Y CONTADORES 48
2.6 Ejemplo de un temporizadorSe desea realizar un retardo de 10 ms. Reloj del ?C de 12 Mhz
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A; sbit TF0=TCON^5, TR0=TCON4; void main(void) { /* ... */ TMOD |= 0x01; /* timer 0, modo 1, soft. */ TMOD &= 0xF1; TH0=0xD8; TL0=0xF0; TF0=0; TR0=1; /* arrancar timer */ while(!TF0); /* esperar desborde */ /* ... */ }
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 49: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/49.jpg)
TEMPORIZADORES Y CONTADORES 49
? AYUDA:
– Prototipo función: void delay_ms(unsigned int ms);– Calcular ciclos de máquina a esperar y usar un timer para contabilizarlos– Emplear mecanismo de desborde para realizar temporizaciones grandes
ActividadSe desea disponer de una función en lenguaje C para realizarretardos de precisión del orden de milisegundos. Reloj del ? C de 12Mhz.
Solución
2 - T/C 0 y T/C 1 en la familia MCS-51
![Page 50: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/50.jpg)
TEMPORIZADORES Y CONTADORES 50
3 – Interrupciones asociadas a loscontadores/temporizadores
![Page 51: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/51.jpg)
TEMPORIZADORES Y CONTADORES 51
? Permite sacar mayor partido al sistema.? Liberan a la CPU de tener que encuestar flag de desborde.
Contador
OSC 1/12
C/T
GATE
TR0
TF0pinT0
pin/INT0
1
0 1 = cerrado
Interrupción
Descripción Nombre Flag hab. (IEN0)
Flag act. (TCON) Vector Borrado Núm
Interrup
Cont./Temp. 0 T/C0 ET0 TF0 000Bh Hw 1 Cont./Temp.1 T/C1 ET1 TF1 001Bh Hw 3
Bit ET0Habilitación deinterrupción.
3 – Interrupciones asociadas a los T/C
![Page 52: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/52.jpg)
TEMPORIZADORES Y CONTADORES 52
Descripción Nombre Flag hab. (IEN0)
Flag act. (TCON) Vector Borrado Núm
Interrup
Cont./Temp. 0 T/C0 ET0 TF0 000Bh Hw 1 Cont./Temp.1 T/C1 ET1 TF1 001Bh Hw 3
3 – Interrupciones asociadas a los T/C
? Permite sacar el máximo partido? Liberan a la CPU de tener que
encuestar flag de desborde
Contador
OSC 1/12
C/T
GATE
TR0
TF0pinT0
pin/INT0
1
0 1 = cerrado
Interrupción
Bit TF0Activación petición
interrupción.(a 1)
Borrado automáticoal vectorizarse.
(puesta a 0)
![Page 53: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/53.jpg)
TEMPORIZADORES Y CONTADORES 53
Descripción Nombre Flag hab. (IEN0)
Flag act. (TCON) Vector Borrado Núm
Interrup
Cont./Temp. 0 T/C0 ET0 TF0 000Bh Hw 1 Cont./Temp.1 T/C1 ET1 TF1 001Bh Hw 3
3 – Interrupciones asociadas a los T/C
? Permite sacar el máximo partido? Liberan a la CPU de tener que encuestar flag de desborde
Contador
OSC 1/12
C/T
GATE
TR0
TF0pinT0
pin-INT0
1
0 1 = cerrado
Interrupción
Dirección derutina interrupción.
void servicio (void)interrupt 1{ /* codigo */}
![Page 54: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/54.jpg)
TEMPORIZADORES Y CONTADORES 54
3 – Interrupciones asociadas a los T/C
? Permite sacar el máximo partido? Liberan a la CPU de tener que encuestar flag de desborde
Contador
OSC 1/12
C/T
GATE
TR0
TF0pinT0
pin/INT0
1
0 1 = cerrado
Interrupción
Se puede combinarel T/C y la
interrupción externa.
Descripción Nombre Flag hab. (IEN0)
Flag act. (TCON) Vector Borrado Núm
Interrup
Cont./Temp. 0 T/C0 ET0 TF0 000Bh Hw 1 Cont./Temp.1 T/C1 ET1 TF1 001Bh Hw 3
![Page 55: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/55.jpg)
TEMPORIZADORES Y CONTADORES 55
3 – Interrupciones asociadas a los T/C
– Se trata de un ejemplo típico de tareaperiódica.
– Interesa tener desocupada la CPU paraotros menesteres.
– Se propone que el T/C genere unainterrupción transcurrido cada semiperiodoy que la rutina de servicio modifique el valordel pin.
Ejemplo generación onda cuadrada
Generar onda cuadrada de 10 Khz por el pin P1.0. Reloj del ?C de 12 Mhz
10 Khz
P1.0
![Page 56: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/56.jpg)
TEMPORIZADORES Y CONTADORES 56
Ejemplo generación onda cuadrada
SMáquinaCiclo ?11 ?
)(501001,010
1CMSoSemiperiodSmS
KhzT ?? ?????
? PASO 1: ¿Contador o temporizador?– Temporizador
? PASO 2: ¿Control puerta externo o interno? (GATE)– Interno
? PASO 3: Modo 0 (13 bits), Modo 1 (16 bits) o Modo 2 (8 bits rec.)– Modo 2. 8 bits con autorrecarga
? Hacer números
Generar onda cuadrada de 10 Khz por el pin P1.0. Reloj del ?C de 12 Mhz
3 – Interrupciones asociadas a los T/C
![Page 57: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/57.jpg)
TEMPORIZADORES Y CONTADORES 57
Ejemplo generación onda cuadrada
2065025628 ???? cuenta
? PASO 1: ¿Contador o temporizador?– Temporizador
? PASO 2: ¿Control puerta externo o interno? (GATE)– Interno
? PASO 3: Modo 0 (13 bits), Modo 1 (16 bits) o Modo 2 (8 bits rec.)– Modo 2. 8 bits con autorrecarga
? PASO 4: ¿Valor inicial del contador?
Generar onda cuadrada de 10 Khz por el pin P1.0. Reloj del ?C de 12 Mhz
3 – Interrupciones asociadas a los T/C
![Page 58: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/58.jpg)
TEMPORIZADORES Y CONTADORES 58
Ejemplo generación onda cuadrada
– Temporizador– Interno– Modo 2– 206
b7 TMOD, dir. 89h, por máscara b0GATE C / T M1 M0 GATE C / T M1 M0
TIMER 1 TIMER 0
b7 TCON, dir. 88h, bit a bit b0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
00 01
TH0=TL0=206;
Generar onda cuadrada de 10 Khz por el pin P1.0. Reloj del ?C de 12 Mhz
3 – Interrupciones asociadas a los T/C
![Page 59: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/59.jpg)
TEMPORIZADORES Y CONTADORES 59
Ejemplo generación onda cuadrada
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A; sfr IEN0=0xA8, P1=0x90; sbit ET0=IEN0^1, EAL=IEN0^7, TR0=TCON^4; void main(void) { EAL = 0; TMOD = 0x02; TH0 = 206; TL0 = 206; ET0 = 1; /* habilitar int. timer 0 */ EAL = 1; /* habilitar interrupciones */ TR0 = 1; /* a correr */ while (1) { /* otras cosas */ } } void T0 (void)interrupt 1 { P1.0 = ~P1.0; }
Generar onda cuadrada de 10 Khz por el pin P1.0. Reloj del ?C de 12 Mhz
3 – Interrupciones asociadas a los T/C
![Page 60: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/60.jpg)
TEMPORIZADORES Y CONTADORES 60
Actividad
Generar onda cuadrada de 50 Hz por el pin P1.0. Reloj del ? C de 12 Mhz.
? AYUDA:– DOS CAMINOS– a) Las recargas del temporizador/contador se pueden hacer por software.– b) Cada N interrupciones realizar la acción.
Solución
3 – Interrupciones asociadas a los T/C
![Page 61: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/61.jpg)
TEMPORIZADORES Y CONTADORES 61
En la actividad anterior, conseguir que el tiempo que la señal está anivel alto y a nivel bajo sean distintos.
Actividad
Solución
3 - T/C 0 y T/C 1 en el 805x7
![Page 62: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/62.jpg)
TEMPORIZADORES Y CONTADORES 62
4 - Ejemplos de aplicación
![Page 63: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/63.jpg)
TEMPORIZADORES Y CONTADORES 63
– Para introducir el pulso se emplea la entrada de interrupción externa /INT0.Se emplea el T/C 0 como temporizador en modo control hardware.
– Si se desea medir el nivel bajo de esta manera es necesario emplear uninversor externo.
?
4.1 Medir el ancho de un pulso positivo
4 - Ejemplos de aplicación
? C
INT0?
![Page 64: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/64.jpg)
TEMPORIZADORES Y CONTADORES 64
?
4.1 Medir el ancho de un pulso positivo
4 - Ejemplos de aplicación
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
1 0
Control externo,
bit GATE = 1
00
¡Nocuenta!
![Page 65: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/65.jpg)
TEMPORIZADORES Y CONTADORES 65
4.1 Medir el ancho de un pulso positivo
4 - Ejemplos de aplicación
Contador
OSC 1/12
C/T
GATE
TR0
TF0
pinT0
pin/INT0
1
01 = cerrado
Interrupción
1 0
1
11?
¡Sicuenta!
1
![Page 66: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/66.jpg)
TEMPORIZADORES Y CONTADORES 66
?
TR0 = 1 Termina de contar
4.1 Medir el ancho de un pulso positivo
4 - Ejemplos de aplicación
Control por HW:Comienza a contar
Aprovechar flancode bajada para generar
una interrupción externay leer valor cuenta
![Page 67: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/67.jpg)
TEMPORIZADORES Y CONTADORES 67
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A, IEN0=0xA8; sbit TR0=TCON^4, IT0=TCON^0, EX0=IEN0^0, EAL=IEN0^7; unsigned int ancho_pulso; void main(void) { EAL = 0; /* deshabilitar interrupciones */ TMOD = 0x09; /* control hard., timer, modo 1 */ TH0 = 0x00; TL0 = 0x00; IT0 = 1; /* disparo interrupción externa por flanco bajada*/ EX0 = 1; /* habilitar int. externa 0 */ EAL = 1; /* habilitar interrupciones */ TR0 = 1; /* a correr */ while (1) { /* otras cosas */ } } void Externa0_INT0 (void) interrupt 0 { TR0 = 0; /* para timer */ ancho_periodo = TH0*256+TL0; /* recoger medida */ TH0 = TL0 = 0; /*reiniciar cuenta timer */ TR0 = 1; }
4.1 Medir el ancho de un pulso positivo
4 - Ejemplos de aplicación
![Page 68: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/68.jpg)
TEMPORIZADORES Y CONTADORES 68
– La señal se introduce al microcontrolador mediante la entrada de interrupciónexterna /INT0.
?
4.2 Medir el periodo de una señal
4 - Ejemplos de aplicación
? C
INT0
![Page 69: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/69.jpg)
TEMPORIZADORES Y CONTADORES 69
– El método puede suponer algo de perdida de precisión debido a las variaciones delatencia de la interrupción.
?
Flanco bajadagenerar petición
Interrupción externa:
Comenzar cuenta
4.2 Medir el periodo de una señal
4 - Ejemplos de aplicación
Control por software. Bit GATE =0
Flanco bajadagenerar petición
Interrupción externa:
Parar cuentay procesar cuenta
Flanco bajadagenerar petición
Interrupción externa:
Comenzar cuenta
![Page 70: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/70.jpg)
TEMPORIZADORES Y CONTADORES 70
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A, IEN0=0xA8; sbit TR0=TCON^4, IT0=TCON^0, EX0=IEN0^0, EAL=IEN0^7; unsigned int periodo; void main(void) { EAL = 0; /* deshabilitar interrupciones */ TMOD = 0x01; /* control soft., timer, modo 1 */ TH0 = 0x00; TL0 = 0x00; IT0 = 1; /* disparo int. externa. 0 por flanco bajada */ EX0 = 1; /* habilitar int. externa 0 *7 EAL = 1; /* habilitar interrupciones */ TR0 = 1; /* a correr */ while (1) { /* otras cosas */ } } void Externa0_INT0 (void) interrupt 0 { /* arranca y para el timer en */ /* interrupciones alternadas */ TR0 = ~TR0; /* complementar. if (TR0==1) return; /* salir si timer corriendo */ periodo = TH0*256+TL0; /* recoger medida */ TH0 = 0; TL0 = 0; /*reiniciar cuenta timer */ }
4.2 Medir el periodo de una señal
4 - Ejemplos de aplicación
![Page 71: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/71.jpg)
TEMPORIZADORES Y CONTADORES 71
– Se utiliza un pin de un puerto (P2.0) para generar el pulso– La precisión del método depende de la latencia de la interrupción del
temporizador.
temporizador
4.3 Generar un pulso
4 - Ejemplos de aplicación
? C
P2.0
![Page 72: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/72.jpg)
TEMPORIZADORES Y CONTADORES 72
– Control por software. Bit GATE = 0– P2.0 = 1– Habilitar interrupción del T/C 0– Arrancar el temporizador inicializando la cuenta en función del ancho del pulso– Cuando rebose, se generará una interrupción procedente del T/C cuyo
manejador pondrá P2.0 = 0 dado que se ha alcanzado la duración del pulso
4.3 Generar un pulso
4 - Ejemplos de aplicación
temporizador
P2.0 = 1Inicializar
temporizador ycomenzar cuenta
El manejador de la interrupcióndel T/C 0, dará por finalizado
el pulso P2.0 = 0
![Page 73: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/73.jpg)
TEMPORIZADORES Y CONTADORES 73
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A, IEN0=0xA8 P2=0xA0;
sbit TR0=TCON^4, ET0=IEN0^1, EAL=IEN07;#define HITime ???
#define LoTime ???void main (void){
EAL = 0; /* deshabilitar interrupciones */ ET0 = 1; /* habilitar int. del T/C 0 *7
TCON = 0x00; /* Asegurarse que el temporizador está parado. */ TMOD =0x01; /* Temporizador en modo 1, soft. */
TH0 = HiTime; /* Cargar T/C 0 con la cuenta para la duración del pulso. */ TL0 = LoTime;
TR0 = 1; /* Arrancar temporizador. */ P2.0 = 1; /* Comenienzo pulso. */
EAL = 1; /* habilitar interrupciones */ }void Timer0_int (void) interrupt 1
{ TR0 = 0; /* Parar temporizador */
P2.0 = 0; /* Final del pulso */ }
4.3 Generar un pulso
4 - Ejemplos de aplicación
![Page 74: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/74.jpg)
TEMPORIZADORES Y CONTADORES 74
Inicio: MOV TCON,#$00 ;Asegurarse que el temporizador está parado.MOV TMOD,#$01 ;Temporizador en modo 1.
MOV TH0,#HiTime ;Cargar T/C 0 con la cuenta para la; duración del pulso.
MOV TL0,#LoTimeSETB TR0 ;Arrancar temporizador.
SETB P2.0 ;Comenienzo pulso.
;Manejador interrupción del T/C 0.TC0INT: CLR P2.0 ;Final del pulso.
CLR TR0 ;Parar temporizador.RETI
4.3 Generar un pulso
4 - Ejemplos de aplicación
![Page 75: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/75.jpg)
TEMPORIZADORES Y CONTADORES 75
– La precisión de este método depende de la latencia de las interrupcionesdel temporizador.
– Para generar señales de mayor frecuencia usar modo 2.
Arrancar tempo.Valor “1”
Arrancar tempo.Valor “0”
Repetir
4.4 Generar una señal PWM
4 - Ejemplos de aplicación
![Page 76: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/76.jpg)
TEMPORIZADORES Y CONTADORES 76
T0INT: CLR TR0 ;Parar el temporizador.
CPL P2.0 ;Complementar valor pin.
JB P2.0,SetPWMHigh ;Está a valor “1” ó “0”?
MOV TH0,PWMLowH ;Poner PWM a “0”.
MOV TL0,PWMLowL
SJMP T0EX
SetPWMHigh: MOV TH0,PWMHighH ;Poner PWM a “1”.
MOV TL0,PWMHighL
T0EX: SETB TR0 ;Reinicializar temporizador.
RETI
4.4 Generar una señal PWM
4 - Ejemplos de aplicación
![Page 77: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/77.jpg)
TEMPORIZADORES Y CONTADORES 77
ReadTimer:MOV ValH,TH0 ;Leer parte alta y baja.MOV ValL,TL0MOV A,TH0 ;Leer nuevamente parte alta.CJNE A,ValH,ChkHigh ;Ha cambiado?SJMP RTEX ;Si no, la primera lectura es válida.
ChkHigh: JB ValL.7,RTEX ;Otro caso, verificar parte baja para ver ; si ha cambiado despúes de leer la parte
; alta original.MOV ValH,A ;Si ha cambiado, usar la segunda lectura
; de la parte altaRTEX: RET
4.5 Leer un timer “al vuelo”
4 - Ejemplos de aplicación
![Page 78: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/78.jpg)
TEMPORIZADORES Y CONTADORES 78
Solución actividadGenerar onda cuadrada de 50 Hz por el pin P1.0. Reloj de 12 Mhz.– 50 Hz = 20000 µS periodo = 10000 µS semiperiodo– Usar temporizador y modo 1 (16 bits). Recargar por programa el timer en interrupción.– Recarga: 10000 µS -> 65536 -10000 = 55536 = D8F0h
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A; sfr IEN0=0xA8, P1=0x90; sbit ET0=IEN0^1, EAL=IEN0^7, TR0=TCON^4; void main(void) { TMOD = 0x01; TH0 = 0xD8; TL0 = 0xF0; EAL = 0; ET0 = 1; EAL = 1; TR0 = 1; /* a correr */ while (1) { /* otras cosas */ } } void T0 (void)interrupt 1 { P1.0 = ~P1.0; TR0 = 0; TH0 = 0xD8; TL0 = 0xF0; TR0 = 1; }
![Page 79: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/79.jpg)
TEMPORIZADORES Y CONTADORES 79
void delay_ms(unsigned int mseg){ long l; unsigned int desbordes, resto;
l = 1000L * mseg; /* ciclos máquina en us */ desbordes = (l / 65536) + 1; /*incluye desborde del resto*/ resto = 65536 - (l % 65536); TR0=TF0=0; /*garantizar condiciones iniciales adecuadas*/ TMOD |= 0x01; TMOD &= 0xF1; /* modo 1, temporizador, control soft. */ TL0 = resto & 0x00FF; TH0 = resto >> 8; TR0 = 1; /* a correr */
while(desbordes) if (TF0) { TF0 = 0; desbordes--; } TR0 = TF0 = 0;}
Solución actividadSe desea disponer de una función C para realizar retardos deprecisión del orden de milisegundos. Reloj del ?C de 12 Mhz.
![Page 80: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/80.jpg)
TEMPORIZADORES Y CONTADORES 80
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A, IEN0=0xA8; sbit TR0=TCON^4, IT0=TCON^0, ET0=IEN0^1, EAL=IEN0^7; #define T_ON 1000 #define T_OFF 2000 #define P_OUT P1.0 unsigned char t_on_h, t_on_l, t_off_h, t_off_l; void main(void) { t_on_h = T_ON / 256; t_on_l = T_ON % 256; t_off_h = T_OFF / 256; t_off_l = T_OFF % 256; TMOD = 0x01; TH0 = t_on_h; TL0 = t_on_l; P_OUT = 1; ET0 = 1; EAL = 1; TR0 = 1; /* a correr */ while (1) { /* otras cosas */ } } void T0 (void) interrupt 1 { TR0=0; P_OUT++; /* complementar salida */ if (P_OUT) { TH0 = t_on_h; TL0 = t_on_l; } else { TH0 = t_off_h; TL0 = t_off_l; } TR0=1; }
Conseguir que el tiempo a nivel alto y a nivel bajo sean distintos.Actividad
![Page 81: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/81.jpg)
TEMPORIZADORES Y CONTADORES 81
? EJERCICIO:– Realizar un programa en lenguaje C, que configure el TEMPORIZADOR-0
en modo 2 (Temporizador/Contador de 8 bits con autorrecarga), de formaque genere una interrupción con cada overflow. El manejador deinterrupción tendrá como única misión invertir el valor de P3.5
SOLUCIÓN:
7 6 5 4 3 2 1 0
EAL WDT ET2 ES0 ET1 EX1 ET0 EX0
GATE C/T M1 M0 GATE C/T M1 M0
TIMER-0
IEN0
TMOD
7 6 5 4 3 2 1 0
0 0 0 0 0 0 1 0 = $02
1 0 0 0 0 0 1 0 = $82
![Page 82: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/82.jpg)
TEMPORIZADORES Y CONTADORES 82
sfr TMOD=0x89,TCON=0x88,TH0=0x8C,TL0=0x8A, IEN0=0xA8, P3=0xB0;sbit TR0=TCON^4;
void T0_int (void) interrupt 1; /* Rutina Timer-0 */
void main (void){
/* Inicialización de registros */IEN0 = 0x82; /* Habilitación Interrupciones */TMOD = 0x02; /* Configuración Timer-0 */TH0 = 0x05; /* Valor inicial en TH0 */TL0 = 0x05; /* Valor inicial en TL0 */TR0 = 1; /* Arranque del Timer-0 */while (1) {}
}
void T0_int (void) interrupt 1{ P3.5 = ~P3.5; /* Invertir salida */}
![Page 83: TEMPORIZADORES Y CONTADORES (T/C) …bitschips.com/infoind/tema_temporizadores.pdf · 2.3 Diagrama de bloques. ... digital Referencia Microcontrolador EJEMPLO: ... -Señal reloj interno](https://reader033.fdocuments.es/reader033/viewer/2022051721/5a7ff8f07f8b9a24668bc989/html5/thumbnails/83.jpg)
TEMPORIZADORES Y CONTADORES 83
Bibliografía
[Domíng2001] C. Domínguez, J.M. Martínez, A. Perles, J. Albaladejo, H.Hassan. “Curso de Informática Industrial: Aplicación con elmicrocontrolador”. Ed. Universidad Politécnica de Valencia,2001.
[Campelo1998] J. C. Campelo, A. Perles, F. Rodríguez. “MicrocontroladoresIntel MCS-51. Arquitectura y programación”. Ed. UniversidadPolitécnica de Valencia, 1.998.
[Martínez2001] J.M. Martínez, C. Domínguez, A. Perles, H. Hassan, J.Albaladejo. “Problemas de microcontroladores de la familiaMCS-51”. Ed. Universidad Politécnica de Valencia, 2001.
[Intel1994] MCS-51 Microcontroller Family User´s Manual.