Site Loader

Содержание

Учебный курс AVR. Таймер — счетчик Т0. Регистры. Ч1

   Таймер-счетчик является одним из самых ходовых ресурсов AVR микроконтроллера. Его основное назначение — отсчитывать заданные временные интервалы. Кроме того, таймеры-счетчики могут выполнять ряд дополнительных функций, как то — формирование ШИМ сигналов, подсчет длительности и количества входящих импульсов. Для этого существуют специальные режимы работы таймера-счетчика. 

   В зависимости от модели микроконтроллера количество таймеров и набор их функций может отличаться. Например, у микроконтроллера Atmega16 три таймера-счетчика — два 8-ми разрядных таймера-счетчика Т0 и Т2, и один 16-ти разрядный — Т1. В этой статье, на примере ATmega16, мы разберем как использовать таймер-счетчик Т0.

   Таймер-счетчик Т0 использует два вывода микроконтроллера ATmega16. Вывод T0 (PB0) — это вход внешнего тактового сигнала. Он может применяться, например, для подсчета импульсов. Вывод OC0 (PB3) — это выход схемы сравнения таймера-счетчика. На этом выводе с помощью таймера может формировать меандр или ШИМ сигнал. Также он может просто менять свое состояние при срабатывании схемы сравнения, но об этом поговорим позже. 

   
   Выводы T0 и OC0 задействуются только при соответствующих настройках таймера, в обычном состоянии это выводы общего назначения. 

 

   Хоть это и скучно, но регистры — это то, без чего невозможно программировать микроконтроллеры, конечно, если вы не сидите плотно на Arduino. Так вот, таймер Т0 имеет в своем составе три регистра:


— счетный регистр TCNT0,
— регистр сравнения OCR0,
— конфигурационный регистр TCCR0.

Кроме того, есть еще три регистра, относящиеся ко всем трем таймерам ATmega16:

— конфигурационный регистр TIMSK,
— статусный регистр TIFR.
— регистр специальных функций SFIOR

Начнем с самого простого.

TCNT0

 

   Это 8-ми разрядный счетный регистр. Когда таймер работает, по каждому импульсу тактового сигнала значение TCNT0 изменяется на единицу. В зависимости от режима работы таймера, счетный регистр может или увеличиваться, или уменьшаться.
   Регистр TCNT0 можно как читать, так и записывать. Последнее используется когда требуется задать его начальное значение. Когда таймер работает, изменять его содержимое TCNT0 не рекомендуется, так как это блокирует схему сравнения на один такт.

OCR0  


   Это 8-ми разрядный регистр сравнения. Его значение постоянно сравнивается со счетным регистром TCNT0, и в случае совпадения таймер может выполнять какие-то действия — вызывать прерывание, менять состояние вывода OC0 и т.д. в зависимости от режима работы.

   Значение OCR0 можно как читать, так и записывать.

TCCR0 (Timer/Counter Control Register)



   Это конфигурационный регистр таймера-счетчика Т0, он определяет источник тактирования таймера, коэффициент предделителя, режим работы таймера-счетчика Т0 и поведение вывода OC0. По сути, самый важный регистр. 


   Биты CS02, CS01, CS00 (Clock Select) — определяют источник тактовой частоты для таймера Т0 и задают коэффициент предделителя. Все возможные состояния описаны в таблице ниже.

   
   Как видите, таймер-счетчик может быть остановлен, может тактироваться от внутренней частоты и также может тактироваться от сигнала на выводе Т0. 

   Биты WGM10, WGM00 (Wave Generator Mode) — определяют режим работы таймера-счетчика Т0. Всего их может быть четыре — нормальный режим (normal), сброс таймера при совпадении (CTC), и два режима широтно-импульсной модуляции (FastPWM и Phase Correct PWM). Все возможные значения описаны в таблице ниже.

Более подробно будем разбирать режимы в коде. Сейчас все нюансы все равно не запомнятся. 

   Биты COM01, COM00 (Compare Match Output Mode) — определяют поведение вывода OC0. Если хоть один из этих битов установлен в 1, то вывод OC0 перестает функционировать как обычный вывод общего назначения и подключается к схеме сравнения таймера счетчика Т0. Однако при этом он должен быть еще настроен как выход.
   Поведение вывода OC0 зависит от режима работы таймера-счетчика Т0. В режимах normal и СTC вывод OC0 ведет себя одинаково, а вот в режимах широтно-импульсной модуляции его поведение отличается. Не будем сейчас забивать себе голову всеми этими вариантами и разбирать таблицы для каждого режима, оставим это на практическую часть.

   И последний бит регистра TCCR0 — это бит FOC0 (Force Output Compare). Этот бит предназначен для принудительного изменения состояния вывода OC0. Он работает только для режимов Normal и CTC. При установки бита FOC0 в единицу состояние вывода меняется соответственно значениям битов COM01, COM00. FOC0 бит не вызывает прерывания и не сбрасывает таймер в CTC режиме.

TIMSK (Timer/Counter Interrupt Mask Register)


   Общий регистр для всех трех таймеров ATmega16, он содержит флаги разрешения прерываний. Таймер Т0 может вызывать прерывания при переполнении счетного регистра TCNT0 и при совпадении счетного регистра с регистром сравнения OCR0. Соответственно для таймера Т0 в регистре TIMSK зарезервированы два бита — это TOIE0 и OCIE0. Остальные биты относятся к другим таймерам.

TOIE0 — 0-е значение бита запрещает прерывание по событию переполнение, 1 — разрешает. 
OCIE0 — 0-е значение запрещает прерывания по событию совпадение, а 1 разрешает.

   Естественно прерывания будут вызываться, только если установлен бит глобального разрешения прерываний — бит I регистра SREG.

TIFR (Timer/Counter0 Interrupt Flag Register)


   Общий для всех трех таймеров-счетчиков регистр. Содержит статусные флаги, которые устанавливаются при возникновении событий. Для таймера Т0 — это переполнение счетного регистра TCNT0 и совпадение счетного регистра с регистром сравнения OCR0. 

Если в эти моменты в регистре TIMSK разрешены прерывания и установлен бит I, то микроконтроллер вызовет соответствующий обработчик.
   Флаги автоматически очищаются при запуске обработчика прерывания. Также это можно сделать программно, записав 1 в соответствующий флаг.

TOV0 — устанавливается в 1 при переполнении счетного регистра.
OCF0 — устанавливается в 1 при совпадении счетного регистра с регистром сравнения

SFIOR (Special Function IO Register)

   
    Начинающему про этот регистр в принципе можно и не знать, один из его разрядов сбросывает 10-ти разрядный двоичный счетчик, который делит входную частоту для таймера Т0 и таймера Т1. 

   Сброс осуществляется при установке бита PSR10 (Prescaler Reset Timer/Counter1 и Timer/Counter0) в единицу.

   Нудная часть закончена. Далее разберем как настроить таймер на определенную частоту, как таймер ведет себя в разных режимах, как генерировать ШИМ сигнал.

FreeRTOS (обзор) — ESP32 — — Руководство по программированию ESP-IDF последняя документация

Обзор

FreeRTOS — это ядро ​​операционной системы реального времени с открытым исходным кодом, которое действует как операционная система для приложений ESP-IDF и интегрировано в ESP-IDF в качестве компонента. Компонент FreeRTOS в ESP-IDF содержит порты ядра FreeRTOS для всех архитектур ЦП, используемых целями ESP (т. е. Xtensa и RISC-V). Кроме того, ESP-IDF предоставляет различные реализации FreeRTOS для поддержки SMP (симметричной многопроцессорности) на многоядерных целях ESP. В этом документе представлен обзор компонента FreeRTOS, реализаций FreeRTOS, предлагаемых ESP-IDF, и общих аспектов всех реализаций.

реализации

Официальная FreeRTOS (далее именуемая Vanilla FreeRTOS) — это одноядерная RTOS. Для поддержки различных многоядерных целей ESP ESP-IDF поддерживает различные реализации FreeRTOS, а именно ESP-IDF FreeRTOS и

Amazon SMP FreeRTOS .

ESP-IDF FreeRTOS

ESP-IDF FreeRTOS — это реализация FreeRTOS, основанная на Vanilla FreeRTOS v10.4.3, но содержащая значительные модификации для поддержки SMP. ESP-IDF FreeRTOS поддерживает не более двух ядер (т. е. двухъядерный SMP), но по своей конструкции более оптимизирован для этого сценария. Дополнительные сведения о ESP-IDF FreeRTOS и ее модификациях см. в документе FreeRTOS (ESP-IDF).

Примечание

ESP-IDF FreeRTOS в настоящее время является реализацией FreeRTOS по умолчанию для ESP-IDF.

Amazon SMP FreeRTOS

Amazon SMP FreeRTOS — это SMP-реализация FreeRTOS, официально поддерживаемая Amazon. Amazon SMP FreeRTOS может поддерживать N-ядер (т. е. более двух ядер). Amazon SMP FreeRTOS можно включить с помощью параметра CONFIG_FREERTOS_SMP. Дополнительные сведения об Amazon SMP FreeRTOS см. в официальной документации по Amazon SMP FreeRTOS.

Предупреждение

Реализация Amazon SMP FreeRTOS (и ее порт в ESP-IDF) в настоящее время находится в экспериментальном/бета-режиме. Следовательно, могут произойти значительные изменения в поведении и критические изменения API.

Конфигурация

Конфигурация ядра

Vanilla FreeRTOS требует, чтобы порты и приложения конфигурировали ядро, добавляя различные макросы #define config.

.. в FreeRTOSConfig.h . Vanilla FreeRTOS поддерживает список параметров конфигурации ядра, которые позволяют включать или отключать различные варианты поведения и функции ядра.

Однако для всех портов FreeRTOS в ESP-IDF файл FreeRTOSConfig.h считается закрытым и не должен изменяться пользователями . Большое количество параметров конфигурации ядра в FreeRTOSConfig.h жестко закодированы, поскольку они либо требуются, либо не поддерживаются в ESP-IDF. Все параметры конфигурации ядра, которые настраиваются пользователем, будут доступны через menuconfig в разделе

Component Config/FreeRTOS/Kernel .

Полный список настраиваемых пользователем параметров ядра см. в разделе Конфигурация проекта. В приведенном ниже списке выделены некоторые часто используемые параметры конфигурации ядра:

  • CONFIG_FREERTOS_UNICORE запустит FreeRTOS только на CPU0. Обратите внимание, что это не эквивалентно запуску Vanilla FreeRTOS . Кроме того, эта опция может повлиять на поведение компонентов, отличных от freertos. Дополнительные сведения о последствиях запуска FreeRTOS на одном ядре см. в документе ESP-IDF FreeRTOS Single Core (при использовании ESP-IDF FreeRTOS) или в официальной документации Amazon SMP FreeRTOS. Кроме того, пользователи могут также искать вхождения

    CONFIG_FREERTOS_UNICORE 9.0036 в компонентах ESP-IDF.

Конфигурация порта

Все другие параметры конфигурации, связанные с FreeRTOS, которые не являются частью конфигурации ядра, доступны через menuconfig в разделе Component Config/FreeRTOS/Port . Эти параметры настраивают такие аспекты, как:

  • Сами порты FreeRTOS (например, выбор тикового таймера, размер стека ISR)

  • Дополнительные функции, добавленные в реализацию FreeRTOS или порты

Использование FreeRTOS

Точка входа приложения

В отличие от Vanilla FreeRTOS, пользователи FreeRTOS в ESP-IDF никогда не должны вызывать vTaskStartScheduler() и vTaskEndScheduler() . Вместо этого ESP-IDF автоматически запустит FreeRTOS. Пользователи должны определить функцию void app_main(void) , которая выступает в качестве точки входа для пользовательского приложения и автоматически вызывается при запуске ESP-IDF.

  • Как правило, пользователи запускают остальную часть задачи своего приложения из app_main .

  • Функция app_main

    может возвращаться в любой момент (т. е. до завершения работы приложения).

  • Функция app_main вызывается из задачи main .

Фоновые задачи

Во время запуска ESP-IDF и FreeRTOS автоматически создают несколько задач, которые выполняются в фоновом режиме (перечислены в таблице ниже).

.
Список задач, созданных во время запуска

Название задачи

Описание

Размер стопки

Аффинити

Приоритет

Бездействующие задачи (

IDLEx )

Задача бездействия ( IDLEx ) создается (и закрепляется) для каждого ЦП, где x — номер ЦП.

CONFIG_FREERTOS_IDLE_TASK_STACKSIZE

ЦПx

0

Задача таймера FreeRTOS ( Tmr Svc )

FreeRTOS создаст задачу Timer Service/Daemon Task, если какое-либо приложение FreeRTOS Timer API вызывается приложением.

CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH

ЦП0

CONFIG_FREERTOS_TIMER_TASK_PRIORITY

Основная задача ( основная )

Задача, которая просто вызывает app_main . Эта задача будет удалена автоматически, когда app_main вернет

CONFIG_ESP_MAIN_TASK_STACK_SIZE

КОНФИГУРАЦИЯ_ESP_MAIN_TASK_AFFINITY

1

Задачи IPC ( ipcx )

Если CONFIG_FREERTOS_UNICORE имеет значение false, задача IPC ( ipcx ) создается (и закрепляется) для каждого процессора.

Задачи IPC используются для реализации функции межпроцессорного вызова (IPC).

CONFIG_ESP_IPC_TASK_STACK_SIZE

ЦПx

24

Задача таймера ESP ( esp_timer )

ESP-IDF создаст задачу таймера ESP, используемую для обработки обратных вызовов таймера ESP.

CONFIG_ESP_TIMER_TASK_STACK_SIZE

ЦП0

22

Примечание

Обратите внимание, что если приложение использует другие функции ESP-IDF (например, WiFi или Bluetooth), эти функции могут создавать свои собственные фоновые задачи в дополнение к задачам, перечисленным в таблице выше.

Дополнения FreeRTOS

ESP-IDF предоставляет некоторые дополнительные функции для FreeRTOS, такие как кольцевые буферы, Tick и Idle Hooks в стиле ESP-IDF, а также обратные вызовы удаления TLSP. Дополнительные сведения см. в разделе FreeRTOS (дополнительные функции).

Регистры специальных функций микроконтроллера 8051 (SFR)

В предыдущем учебнике по микроконтроллеру 8051 мы видели набор инструкций и режимы адресации. В этом руководстве мы рассмотрим регистры специальных функций микроконтроллера 8051 или SFR.

Если вы помните из учебника по организации памяти микроконтроллера 8051, внутренняя оперативная память или память данных микроконтроллера 8051 разделена на регистры общего назначения, регистры с битовой адресацией, банки регистров и регистры специальных функций или SFR.

Регистры специальных функций микроконтроллера 8051 используются для программирования и управления различными аппаратными периферийными устройствами, такими как таймеры, последовательный порт, порты ввода-вывода и т. д. Фактически, манипулируя регистрами специальных функций (SFR) микроконтроллера 8051, вы можете оценить или изменить режим работы микроконтроллера 8051.

Напоминаем, что на следующем рисунке показана базовая структура внутреннего ОЗУ микроконтроллера 8051.

Схема

8051 Регистры специальных функций микроконтроллера (SFR)

Регистры специальных функций микроконтроллера 8051 действуют как управляющая таблица, которая отслеживает и управляет работой микроконтроллера 8051. Если вы наблюдаете во внутренней структуре ОЗУ, адресное пространство от 80H до FFH выделено для SFR.

Из этих 128 ячеек памяти (от 80H до FFH) только 21 ячейка фактически назначена SFR. Каждый SFR имеет один байтовый адрес, а также уникальное имя, определяющее его назначение.

Поскольку SFR являются частью структуры внутреннего ОЗУ, вы можете получить доступ к SFR, как если бы вы обращались к внутреннему ОЗУ. Основное отличие заключается в адресном пространстве: первые 128 байт (от 00H до 7FH) предназначены для обычной внутренней памяти, а следующие 128 байт (от 80H до FFH) — для SFR.

СОВЕТ: Поскольку назначена только 21 из возможных 128 ячеек памяти SFR, рекомендуется не обращаться к остальным регистрам или ячейкам памяти во время программирования.

Прежде чем идти дальше, получите представление об АРХИТЕКТУРЕ МИКРОКОНТРОЛЛЕРА 8051.

Список регистров специальных функций микроконтроллера 8051
  • A или ACC
  • Б
  • ДПЛ
  • ДПХ
  • ИЭ
  • ИП
  • Р0
  • Р1
  • Р2
  • Р3
  • ПКОН
  • Код товара
  • СКОН
  • СБУФ
  • СП
  • ТМОД
  • ТКОН
  • TL0
  • ТХ0
  • TL1
  • Th2
Категории регистров специальных функций микроконтроллера 8051

Все 21 регистр специальных функций (SFR) микроконтроллера 8051 вместе с их функциями и адресом внутреннего ОЗУ приведены в следующей таблице.

Существует множество способов классификации этих 21 регистра специальных функций, но я считаю наиболее подходящим следующий способ. 21 специальный функциональный регистр микроконтроллера 8051 разбит на семь групп. Это:

Регистры математики или процессора: A и B

Регистр состояния: PSW (Слово программы)

Регистры указателя: DPTR (DTACE -IPLTER - DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL -DPL. и SP (указатель стека)

Защелки портов ввода-вывода: P0 (порт 0), P1 (порт 1), P2 (порт 2) и P3 (порт 3)

Регистры управления периферийными устройствами: PCON, SCON, TCON , TMOD, IE и IP

Периферийные регистры данных: TL0, TH0, TL1, Th2 и SBUF

CPU или математические регистры

A или аккумулятор (ACC)

Аккумулятор и наиболее часто используемые микроконтроллеры 8051 SFR. Регистр A расположен по адресу E0H в пространстве памяти SFR. Аккумулятор используется для хранения данных почти всех операций ALU.

Некоторые из операций, в которых используется аккумулятор:

  • Арифметические операции, такие как сложение, вычитание, умножение и т. д.
  • Логические операции, такие как И, ИЛИ, НЕ и т. д.
  • Операции передачи данных (между 8051 и внешней памятью)

Название «Накопитель» произошло от того факта, что этот регистр используется для накопления (или хранения) результатов всех арифметических и большинства логических операций.

Б (регистр Б)

Регистр B используется вместе с ACC в операциях умножения и деления. Эти две операции выполняются с данными, которые хранятся только в регистрах A и B. Во время операции умножения один из операндов (множитель или множимое) сохраняется в регистре B, а также старший байт результата.

В случае операции деления регистр B содержит делитель, а также оставшуюся часть результата. Он также может использоваться как регистр общего назначения для обычных операций и часто используется программистами в качестве вспомогательного регистра для хранения временных результатов.

Регистр B расположен по адресу F0H адресного пространства SFR.

Слово состояния программы (PSW)

Регистр PSW или слова состояния программы также называется регистром флагов и является одним из важных SFR. Регистр PSW состоит из флаговых битов, которые помогают программисту проверять состояние результата, а также принимать решения.

Флаги — это 1-битные элементы хранения, которые хранят и указывают характер результата, генерируемого при выполнении определенных инструкций. На следующем изображении показано содержимое регистра PSW.

В следующей таблице описаны функции каждого флага.

Регистры указателя

Указатель данных (DPTR – DPL и DPH)

Указатель данных представляет собой 16-разрядный регистр и физически представляет собой комбинацию DPL (низкий уровень указателя данных) и DPH (высокий уровень указателя данных) SFR. Указатель данных может использоваться как один 16-битный регистр (как DPTR) или как два 8-битных регистра (как DPL и DPH).

DPTR не имеет физического адреса памяти, но DPL (младший байт DPTR) и DPH (старший байт DPTR) имеют отдельные адреса в пространстве памяти SFR. DPL = 82H и DPH = 83H.

Регистр DPTR используется программистом, обращающимся к внешней памяти (Программа – ПЗУ или Данные – ОЗУ).

Указатель стека (SP)

SP или указатель стека указывает на вершину стека и указывает на следующие данные, к которым необходимо получить доступ. Доступ к указателю стека можно получить с помощью инструкций PUSH, POP, CALL и RET. Указатель стека представляет собой 8-битный регистр, и после сброса указатель стека инициализируется значением 07H.

При записи нового байта данных в стек значение SP (указатель стека) автоматически увеличивается на 1, и новые данные записываются по адресу SP+1. При чтении данных из стека данные извлекаются из адреса в SP, после чего SP уменьшается на 1 (SP-1).

Регистры портов ввода/вывода (P0, P1, P2 и P3)

Четыре порта микроконтроллера 8051, которые можно использовать как вход и/или выход. Эти четыре порта — P0, P1, P2 и P3. Каждый порт имеет соответствующий регистр с теми же именами (регистры порта также P0, P1, P2 и P3). Адреса регистров портов следующие: P0 – 80H, P1 – 90H, P2 – A0H и P2 – B0H.

Каждый бит в этих SFR соответствует одному физическому контакту в микроконтроллере 8051. Все эти регистры портов имеют как битовую, так и байтовую адресацию. Запись 1 или 0 в бит регистра порта будет отражать соответствующее напряжение (5 В и 0 В) на соответствующем выводе.

Если бит порта установлен (объявлен как 1), соответствующий вывод порта будет сконфигурирован как вход, и аналогичным образом, если бит порта ОЧИСТЕН (объявлен как 0), соответствующий вывод порта сконфигурирован как выход. После сброса все биты порта устанавливаются (1) и, следовательно, все выводы порта настраиваются как входы.

Регистры управления периферийными устройствами

PCON (управление питанием)

PCON или регистр управления питанием, как следует из названия, используется для управления режимами питания микроконтроллера 8051 и расположен в 87H области памяти SFR. Используя два бита в регистре PCON, микроконтроллер можно перевести в режим ожидания и режим пониженного энергопотребления.

ПРИМЕЧАНИЕ. Регистр PCON не имеет битовой адресации.

В режиме ожидания микроконтроллер останавливает подачу тактового сигнала на АЛУ (ЦП), но он передается другим периферийным устройствам, таким как таймер, последовательный порт, прерывания и т. д. Чтобы завершить режим ожидания, вы должны использовать прерывание или Аппаратный сброс.

В режиме Power Down генератор будет остановлен, а питание снизится до 2 В. Чтобы выйти из режима Power Down, вы должны использовать аппаратный сброс.

Помимо этих двух, регистр PCON также можно использовать для нескольких дополнительных целей. Бит SMOD в регистре PCON используется для управления скоростью последовательного порта.

В регистре PCON есть два флаговых бита общего назначения, которые могут использоваться программистом во время выполнения.

В следующей таблице описаны функции каждого бита в регистре PCON.

.

Бит

Символ Описание Дополнительная информация
7 СМОД Последовательный порт. Бит изменения скорости передачи данных

Если 1, удваивает скорость передачи с использованием Таймера 1. Если 0, нормальная скорость передачи Таймера 1.

6 – 4

---

3

ГФ1

Флаг пользователя общего назначения (бит 1)

2 ГФ0 Флаг пользователя общего назначения (бит 0)

1

ПД Бит отключения питания Чтобы войти в режим пониженного энергопотребления, установите значение 1
0 ИДЛ Бит режима ожидания

Чтобы войти в режим ожидания, установите значение 1

SCON (Serial Control)

Serial Control или SCON SFR используется для управления последовательным портом микроконтроллера 8051. Он расположен по адресу 98ч. Используя SCON, вы можете управлять режимами работы последовательного порта, скоростью передачи данных последовательного порта и отправлять или получать данные с использованием последовательного порта.

Регистр SCON также состоит из битов, которые автоматически устанавливаются при передаче или приеме байта данных.

В следующей таблице описаны функции каждого бита в регистре SCON.

Бит

Символ Описание
7 СМ0

Выбор режима последовательного порта Бит 0

6

СМ1 Выбор режима последовательного порта, бит 1
5 СМ2

Многопроцессорная связь. Бит

4

РЕН Бит разрешения приема
3 ТБ8

Передано Бит 8

2

РБ8 Получен бит 8
1 ТИ

Флаг прерывания передачи

0

РИ

Флаг прерывания приема

Биты выбора режима последовательного порта (SM0 и SM1) определяют режим UART, а также скорость передачи данных. В следующей таблице представлен обзор того, как можно использовать биты выбора режима последовательного порта для настройки последовательного порта (UART) 8051.

Биты выбора режима последовательного порта

СМ0

СМ1 Режим Описание Скорость передачи
0 0 0 Режим 8-битного синхронного регистра сдвига

Фиксированная скорость передачи

(Частота генератора / 12)

0

1 1 8-битный стандартный UART

режим

Переменная скорость передачи данных (может быть установлена ​​таймером 1)
1 0 2 9-битный многопроцессорный комм. режим

Фиксированная скорость передачи

(Частота генератора / 32 или Частота генератора / 64

1

1 3 9-битный многопроцессорный комм. режим

Переменная скорость передачи (может быть установлена ​​Таймером 1)

TCON (управление таймером)

Управление таймером или регистр TCON используется для запуска или остановки таймеров микроконтроллера 8051. Он также содержит биты, указывающие на переполнение таймеров. TCON SFR также состоит из битов, связанных с прерываниями.

В следующей таблице приведено описание каждого бита в TCON SFR.

Бит

Символ Описание

Дополнительная информация

7

ТФ1 Флаг переполнения таймера 1 Устанавливается, когда Таймер 1 переполняется (все 1 с равны 0). Сбрасывается, когда процессор выполняет ISR по адресу 001BH.
6 ТР1 Бит управления работой таймера 1

Чтобы включить таймер/счетчик, установите значение 1. Снимите флажок, чтобы остановить таймер.

5

ТФ0 Таймер 0 Флаг переполнения Устанавливается, когда Таймер 0 переполняется (все 1 с равны 0). Сбрасывается, когда процессор выполняет ISR по адресу 000BH.
4 ТР0 Бит управления запуском таймера 0

Чтобы включить таймер/счетчик, установите значение 1. Снимите флажок, чтобы остановить таймер.

3

ИЭ1 доб. Флаг прерывания 1 Edge Устанавливается, когда на INT1 (P3.3) принимается сигнал от HIGH к LOW. Сбрасывается, когда процессор выполняет ISR в 0013H.
2 ИТ1 доб. Бит управления типом прерывания 1

Если 1, прерывание 1 происходит по заднему фронту. Если 0, прерывание 1 происходит по низкому уровню.

1

ИЭ0 доб. Флаг прерывания 0 Edge Устанавливается в 1, когда на INT0 (P3. 2) поступает сигнал от HIGH к LOW. Сбрасывается, когда процессор выполняет ISR в 0003H.
0 ИТ0 доб. Прерывание 0 Тип Контрольный бит

Если 1, прерывание 0 происходит по заднему фронту. Если 0, прерывание 0 происходит по низкому уровню.

TMOD (режим таймера)

Регистр TMOD или режима таймера или SFR используется для установки режимов работы таймеров T0 и T1. Младшие четыре бита используются для настройки Timer0, а старшие четыре бита используются для настройки Timer1.

В следующей таблице дано краткое описание каждого бита в SFR TMOD.

Бит

Символ

Описание

7 / 3

Ворота Бит включения шлюза ИЛИ
6 / 2 С/Тх

Выбор режима таймера или счетчика

5 / 1

ТхМ1 Выбор режима работы таймера/счетчика, бит 1
4/0 ТхМ0

Выбор режима работы таймера/счетчика Бит 0

Бит Gatex используется для работы Timerx относительно вывода INTx или независимо от вывода INTx.

  • GATE1 = 1 ==> Таймер 1 работает, только если TR1 (в TCON) установлен, а сигнал на INT1 ВЫСОКИЙ.
  • GATE1 = 0 ==> Таймер 1 работает независимо от сигнала на выводе INT1, но TR1 (в TCON) должен быть установлен.
  • GATE0 = 1 ==> Таймер 0 работает, только если TR0 (в TCON) установлен, а сигнал на INT0 имеет ВЫСОКИЙ уровень.
  • GATE0 = 0 ==> Timer0 работает независимо от сигнала на выводе INT0, но TR0 (в TCON) должен быть установлен.

Бит C/Tx используется для выбора источника импульсов для счета таймера.

  • C/T1 = 1 ==> Таймер 1 подсчитывает импульсы с контакта T1 (P3.5) (режим счетчика)
  • C/T1 = 0 ==> Таймер 1 подсчитывает импульсы внутреннего генератора (режим таймера)
  • C/T0 = 1 ==> Timer0 подсчитывает импульсы от контакта T0 (P3.4) (режим счетчика)
  • C/T0 = 0 ==> Timer0 считает импульсы внутреннего генератора (режим таймера)

ТхМ0

ТхМ1 Режим

Описание

0

0 0 13-битный режим таймера (THx — 8-битный и TLx — 5-битный)

0

1 1 16-битный режим таймера
1 0 2

8-битный режим таймера автоматической перезагрузки

1 1 3

Режим двух 8-битных таймеров или режим разделенного таймера

ПРИМЕЧАНИЕ. x = 0 для Таймера 0 и x = 1 для Таймера 1.

IE (Разрешение прерывания)

IE или регистр разрешения прерывания используется для включения или отключения отдельных прерываний. Если бит установлен, соответствующее прерывание разрешено, а если бит сброшен, прерывание запрещено. Бит 7 регистра IE, т. е. бит EA, используется для включения или отключения всех прерываний.

В следующей таблице описаны функции каждого бита в регистре IE.

Бит

Символ Описание

Дополнительная информация

7

EA Бит разрешения глобального прерывания. Если установлено в 1, отдельные прерывания могут быть разрешены. Если установлено в 0, все прерывания отключены.
6

5

ЕТ2 Зарезервировано
4 ЕС Бит разрешения прерывания последовательного порта

Если установлено значение 1, прерывание последовательного порта разрешено. Если установлено значение 0, прерывание последовательного порта отключено.

3

ЕТ1 Разрешение прерывания по переполнению таймера 1, бит Если установлено значение 1, прерывание по переполнению таймера 1 разрешено. Если установлено значение 0, прерывание по переполнению Таймера 1 отключено.
2 ЕХ1 доб. Бит разрешения прерывания 1

Если установлено 1, Внешн. Прерывание 1 разрешено. Если установлено значение 0, Внешн. Прерывание 1 отключено.

1

ЕТ0 Бит разрешения прерывания по переполнению таймера 0 Если установлено значение 1, прерывание по переполнению таймера 0 разрешено. Если установлено значение 0, прерывание по переполнению таймера 0 отключено.
0 ЕХ0 доб. Бит разрешения прерывания 0

Если установлено 1, Внешн. Прерывание 0 разрешено. Если установлено значение 0, Внешн. Прерывание 0 отключено.

ПРИМЕЧАНИЕ. SFR разрешения прерывания (IE) имеет битовую адресацию.

IP (приоритет прерывания)

Регистр IP или приоритет прерывания используется для установки высокого или низкого приоритета прерывания. Если бит ОЧИСТЕН, соответствующему прерыванию назначается низкий приоритет, а если бит установлен, прерыванию назначается высокий приоритет.

В следующей таблице описаны функции каждого бита в регистре IP.

Бит

Символ

Описание

7

6

5

ПТ2 Зарезервировано
4 ПС

Приоритет прерывания последовательного порта

3

ПТ1 Приоритет прерывания по переполнению таймера 1
2 ПС1

Приоритет доб.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *