Timer und Zähler im 8051-Mikrocontroller und seinen Anwendungen

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Viele der Mikrocontroller-Anwendungen erfordern das Zählen externer Ereignisse wie die Frequenz der Impulsfolgen und die Erzeugung präziser interner Zeitverzögerungen zwischen Computeraktionen. Beide Aufgaben können durch Softwaretechniken implementiert werden, aber Software-Schleifen zum Zählen und Timing liefern nicht das genaue Ergebnis, vielmehr werden wichtigere Funktionen nicht ausgeführt. Um diese Probleme zu vermeiden, sind Timer und Zähler in den Mikrocontrollern bessere Optionen für einfache und kostengünstige Anwendungen. Diese Timer und Zähler werden als verwendet Interrupts im 8051-Mikrocontroller .

Es gibt zwei 16-Bit-Timer und -Zähler 8051 Mikrocontroller : Timer 0 und Timer 1. Beide Timer bestehen aus einem 16-Bit-Register, in dem das untere Byte in TL und das höhere Byte in TH gespeichert sind. Der Timer kann sowohl als Zähler als auch für den Timing-Betrieb verwendet werden, der von der Quelle der Taktimpulse zu den Zählern abhängt.




Timer und Zähler

Timer und Zähler

Zähler und Timer im 8051-Mikrocontroller enthalten zwei spezielle Funktionsregister: TMOD (Timer Mode Register) und TCON (Timer Control Register), die zum Aktivieren und Konfigurieren verwendet werden Timer und Zähler .



Timer Mode Control (TMOD): TMOD ist ein 8-Bit-Register zur Auswahl von Timer oder Zähler und Timermodus. Die unteren 4 Bits werden für den Steuerbetrieb von Timer 0 oder Zähler 0 verwendet, und die verbleibenden 4 Bits werden für den Steuerbetrieb von Timer 1 oder Zähler 1 verwendet. Dieses Register ist im SFR-Register vorhanden, die Adresse für das SFR-Register ist 89 ..

Timer Mode Control (TMOD)

Timer Mode Control (TMOD)

Tor: Wenn das Gate-Bit auf '0' gesetzt ist, können wir den 'Software' -Timer auf die gleiche Weise starten und stoppen. Wenn das Gate auf '1' gesetzt ist, können wir einen Hardware-Timer durchführen.

C / T: Wenn das C / T-Bit '1' ist, fungiert es als Zählermodus und ähnlich, wenn C + gesetzt ist
= / T-Bit ist '0' und fungiert als Timer-Modus.


Modusauswahlbits: M1 und M0 sind Modusauswahlbits, mit denen die Zeitgeberoperationen ausgewählt werden. Es gibt vier Modi zum Bedienen der Timer.

Modus 0: Dies ist ein 13-Bit-Modus, dh der Timer-Vorgang wird mit „8192“ -Pulsen abgeschlossen.

Modus 1: Dies ist ein 16-Bit-Modus, was bedeutet, dass der Timer-Vorgang mit maximalen Taktimpulsen abgeschlossen wird, die „65535“ sind.

Modus 2: Dieser Modus ist ein 8-Bit-Auto-Reload-Modus. Dies bedeutet, dass der Timer-Vorgang nur mit „256“ Taktimpulsen abgeschlossen wird.

Modus 3: Dieser Modus ist ein Split-Timer-Modus, dh die Ladewerte in T0 und startet automatisch den T1.

Modusauswahlbits

Modusauswahlbits

Modusauswahl Werte von Timern und Zählern in 8051

Modusauswahlwerte von Timern und Zählern

Modusauswahlwerte von Timern und Zählern

Timer Control Register (TCON): TCON ist ein weiteres Register, mit dem Operationen von Zählern und Timern in Mikrocontrollern gesteuert werden. Es ist ein 8-Bit-Register, in dem vier obere Bits für Zeitgeber und Zähler und untere Bits für Interrupts verantwortlich sind.

Timer Control Register (TCON)

Timer Control Register (TCON)

TF1: Der TF1 steht für das Flag-Bit 'timer1'. Bei jeder Berechnung der Zeitverzögerung in Timer1 erreichen TH1 und TL1 automatisch den Maximalwert „FFFF“.

EX: while (TF1 == 1)

Wenn TF1 = 1 ist, löschen Sie das Flag-Bit und stoppen Sie den Timer.

TR1: Der TR1 steht für das Start- oder Stoppbit von timer1. Dieser Timer-Start kann durch Softwareanweisung oder durch Hardwaremethode erfolgen.

EX: gate = 0 (Timer 1 durch Softwareanweisung starten)
TR1 = 1 (Startzeitgeber)

TF0: Der TF0 steht für das Flag-Bit 'timer0'. Bei jeder Berechnung der Zeitverzögerung in Timer1 erreichen TH0 und TL0 automatisch einen Maximalwert, der „FFFF“ ist.

EX: while (TF0 == 1)
Immer wenn TF0 = 1 ist, löschen Sie das Flag-Bit und stoppen Sie den Timer.

TR0: Der TR0 steht für das Start- oder Stoppbit 'timer0'. Dieser Timer-Start kann durch Softwareanweisung oder durch Hardwaremethode erfolgen.

EX: gate = 0 (Timer 1 durch Softwareanweisung starten)
TR0 = 1 (Startzeitgeber)

Zeitverzögerungsberechnungen für 8051 Microcontroller

Der 8051-Mikrocontroller arbeitet mit einer Frequenz von 11,0592 MHz.

Frequenz 11,0592 MHz = 12 Pules

1 Taktimpuls = 11,0592 MHz / 12

F = 0,921 MHz

Zeitverzögerung = 1 / F.

T = 1 / 0,92 MHz

T = 1.080506 us (für '1' -Zyklus)

1000us = 1MS

1000 ms = 1 s

Verfahren zur Berechnung des Verzögerungsprogramms

1. Zuerst müssen wir den TMOD-Registerwert für 'Timer0' und 'Timer1' in verschiedenen Modi laden. Wenn wir beispielsweise Timer1 in Modus1 betreiben möchten, muss er als 'TMOD = 0x10' konfiguriert sein.

2. Immer wenn wir den Timer in Modus 1 betreiben, nimmt der Timer die maximalen Impulse von 65535 auf. Dann müssen die berechneten Zeitverzögerungsimpulse von den maximalen Impulsen subtrahiert und anschließend in einen Hexadezimalwert umgewandelt werden. Dieser Wert muss in das höhere und das niedrigere Bit von Timer1 geladen werden. Diese Timer-Operation wird mit programmiert C in einen Mikrocontroller eingebettet .

Beispiel: 500us Zeitverzögerung

500us / 1.080806us

461 Impulse

P = 65535-461

P = 65074

65074 durch Hexa-Dezimalzahl = FE32

TH1 = 0xFE

TL1 = 0x32

3. Starten Sie den Timer1 'TR1 = 1'

4. Überwachen Sie das Flag-Bit 'while (TF1 == 1)'

5. Löschen Sie das Flag-Bit 'TF1 = 0'.

6. Stellen Sie den Timer auf „TR1 = 0“.

Beispielprogramme:

Programm- 1

Programm- 1

Programm- 2

Programm- 2

Programm- 3

Programm- 3

Zähler in 8051

Wir können einen Zähler verwenden, indem wir das C / T-Bit hoch halten, d. H. Die logische '1' im TMOD-Register. Zum besseren Verständnis haben wir ein Programm angegeben, das Timer 1 als Zähler verwendet. Hier werden die LEDs an 8051 Port 2 und der Schalter an Timer1 Pin P3.5 angeschlossen. Wenn der Schalter gedrückt wird, wird der Wert gezählt. Andernfalls führt ein extern an diesen Zählerstift als Eingang angeschlossener Sensor diesen Zählvorgang durch.

Gegenprogramm

Gegenprogramm

Anwendungen von Timern und Zählern in 8051

Digitalzähler mit 8051

Der digitale Zähler mit 8051 wird erreicht, indem der Mikrocontroller wie oben beschrieben programmiert und ein Sensorsystem daran angeschlossen wird. Dieser Objektzähler verwendet einen IR-Sensor, der das Hindernis in der Nähe erkennt und auch das aktiviert Pin des Mikrocontrollers 06. Wenn ein Objekt die Sensoren passiert, erhält der Mikrocontroller ein Interrupt-Signal von den IR-Sensoren und erhöht die Anzahl, die in der 7-Segment-Anzeige angezeigt wird.

Digitalzähler mit 8051

Digitalzähler mit 8051

Zeitverzögerungsschaltung Mit 8051-Mikrocontroller

Die folgende Abbildung zeigt, wie der Timer-Betrieb implementiert werden kann, um die LEDs effektiv zu schalten. Die Zeitverzögerungsoperation für den Satz von LEDs wird in einem Mikrocontroller auf die oben diskutierte Weise programmiert. Hier wird ein Satz LEDs mit einem gemeinsamen Versorgungssystem an Port 2 angeschlossen. Wenn diese Schaltung basierend auf der Zeitverzögerung eingeschaltet wird Programm im Mikrocontroller entsprechend sind diese LEDs eingeschaltet.

Zeitverzögerungsschaltung

Zeitverzögerungsschaltung

Hier geht es um den 8051-Mikrocontroller-Timer und die Zähler mit grundlegenden Programmier- und Anwendungsschaltungen. Wir hoffen, dass die Informationen in diesem Artikel Ihnen genügend Daten geliefert haben, um das Konzept besser zu verstehen. Wenn Sie technische Zweifel an der Programmierung von 8051 und seinen Schaltkreisen haben, können Sie uns kontaktieren, indem Sie unten einen Kommentar abgeben.

Bildnachweis: