8051 Mikrodenetleyicide Zamanlayıcılar ve Sayaçlar ve Uygulamaları

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Birçok mikrodenetleyici uygulamaları Darbe dizilerinin frekansı ve bilgisayar eylemleri arasında kesin dahili zaman gecikmelerinin oluşturulması gibi harici olayların sayılmasını gerektirir. Bu görevlerin her ikisi de yazılım teknikleriyle uygulanabilir, ancak yazılım döngüleri sayma ve zamanlama kesin sonucu vermeyecektir, daha önemli işlevler yapılmaz. Bu sorunları önlemek için mikro denetleyicilerdeki zamanlayıcılar ve sayaçlar, basit ve düşük maliyetli uygulamalar için daha iyi seçeneklerdir. Bu zamanlayıcılar ve sayaçlar şu şekilde kullanılır: 8051 mikro denetleyicide kesinti .

İki adet 16 bit zamanlayıcı ve sayaç vardır. 8051 mikrodenetleyici : zamanlayıcı 0 ve zamanlayıcı 1. Her iki zamanlayıcı da, alt baytın TL'de ve daha yüksek baytın TH'de saklandığı 16 bitlik yazmaçtan oluşur. Zamanlayıcı, sayaç olarak kullanılabileceği gibi, sayaçlara giden saat darbelerinin kaynağına bağlı olan zamanlama işlemi için de kullanılabilir.




Zamanlayıcılar ve sayaçlar

Zamanlayıcılar ve sayaçlar

8051 mikrodenetleyicideki Sayaçlar ve Zamanlayıcılar, iki özel işlev kaydı içerir: TMOD (Zamanlayıcı Modu Kaydı) ve TCON (Zamanlayıcı Kontrol Kaydı), etkinleştirilmesi ve yapılandırılması için kullanılır. zamanlayıcılar ve sayaçlar .



Zamanlayıcı Modu Kontrolü (TMOD): TMOD, zamanlayıcı veya sayaç ve zamanlayıcı modunu seçmek için kullanılan 8 bitlik bir kayıttır. Daha düşük 4 bit, zamanlayıcı 0 veya sayaç0'ın kontrol işlemi için kullanılır ve kalan 4 bit, zamanlayıcı1 veya sayaç1'in kontrol işlemi için kullanılır. Bu kayıt SFR kaydında mevcuttur, SFR kaydı için adres 89'dur.

Zamanlayıcı Modu Kontrolü (TMOD)

Zamanlayıcı Modu Kontrolü (TMOD)

Kapı: Geçit biti '0' olarak ayarlanmışsa, 'yazılım' zamanlayıcısını aynı şekilde başlatabilir ve durdurabiliriz. Geçit '1' olarak ayarlanmışsa, donanım zamanlayıcıyı gerçekleştirebiliriz.

C / T: C / T biti '1' ise, o zaman bir sayaç modu olarak hareket ediyor ve benzer şekilde C +
= / T bit '0'dır, bir zamanlayıcı modu olarak işlev görür.


Mod seçme bitleri: M1 ve M0, zamanlayıcı işlemlerini seçmek için kullanılan mod seçme bitleridir. Zamanlayıcıları çalıştırmak için dört mod vardır.

Mod 0: Bu 13 bitlik bir moddur, yani zamanlayıcı işlemi “8192” darbeleri ile tamamlanır.

Mod 1: Bu 16 bitlik bir moddur, yani zamanlayıcı işlemi '65535' olan maksimum saat darbeleri ile tamamlanır.

Mod 2: Bu mod, 8 bitlik bir otomatik yeniden yükleme modudur, yani zamanlayıcı işlemi yalnızca '256' saat darbeleri ile tamamlanır.

Mod 3: Bu mod, bir bölünmüş zamanlayıcı modudur, yani T0'daki yükleme değerleri ve T1'i otomatik olarak başlatır.

Mod Seçim Bitleri

Mod Seçim Bitleri

Mod seçimi 8051'de zamanlayıcı ve sayaç değerleri

Zamanlayıcıların ve sayaçların mod seçim değerleri

Zamanlayıcıların ve sayaçların mod seçim değerleri

Zamanlayıcı Kontrol Kaydı (TCON): TCON, mikrodenetleyicilerdeki sayaç ve zamanlayıcıların işlemlerini kontrol etmek için kullanılan başka bir kayıttır. Zamanlayıcılardan ve sayaçlardan dört üst bitin sorumlu olduğu ve kesmelerden alt bitlerin sorumlu olduğu 8 bitlik bir kayıttır.

Zamanlayıcı Kontrol Kaydı (TCON)

Zamanlayıcı Kontrol Kaydı (TCON)

TF1: TF1, 'timer1' bayrak biti anlamına gelir. Zamanlayıcı1'deki zaman gecikmesini her hesaplarken, TH1 ve TL1 otomatik olarak 'FFFF' olan maksimum değere ulaşır.

ÖR: while (TF1 == 1)

TF1 = 1 olduğunda, bayrak bitini temizleyin ve zamanlayıcıyı durdurun.

TR1: TR1, timer1 başlatma veya durdurma biti anlamına gelir. Bu zamanlayıcının başlatılması, yazılım talimatı veya donanım yöntemi yoluyla olabilir.

EX: geçit = 0 (yazılım talimatı ile zamanlayıcı 1'i başlat)
TR1 = 1 (Zamanlayıcıyı başlat)

TF0: TF0, 'timer0' bayrak biti anlamına gelir. Timer1'deki zaman gecikmesi hesaplanırken, TH0 ve TL0 otomatik olarak 'FFFF' olan maksimum değere ulaşır.

EX: while (TF0 == 1)
TF0 = 1 olduğunda, bayrak bitini temizleyin ve zamanlayıcıyı durdurun.

TR0: TR0, 'zamanlayıcı0' başlatma veya durdurma biti anlamına gelir, bu zamanlayıcının başlatılması, yazılım talimatı veya donanım yöntemi aracılığıyla olabilir.

EX: geçit = 0 (yazılım talimatı ile zamanlayıcı 1'i başlat)
TR0 = 1 (Zamanlayıcıyı başlat)

8051 Mikrodenetleyici için Zaman Gecikmesi Hesaplamaları

8051 mikrodenetleyici 11.0592 MHz frekansında çalışır.

Frekans 11.0592MHz = 12 pül

1 saat darbesi = 11.0592MHz / 12

F = 0,921 MHz

Zaman gecikmesi = 1 / F

T = 1 / 0,92 MHz

T = 1.080506 us ('1' döngüsü için)

1000us = 1MS

1000 ms = 1 sn

Gecikme Programını Hesaplama Prosedürü

1. Öncelikle, farklı modlarda 'Zamanlayıcı0' ve 'Zamanlayıcı1' için TMOD kayıt değerini yüklememiz gerekir. Örneğin, timer1'i mode1'de çalıştırmak istiyorsak, “TMOD = 0x10” olarak yapılandırılmalıdır.

2. Zamanlayıcıyı mod 1'de her çalıştırdığımızda, zamanlayıcı maksimum 65535 atımı alır. Ardından hesaplanan zaman gecikmeli darbeler maksimum darbelerden çıkarılmalı ve ardından onaltılık değere dönüştürülmelidir. Bu değer, timer1 daha yüksek bit ve daha düşük bitlere yüklenmelidir. Bu zamanlayıcı işlemi kullanılarak programlanır bir mikro denetleyiciye gömülü C .

Örnek: 500us zaman gecikmesi

500us / 1.080806us

461 bakliyat

P = 65535-461

P = 65074

65074 onaltılık ondalık olarak ifade edildi = FE32

TH1 = 0xFE

TL1 = 0x32

3. Zamanlayıcı1 'TR1 = 1' başlatın

4. 'while (TF1 == 1)' işaret bitini izleyin

5. 'TF1 = 0' bayrak bitini temizleyin

6. 'TR1 = 0' zamanlayıcıyı kilitleyin

Örnek Programlar:

Program-1

Program-1

Program-2

Program-2

Program-3

Program-3

8051'deki sayaçlar

C / T bitini yüksek tutarak bir sayaç kullanabiliriz, yani TMOD yazmacındaki mantık '1'. Daha iyi anlamak için, zamanlayıcı 1'i sayaç olarak kullanan bir program verdik. Burada LED'ler 8051 Port 2'ye ve anahtar timer1 pin P3.5'e bağlanır ve bu nedenle anahtara basılırsa değer sayılır. Aksi takdirde, giriş olarak bu sayaç pimine harici olarak bağlı bir sensör bu sayma işlemini yapar.

Sayaç Programı

Sayaç Programı

8051'de Zamanlayıcı ve Sayaç Uygulamaları

8051 Sayısal Sayaç

8051'li Dijital sayaç, mikro denetleyiciyi yukarıda tartışıldığı gibi programlayarak ve ona bir sensör sistemi ekleyerek elde edilir. Bu nesne sayacı, yakınındaki engeli algılayan ve aynı zamanda mikrodenetleyicinin pimi 06. Bir nesne sensörlerden geçtiğinde, mikro kontrolör IR sensörlerinden bir kesinti sinyali alır ve 7 segmentli ekranda görüntülenen sayımı artırır.

8051 Sayısal Sayaç

8051 Sayısal Sayaç

8051 mikrodenetleyiciyi kullanarak zaman geciktirme devresi

Aşağıdaki şekil, LED'lerin etkili bir şekilde anahtarlanması için zamanlayıcı işleminin nasıl uygulanabileceğini göstermektedir. LED seti için zaman geciktirme işlemi, yukarıda tartışılan şekilde bir mikro denetleyicide programlanır. Burada, ortak bir besleme sistemi ile port 2'ye bir dizi LED bağlanır. Zaman gecikmesine göre bu devre açıldığında mikrodenetleyicideki program uygun şekilde bu LED'ler açılır.

Zaman geciktirme devresi

Zaman geciktirme devresi

Bu tamamen 8051 mikro denetleyici zamanlayıcı ve temel programlama ve uygulama devrelerine sahip sayaçlarla ilgilidir. Bu makaledeki bilgilerin, kavramı daha iyi anlamanız için size yeterli veri vermiş olabileceğini umuyoruz. Ayrıca, 8051 ve devrelerinin programlanmasıyla ilgili herhangi bir teknik şüpheniz varsa, aşağıya yorum yaparak bizimle iletişime geçebilirsiniz.

Fotoğrafa katkı verenler: