Таймери и броячи в микроконтролера 8051 и неговите приложения

Опитайте Нашия Инструмент За Премахване На Проблемите





Много от приложения за микроконтролер изискват преброяване на външни събития като честота на импулсните влакове и генериране на точни вътрешни закъснения във времето между компютърните действия. И двете задачи могат да бъдат приложени чрез софтуерни техники, но софтуерните цикли за броене и синхронизирането няма да дадат точния резултат, а по-важните функции не се правят. За да се избегнат тези проблеми, таймерите и броячите в микроконтролерите са по-добри опции за прости и евтини приложения. Тези таймери и броячи се използват като прекъсва в 8051 микроконтролер .

Има два 16-битови таймера и броячи 8051 микроконтролер : таймер 0 и таймер 1. И двата таймера се състоят от 16-битов регистър, в който долният байт се съхранява в TL, а по-големият байт се съхранява в TH. Таймерът може да се използва както за брояч, така и за операция за синхронизация, която зависи от източника на импулси на часовника към броячите.




Таймери и броячи

Таймери и броячи

Броячите и таймерите в микроконтролера 8051 съдържат два специални функционални регистри: TMOD (Timer Mode Register) и TCON (Timer Control Register), които се използват за активиране и конфигуриране таймери и броячи .



Управление на режима на таймера (TMOD): TMOD е 8-битов регистър, използван за избор на таймер или брояч и режим на таймери. Долните 4-бита се използват за управление на работата на таймер 0 или брояч0, а останалите 4-бита се използват за управление на работата на таймер1 или брояч 1. Този регистър присъства в SFR регистър, адресът за SFR регистър е 89-и.

Управление на режима на таймера (TMOD)

Управление на режима на таймера (TMOD)

Порта: Ако битът на порта е зададен на „0“, тогава можем да стартираме и спрем таймера „софтуер“ по същия начин. Ако портата е зададена на „1“, тогава можем да изпълним хардуерен таймер.

C / T: Ако C / T битът е „1“, тогава той действа като режим на брояч и по подобен начин, когато е зададен C +
= / T битът е „0“, той действа като режим на таймер.


Битове за избор на режим: M1 и M0 са битове за избор на режим, които се използват за избор на таймерните операции. Има четири режима за работа с таймерите.

Режим 0: Това е 13-битов режим, което означава, че таймерът завършва с импулси “8192”.

Режим 1: Това е 16-битов режим, което означава, че таймерът завършва с максимални тактови импулси, които са „65535“.

Режим 2: Този режим е 8-битов режим на автоматично презареждане, което означава, че операцията с таймера завършва само с „256“ импулси на часовника.

Режим 3: Този режим е режим на разделен таймер, което означава стойностите на зареждане в T0 и автоматично стартира T1.

Битове за избор на режим

Битове за избор на режим

Избор на режим Стойности на таймери и брояч през 8051

Стойности за избор на режим на таймери и броячи

Стойности за избор на режим на таймери и броячи

Регистър за управление на таймера (TCON): TCON е друг регистър, използван за управление на операции на брояч и таймери в микроконтролери. Това е 8-битов регистър, в който четири горни бита са отговорни за таймери и броячи, а долните битове са отговорни за прекъсванията.

Регистър за управление на таймера (TCON)

Регистър за управление на таймера (TCON)

TF1: TF1 означава бит за флаг ‘timer1’. Винаги, когато се изчислява закъснението във времето в таймера1, TH1 и TL1 достигат до максималната стойност, която е “FFFF” автоматично.

EX: докато (TF1 == 1)

Всеки път, когато TF1 = 1, изчистете бита на флага и спрете таймера.

TR1: TR1 означава бит за стартиране или спиране на таймера1. Стартирането на този таймер може да бъде чрез софтуерни инструкции или чрез хардуерен метод.

EX: порта = 0 (стартирайте таймера 1 чрез софтуерни инструкции)
TR1 = 1 (Таймер за стартиране)

TF0: TF0 означава бит на флага ‘timer0’. Винаги, когато се изчислява закъснението във времето1, TH0 и TL0 достигат до максимална стойност, която е „FFFF“, автоматично.

EX: докато (TF0 == 1)
Всеки път, когато TF0 = 1, изчистете бита на флага и спрете таймера.

TR0: TR0 означава „timer0“ бит за старт или стоп, който може да бъде стартиран чрез таймер на софтуера или чрез хардуерен метод.

EX: порта = 0 (стартирайте таймера 1 чрез софтуерни инструкции)
TR0 = 1 (Таймер за стартиране)

Изчисления на времевото закъснение за микроконтролер 8051

Микроконтролерът 8051 работи с честота 11.0592 MHz.

Честота 11.0592MHz = 12 пула

1 тактов импулс = 11.0592MHz / 12

F = 0,921 MHz

Закъснение във времето = 1 / F

T = 1 / 0.92MHz

T = 1,080506 us (за цикъл „1“)

1000us = 1MS

1000ms = 1sec

Процедура за изчисляване на програмата за забавяне

1. Първо трябва да заредим стойността на регистъра TMOD за ‘Timer0’ и ‘Timer1’в различни режими. Например, ако искаме да работим таймер1 в режим1, той трябва да бъде конфигуриран като “TMOD = 0x10”.

2. Винаги, когато работим с таймера в режим 1, таймерът взема максималните импулси от 65535. Тогава изчислените импулси със закъснение трябва да бъдат извадени от максималните импулси и след това преобразувани в шестнадесетична стойност. Тази стойност трябва да бъде заредена в по-висок бит и по-ниски битове на таймера1. Тази операция с таймер е програмирана с помощта вграден C в микроконтролер .

Пример: 500us закъснение във времето

500us / 1.080806us

461 импулси

Р = 65535-461

Р = 65074

65074, предадено чрез шестнадесетичен знак = FE32

TH1 = 0xFE

TL1 = 0x32

3. Стартирайте таймера1 “TR1 = 1”

4. Наблюдавайте бита на флага „while (TF1 == 1)“

5. Изчистете бита на флага “TF1 = 0”

6. Изчистете таймера “TR1 = 0”

Примерни програми:

Програма - 1

Програма - 1

Програма - 2

Програма - 2

Програма- 3

Програма- 3

Броячи през 8051г

Можем да използваме брояч, като поддържаме C / T бит висок, т.е. логика „1“ в регистъра TMOD. За по-добро разбиране сме дали една програма, която използва таймер 1 като брояч. Тук светодиодите са свързани към 8051 порт 2 и превключвателят към щифта таймер1 P3.5 и следователно, ако ключът бъде натиснат, стойността ще бъде отчетена. В противен случай външно свързан датчик към този щифт на брояча като вход прави тази операция за преброяване.

Програма за брояч

Програма за брояч

Приложения на таймери и броячи през 8051г

Цифров брояч с 8051

Цифровият брояч с 8051 се постига чрез програмиране на микроконтролера, както е обсъдено по-горе, и чрез свързване на сензорна система към него. Този брояч на обекти използва IR сензор, който открива препятствието в близост до него и също така позволява на щифт на микроконтролера 06. Когато обект премине през сензорите, тогава микроконтролерът получава сигнал за прекъсване от инфрачервените сензори и увеличава броя, който се показва на 7-сегментния дисплей.

Цифров брояч с 8051

Цифров брояч с 8051

Закъснение във времето Използване на микроконтролер 8051

Фигурата по-долу показва как операцията с таймера може да бъде приложена за ефективно превключване на светодиодите. Операцията за забавяне на времето за набора от светодиоди се програмира в микроконтролер по начина, обсъден по-горе. Тук набор от светодиоди са свързани към порт 2 с обща система за захранване. Когато тази схема е включена въз основа на забавянето на времето програма в микроконтролера по подходящ начин тези светодиоди се включват.

Закъснение във времето

Закъснение във времето

Това е всичко за таймера и броячите на микроконтролера 8051 с основни схеми за програмиране и приложение. Надяваме се, че информацията от тази статия може да ви е предоставила достатъчно данни, за да разберете концепцията по-добре. Освен това, при всякакви технически съмнения относно програмирането на 8051 и неговите схеми, можете да се свържете с нас, като коментирате по-долу.

Кредити за снимки: