Много от приложения за микроконтролер изискват преброяване на външни събития като честота на импулсните влакове и генериране на точни вътрешни закъснения във времето между компютърните действия. И двете задачи могат да бъдат приложени чрез софтуерни техники, но софтуерните цикли за броене и синхронизирането няма да дадат точния резултат, а по-важните функции не се правят. За да се избегнат тези проблеми, таймерите и броячите в микроконтролерите са по-добри опции за прости и евтини приложения. Тези таймери и броячи се използват като прекъсва в 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)
Порта: Ако битът на порта е зададен на „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)
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

Програма - 2

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

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

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

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