Многие из приложения микроконтроллера требуют подсчета внешних событий, таких как частота последовательностей импульсов, и создания точных внутренних временных задержек между действиями компьютера. Обе эти задачи могут быть реализованы программными методами, но программные циклы для подсчета и отсчета времени не дадут точного результата, более важные функции не выполняются. Чтобы избежать этих проблем, таймеры и счетчики в микроконтроллерах являются лучшими вариантами для простых и недорогих приложений. Эти таймеры и счетчики используются как прерывания в микроконтроллере 8051 .
Есть два 16-битных таймера и счетчика. 8051 микроконтроллер : таймер 0 и таймер 1. Оба таймера состоят из 16-битного регистра, в котором младший байт хранится в TL, а старший байт хранится в TH. Таймер можно использовать как счетчик, а также для работы по синхронизации, которая зависит от источника тактовых импульсов для счетчиков.
Таймеры и счетчики
Счетчики и таймеры в микроконтроллере 8051 содержат два специальных функциональных регистра: TMOD (регистр режима таймера) и TCON (регистр управления таймером), которые используются для активации и настройки таймеры и счетчики .
Управление режимом таймера (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. Запуск этого таймера может происходить с помощью программных инструкций или аппаратных средств.
Пример: ворота = 0 (запустить таймер 1 с помощью программной инструкции)
TR1 = 1 (запуск таймера)
TF0: TF0 означает бит-флаг 'timer0'. Каждый раз, когда вычисляется время задержки в таймере 1, TH0 и TL0 автоматически достигают максимального значения «FFFF».
EX: в то время как (TF0 == 1)
Когда TF0 = 1, очистите бит флага и остановите таймер.
TR0: TR0 обозначает стартовый или стоповый бит таймера 0. Запуск таймера может осуществляться программными инструкциями или аппаратным способом.
Пример: ворота = 0 (запустить таймер 1 с помощью программной инструкции)
TR0 = 1 (запуск таймера)
Расчет временной задержки для микроконтроллера 8051
Микроконтроллер 8051 работает с частотой 11,0592 МГц.
Частота 11,0592 МГц = 12 пулей
1 тактовый импульс = 11,0592 МГц / 12
F = 0,921 МГц
Задержка времени = 1 / F
T = 1 / 0,92 МГц
T = 1.080506 мкс (для «1» цикла)
1000 мкс = 1 мс
1000 мс = 1 сек
Порядок расчета программы задержки
1. Сначала мы должны загрузить значение регистра TMOD для «Timer0» и «Timer1» в разных режимах. Например, если мы хотим использовать таймер 1 в режиме 1, он должен быть настроен как «TMOD = 0x10».
2. Каждый раз, когда мы работаем с таймером в режиме 1, таймер принимает максимальное количество импульсов 65535. Затем рассчитанные импульсы с временной задержкой должны быть вычтены из максимального количества импульсов, а затем преобразованы в шестнадцатеричное значение. Это значение должно быть загружено в старший и младший биты timer1. Этот таймер программируется с помощью встроенный C в микроконтроллер .
Пример: задержка времени 500 мкс
500us / 1.080806us
461импульс
Р = 65535-461
P = 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 в качестве счетчика. Здесь светодиоды подключены к порту 2 8051, а переключатель - к выводу P3.5 таймера 1, и поэтому, если переключатель нажат, значение будет подсчитано. В противном случае, внешний датчик, подключенный к этому выводу счетчика в качестве входа, выполняет эту операцию подсчета.
Программа счетчика
Применение таймеров и счетчиков в 8051
Цифровой счетчик с 8051
Цифровой счетчик с 8051 достигается путем программирования микроконтроллера, как описано выше, и путем присоединения к нему сенсорной системы. Этот счетчик объектов использует инфракрасный датчик, который обнаруживает препятствие рядом с ним, а также позволяет вывод микроконтроллера 06. Когда объект проходит через датчики, микроконтроллер получает сигнал прерывания от ИК-датчиков и увеличивает счетчик, который отображается на 7-сегментном дисплее.
Цифровой счетчик с 8051
Схема временной задержки с использованием микроконтроллера 8051
На рисунке ниже показано, как можно реализовать работу таймера для эффективного переключения светодиодов. Операция с задержкой по времени для набора светодиодов программируется в микроконтроллере, как описано выше. Здесь набор светодиодов подключен к порту 2 с общей системой питания. Когда эта схема включается по времени задержки программа в микроконтроллере соответственно, эти светодиоды включаются.
Схема задержки времени
Речь идет о таймере и счетчиках микроконтроллера 8051 с базовыми схемами программирования и приложений. Мы надеемся, что информация в этой статье могла дать вам достаточно данных, чтобы лучше понять концепцию. Кроме того, с любыми техническими сомнениями по программированию 8051 и его схем вы можете связаться с нами, оставив комментарий ниже.
Фото: