Principio del microordenador-08-temporizador

Temporizador

Resumen

En detección y control, la función de conteo y la función de temporización se utilizan en muchas ocasiones. Existen tres métodos principales para realizar estas funciones de temporización / conteo: temporización de software, temporización de hardware de circuitos digitales y temporización / contadores programables.

  1. Programación de
    software La programación de software es un programa cíclico, y el tiempo requerido para ejecutar este segmento de programa es el tiempo de retraso.

  2. Temporización de hardware de circuito digital
    Este tipo de temporización de hardware utiliza dispositivos de circuito integrado a pequeña escala, como el uso de un chip de temporización 555 para formar un circuito de temporización, que no ocupa el tiempo de CPU, pero la temporización de este circuito depende de los parámetros del componente en el circuito. Después de conectar el circuito de hardware, para cambiar el tiempo de sincronización, es necesario cambiar los componentes electrónicos en el circuito, lo cual es muy incómodo de usar.

  3. Temporizador / contador
    programable El temporizador / contador programable está desarrollado para facilitar el diseño y la aplicación de sistemas de microcomputadora. No solo es la temporización de hardware, sino que también puede determinar y cambiar fácilmente el tiempo de temporización a través del software. La programación de software puede satisfacer diferentes Los requisitos de tiempo y conteo.

### Estructura

El temporizador / contador T0 consta de registros de funciones especiales TH0, TL0,

El temporizador / contador T1 consta de registros de funciones especiales TH1 y TL1.

Hay 2 modos de trabajo de temporizador y contador , 4 modos de trabajo (modo 0, modo 1, modo 2 y modo 3).

  • El modo contador es contar los pulsos externos agregados a los dos pines T0 (P3.4) y T1 (P3.5).
  • El modo de funcionamiento del temporizador es contar la señal de pulso interno de la señal del oscilador del reloj del microcontrolador después de la división de frecuencia en el chip de 12 .

### 4 métodos de trabajo

M1M0 Camino Caracteristicas
0 0 0 0 Temporizador / contador de 13 bits
0 1 1 Temporizador / contador de 16 bits
1 0 2 Temporizador / contador de 8 bits cargado automáticamente con constante de tiempo
1 1 3 Divida T0 en dos contadores independientes de 8 bits; deje de funcionar cuando configure el modo 3 en T1

### Requisitos para señales de conteo de entrada externa

  • Cuando el temporizador / contador funciona en el modo contador, el pulso de conteo proviene del pin de entrada externo T0 o T1.

  • Cuando la señal de entrada produce una transición negativa, el valor del contador aumenta en uno.

  • Durante S5P2 de cada ciclo de la máquina, se muestra el pin de entrada externo T0 o T1.

### Programación y aplicación de temporizador / contador

Pasos

(1) Determine el modo de trabajo, es decir, escriba la palabra de control en el registro de control de modo TMO D.
(2) Calcule el valor inicial del temporizador / contador y escriba el valor inicial en los registros TL y TH.
(3) Establezca el valor inicial en el registro de control de interrupción IE según sea necesario para determinar si se abre la interrupción del temporizador.
(4) Configure TRx en el registro de control de operación TCON para iniciar el temporizador / temporizador.

Practica

\ 2. ¿Cuántos temporizadores / contadores programables hay en el microcontrolador AT89S51? ¿Qué tipos de modos de trabajo pueden tener? ¿Cuáles son los métodos de trabajo? ¿Cómo elegir y configurar? ¿Cuáles son las características de cada uno?
Inserte la descripción de la imagen aquí

Los cuatro modos de funcionamiento del temporizador / contador están determinados por M1 M0 dos bits en TMOD, como se muestra en la siguiente tabla.

M1M0 Camino Caracteristicas
0 0 0 0 Temporizador / contador de 13 bits
0 1 1 Temporizador / contador de 16 bits
1 0 2 Temporizador / contador de 8 bits cargado automáticamente con constante de tiempo
1 1 3 Divida T0 en dos contadores independientes de 8 bits; deje de funcionar cuando configure el modo 3 en T1

7) La frecuencia de cristal de la MCU AT89S51 es de 6 MHz. Si se requiere que el valor del temporizador sea 0.1 ms y 10 ms respectivamente, y el temporizador 0 funciona en modo 0, modo 1 y modo 2, ¿cuál debería ser el valor inicial del temporizador?

**** Respuesta: **** (1) 0.1ms

Camino 0:

0.1 × 10-3 = (213-X) × 12 / (6 × 106)

Entonces: X = 8142 = 1111111001110B

Los 5 bits inferiores de T0 01110B = 0EH

Los 8 bits superiores de T0: 11111110B = FEH

Método 1: 0.1 × 10-3 = (216-X) × 12 / (6 × 106)

Entonces: X = 65486 = FFCEH

Método 2: 0.1 × 10-3 = (28-X) × 12 / (6 × 106)

Entonces: X = 206 = CEH

(2) 10ms

Método 0: 10 × 10-3 = (213-X) × 12 / (6 × 106)

Entonces: X = 3192 = 110001111000B

T0 bajo 5 dígitos 11000B = 18H

Los 8 bits superiores de T0: 01100011B = 63H

Método 1: 10 × 10-3 = (216-X) × 12 / (6 × 106)

Entonces: X = 60536 = EC78H

Método 2: en este caso, el tiempo más largo es de 512 μs, y el tiempo no se puede lograr durante 10 ms a la vez, y el ciclo de tiempo de 0.1 ms se puede usar 100 veces

11) ¿Cómo inicializo el temporizador / contador como una fuente de interrupción externa? Tome T0 como ejemplo para explicar a través del programa.

* Respuesta: * Procedimiento de inicialización:

```

MOV TMOD, # 06H

 MOV TL0, #0FFH

 MOV TH0, #0FEH

 SETB TR0

 SETB EA

SETB ET0

```

14) Se sabe que la frecuencia de oscilación del reloj MCU es de 6MHz, y se emite una onda cuadrada continua en el pin P1.1 usando el temporizador T0.

img

Figura 9-23 Forma de onda de la pregunta 15

**** Solución: **** Primero calcule la constante de tiempo:

100us   方式0   Tc=FE0EH; 方式1   Tc=FFCEH; 方式2  Tc=CEH

150us   方式0   Tc=FD15H; 方式1   Tc=FFB5H; 方式2  Tc=B5H  

**** Método uno ****: Use el método uno, interrupción del temporizador.

Diagrama de flujo:

img

ORG 0000H
         LJMP START
         ORG 000BH
         LJMP TINT0
         ORG 0100H
 START: MOV TMOD, #01H
        MOV TL0, #0CEH
        MOV TH0, #0FFH
        SETB TR0
        SETB EA
        SETB ET0
        SETB 20H.0
        SETB P1.1
        SJMP $
 TINT0: JNB 20H.0, NEXT
        MOV TL0, #0B5H
        MOV TH0, #0FFH
        CLR P1.1
        CPL 20H.0
        SJMP LAST
  NEXT: MOV TL0, #0CEH
       MOV TH0, #0FFH
       SETB P1.1
       CPL 20H.0
  LAST:RETI   

**** Método 2 ****: Use el método 2 de interrupción del temporizador más el programa de retraso

Diagrama de flujo:

img

    ORG 0000H

    LJMP START

    ORG 000BH

    LJMP TINT0

    ORG 0100H

START: MOV TMOD, #02H

   MOV TL0, #0CEH

   MOV TH0, #0CEH

   SETB TR0

   SETB EA

   SETB ET0

   SETB 20H.0

   SETB P1.1

   SJMP $

TINT0: JNB 20H.0, NEXT

   CLR TR0

   CLR P1.1

   LCALL DELAY

   CPL 20H.0

   SETB TR0

   SJMP LAST

NEXT: SETB P1.1

   CPL 20H.0

LAST: RETI

DELAY: MOV R7, #8

DELAY1: DJNZ R7, DELAY1

   RET

225 artículos originales publicados · Me gusta 140 · Visite más de 250,000

Supongo que te gusta

Origin blog.csdn.net/jankin6/article/details/105402846
Recomendado
Clasificación