Схема таймера на микроконтроллере: РадиоКот :: Универсальный таймер на микроконтроллере.

Таймер на микроконтроллере atmega8


Хочу предложить мастерам Самоделкина для рассмотрения и возможного повторения, очень простую схему, очень хорошего таймера. С удобной навигацией по меню, с жидкокристаллическом LCD дисплеем , с часами реального времени, с минимально возможным количеством деталей и при всем этом можно запрограммировать целых сто временных отрезков в течении суток.

Компактные размеры

Видео проверки таймера

Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8. Вы можете сказать, что для прошивки нам потребуется программатор которого нет, но это не так, для прошивки Atmega достаточно всего пять коротких 10-15 см. проводков подключенных через резисторы 150-200 Ом. напрямую к LPT порту по этой схеме.


Вот по этой причине, эти микроконтроллеры стали самыми популярными у радиолюбителей.

На этом рисунке Вы видите: Схему распиновки ножек МК для подключения и прошивки.

Пункт 1. Подготовим все необходимое для изготовления таймера.

Самые обязательные радиодетали схемы, остальное обычно можно подобрать у себя дома, самая маленькая микросхема, это часы DS1307.

Нам потребуются такие радиоэлементы:
• Микроконтроллер Atmega8
• Интегральные часы DS1307
• LCD жидкокристаллический индикатор
• Стабилизатор 7805
• Конденсатор 500-1000 Мф - 16 вольт.
• Реле или электронный ключ (в зависимости от нагрузки которая планируется подключаться).
• Резисторы сопротивлением 5,1ком - 3 шт., резистор переменный (по мануалу LCD дисплея).
• Кварц часовой 32768 Гц.
• Кнопки без фиксации - 4 шт.
• Батарейка таблетка на 3 вольта.
• Текстолит для платы.
• Небольшой трансформатор ~220в. -> ~6-12в.
• Коробка распаечная для корпуса.
+ Для программатора: резисторы 150-200 Ом. - 4 шт., разъем LPT порта (для удобства, не обязателен).

Обязательные инструменты каждого радиолюбителя:
• Паяльник для пайки микросхем, паяльник для пайки пассивных радиодеталей и проводов.
• Тестер для прозвонки дорожек и проверки радиодеталей.
• Олово, канифоль.
+ Принтер лазерный (для изготовления платы или другой способ).

Пункт 2. Приступим к изготовлению.

Таймер будем делать по этой главной схеме.


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

Лично я своем таймере применил вот такую схему БП и исполнительное устройство на транзисторе и реле.


Но вы можете захотеть в качестве исполнительного устройства применить триаки, тиристоры и симисторы, варианты таких схемных показаны ниже.


Они более компактные (без радиатора), но менее мощные, чем простое реле.

В соответствии с главной принципиальной схемой + БП + ИУ и анализом монтажных габаритов вашей коробки для корпуса, а также размеров подобранных радио элементов, проектируем форму, размер и рисунок дорожек на плате. Для этого удобно пользоваться программой Sprint Layout.

Для моего устройства получилась вот такая простая плата.


Полученный рисунок переносим с помощью специального маркера или по технологией ЛУТ (с помощью лазерного принтера и утюга) на медный слой текстолита. Если у вас принтер лазерный Brother (как у меня), то идею с ЛУТ лучше сразу забросить, по причине используемого в нем тугоплавкого тонера ~400C вместо обычных~200С, я кстати когда-то по глупости купил этот принтер именно для ЛУТ :(., поэтому в результате моя плата рисована маркером.
Нанесенный на медь рисунок вытравливаем в ванночке с хлорным железом или любым другим специальным раствором.

На готовую плату припаиваем детали согласно схеме, особое внимание обращаем при монтаже и пайке микросхемы часов и кварцевого элемента. Длина дорожек между ними должна быть минимальной, а лучше использовать микро кварц из наручных часов и припаять его непосредственно к ножкам МС часов. Все свободное пространство рядом с МС часов и кварца заполняем площадками корпуса (GND). Батарея необходима для поддержания часов в рабочем состоянии во время отключения от сети. Если по какой-то причине вы не стали устанавливать эту батарейку, то посадите плюсовой провод на корпус, иначе часы просто не пойдут.

Микроконтроллер прошиваем программатором или с помощью 5 проводков.

*Прошивка* multitimer100.rar [5.35 Kb] (скачиваний: 1673)

Автор прошивки специально для удобства (за что ему спасибо) и не стал изменять заводские фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.

Пункт 3. Сборка.

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



В прорезанную ножом крышку, при помощи термоклея из пистолета, закрепляем LCD экран., прорезаем отверстия под кнопки управления и кнопку питания.


Подрезаем выступающий клей.

Размещаем все узлы внутри корпуса, постоянно проверяя как закрывается крышка, при необходимости переносим или подгибаем мешающие. Все закрепляется на термоклее.

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

Управление меню осуществляется четырьмя кнопками.

Меню состоит из трех пунктов, СLOCK -установка часов, TIMЕ - установка таймеров и RESET -сброс всех установленных таймеров.

Сначала заходим (*) в меню часов и выставляем точное время.


Подсказка по управляющим кнопкам в нижней строке дисплея, в каждом меню разное, поэтому описывать кнопки нет необходимости.

Теперь все готово чтобы корректно задавать временные записи таймера, после нажатия решетки, программа записывается в постоянную память МК.


На видео в начале статьи можно посмотреть подробнее о меню.

Я применяю этот таймер для полива гидропоники.

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Программируемый таймер на микроконтроллере | Компьютер и жизнь

Приветствую, друзья.

Хочу представить вам мою конструкцию программируемого таймера.

Данный таймер предназначен для отсчета заданных промежутков времени.

Он может иметь как непрерывно-циклический режим работы (бесконечный цикл «включение-пауза»), так и ограниченно-циклический (заданное количество циклов «включение-пауза»), либо однократное включение — на заданное время включения.

Время включения, время паузы и количество рабочих циклов задаются независимо.

Характеристики таймера

Квант времени может быть выбран равным одной секунде или одной минуте, соответственно, время включения и время паузы могут находиться в диапазоне от 1 до 255 секунд или минут, количество рабочих циклов может быть в диапазоне от 1 до 255.

Таким образом, минимальный промежуток времени может быть равным 1 секунде, максимальный – 4 часам и 15 минутам.

Отсчет времени начинается после нажатия кнопки старта (кнопку надо нажимать менее двух секунд).

Блок-схема программы таймера изображена на рис. 1.

Все константы – время включения, время паузы, количество рабочих циклов, величина кванта времени, режим работы также хранятся в энергонезависимой памяти, и могут быть изменены в любую сторону (перепрограммированы) посредством DIP-переключателей и отдельной кнопки программирования.

Для удобства таймер оснащен световой и звуковой сигнализацией.

Питаться таймер может как от сетевого адаптера с выходным постоянным напряжением 15-20 В, так и от аккумулятора напряжением 12 В.

Описание работы схемы таймера

Схема устройства изображена ниже. Его основа – микроконтроллер ATMega8L.

В качестве источника тактового сигнала используется внутренний RC-генератор микроконтроллера частотой 1 МГц. Для повышения точности отсчета временных интервалов используется синхронизация внутреннего таймера-счетчика Т/С2, (далее – таймера Т2) микроконтроллера от внешнего кварцевого резонатора BQ1 на частоту 32768 Гц. При коэффициенте деления 128 8-разрядный таймер Т2 переполняется каждую секунду, генерируя прерывание.

Исполнительным устройством служит реле К1, которое управляется посредством ключа на транзисторе VT1 с вывода РС5 микроконтроллера. Его контакты выведены на внешние клеммы разъема X2 и могут быть использованы для управления внешними цепями, в том числе и сетевым напряжением 220 В.

Звуковые сигналы подает пьезокерамический излучатель BQ2 (со встроенным звуковым генератором), который управляется выводом  РС4 микроконтроллера. Питание на микроконтроллер (+5 В) подается с выхода интегрального стабилизатора DA1. Напряжение на вход DA1 подается либо с выхода интегрального стабилизатора DA2 (+12 В), либо с аккумулятора, выбор осуществляется с помощью перемычки J1.

Светодиод HL1 зеленого цвета индицирует наличие питающего напряжения. Светодиод HL2 красного цвета служит для индикации режима работы и количества включений реле в предыдущем цикле работы. При срабатывании реле (на время включения) светодиод HL2 загорается на 1,5 с и на 0,25 с гаснет, если реле обесточено (время паузы) светодиод загорается на 0,25 с и на 1,5 с гаснет. После окончания отсчета времени светодиод HL2 гаснет. Таким образом, по характеру свечения HL2 видно, в каком состоянии находится таймер.

Конденсаторы С2 – С6 блокировочные. Диоды VD2, VD3 служат защитой от ошибочной полярности источников напряжения, диод VD1 – защита от ЭДС самоиндукции, возникающей при коммутации реле.

Движковые DIP-переключатели SA1 — SA8 служат для задания величины времени включения, времени паузы и количества рабочих циклов. Такие же переключатели SB1 – SB4 служат для выбора программируемой величины — времени включения, времени паузы, режима работы, количества рабочих циклов  и величины кванта времени. Соответствие переключателей программируемой величине приведено в табл. 1.

Задавать время включения/паузы и количества рабочих циклов надо в двоичном виде, что является некоторым неудобством. Но для перевода десятичных величин в двоичные можно использовать калькулятор, встроенный в Windows. При программировании следует помнить, что нулю двоичной величины соответствует положение ON переключателей, единице – положение OFF. Программирование производится с помощью кнопки программирования S1. Старт таймера осуществляется посредством стартовой кнопки S2.

Программировать таймер нужно перед стартом отсчета времени (сразу после включения) или после окончания рабочего цикла.

В процессе отсчета времени программирование невозможно. Если начался отсчет времени, таймер нечувствителен к нажатию кнопок и изменению положения DIP-переключателей. Таймер остановится после окончания отсчета времени или исчезновении напряжения питания.

Звуковая сигнализация таймера

Звуковая индикация таймера работает следующим образом. При нажатии на кнопку старта в течение менее 2 с (переход в рабочий режим) раздается короткий звуковой сигнал длительностью 0,1 с, свидетельствующий о начале отсчета времени. Если используется ограниченно-циклический режим, то сразу по окончании отсчета времени раздается звуковой сигнал длительностью 2 с. Если кнопка старта нажата более 2 с, раздается 5 звуковых сигналов длительностью 0,1 с  — и таймер возвращается в исходный режим.

При программировании таймера процедура успешного программирования необходимой величины сопровождается двумя сигналами по 0,1 с. Если произошла ошибка (например, ошибочно задан нулевой интервал времени включения, чего быть не должно) раздается звуковой сигнал длительностью 1 с. При ошибке надо проверить положение DIP-переключателей SB1 – SB4.

При программировании микроконтроллера должны быть запрограммированы следующие фьюзы — SUT0, SUT1, CKSEL1, CKSEL2, CKSEL3, BODEN, BODLEVEL. Так как производится запись в энергонезависимую память (данные в которой могут искажаться при медленном снижении напряжения питания), то используется встроенная схема BOD (Brown-Out Detection) микроконтроллера, которая отслеживает питающее напряжение и производит сброс микроконтроллера при снижении его ниже 4 В.

Конструкция таймера

Конструктивно таймер собран на плате из фольгированного стеклотекстолита толщиной 1,5 мм размерами 83×52 мм. Топология печатной платы изображена на рис. 3, расположение деталей на ней – на рис. 4. В исходном состоянии в EEPROM запрограммированы следующие значения констант: время включения – 10 с, время паузы – 10 с, количество циклов включения – 3, квант времени – одна секунда, режим работы – циклически-ограниченный.

Транзистор VT1 можно заменить на КТ3102 с любым буквенным индексом или аналогичным. В качестве светодиодов можно использовать любые современные высокоэффективные светодиоды с заметным свечением при токе 2-3 мА. Реле К1 – постоянного тока, типа JZC-22F, но можно использовать и другое с катушкой на 12 В, подходящее по току контактов и типоразмеру.

Программирование таймера

Рассмотрим примеры перепрограммирования таймера. Отметим, что при программировании следует учитывать внутреннюю логику встроенной в микроконтроллер программы. Рабочий цикл – это время включения плюс время паузы. Количество рабочих циклов может быть и нулевым – это означает, что реле включается однократно на время включения. Таким образом, чтобы включить реле N раз, надо задать N – 1 рабочих циклов, соответственно, если задать N рабочих циклов, реле включится N + 1 раз.

Пример 1. Время включения – 10 сек, время выключения – 8 сек, режим работы – циклически-ограниченный, количество рабочих циклов — 5.

Для начала запишем все числа в двоичном виде: число 10 – это 00001010, 8 – 00001000, 5 – 00000101. Включаем таймер, ставим переключатель SB3 – ON (квант времени – секунда), SB4 — ON (циклически-ограниченный режим), SB2/SB1 – ON/OFF (время включения), на переключателях SA1 – SA8 набираем число 00001010 (SA2, SA4 – OFF, все остальные – ON) и нажимаем кнопку программирования. Слышим два коротких сигнала.

Далее ставим SB2/SB1 – OFF/ON (время паузы), набираем на SA1 – SA8 число 00001000 (SA4 – OFF, остальные – ON), вновь нажимаем кнопку программирования, вновь слышим два коротких сигнала. Теперь ставим SB2/SB1 – OFF/OFF (количество рабочих циклов), набираем на SA1 – SA8 число 00000101 (SA1, SA3 – OFF, остальные – ON), вновь нажимаем кнопку программирования, слышим два коротких сигнала. Выключаем и вновь включаем питание – и таймер с новыми значениями констант готов к работе.

Пример 2. Время включения – 4 сек, время выключения – 3 сек, режим работы – циклически-непрерывный.

Число 4 – 00000100, число 3 – 00000011. Включаем таймер, ставим SB3 –ON (квант времени – секунда), SB4 – OFF (циклически-непрерывный режим), SB2/SB1 – ON/OFF (время включения), на переключателях SA1 – SA8 набираем число 00000100 (SA3 – OFF, все остальные — ON), нажимаем кнопку программирования, слышим два сигнала. Далее ставим SB2/SB1 – OFF/ON ( время паузы), набираем на SA1 – SA8 число 00000011 (SA1, SA2 – OFF, остальные – ON), нажимаем кнопку программирования, слышим два коротких сигнала. Выключаем и вновь включаем питания – и таймер с новыми значениями констант готов к работе.

Пример 3. Время включения – 20 мин однократно.

Число 20 – 00010100. Включаем таймер, ставим SB3 – OFF (квант времени — минута), SB4 – ON (циклически ограниченный режим), SB2/SB1 – ON/OFF (время включения), на переключателях SA1 – SA8 набираем 00010100 (SA3, SA5 – OFF, остальные – ON), нажимаем кнопку программирования, слышим два коротких сигнала. Ставим SB2/SB1 – OFF/OFF (количество рабочих циклов), набираем на SA1 – SA8 число 00000000 (все переключатели – ON), нажимаем кнопку программирования, слышим два коротких сигнала. Выключаем и вновь включаем питание – таймер с новыми значениями констант готов к работе.

Архив с описанием, топологией платы, программой и прошивкой можно скачать здесь.

До встречи на блоге!


Схема таймера на микроконтроллере ATtiny2313

Подробности
Категория: Микроконтроллеры
Опубликовано 07.04.2016 12:35
Автор: Admin
Просмотров: 2689

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

Схема таймера на микроконтроллере ATtiny2313

Схема таймера выполнена на микроконтроллере ATtiny2313 который имеет 20 выводов. Развязка силовой часть от управляющей осуществляется через оптореле А1. Схема имеет также звуковую сигнализацию, пьезоэлектрический пассивный звукоизлучатель подключен к выводам 3 и 6.

Установка требуемого значения времени осуществляться при помощи трех кнопок, S1,S2,S3. Две из них необходимы для установки времени, это кнопки S1 и S2 а другая для запуска таймера, это кнопка S3. После того вы выставили время и нажали запуск срабатывает реле и включается нагрузка. После того как значение времени достигнет нулевого значения нагрузка выключится.

Для питании схемы таймера на микроконтроллере необходим источник в 5 В, который подключается к штекеру X4. Штекер X3 - розетка под нагрузку. Программатор подключатся к разъему X1.

Микроконтроллер затактирован от кварцевого резонатора с частотой в 4 МГц. В качестве табло выступает трехразрядный индикатор с общим катодом, тут используется динамическая индикация. Переключение каждого семисегментного индикатора осуществляется при помощи 3-х транзисторов VT1-VT3. Сопротивление R2-R9 необходимы для ограничения протекающего тока через семисегментный индикаторы.

Прошивка для таймера на микроконтроллере - скачать (1,5 Кб). Необходимые фьюзы отмечены галочками SPIEN, BODLEVEL2, BODLEVEL1, SUTO, CKSEL1

  • < Назад
  • Вперёд >
Добавить комментарий

Изучение таймеров микроконтроллера | Лаборатория Электронных Средств Обучения (ЛЭСО) СибГУТИ

Методическое указание к лабораторной работе на учебном стенде LESO1.

1 Цель работы
  1. Изучить особенности работы таймеров микроконтроллера.
  2. Изучить методику конфигурирования таймеров.
  3. Научиться формировать с помощью таймера временные интервалы.
  4. Изучить способы отладки программ на учебном лабораторном стенде LESO1.

2 Предварительная подготовка к работе
  1. По конспекту лекций и рекомендуемой литературе изучить схемы таймеров микроконтроллеров.
  2. По документации изучить особенность таймеров микроконтроллера ADuC842.
  3. Составить алгоритм работы программы, формирующей сигнал прямоугольной формы скважности 2 заданного периода, согласно варианту (таблица 3). Сигнал должен выводиться на светодиод.
  4. Составить программу на языке программирования С.

3 Краткие теоретические сведения

3.1 Общие сведения о таймерах

Таймеры предназначены для формирования временных интервалов, позволяя микропроцессорной системе работать в режиме реального времени. Таймеры представляют собой цифровые счётчики, которые подсчитывают импульсы либо от высокостабильного генератора частоты, либо от внешнего источника сигнала, в этом случае таймер называют счетчиком внешних событий. К системной шине микропроцессора таймеры подключаются при помощи параллельных портов.

Как правило, в микропроцессорной системе в качестве генератора частоты выступает генератор внутренней синхронизации микроконтроллера. Частота генератора задает минимальный временной промежуток, который может определять таймер. Интервалы времени, задаваемые с помощью таймера, могут иметь строго определенные дискретные значения. Разрядность цифрового счётчика таймера определяет максимальный интервал времени, который может задать таймер.

Обычно в микропроцессорных системах используются 16-тиразрядные таймеры, для подключения такого таймера к 8-миразрядному процессору требуется два параллельных порта. Кроме того, необходим выделенный порт для управления таймером: таймер нужно включать и выключать, определять, не возникало ли переполнение таймера. Факт переполнения запоминается в дополнительном триггере, подключенном к выходу переноса счетчика таймера. Этот триггер называется флагом переполнения таймера. Бит включения и выключения таймера и флаг переполнения таймера подключают к системной шине микропроцессора через отдельный порт ввода-вывода. Структурная схема таймера в самом общем виде показана на рисунке 1. Каждый из портов ввода-вывода отображается во внутреннем адресном пространстве микропроцессора, и имеет свой отдельный адрес.

Рисунок 1 – Структурная схема таймера

Очевидно, максимальное число, которое может быть записано в 16-битный счетный регистр таймера равно 216 - 1 = 65535 , что представляет собой логическую единицу в каждом разряде регистра. Таким образом, если перед запуском таймера в его счетчики были записаны нули, то переполнение таймера произойдет через 65536 машинных циклов. Зная частоту задающего генератора микропроцессорной системы, а как следствие и период сигнала генератора TG, можно легко определить время переполнения таймера в секундах:

TT = 65536·TG .

Если же требуется установить меньший интервал времени, то перед запуском таймера в его регистры можно записать начальный код, и тогда счет начнется не с нуля, а с записанного кода, и счетчику потребуется меньше времени для переполнения. В этом случае время работы таймера TT определяется по формуле:

TT = (2n - Code)·TG ,

где: Code – код, записанный в таймер до его запуска, TT – Время работы таймера, TG – период колебаний задающего генератора, n – разрядность таймера.

Если же требуется сформировать интервал времени больший, чем максимальное время переполнения, то таймер можно запустить несколько раз в цикле. В этом случае временной интервал определяется как:

ΔT = TT·N ,

где N – количество итераций цикла, TT – время срабатывания таймера.

3.2 Таймеры-счетчики микроконтроллера ADuC842

Микроконтроллер ADuC842 имеет три 16-разрядных таймера-счетчика: Таймер 0, Таймер 1 и Таймер 2. Структура и режимы работы таймеров-счетчиков соответствуют общим принципам архитектуры MCS-51. Каждый таймер-счетчик содержит по два 8-битных регистра THx и TLx (x = 0, 1, и 2).

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

В режиме таймера регистр TLx увеличивает свое значение на единицу каждый машинный цикл. Поскольку машинный цикл однотактового ядра состоит из одного тактового периода, то максимальная скорость счета равна тактовой частоте ядра.

В режиме счетчика, регистр TLx увеличивает свое значение на единицу при переходе уровня из высокого в низкий на соответствующем внешнем выводе микроконтроллера: T0, T1 или T2. Когда на внешнем выводе один машинный цикл держится высокий логический уровень, а уже в следующем цикле – низкий, тогда регистр таймера увеличивает свое значение на единицу. Таким образом, для распознавания перехода из “1” в “0” требуется два такта внутреннего генератора микроконтроллера, это значит, что максимальная скорость счета может составить половину частоты внутреннего тактового генератора.

Таймеры 0 и 1 обслуживаются регистром режима TMOD и регистром управления TCON.

TMOD – регистр конфигурации Таймера 1 и Таймера 0.
SFR адрес 0x89.
Значение после подачи питания 0x00.
Регистр не имеет битовой адресации.

Таблица 1 – Описание бит регистра TMOD

номер мнемоника описание
7 GATE Бит управления таймером 1.
При GATE = 1 для работы необходимо условие TR1 = 1 и INT1# = 1.
При GATE = 0 Таймер 1 работает всегда, когда TR1 = 1.
6 C/T# Бит выбора типа событий для Таймера 1.
При C/T# = 1 он работает как счетчик (вход с внешнего вывода T1P3.5), при С/T# = 0 — как таймер (вход с внутреннего генератора).
5 M1 M1, M0 биты определяют режим работы таймера 1
M1 M0  
0 0 Th2 работает как 8-битный таймер-счетчик, TL1 выступает в качестве делителя частоты на 32
0 1 16-битный таймер-счетчик, Th2 и TL1 включены последовательно.
1 0 8-битный таймер-счетчик с автоперезагрузкой, Th2 удерживает значение, которое загружается в TL1 всякий раз при переполнении TL1.
1 1 Таймер-счетчик 1 остановлен.
4 M0
3 GATE Бит управления таймером 0.
При GATE = 1 для работы необходимо условие TR0 = 1 и INT0# = 1.
При GATE = 0 Таймер 0 работает всегда, когда TR0 = 1.
2 C/T# Бит выбора типа событий для Таймера 0.
При C/T# = 1 он работает как счетчик (вход с внешнего вывода T0P3.4), при С/T# = 0 — как таймер (вход с внутреннего генератора).
1 M1 M1, M0 биты определяют режим работы таймера 0
M1 M0  
0 0 TH0 работает как 8-битный таймер-счетчик, TL0 выступает в качестве делителя частоты на 32
0 1 16-битный таймер-счетчик, TH0 и TL0 включены последовательно.
1 0 8-битный таймер-счетчик с автоперезагрузкой, Th2 удерживает значение, которое загружается в TL0 всякий раз при переполнении TL0.
1 1 TL0 используется в качестве 8-битного таймера-счетчика со стандартными битами управления Таймера 0. TH0 используется только в качестве 8-битного счетчика, управление происходит стандартными битами управления таймера 1.
0 M0

TCON – регистр управления Таймера 1 и Таймера 0.
SFR адрес 0x88.
Значение после подачи питания 0x00.
Регистр имеет битовую адресацию.

Таблица 2 – Описание бит регистра TCON

номер мнемоника описание
7 TF1 Флаг переполнения Таймера 1. Устанавливается аппаратно при переполнении счетного регистра таймера. Очищается аппаратно при передаче управления на процедуру обработки прерывания.
6 TR1 Бит запуска Таймера 1. При TR1 = 1 счет разрешен.
5 TF0 Флаг переполнения Таймера 0. Устанавливается аппаратно при переполнении счетного регистра таймера. Очищается аппаратно при передаче управления на процедуру обработки прерывания.
4 TR0 Бит запуска Таймера 0. При TR0 = 1 счет разрешен.
3 IE1 Флаг внешнего прерывания 1 (INT1#) Устанавливается аппаратно при падающем фронте или при нулевом уровне на внешней ножке INT1#, зависит от состояния бита IT1. Очищается аппаратно при передаче управления на процедуру обработки прерывания.
2 IT1 Бит выбора типа активного сигнала на входе INT1#. При IТ1 = 1 активным является переход из высокого в низкий, при IТ1 = 0 активным является низкий уровень сигнала.
1 IE0 Флаг внешнего прерывания 1 (INT0#) Устанавливается аппаратно при падающем фронте или при нулевом уровне на внешней ножке INT0#, зависит от состояния бита IT0. Очищается аппаратно при передаче управления на процедуру обработки прерывания.
0 IT0 Бит выбора типа активного сигнала на входе INT1#. При IТ0 = 1 активным является переход из высокого в низкий, при IТ0 = 0 активным является низкий уровень сигнала.

Каждый таймер содержит два 8-битных регистра, которые могут быть использованы как независимые регистры или скомбинированы в одиночные 16-битные регистры в зависимости от режима работы таймера.
TH0 и TL0 – старший и младший байт Таймера 0.
SFR адрес – 0x8C и 0x8A, соответственно.
Th2 и TL1 – старший и младший байт Таймера 1.
SFR адрес – 0x8D и 0x8B, соответственно.

Рисунок 2 – Адреса регистров SFR таймеров

3.3 Режимы работы Таймера 1 и 0

Для выбора нулевого режима следует установить биты M1 = 0 и M0 = 0 регистра TMOD. В этом режиме таймер-счетчик сконфигурирован как 13 битный счетный регистр. Этот счётчик состоит из 8 бит регистра ТНх и младших 5 бит регистра TLx, где x в обозначении регистра заменяется на 0 или 1 в зависимости от того таймера, которым мы управляем. Старшие 3 бита регистров TLx не определены и игнорируются. Установка запускающего таймер флага TR0 или TR1 не очищает эти регистры. Работе таймера 0 или таймера 1 в режиме 0 соответствует схема:

Рисунок 3 – Структурная схема таймера в режиме 0 (для Таймера 0)

Переполнение таймера происходит, когда единицы в каждом разряде меняются нулями, при этом флаг переполнения TFx устанавливается в единицу. Флаг TFx может быть использован для прерывания. К входу счетчика подключен источник сигналов, когда TRx = 1 и выполняется одно из условий Gate = 0 или INTx = 1. В этом случае удобно управлять таймером через флаг TRx. В случае, когда Gate = 1 таймер может управляться с внешнего вывода микроконтроллера INTx, такая возможность позволяет измерять длительность импульсов. Измеряемый импульс должен подаваться на вход INTx. Тип источника тактовых импульсов определяется флагом C/T#, когда флаг установлен (С/Т# = 1), сигнал на счетчик подается с внешнего вывода микросхемы Tx, если флаг сброшен (С/Т# = 0) – с внутреннего тактового генератора. Флаг TRx контролируется через регистр специальной функции TCON, флаги Gate и С/Т# – через TMOD.

Этот режим был введён для совместимости с устаревшим семейством микроконтроллеров MCS-48 для переноса уже разработанных программ на новые процессоры, и поэтому в настоящее время не используется.

Для выбора первого режима следует установить биты M1 = 0 и M0 = 1 регистра TMOD. В первом режиме работы таймер работает как шестнадцатиразрядный счётчик. Режим 1 похож на режим 0, за исключением того, что в регистрах таймера используются все 16 бит. В этом режиме регистры ТНх и TLx также включены друг за другом. Работе таймера 0 или таймера 1 в режиме 1 соответствует схема:

Рисунок 4 – Структурная схема таймера в режиме 1 (для Таймера 0)

Нулевой и первый режимы работы Таймеров 0 и 1 предназначены для формирования одиночного интервала времени. Если возникает необходимость формировать последовательность интервалов времени для периодических процессов, то загрузка регистров THx и TLx для задания нужного интервала времени производится программно, что для коротких интервалов времени может привести к значительным затратам процессорного времени.

Для формирования последовательности одинаковых интервалов времени используется режим работы таймера с перезагрузкой – режим 2. Для выбора второго режима следует установить биты M1 = 1 и M0 = 0 регистра TMOD. В режиме 2 регистр таймера TLx работает как 8-битный счетчик с автоматической перезагрузкой начального значения из регистра ТНх в регистр TLx. Переполнение регистра TLx не только устанавливает флаг TFx, но и загружает регистр TLx содержимым регистра ТНх, который предварительно инициализируется программно. Перезагрузка не изменяет содержимое регистра ТНх. Работе таймера 0 или таймера 1 в режиме 2 соответствует схема:

Рисунок 5 – Структурная схема таймера в режиме 2 (для Таймера 0)

Для таймеров 0 и 1 третий режим различается. Таймер 1 в режиме 3 просто хранит свое значение – такой же эффект как при TR1 = 0. Таймер 0 в режиме 3 работает как два независимых счетчика, это показано на рисунке 6. Регистр TL0 использует биты управления таймера 0: С/Т#, GATE, TR0 и TF0. Регистр ТН0 работает только в режиме таймера, и использует биты TR1 и TF1 таймера 1.

Рисунок 6 – Структурная схема таймера в режиме 3 (для Таймера 0)

Работа таймера TL0. разрешается, если бит TR0 = 1, а таймера TH0 – если бит TR1 = 1. Таймер 1 при работе таймера 0 в режиме 3 постоянно включен.

Этот режим работы позволяет реализовать два независимых таймера, если таймер 1 используется для работы последовательного порта. В микроконтроллере ADuC842 для синхронизации последовательного порта принято использовать специально для этого выделенный четвертый таймер (Таймер 3), поэтому этот режим мало чем интересен.

3. 4 Особенность работы тактового генератора ADuC842

Встроенный генератор микроконтроллера ADuC842 предназначен для работы с кварцевым резонатором 32.768 кГц. Для формирования тактов синхронизации процессора используется умножитель частоты: система фазовой автоподстройки частоты (ФАПЧ) и управляемый делитель. С помощью системы ФАПЧ частота тактового генератора умножается на 512, что соответствует 16,777216 МГц. Делитель же настраивается на фиксированные коэффициенты деления (1, 2, 4, 8, 16, 32, 64, 128). При включении микроконтроллера по умолчанию установлен делитель 8, что соответствует частоте 16,777216/8 = 2,097152(МГц). Изменить этот делитель можно через регистр PLLCON.

3.5 Способы программной реализации работы таймера

Перед первым запуском таймера должна быть выполнена инициализация: выбран режим работы таймера, способ запуска, источник тактирования. Для настройки таймера в регистр специальной функции TMOD следует записать соответствующее число.

Допустим, тактовый генератор сконфигурирован для генерации с частотой 1МГц, а нам требуется сформировать временные интервалы 3500 мкс. В этом случае на вход таймера будут поступать импульсы с периодом 1мкс. Для 16-битного счетчика максимальное время переполнения составит 65536 мкс. Для формирования меньшего интервала времени в счетчики таймера следует загрузить начальное значение Code. Из формулы 1 выразим Code:

Code = 2n - TT/TG = 65536 -  3500/1 = 62036

Счетчик таймера состоит из двух отдельных 8-битных счетчиков THx и TLx, поэтому полученное значение Code следует расщепить на два отдельных байта. Сделать это можно разными способами. Можно с помощью калькулятора перевести число Code из десятеричной системы счисления в шестнадцатеричную: 6203610 = F2 5416. Тогда старший байт THx будет равен F216, а младший TLx равен 5416.

При расщеплении константы можно воспользоваться делением на 256, тогда:

THx = 62036/256; // заносим старший байт числа 62036
TLx = 62036;     // заносим младший байт числа 62036

Операция деления числа на 256 эквивалентна сдвигу этого числа на 8 разрядов вправо, тогда приведенный участок программы можно записать так:

<
THx = 62036 >> 8;// заносим старший байт числа 62036
TLx = 62036;     // заносим младший байт числа 62036 

Существует иной способ загрузки начального значения в таймер. Число, которое необходимо загружать в таймер, можно найти как отношение требуемого интервала времени, 3500мкс, и периода импульсов на входе таймера, 1мкс. Так как таймер суммирующий, то в регистры таймера будем загружать отрицательное число с абсолютным значением, равным требуемому отношению. Для выделения старшего байта из 16-разрядного числа используем функцию сдвига этого числа на 8 разрядов вправо, тогда соответствующий код программы будет выглядеть следующим образом:

THx = (-3500) >> 8;// заносим старший байт числа 62036
TLx = -3500;       // заносим младший байт числа 62036

После того как регистром TMOD установлен режим работы и загружены начальные значения счетчиков, можно запускать таймер. Для этого в бит запуска TRx следует записать логическую единицу. Теперь в тело основного цикла нужно включить участок программы, который будет ожидать окончания работы таймера и только после этого приступать к выполнению следующего прохода по циклу. Это можно сделать с помощью команды, которая будет проверять флаг переполнения таймера TFx. Затем необходимо снова задать следующий интервал времени. Следует помнить, что перед запуском таймера, следует обнулить флаг переполнения. Ниже приведен один из вариантов программы, реализующей задержку на 3,5 мс.

TH0 = 62036 >> 8; // заносим старший байт числа 62036
TL0 = 62036;      // заносим младший байт числа 62036
TR0 = 1;          // запускаем таймер
while (!TF0);     // ждем переполнения таймера
TF0 = 0;          // обнуляем флаг переполнения

Для формирования временных интервалов большей длительности данный участок программы можно запустить в цикле необходимое количество раз.

4 Задание к работе в лаборатории
  1. Разработайте алгоритм программы соответственно заданию: сформировать сигнал прямоугольной формы скважности 2 заданного периода, согласно варианту (таблица 3). Сигнал должен выводиться на светодиод.
  2. По принципиальной схеме установите, к каким портам микроконтроллера подключен светодиод.
  3. По таблице регистров специальных функций (SFR) определите адреса регистров управления таймерами.
  4. Рассчитайте значение регистров TLx и THx для формирования заданного времени работы таймера (таблица 3).
  5. Рассчитайте требуемое количество итераций цикла для формирования сигнала с периодом Т (таблица 3)
  6. Войдите в интегрированную среду программирования Keil-C. Создайте и настройте должным образом проект.
  7. Разработайте и введите текст программы в соответствии с созданным алгоритмом.
  8. Оттранслируйте программу, и исправьте синтаксические ошибки.
  9. Загрузите полученный *.hex файл в лабораторный стенд LESO1.
  10. Убедитесь, что программа функционирует должным образом. С помощью секундомера измерьте период сигнала.

Таблица 3 – Варианты заданий

номер варианта номер таймера время таймера период сигнала ТT
1 таймер 0 5 мс 2 с
2 таймер 1 15 мс 3 с
3 таймер 0 10 мс 4 с
4 таймер 1 25 мс 5 с
5 таймер 0 30 мс 6 с
6 таймер 1 14 мс 7 с
7 таймер 0 20 мс 8 с
8 таймер 1 12,5 мс 9 с
9 таймер 0 40 мс 10 с
10 таймер 1 4 мс 11 с
11 таймер 0 30 мс 12 с
12 таймер 1 32,5 мс 13 с
13 таймер 0 17. 5 мс 14 с
14 таймер 1 7,5 мс 15 с
15 таймер 0 10 мс 16 с

5 Указания к составлению отчета

Отчет должен содержать:

  1. Цель работы.
  2. Структурную схему таймера микроконтроллера ADuC842 в выбранном режиме.
  3. Расчет начальных значений счетных регистров таймера.
  4. Обоснование выбора значения регистра TMOD.
  5. Графическую схему алгоритма работы программы.
  6. Исходный текст программы.
  7. Содержимое файла листинга программного проекта.
  8. Выводы по выполненной лабораторной работе.

Схемы, а также отчет в целом, выполняются согласно нормам ЕСКД.

Схема таймера с обратным отсчетом на микроконтроллере ATtiny2313

Таймер для установки продолжительности включения устройства или нагрузки в течение времени от 0до 9 минут 59 секунд. Его можно использовать при фотопечати или при контроле за какими-то химическими реакциями.

Рис. 1. Принципиальная схема таймера обратного отсчета на микроконтроллере ATtiny2313

Схема выполнена на микроконтроллере типа ATtiny2313 в 20-выводном корпусе. Управление нагрузкой осуществляется посредством оптореле А1, предназначенного на работу с нагрузкой, питающейся от электросети 220V. Кроме того, есть звуковая сигнализация посредством пьезоэлектрического пассивного звукоизлучателя.

Установка времени и работа таймера отображается на трехразрядном цифровом светодиодном индикаторе. Управление тремя кнопками, две из них служат для установки времени, и одна для запуска таймера. Копка S1 служит для увеличения времени, S2 - для уменьшения, а S3 - для запуска. При запуске включается нагрузка.

И начинается обратный отсчет времени, при достижении которым «0,00» нагрузка выключается. Таймер питается от источника постоянного тока напряжением 5V. Источник питания подключается к разъему Х4. Разъем X3 - штепсельная розетка для подключения нагрузки, Х2 - вилка для включения в сеть. Разъем Х1 служит для подключения программатора.

Тактируется микроконтроллер от генератора на кварцевом резонаторе Q1 на частоту 4 MHz. Индикация динамическая. Используется трехразрядный семисегментный цифровой индикатор с общими катодами.

Сканирование осуществляется переключением катодов ключами на транзисторах VT1-VT3. Индикатор типа LTD5122 можно заменить практически любым семисегментным светодиодным трехразряд ным с общими катодами, либо собрать на трех одноразрядных, так же, с общими катодами.

НЕХ-файл для программирования микроконтроллера - Скачать (1,5 КБ). Фьюзы для PonyProg отметить галочками: SPIEN, BODLEVEL2, BODLEVEL1, SUTO, CKSEL1.

Горчук Н.В. РК-2015-07.

Схема таймера на микроконтроллере ATINY2313 для тепловых пушек

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

Конструкция тепловой пушки (тепловентиляторы) предусматривает наличие электронагревателя (нагревательного элемента) и вентилятора. У мощных тепловых пушек при выключении электронагревателя и во избежание его перегрева, а так же нагрева корпуса, и выхода из строя находящихся на нем конструктивных элементов, необходимо, сначала выключить электронагреватель, а потом с некоторой задержкой вентилятор.

То есть после выключения электронагревателя производится его обдув, до тех пор пока температура на выходе тепловой пушки не достигнет, например, комнатной (если тепловая пушка эксплуатируется в помещении с комнатной температурой). Понятно, что требуемая задержка по времени при выключении вентилятора зависит от технических характеристик тепловой пушки (мощность, производительность, габаритные размеры и т. д.). Предлагаемый вариант реле времени реализует задержку от 1 до 999 секунд. Устройство имеет следующие функции:

  • задание временного интервала на выключение вентилятора с помощью кнопок с контролем по цифровому дисплею;
  • управление (включение/выключение) с клавиатуры устройства или дистанционно;
  • светодиодная индикация выходных каналов;
  • декремент заданного временного интервала во время обратного отсчета при выключении тепловой пушки.

Принципиальная схема

Принципиальная схема реле времени для управления тепловых пушек на базе микроконтроллера ATINY2313 представлена на рис. 1.

Канал управления нагревателем (канал управления № 1) собран на твердотельном реле VS1. Данный канал управляется с вывода 8 микроконтроллера DD1. Канал управления вентилятором (канал управления № 2) собран на твердотельном реле VS2. Канал управляется с вывода 9 микроконтроллера DD1.

Включение / выключение тепловой пушки осуществляется кнопкой S3 (С). Дистанционно устройство управляется кнопкой S4. Данная кнопка по схеме (рис. 1) для наглядности подключается через соединитель X3 (контакты 1, 2) и подключает вывод 11 микроконтроллера DD1 к общему проводнику.

В интерфейс реле времени входят клавиатура (кнопки S1...S3), и блок индикации (дисплей) из трех цифровых семисегментных индикаторах HG1...HG3. Кнопки клавиатуры имеют следующее назначение:

  • S1 ( А ) - увеличение на единицу значения при установки времени в секундах), при удержании данной кнопки в нажатом состоянии более 3 секунд, значение времени индицируемое на дисплее увеличивается на 5 единиц за 1 секунду;
  • S2 ( V ) - уменьшение на единицу значения каждого при установки времени в секундах, соответственно при удержании данной кнопки в нажатом состоянии более 3 секунд, значение времени индицируемое на дисплее уменьшается на 5 единиц за 1 секунду;
  • S3 ( С ) - кнопка включения/выключения реле времени (алгоритм работы в рабочем цикле приведен ниже).
  • S4 - внешняя кнопка (по отношению к реле времени) дистанционного управления, по функциональному назначению данная кнопка аналогична кнопке S3.

Разряды индикации интерфейса имеют следующее назначение:

  • 1 разряд (индикатор HG3) отображает "единицы секунд";
  • 2 разряд (индикатор HG2) отображает "десятки секунд";
  • 3 разряд (индикатор HG1) отображает "сотни секунд".

Сразу после подачи питания на выводе 1 микроконтроллера DD1 через RC-цепь (резистор R2, конденсатор Сб) формируется сигнал системного аппаратного сброса микроконтроллера DD1.

В микроконтроллере инициализируются регистры, счетчики, стек, таймер T/C1, сторожевой таймер, порты ввода/вывода, на дисплее индицируется число 001, Временные диаграммы, поясняющие алгоритм работы приведены на рис. 2

Рис. 1. Принципиальная схема таймера (реле времени) для управления тепловой пушкой.

Алгоритм работы реле времени в рабочем цикле следующий. После инициализации на выводах 8, 9 микроконтроллера устанавливаются сигналы уровня лог.1 (каналы № 1 и №2 отключены). Далее кнопками SI, S2 необходимо задать временную задержку на выключение АТ канала № 2, заданное значение индицируется на дисплее.

При включении реле времени кнопкой S3 в момент времени tl, сразу включается каналы управления № 1 и № 2 (устанавливается лог. 0 на выводах 8 и 9 микроконтроллера DD1). То есть электронагреватель вентилятор в тепловой пушке включаются одновременно.

При выключении реле времени кнопкой S3 в момент времени t2, сразу выключается канал управления № 1 (устанавливается лог. 1 на выводе 8 микроконтроллера DD1), на дисплее индицируется временная задержка АТ. Заданное время АТ декрементируется с каждой секундой. И как только оно станет равным нулю, выключается канал управления № 2 (устанавливается лог. 1 на выводе 9 микроконтроллера DD1). На дисплее снова индицируется заданное значение АТ. Цикл завершен.

АТ задается в диапазоне от 1 до 999 с, с дискретностью задания 1 секунда.

С порта РВ микроконтроллер DD1 управляет клавиатурой (кнопки S1...S3) и динамической индикацией. Динамическая индикация собрана на транзисторах VT1...VT3, цифровых семисегментных индикаторах HG1. ..HG3. Резисторы R3...R10 - токоограничительные для сегментов индикаторов HG1...HG3.

Коды для включения индикаторов HG1...HG3 при функционировании динамической индикации поступают на вход РВ микроконтроллера DD1. Для функционирования клавиатуры задействован вывод 7 микроконтроллера DD1. Рабочая частота микроконтроллера DD1 задается генератором с внешним резонатором ZQ1 на 10 МГц.

При инициализации микроконтроллера DD1 все выводы порта В сконфигурированы как выходы. Выводы PD3, PD6 порта D сконфигурированы как входы, остальные как выходы. Как видно из принципиальной схемы аппаратная часть микроконтроллера DD1 задействована полностью.

Рис. 2. Временные диаграммы, поясняющие алгоритм работы.

Для перевода устройства в рабочий режим необходимо кнопками S1 ( Д ), S2 ( v ) установить необходимый интервал времени ДТ. Для включения устройства как указывалось выше необходимо нажать на кнопку S3 (С) или кнопку S4. Установленное время при этом заносится в ОЗУ микроконтроллера DD1. Если необходимо изменить заданное время, то для этого необходимо нажать на кнопку S3 (С). Потом кнопками S1 ( Д ), S2 ( v ) установить необходимый интервал времени ДТ и снова нажать на кнопку S3 (С).

Совсем коротко о программе. Программа состоит из трех основных частей; инициализации, основной программы, работающей в замкнутом цикле и подпрограммы обработки прерывания от таймера Т/C1 (соответственно метки INIT, SE1, ТІМ0). В основной программе происходит инкремент, декремент заданного значения времени и запись заданного интервала времени ДТ из буфера хранения в буфер отображения.

В памяти данных микроконтроллера с адреса $060 по $062 организован буфер отображения для динамической индикации. С адреса $064 по $66, организован буфер для хранения заданного интервала времени ДТ. В подпрограмме обработки прерывания осуществляется счет одной секунды, опрос клавиатуры, включение световых и звуковых сигналов и перекодировка двоичного числа значений времени в код для отображения информации на семисегментнных индикаторах.

Сразу при включении (после нажатия кнопки S3) происходит запись заданного интервала времени ДТ из буфера отображения в буфер хранения. При выключении устройства после того как ДТ станет равным нулю происходит перезапись из буфера хранения в буфер отображения. Таким образом, заданный интервал времени ДТ никуда "не теряется". И каждый раз после выключения,, ДТ индицируется на дисплее устройства.

Задача по формирование временных интервалов длительностью 1 с, решена с помощью прерываний от таймера Т/Cl, и счетчика на регистре R25. Счетчик на регистре R21 формирует интервал в одну минуту. Таймер Т/C1 формирует запрос на прерывание через каждые ~ 3900 мкс.

Счетчики на данных регистрах, подсчитывают количество прерываний и через каждую минуту, устанавливается флаг (PUSK), и текущее время декрементируется. Через каждые « 3900 мкс происходит отображения разрядов в динамической индикации устройства. Назначение флагов в регистрах flo и flo1 приведено в программе.

Алгоритм работы кнопки для быстрого увеличения задаваемого значения следующий. При нажатии на кнопку S1 текущее значение времени на дисплее увеличивается на единицу и устанавливается флаг, разрешающий увеличивать текущее значение времени, индицируемого на дисплее. Одновременно запускается счетчик, выполненный на R1, формирующий интервал 5 сек.

Если кнопка удерживается более 3 секунд, значение времени, индицируемое на дисплее увеличивается на 5 единиц за 1 секунду. (То есть, максимальное значение индицируемое на дисплее - 999 можно задать через я 200 секунд). Интервал времени в течении которого происходит увеличение времени организован на регистре R0. При отпускании кнопки 51 все вышеуказанные счетчики обнуляются. Совершенно аналогичным образом организована работа кнопки S2 для быстрого уменьшения текущего значения времени, индицируемого на дисплее.

При нажатии на кнопку S2 текущее значение времени на дисплее уменьшается на единицу. Если кнопка удерживается более 3 секунд, значение времени, индицируемое на дисплее уменьшается на 5 единиц за 1 секунду. Счетчики приведенного алгоритма для кнопки 52 организованы соответственно на регистрах R3 и R2. Кнопки 53 и S4 имеют одинаковое функциональное назначение в устройстве, но аппаратно-программная реализация механизма функционирования данных кнопок - разная.

Далее приведены фрагменты программ для кнопок S3 и S4.

Рис. 3. Фрагменты программ микроконтроллера для кнопок S3 и S4.

Разработанная программа на ассемблере занимает порядка 0,7 Кбайт памяти программ микроконтроллера. Для получения питающего напряжение +5В в устройстве задействован AC/DC преобразователь U1. Потребление тока по каналу напряжения:+5 В, не более 500 мА. В принципиальной схеме (рис.

1) применены следующие элементы. Конденсаторы С1, СЗ типа К15-5 - ЗкВ, конденсатор С2 типа К73-11. Конденсаторы С4...С6 типа К10-17а. В схеме применены резисторы типа С2-ЗЗН-0.125. Индикаторы HG1...HG3 зеленого цвета типа HDSP-F501. Максимальный ток нагрузки для твердотельных реле D2425 (позиционные обозначения в принципиальной схеме VS1, VS2) - 25А.

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

Шишкин С.

Литература: А. В. Белов Создаем устройства на микроконтроллерах.

Точные часы и таймеры


  Проектировался этот таймер на микроконтроллере PIC16F628A, как таймер для аквариума и предназначен для включения/выключения освещения в аквариуме с циклом в одни сутки. Простая схема таймера содержит минимальное количество компонентов. Простота схемы делает это устройство одним из самых легкоповторяемых и недорогих. Программно в таймере реализовано очень удобное управление. Применение сверхяркого индикатора снижает ток, потребляемый схемой. Малое энергопотребление схемы позволяет применить конденсаторный источник питания от сети или малогабаритный маломощный трансформатор.
   Таймер сделан на основе программы, в которой реализованы кратковременные подсказки названий режимов индикации. Описание работы таймера похоже на описание работы часов, с питанием от батареек. Здесь реализованы те-же самые функции, кроме управления звуком, и добавлена возможность управлять одной нагрузкой(освещением в аквариуме) с циклом в одни сутки.

Реализованные функции:

  - отсчёт часов(0...23 с гашением незначащего нуля), минут, секунд, даты, месяца, дня недели, года
  - определение количества дней в феврале для високосного года
  - переход на летнее/зимнее время в последнее воскресенье марта и октября
  - коррекция хода часов с точностью 1 микросекунда в секунду (30 секунд в год)
  - регулируемая яркость индикаторов
  - 10 режимов индикации с подсказками названий режимов
  - управление нагрузкой по заранее выставленым уставкам времени (U_on - уставка включения  UoFF - уставка выключения)
  - включение/выключение нагрузки кнопкой S2

Включить/выключить автоматику таймера можно только в режимах отображения уставок включения/выключения кнопкой S2. При включенном таймере горит точка в младшем разряде индикатора. С помошью кнопки S2 в обычном режиме можно включить/выключить нагрузку (освещение аквариума)

  В таймере реализовано простое линейное меню из 10 пунктов. Переход по пунктам меню осуществляется с помощью кнопок  "+" и "-".
Перед выводом на индикатор показаний соответствующего пункта выводится кратковременная подсказка  названия пункта меню. Длительность отображения подсказки - одна секунда. Применение кратковременных подсказок  делает  устройство очень простым и удобным в управлении.

Рис. 1. Режимы индикации таймера

   Коррекция показаний, выведенных на индикатор включается при нажатии на кнопку "Коррекция". При этом кратковременная подсказка выводится на 1/4 секунды, после чего корректируемое значение начинает мигать с частотой 2 Гц. Корректируются показания кнопками "плюс" и "минус". При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Частоты автоповтора нажатия кнопки составляют:  для часов, месяцев и дня недели - 4 Гц;  для минут, года и яркости индикатора - 10 Гц;  для корректирующего значения - 100 Гц.
   Все откорректированные значения, кроме часов, минут и секунд, записываются в EEPROM и восстанавливаются после выключения - включении питания. Секунды при коррекции обнуляются. Из всех режимов, кроме часы-минуты, минуты-секунды и LoFF организован автоматический возврат. Если в течение 10 секунд ни одна из кнопок не нажата, то часы переходят в режим отображения часов - минут.
   В режиме "Corr" на индикатор выведена корректирующая константа, начальное значение которой 5000 микросекунд в секунду. При отставании часов таймера константу увеличиваем на величину отставания, вычисленное в микросекундах за одну секунду. Если часы таймера спешат, то константу уменьшаем по тому же принципу.

Рис. 2. Схема таймера  




  
  Timer_4c.hex  
В этой прошивке не реализован контроль внешнего напряжения питания. Применить её можно при использовании батареек ёмкостью от 1000 мА*ч. При 10% яркости индикатора такие батарейки обеспечивают работу схемы в течение более 2-х недель, и кратковременные отключения электричества не нарушат работу встроенных в таймер часов.

  Timer_4c_02. hex 
Здесь контролируется напряжение на входе RA5 микроконтроллера. При отключении внешнего питания отключается индикатор, опрос кнопок и порт управления нагрузкой. Использование данной программы позволит продлить период автономной работы часов таймера во время  отключений внешнего питания.

Что лучше для хронометража: 555 или микроконтроллер?

% {[data-embed-type = "image" data-embed-id = "5df275e0f6d5f267ee209825" data-embed-element = "aside" data-embed-align = "left» data-embed-alt = "Электронный дизайн Com Статья в цифровом формате Что лучше для хронометража: 555 или микроконтроллер "data-embed-src =" https://img.electronicdesign.com/files/base/ebm/electronicdesign/image/2011/01/electronicdesign_com_article_digital_what_s_better_for_timing_chores_a_a.png? auto = format & fit = max & w = 1440 "data-embed-caption =" "]}%

Signetics выпустила почтенный таймер NE555 в 1971 году. Он использовался в тысячах проектов и был предметом по крайней мере такого количества статей (см. «555: лучшая микросхема когда-либо или устаревший анахронизм?»). Недавняя статья редактора по связям с общественностью Лу Френзеля о SX8122 и 555 компании Semtech побудила меня изучить, как менялись решения для синхронизации со временем (см. «А вы думали, что таймер 555 мертв?»).

RC Timing
Когда я впервые работал с 555, микроконтроллеры (, рис. 1 ) того дня включали 8-битный Intel 8741 в большом 40-контактном корпусе по сравнению с восьмиконтактным двухрядным корпусом (DIP). В то время добавление пары дискретных компонентов к восьмиконтактному DIP было простым способом создания ряда функций, таких как нестабильный мультивибратор (, рис. 2, ). Эта простая схема обеспечивала часы, которые можно было использовать для управления регистрами сдвига и другой логикой, которая обычно также была доступна в то время.

SX8122 Semtech использует один конденсатор и резистор для настройки времени (см. «Расширение аналогового таймера на Venerable 555»). Аналоговая часть с напряжением ниже 1 В разработана для низковольтных небольших бытовых приборов с батарейным питанием.

У меня возник вопрос, могут ли какие-либо микроконтроллеры приблизиться к низкой цене чипов, $ 0,36, а также соответствовать требованиям к пространству и питанию. Я не сомневался, что микро-решение может предоставить значительно больше функциональных возможностей.

Как и в большинстве других проектов, здесь нет единственного решения, и лучшее решение зависит от ряда ограничений для конкретного приложения.Существует множество микросхем на выбор, благодаря Atmel, Freescale, Microchip, Renesas, Silicon Labs, STMicroelectronics, Texas Instruments, Zilog и другим поставщикам, которые могут использовать одну батарею для питания и занимать всего лишь 2 на 2 мм. Это почти поместилось между двумя контактами 8741!

Что касается напряжения, 16-битный MSP430L092 Texas Instruments с частотой 4 МГц представляет собой настоящий микроконтроллер на базе ПЗУ с напряжением 0,9 В (см. «Micro действительно нужно всего 0,9 В»). Многие другие части вспышки работают в широком диапазоне напряжений.

Большинство крошечных микросхем оснащены встроенными часами, поэтому создание сигналов любого типа является тривиальным занятием. Многие из них имеют аналого-цифровые преобразователи (АЦП), позволяющие приложению отслеживать аналоговые входы, а не только грубый цифровой сигнал.

Micros слишком сложный?
Так почему бы разработчикам не стать первым выбором крошечного микроконтроллера? Предполагая, что требования к цене и мощности соблюдены, у микросхем есть одно дополнительное требование по сравнению с конструкцией RC - программирование.

Для меня ответ прост.Но опять же, я программировал на ассемблере. Написание программы на C для обработки сложной временной последовательности - простая задача, но только если C есть в вашем наборе инструментов. В противном случае простую схему часто «легче» реализовать. Есть и другие соображения, касающиеся микропроцессоров, например условия отключения и время запуска.

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

Итак, что вы выберете для своего следующего дизайна?

PIC16F628A Программируемый цифровой таймер - Electronics-Lab.com

Программируемые реле

находят применение во многих приложениях автоматизации, таких как автоматическое управление уличным освещением, управление поливом и насосами, HVAC, домашняя автоматизация, автоматизация электростанций в промышленности и т. Д. В этой статье описывается, как создать полнофункциональный одноканальный программируемый релейный переключатель. с помощью микроконтроллера PIC16F628A. Это позволяет вам установить время включения и выключения.Максимальный интервал времени, который вы можете установить для включения и выключения, составляет 99 часов 59 минут. Еще одна интересная особенность этого проекта заключается в том, что он предлагает циклическую опцию, что означает, что вы можете запускать его в непрерывном цикле из циклов включения и выключения. Устройство можно запрограммировать с помощью 4-х кнопочных переключателей. Меню программирования и статус устройства отображаются на ЖК-дисплее размером 16 × 2 символа. Временное разрешение этого реле-таймера составляет 1 минуту. Таймер также сохраняет вводимые пользователем данные во внутреннюю EEPROM, чтобы сохранить эти значения после любого прерывания подачи питания.Вот краткое описание функций этого таймера:

  • Таймер с питанием от микроконтроллера
  • Установка времени выключения и включения для срабатывания реле
  • Опция для циклического прогона
  • Диапазон времени включения / выключения: от 0 до 99 часов 59 минут
  • 1-минутное разрешение по времени
  • Интерактивный пользовательский интерфейс с 4 тактовыми переключателями и символьным ЖК-дисплеем
  • Зуммер сигнализации
  • Регулятор напряжения бортовой + 5В

Принципиальная схема

Аппаратная часть этого проекта очень проста.Вся схема работает от стабилизированного источника питания 5 В, созданного с использованием популярного линейного стабилизатора LM7805 (рисунок 1). Чтобы свести к минимуму рассеивание тепла в регуляторе напряжения, рекомендуемое входное напряжение постоянного тока для LM7805 составляет 9 В, которое можно легко получить от настенного адаптера постоянного тока. Диод D1 (1N4001) используется для защиты от обратной полярности в схеме. S1 - ползунковый переключатель для включения и выключения источника питания.

На рис. 2 показаны настройки входа и выхода. В этом проекте есть пять тактовых переключателей: один для сброса микроконтроллера и четыре для пользовательского ввода.Четыре переключателя входа имеют названия «Меню / +», «Выбор», «Ввод» и «Пуск / Стоп». Их функции будут описаны в разделе программного обеспечения. Состояние 4 входных переключателей считывается микроконтроллером PIC16F628A через порты RA2, RA3, RA4 и RB0. Выходной ЖК-дисплей представляет собой стандартный дисплей на основе HD44780, работающий в 4-битном режиме. Назначение контактов для данных ЖК-дисплея и сигналов управления показано на рисунке 2. S2 - еще один ползунковый переключатель, который позволяет вручную управлять подсветкой ЖК-дисплея.

Переключатель выходного реле приводится в действие транзистором NPN (2N2222).Проект также включает зуммер постоянного тока, который издает звуковой сигнал, когда релейный переключатель меняет свое состояние. Цепи реле и зуммера показаны на рисунке 3.

Микроконтроллер PIC16F628A работает на частоте 4,0 МГц с использованием внешнего резонатора. Контакты ввода-вывода PIC16F628A, разъем резонатора и внутрисхемный последовательный программатор (ICSP) показаны на рисунке 4.


Рисунок 1. Регулируемый блок питания + 5 В

Рисунок 2. Схема ввода-вывода с назначением контактов PIC16F628A


Рисунок 3.Схема управления реле и зуммером

Рисунок 4. Разъемы резонатора PIC16F628A и заголовка ICSP
Назначение контактов PIC16F628A для ЖК-дисплея, переключателей, реле и цепей зуммера приведено в следующей таблице.

На следующем рисунке показана полная схема реле таймера, припаянная на макетной плате общего назначения.

Программное обеспечение

Программируемый релейный таймер получает сигналы от 4 кнопок. Их функции описаны ниже:

Меню / + : Эта кнопка позволяет перемещаться между различными опциями меню, такими как установка времени включения, установка времени выключения и установка циклических опций.Эти параметры отображаются на ЖК-дисплее. Эта кнопка также служит для приращения цифр во время установки времени. Время устанавливается в формате ЧЧ: ММ, что дает минимальное значение временного интервала 1 мин.

Выбрать: Позволяет выбрать отображаемый параметр меню, а также отдельные цифры часа и минуты. Выбранная цифра увеличивается на 1 при нажатии кнопки Menu / +.

Введите: После установки соответствующих часов и минут нажатие кнопки Enter завершит время.Опция «Циклический» также вводится с помощью этой кнопки.

Старт / Стоп: Эта кнопка предназначена для запуска и остановки таймера. Если таймер уже включен, вы можете остановить его в любой момент во время его работы, нажав эту кнопку.

Теперь посмотрим, как это работает. Допустим, релейный переключатель нужно включить через 15 минут на 10 минут. Это означает, что время выключения составляет 15 минут, а время включения - 10 минут. Как только таймер запустится после ввода вышеуказанного времени, устройство включится через 15 минут и будет оставаться включенным в течение 20 минут.После этого снова выключится. Если для параметра «Циклический» выбрано значение 1, таймер будет работать в цикле, и после еще 15 минут времени ВЫКЛЮЧЕНИЯ реле будет включено на следующие 10 минут и так далее.

Прошивка для этого проекта разработана с использованием mikroC Pro для компилятора PIC от компании «МикроЭлектроника». Учет времени достигается с помощью модуля Timer 0, встроенного в PIC16F628A. Прерывание Timer0 разрешено и выполняется со значением предварительного делителя 1: 256 для создания точной длительности 500 мс (полсекунды).Символ двоеточия между цифрами ЧЧ и ММ мигает с частотой 1 Гц. Полусекундная задержка зацикливается 120 раз для создания минутной длительности. Вы можете загрузить полные файлы проекта, включая исходный код и скомпилированный HEX-файл, в прикрепленном файле.

Фото

На следующем видео показано устройство таймера в действии.

Ключевые слова:

  • Функция зуммера состоит в том, чтобы уведомлять пользователя звуковым сигналом всякий раз, когда реле включается и выключается.
  • В случае сбоя питания таймер извлечет выбранное пользователем время включения и выключения из EEPROM. Но таймер будет остановлен и не будет работать, пока пользователь не нажмет Start
  • Все принципиальные схемы, используемые в этом проекте, являются оригинальными и нарисованы автором с помощью редактора схем EasyEDA. EasyEDA - это бесплатный онлайн-инструмент САПР для компоновки схем, проектирования печатных плат и моделирования.

Автор: Радж Бхатт (энтузиаст электроники, производитель оборудования и основатель Embedded Lab; посетите мой магазин Tindie)

Понимание таймеров

в микроконтроллере PIC16F877A PIC с последовательностью мигания светодиода

Это будет пятый учебник в нашем учебном пособии PIC серии , который поможет вам изучить и использовать таймеры в PIC16F877A .В наших предыдущих руководствах мы начали с Введение в PIC и MPLABX IDE, затем мы написали нашу первую программу PIC для мигания светодиода с помощью PIC, а затем создали последовательность мигания светодиода, используя функцию задержки в микроконтроллере PIC. Теперь давайте воспользуемся той же последовательностью мигания светодиода, которую мы использовали в предыдущем учебном руководстве, и с этим мы научимся , как использовать таймеры в нашем PIC MCU . Мы только что добавили еще одну кнопку на светодиодную панель для этого урока. Прочтите руководство, чтобы узнать больше.

Таймеры - одна из важных рабочих лошадок для встроенного программиста. Каждое разрабатываемое нами приложение каким-то образом будет включать в себя приложение для измерения времени, например, включение или выключение чего-либо по прошествии определенного интервала времени. Хорошо, но зачем нам таймеры, если у нас уже есть макросы задержки (__delay_ms ()), делающие то же самое !!

Почему таймер, когда у нас есть Delay ()?

Макрос задержки называется задержкой «дампа». Поскольку во время выполнения функции задержки MCU сидит в дампе, просто создавая задержку .Во время этого процесса MCU не может прослушивать свои значения АЦП или читать что-либо из своих регистров. Следовательно, не рекомендуется использовать функции задержки, за исключением таких приложений, как мигание светодиода, где временная задержка не должна быть точной или длинной.

Макросы задержки также имеют следующие короткие замыкания ,

  1. Значение задержки должно быть постоянным для макросов задержки; его нельзя изменить во время выполнения программы. Следовательно, это остается определенным программистом.
  2. Задержка не будет точной по сравнению с использованием таймеров.
  3. Большие значения задержки не могут быть созданы с помощью макросов, например, задержка в полчаса не может быть создана с помощью макросов задержки. Максимальная задержка, которую можно использовать, зависит от используемого кварцевого генератора.

Таймеры микроконтроллера PIC:

Физически таймер - это регистр, значение которого постоянно увеличивается до 255, а затем начинается все сначала: 0, 1, 2, 3, 4 ... 255 .... 0, 1, 2, 3 ... ...так далее.

PIC MCU PIC16F877A имеет три модуля таймера .Они называются Timer0, Timer1 и Timer2. Таймер 0 и Таймер 2 - это 8-битные таймеры, а Таймер 1 - это 16-битный таймер. В этом руководстве мы будем использовать таймер 0 для нашего приложения. Как только мы поймем таймер 0, будет легко работать и с таймером 1, и таймером 2.

Таймер / счетчик модуля Timer0 имеет следующие особенности:

  • 8-битный таймер / счетчик
  • Доступно для чтения и записи
  • 8-битный программно-программируемый предделитель
  • Выбор внутренних или внешних часов
  • Прерывание при переполнении с FFh на 00h
  • Выбор фронта для внешних часов

Чтобы начать использовать таймер, мы должны понимать некоторые причудливые термины, такие как 8-битный / 16-битный таймер , предделитель, прерывания таймера и фокус. Теперь давайте посмотрим, что на самом деле означает каждое из них. Как было сказано ранее, в нашем микроконтроллере PIC есть как 8-битные, так и 16-битные таймеры, основное различие между ними состоит в том, что 16-битный таймер имеет гораздо лучшее разрешение, чем 8-битный таймер.

Предделитель - это название части микроконтроллера, которая делит тактовую частоту генератора до того, как она достигнет логики, увеличивающей состояние таймера. Диапазон идентификатора предварительного делителя составляет от 1 до 256, а значение предварительного делителя может быть установлено с помощью регистра OPTION (того же, что мы использовали для подтягивающих резисторов).Например, если значение предварительного делителя равно 64, то для каждых 64 -го импульса таймер будет увеличиваться на 1.

По мере увеличения таймера и достижения максимального значения 255 он инициирует прерывание и снова инициализирует себя на 0. Это прерывание называется прерыванием от таймера. Это прерывание сообщает MCU, что это конкретное время истекло.

Fosc означает частоту осциллятора , это частота используемого кристалла.Время, затрачиваемое на регистр таймера, зависит от значения предделителя и значения Fosc.

Программирование и объяснение работы:

В этом руководстве мы установим две кнопки как два входа и 8 светодиодов как 8 выходов. Первая кнопка будет использоваться для установки временной задержки (500 мс для каждого нажатия), а вторая кнопка будет использоваться для запуска мигания последовательности таймера. Например, если первая кнопка нажата трижды (500 * 3 = 1500 мс), задержка будет установлена ​​на 1.5 секунд, и при нажатии кнопки два каждый светодиод будет включаться и выключаться с заданной временной задержкой. Посмотрите демонстрационное видео в конце этого учебного пособия.

Теперь, имея в виду эти основы, давайте посмотрим на нашу программу, приведенную в конце в разделе кода .

Ничего страшного, если вы не получили программу, но если получили !! Дайте себе файл cookie и сбросьте программу, чтобы насладиться результатом. Для других я разобью программу на значимые части и объясню вам, что происходит в каждом блоке.

Как всегда, первые несколько строк кода - это параметры конфигурации и файлы заголовков, я не собираюсь объяснять это, поскольку я уже делал это в своих предыдущих руководствах.

Затем давайте пропустим все строки и сразу перейдем к функции void main, внутри которой находится конфигурация PORT для Timer0.

пустая функция()
{
/ ***** Конфигурация порта для таймера ****** /
    OPTION_REG = 0b00000101; // Timer0 с внешней частотой и 64 в качестве предскалярного // Также включает PULL UP
    TMR0 = 100; // Загружаем значение времени для 0.0019968s; delayValue может быть только в диапазоне 0–256.
    TMR0IE = 1; // Включение бита прерывания таймера в регистре PIE1
    ЭДД = 1; // Включить глобальное прерывание
    PEIE = 1; // Включение периферийного прерывания
    / *********** ______ *********** / 

Чтобы понять это, мы должны взглянуть на регистр OPTION в нашей таблице данных PIC.

Как обсуждалось в предыдущем руководстве, бит 7 используется для включения слабого подтягивающего резистора для порта PORTB. Посмотрите на приведенный выше рисунок. бит 3 устанавливается в 0, чтобы указать MCU, что следующий устанавливаемый предделитель должен использоваться для таймера, а не для WatchDogTimer (WDT). Режим таймера выбирается сбросом бита 5 T0CS

(OPTION_REG <5>)

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

Затем давайте посмотрим на регистры, связанные с Timer0

Таймер начнет увеличиваться после установки и переполняться после достижения значения 256, чтобы разрешить прерывание таймера в этот момент, регистр TMR0IE должен быть установлен в высокий уровень.Поскольку Таймер 0 сам по себе является периферийным устройством, мы должны включить Периферийное прерывание, сделав PEIE = 1 . Наконец, мы должны включить глобальное прерывание, чтобы MCU был уведомлен о прерывании во время любой операции, это делается путем установки GIE = ​​1.

Задержка = ((256-REG_val) * (Prescal * 4)) / Fosc

Приведенная выше формула используется для расчета значения задержки.

Где

REG_val = 100;

Prescal = 64

Fosc = 20000000

Это по расчету дает,

Задержка = 0.0019968s

Следующий набор строк предназначен для установки портов ввода / вывода.

        / ***** Конфигурация порта для ввода / вывода ****** /
    TRISB0 = 1; // Сообщаем MCU, что вывод PORTB 0 используется в качестве входа для кнопки 1.
    TRISB1 = 1; // Сообщаем MCU, что вывод PORTB 1 используется в качестве входа для кнопки 1.
    TRISD = 0x00; // Сообщаем микроконтроллеру, что все контакты на ПОРТУ D являются выходными
    PORTD = 0x00; // Инициализируем все выводы на 0
    / *********** ______ *********** / 

Это то же самое, что и в нашем предыдущем руководстве, поскольку мы используем то же оборудование.За исключением того, что мы добавили еще одну кнопку в качестве ввода. Это делается строкой TRISB1 = 1.

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

        в то время как (1)
        {
        count = 0; // Не запускать таймер в основном цикле
        // ******* Получить номер задержки от пользователя **** //////
        if (RB0 == 0 && flag == 0) // Когда задан ввод
        {
            get_scnds + = 1; // get_scnds = get_scnds + 1 // Увеличение переменной
            flag = 1;
        }
        if (RB0 == 1) // Чтобы предотвратить непрерывное приращение
            flag = 0;
        / *********** ______ *********** / 

Переменная с именем get_scnds увеличивается каждый раз, когда пользователь нажимает кнопку 1.Флаг , переменная (определяемая программным обеспечением) используется для удержания процесса увеличения до тех пор, пока пользователь не уберет палец с кнопки.

                // ******* Выполнить последовательность с задержкой **** //////
        в то время как (RB1 == 0)
        {
                PORTD = 0b00000001 << i; // Левый дерьмовый светодиод на i
                if (hscnd == get_scnds) // Если нужное время достигнуто
                {
                    я + = 1; // Переход к следующему светодиоду после заданной задержки
                    hscnd = 0;
                }
                flag = 2;
        }
        if (flag == 2 && RB1 == 1) // Сбрасываем таймер, если кнопка снова в высоком состоянии
        {
            get_scnds = 0; hscnd = 0; я = 0;
            PORTD = 0; // Выключаем все светодиоды
        }
        / *********** ______ *********** / 

Следующий блок вступает в действие, если нажата кнопка два. Поскольку пользователь уже определил требуемую задержку с помощью первой кнопки, она сохранена в переменной get_scnds. Мы используем переменную hscnd , эта переменная контролируется ISR (подпрограмма обслуживания прерывания).

Программа обслуживания прерывания - это прерывание, которое будет вызываться каждый раз при переполнении Timer0. Давайте посмотрим, как это контролируется ISR в следующем блоке, например, мы хотим увеличить задержку на полсекунды (0.5s) при каждом нажатии кнопки, то нам нужно увеличивать переменную hscnd на каждые полсекунды. Поскольку мы запрограммировали наш таймер на переполнение каждые 0,0019968 с (~ 2 мс), поэтому для подсчета полсекунды count переменная должна быть 250, потому что 250 * 2 мс = 0,5 секунды. Таким образом, когда count достигает 250 (250 * 2ms = 0,5 секунды), это означает, что прошло полсекунды, поэтому мы увеличиваем hscnd на 1 и инициализируем count равным нулю.

пустое прерывание timer_isr ()
{
    if (TMR0IF == 1) // Флаг таймера сработал из-за переполнения таймера
    {
        TMR0 = 100; // Загружаем значение таймера
        TMR0IF = 0; // Очистить флаг прерывания таймера
        count ++;
    }
    
    если (количество == 250)
    {
        hscnd + = 1; // hscnd будет увеличиваться каждые полсекунды
        count = 0;
    }
} 

Итак, мы используем это значение и сравниваем его с нашим hscnd и смещаем наш светодиод в зависимости от времени, заданного пользователем.Он также очень похож на предыдущий урок.

Вот и наша программа понята и работает.

Принципиальная схема

и моделирование Proteus:

Как обычно, позволяет проверять вывод, используя сначала Proteus , я связал здесь файлы схемы Proteus.

Добавьте кнопку на нашу предыдущую светодиодную плату, и наше оборудование готово к работе. Должно получиться примерно так:

После того, как соединение установлено, загрузите код и проверьте вывод. Если у вас возникли проблемы, воспользуйтесь разделом комментариев. Также проверьте Видео ниже, чтобы понять весь процесс.

Цепь промышленного таймера

- Инженерные проекты

Люди рождены привычками, они хотят все большего и большего комфорта. Чтобы соответствовать их требованиям, были разработаны различные типы систем автоматического управления. И снова мы пришли с очень интересными проектами под названием «Промышленная схема таймера» с такими средствами, как автоматизация и переключение, обеспечивающими задержку и имеющие большой диапазон управления (100 м).

Простая схема таймера может быть спроектирована с использованием микросхемы таймера 555, переведя ее в моностабильный режим. Эти типы схем имеют различные типы ограничений, такие как цифровой дисплей, индикация сбоя системы, дистанционное управление (беспроводная работа), сигнализация и т. Д. Вышеуказанные ограничения могут быть преодолены с помощью проекта «Промышленная схема таймера».

Прежде чем начать обсуждение описания схемы и работы, здесь мы перечислили некоторые особенности схемы промышленного таймера.

Характеристики схемы промышленного таймера
  1. Процесс инициализации и переключения по истечении желаемого или заранее заданного времени с возможностью задержки.
  2. Можно установить время от 1 до 60 секунд, которое может быть увеличено путем редактирования программного кода.
  3. Время включения / выключения программируется, поэтому можно запрограммировать время от 1 до 60 секунд.
  4. Возможна установка как одиночного, так и непрерывного режима.
  5. Беспроводной удаленный объект с радиусом действия 100 м.
  6. Для улучшения пользовательского интерфейса доступен ЖК-дисплей с управлением на передней панели.
  7. Кнопки аварийного останова, чтобы избежать каких-либо необычных действий как на панели управления, так и в цепи передатчика.

Ознакомьтесь с другими интересными проектами таймеров, размещенными на сайте bestengineeringprojects. com

  1. Звуковая активация цепи таймера 0-30 минут
  2. Цепь таймера генерации импульсов
  3. Таймер обратного отсчета с использованием Arduino
  4. Цепь 24-часовых цифровых часов и таймера
  5. Цифровые часы с секундами и индикацией времени будильника

Описание схемы промышленного таймера

Схема «Промышленной схемы таймера» разделена на две основные части: i.е. передатчик и секция управления. Здесь сначала поговорим о секции передатчика.

Секция передатчика | Схема промышленного таймера

Принципиальная схема секции передатчика показана на рисунке 1. Вся схема построена на кодирующей IC HT12E (IC 5 ) и модуле радиочастотного передатчика 433 МГц с некоторыми другими электронными компонентами для безупречной работы. Чтобы установить адрес «00h», все выводы адреса IC 5 подключены к земле, как показано на принципиальной схеме.Вывод данных РЧ-передатчика подключен к выводу D из (вывод 17), где резистор 1 МОм подключен к выводу генератора (выводы 15 и 16) микросхемы IC 5 . Четыре нажимных переключателя (переключатель SW 10 - SW 13 ) подключены к контакту ввода данных через диоды. Функции клавиш перечислены в таблице 1. Светодиод (светодиод 3 ) используется для индикации того, нажат переключатель или нет. Контакт № 14 (TE) подключен напрямую к заземлению через переключатель SW 14 .

Для меньшей сложности мы разделили цепь управления на две основные части, то есть на приемную и контрольную.

Приемная секция | Схема промышленного таймера

Принципиальная схема блока приемника показана на рисунке 2. Он включает в себя микросхему декодера HT12D (IC 2 ), модуль РЧ приемника и ИС затвора И-НЕ с 4 входами. Адресный вывод IC 2 подключен к земле, чтобы установить адрес «00h», как в секции передатчика.Вывод данных IC 2 подключен к микроконтроллеру через переключатель 4PDT SW 8 и подключен к входу 4-входного логического элемента И (IC 3 ), как показано на рисунке 2. Выход логического элемента И IC подключен для сброса штифта с помощью переключателя ВКЛ / ВЫКЛ SW 9 . Светодиод 2 используется для индикации приема данных от передатчика. Два резистора R 4 и R 5 подключены между выводом генератора (вывод 15 и вывод 16). Здесь мы использовали последовательный разъем, чтобы получить резистор на 51 кОм.Выходной контакт РЧ приемника RX 1 (контакт 2) подключен к контакту DIN (контакт 14) IC 2 .

Секция управления | Схема промышленного таймера

Принципиальная схема секции управления показана на рисунке 3. Включает микроконтроллер AT89C51, ЖК-дисплей и несколько других электронных компонентов, таких как резисторы, конденсаторы, транзисторы и т. Д. ЖК-дисплей подключен к микроконтроллеру через вывод данных D 0 - D 7 , как показано на рисунке.Где переменный резистор VR 1 используется для регулирования уровня контрастности. Кварцевый генератор подключен к выводу X TAL (выводы 18 и 19) для генерации тактовой частоты. Переключатель подключен к контакту сброса IC 1 (контакт 9) для сброса процесса. Резистор R 5 используется в качестве подтягивающего резистора для контроля дребезга переключателя.

Программируемый вывод P3.7 (17) подключен к базе транзистора T 2 через резистор R 2 для включения реле RL 1 .Реле RL 1 используется для включения или выключения прибора.

Источник питания | Схема промышленного таймера

Принципиальная схема источника питания показана на рисунке 4. Входное напряжение 230 В, 50 Гц переменного тока понижается до 12 В, 50 Гц с помощью трансформатора X 1 . Эти выходы 12 В изменяются на 12 В постоянного тока с помощью мостового выпрямителя (состоящего из четырех выпрямительных диодов общего назначения D 1 - D 4 ) и конденсатора фильтра C 4 . Отфильтрованный выход 12 В постоянного тока заменяется на стабилизированный источник питания + 5 В с помощью последовательного регулятора напряжения IC (IC 4 ).Схема источника питания, показанная здесь, может обеспечивать два разных источника питания (+12 В и + 5 В), как показано на принципиальной схеме.

Работа цепи промышленного таймера

Здесь мы описали, как работает система. Свойства и работа переключателей перечислены ниже в таблице 1. Переключатель SW 7 используется для выбора режима работы, то есть одиночного режима или режима повтора. В одиночном режиме последовательность включения и выключения будет выполняться один раз, но в режиме повтора последовательность повторяется.Когда во время работы происходит прерывание, скажем, когда переключатель SW 7 переключается в одиночный режим из режима повтора, время останавливается только после завершения цикла.

В аварийной ситуации переключатель SW 5 нажат, чтобы остановить работу таймера.

Таблица 1

Функция переключателей

SW 1 Пуск Запуск таймера
SW 2 Inc.Время Время с шагом 1 сек. максимальный лимит составляет 60
SW 3 Время декабря Время уменьшения на 1 сек. минимальный лимит - 1
SW 4 Введите Используется для ввода установленного значения времени
SW 5 ES (RST) Аварийный останов или сброс системы.
SW 6 Выбор элемента управления Выбор дистанционного управления или управления с клавиатуры.
SW 7 Выбор режима Выбор повторного или однократного управления.

Таблица 2

Состояние контактов ввода данных и переданных кодов

Переключатель D 3 D 2 D 1 D 0 Код
Начало 0 1 1 1 7
Inc.время 1 0 1 1 B
Время спуска 1 1 0 1 D
Введите 1 1 1 0 E
ES 1 1 1 1 F

Процедура пошаговой настройки

  1. Включить прибор
  2. На ЖК-дисплее появится сообщение «Enter on time».
  3. Можно выбрать желаемое время, нажав переключатели SW 2 (для уменьшения) и SW 3 (для увеличения).
  4. Переключатель ввода (SW 4 ) используется для установки времени и дальнейшего запроса на ввод времени «выключения» так же, как при установке желаемого времени с помощью переключателей SW 2 и SW 3 .
  5. На дисплее появится сообщение «Press start», и работа начнется после нажатия переключателя SW 1 .
  6. До момента включения реле RL 1 находится под напряжением, в результате чего устройство включается, при обратном отсчете времени до нуля реле обесточивается и устройство выключается.

Программное обеспечение: Щелкните здесь, чтобы загрузить код программного обеспечения

ПЕРЕЧЕНЬ ДЕТАЛЕЙ ЦЕПИ ПРОМЫШЛЕННОГО ТАЙМЕРА

Резисторы (все ¼ Вт, ± 5% углерода)
R 1 = 10 кОм

R 2 , R 3 , R 7 = 1 кОм

R 4 = 3,9 кОм

R 5 = 47 кОм

R 6 , R 8 = 330 Ом

VR 1 = 10 кОм Предустановка

Конденсаторы
C 1 , C 2 = 33 пФ (керамический диск)

C 3 = 1 мкФ, 16 В (электролитический конденсатор)

C 4 = 1000 мкФ, 25 В (электролитический конденсатор)

С 5 = 0.1 мкФ (керамический диск)

Полупроводники
IC 1 = Микроконтроллер AT89C51

IC 2 = декодер HT12D

IC 3 = 74LS21 четыре входа И вентиль

IC 4 = 7805, регулятор 5V

IC 5 = датчик DHT12E

T 1 = BC 337 NPN транзистор

T 2 = BC547 NPN транзистор

D 1 - D 5 = 1N4007 Выпрямительный диод

D 6 - D 13 = 1N4148 Диод переключения

LED 1 - LED 3 = 5 мм LED

ЖК-дисплей = 2-строчный и 16-символьный ЖК-дисплей

TX 1 = 433 МГц Модуль передатчика ASK

TX 2 = 433 МГц Модуль приемника ASK

Разное
X 1 = первичный трансформатор 230 В перем. Тока на вторичный трансформатор 12 В, 500 мА

X TAL = 12 МГц, кристалл

SW 1 - SW 5 , SW 10 - S 14 = Тактильный переключатель Push-to-On

SW 8 = Тумблер 4PDT

SW 9 = Тумблер SPST

RL 1 = 12В, реле 1 перекл.

Нравится:

Нравится Загрузка...

(PDF) Проектирование и разработка программируемого таймера на базе микроконтроллера для управления питанием

IE-46 / NED-14, НОЯБРЬ 2013

Стр. 1 из 7

Проектирование и разработка программируемого таймера на основе микроконтроллера

для управления питанием

* Мкр. Shahzamal1, Mohammad Abu Sayid Haque1, Md. Насрул Хак Миа1, Md. Anzan-Uz-Zaman1, Sardar

Masud Rana1, Mahbubul Hoq1, Fahmida Akter1, Farhana Hafiz1, Mahmudul Hasan2

1 Институт электроники, Центр исследований в области атомной энергии, Савар, Дакка, Бангладеш 2, Estomic Energy Establishment,

Бангладеш

Аннотация: Таймеры часто используются в промышленности для запуска процесса / операции с заранее заданным интервалом времени

.Самый популярный тип таймера - программируемый таймер, который имеет

различных возможностей для настройки таймера пользователями. Однако создание такого таймера

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

, ожидается, что он будет гибким в обращении. Микроконтроллер имеет потенциал

для решения этих ограничений. В рамках этой опытно-конструкторской работы мы разработали программируемый таймер на базе микроконтроллера

с системой цифрового дисплея, который можно настроить

для подключения основной линии переменного тока к приборам в течение определенного интервала времени.Устройство

может работать в двух режимах: ручном и программируемом. В программируемом режиме

устройство подключает основную линию переменного тока к розетке с заданным интервалом. Устройство

спроектировано и протестировано в лаборатории.

Ключевые слова: таймер, микроконтроллер, питание переменного тока и система отображения.

I. ВВЕДЕНИЕ

Таймеры, которые планируют событие в соответствии с заранее определенным значением времени в будущем, являются неотъемлемой частью

многих встроенных систем реального времени, подобно установке будильника.Они

находят применение в управлении последовательными функциями промышленного оборудования с переменным интервалом времени

, в лаборатории для питания приборов в течение определенного времени и выполнения процессов в течение

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

, таких как механические и электронные таймеры. Электронные таймеры производятся сегодня, чтобы соответствовать

сложным функциям промышленности. Электронный таймер состоит из стабилизированного генератора

с кварцевым управлением, логических схем последовательного управления, схем управления и цифровой системы отображения с устройством

в зависимости от приложения для подключения выхода к индивидуальному оборудованию / системе

для управления работой на предварительном этапе. -определенный временной интервал.

----------------------------------------

* Автор для переписки: Md. Шахзамал, научный сотрудник

Институт электроники, AERE, Савар, Дакка, Бангладеш

Эл. Почта: [email protected], телефон: 88-027788250, моб: 880191295235.

Правильное время | Analog Devices

Многим аналоговым схемам требуется тип тактового сигнала или возможность выполнения задачи через определенное время. Для таких приложений доступны различные решения.Для простых задач синхронизации можно использовать стандартную схему 555. С помощью схемы 555 и соответствующих внешних компонентов можно выполнять множество различных задач.

Однако одним из недостатков популярного таймера 555 является неточность установки таймера. Таймер 555 работает путем зарядки внешнего конденсатора и определения порогового значения напряжения. Эту схему очень легко создать, но ее точность сильно зависит от реальной емкости конденсатора.

Кварцевые генераторы

хорошо подходят для приложений, требующих более высокой точности.Их точность может быть высокой, но они демонстрируют слабость в другой области: надежности. Любой, кто занимается ремонтом электрооборудования, знает, что причиной поломки обычно являются большие, преимущественно электролитические, конденсаторы. Кварцевые генераторы представляют собой вторую по частоте причина отказов.

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

Помимо этих трех основных строительных блоков для генерации часов, существуют другие, менее известные альтернативы. Модули TimerBlox от Analog Devices представляют собой одну из таких альтернатив. Это модули синхронизации на основе кремния, которые, в отличие от микроконтроллеров, полностью аналоговые по работе и могут регулироваться с помощью резисторов.Таким образом, программирование программного обеспечения не требуется, а функция очень надежна. На рис. 1 показан обзор различных модулей TimerBlox с соответствующими базовыми функциями. С помощью этих базовых строительных блоков можно сгенерировать бесчисленное множество других функций.

Рисунок 1. Цепи TimerBlox для генерации различных функций синхронизации.

В отличие от широко используемых схем таймера 555, схемы TimerBlox не зависят от заряда внешнего конденсатора. Все настройки выполняются с помощью резисторов, поэтому функция более точна.Возможна точность от 1% до 2%. Кварцевые генераторы имеют еще более высокую точность, примерно в 100 раз, но это имеет недостатки, присущие подобному решению.

Применение блоков синхронизации очень разнообразно. Analog Devices опубликовала множество примеров схем. На рисунке 2 показан детектор конверта. Несколько быстрых импульсов объединяются, чтобы сформировать более длинный импульс. Внешние компоненты LTC6993-2 минимальны для этого приложения. Конденсатор в схеме является просто резервным конденсатором для поддержки напряжения питания и не влияет на точность модуля синхронизации.

Рис. 2. Детектор огибающей с интегральной схемой LTC6993 TimerBlox.

Другие интересные приложения включают фазовую синхронизацию нескольких импульсных регуляторов для источников питания или добавление модуляции с расширенным спектром к ИС импульсного стабилизатора с синхронизирующим входом. Другое типичное применение - обеспечение определенной задержки, то есть функция таймера для задержки включения для определенных сегментов цепи.

Существует множество различных технических решений для генерации тактового сигнала и выполнения различных задач, основанных на времени.У каждого из них есть достоинства и недостатки. Кремниевые генераторы, такие как модули TimerBlox, отличаются простотой эксплуатации, высокой точностью благодаря использованию переменных резисторов вместо конденсаторов и превосходной надежностью.

Распиновка микросхемы таймера 555, примеры схем, различные режимы, приложения

555 ТАЙМЕР , как указано в названии, представляют собой электронные схемы, используемые для измерения временных интервалов. В этой статье мы рассмотрим около 555 таймеров.Эта интегральная схема может использоваться различными способами, из которых основным является создание точных и стабильных задержек в электронных схемах . Кроме того, он доступен в 8-контактном DIP и 14-контактном DIP. Таймеры 555 очень популярны в проектах электроники . Некоторые из них служат микроконтроллерам и используются вместо микроконтроллеров.

555 Таймер IC Введение

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

Схема расположения выводов таймера 555

На этом рисунке показана распиновка микросхемы таймера.

Кроме того, он также доступен в 14-контактном DIP-корпусе. На этой схеме представлена ​​распиновка для 8-контактного DIP и 14-контактного DIP-корпусов.Но между ними нет никакой разницы, кроме «Нет соединения контактов для 14-контактного пакета».

Детали конфигурации контактов

Эта ИС состоит из компаратора, триггера RS и транзистора. Описание контактов приведено ниже:

  • Контакты 1 и 8 являются контактами питания и подключены к заземлению и источнику положительного напряжения.
  • Контакт 2 - это входной контакт триггера, который является отрицательным контактом компаратора , встроенного в микросхему. Выход зависит от амплитуды значения, приложенного к этому выводу. Когда его значение меньше 1 / 3 напряжения питания, он устанавливает внутренний триггер, который переключает выход с низкого на высокий.
  • Контакт 3 - это выходной контакт микросхемы таймера 555.
  • Вывод сброса используется для сброса или отключения таймера независимо от входа триггера. В нормальном режиме работы он подключен к высокому напряжению. При подаче сигнала низкого уровня он сбрасывает выход.
  • Контакт 5 - это контакт входа управления. Как видно из названия, он используется для управления входами триггера и порога. Он также используется для управления шириной выходного импульса. Он подключен к внешнему напряжению для определения ширины или модуляции выходного импульса. Если вы не используете контакт, подключите к нему конденсатор, чтобы избежать каких-либо проблем с шумом.
  • Пороговый вход - это положительный вывод компаратора. Его амплитуда отвечает за установленное состояние триггера.
  • Разрядный вывод внутренне подключен к логике низкого уровня.Он используется для разряда конденсатора, когда транзистор насыщается.

ХАРАКТЕРИСТИКИ таймера 555

Используется как

Другие важные особенности:

  • Широкий диапазон источников питания (5-18) В
  • Понижающийся высокий ток Выход (200 мА тока нагрузки)
  • Переменный рабочий цикл
  • Логически совместимые входы триггера и сброса
  • Устойчивость к высоким температурам
  • Диапазон рабочего напряжения питания от 5 до 18 вольт.
  • Он может управлять TTL, так как его выходной ток высокий.
  • Он имеет возможность получать или потреблять ток до 200 мА.
  • Входы запуска и сброса совместимы по логике.
  • Он имеет регулируемый рабочий цикл.
  • Он имеет два выхода, которые обычно включены и обычно выключены.
  • Время выключения меньше 2µ

555 таймер Внутренняя цепь

Внутренняя схема таймера 555 состоит из компараторов, триггеров, транзисторов, резисторов и выходных каскадов.

Принцип работы таймера 555

В этом разделе мы увидим работу каждого внутреннего компонента микросхемы таймера 555.

Резистор

В нем используются три резистора с сопротивлением 5 кОм, которые служат делителем напряжения между Vcc и землей. Все резисторы имеют одинаковое значение, поэтому напряжение на переходе резистора составляет 2/3 В постоянного тока и 1/3 В постоянного тока, которое используется в качестве опорного напряжения для компараторов.

Схема компаратора

Это схема, которая сравнивает входное напряжение с опорным напряжением (независимо от того, имеет ли вход более высокое или более низкое напряжение, чем опорное напряжение) и выводит низкий или высокий сигнал.Для этой цели компаратора используется много транзисторов. Триггер - это инвертирующий вход для компаратора 1. Порог - это неинвертирующий вход для компаратора 2. Компаратор 1, подключенный к контакту 2, сравнивает вход триггера с опорным напряжением 1/3 Vcc. Компаратор 2, подключенный к выводу 6, сравнивает входной порог с опорным напряжением 2/3 Vcc.

Функция FLIP FLOP

Это схема, которая может находиться в одном из двух состояний в зависимости от состояния входов.Два выхода компараторов являются входами триггера. Когда триггерный компаратор выдает низкий сигнал (независимо от выхода порогового компаратора), триггер переключается на высокий выход. Когда триггер и порог, оба компаратора выдают высокий сигнал, триггер переключает выход на низкий выход. Время высокого импульсного выхода можно сбросить вручную, переведя вывод сброса в низкий уровень.

Транзисторы

Два транзистора также показаны на рисунке выше. Один транзистор - N-P-N, и его коллектор подключен к выводу 7.Эта конфигурация известна как открытый сток или открытый коллектор. Обычно этот вывод подключается к конденсатору и используется для разряда конденсатора каждый раз, когда на выходном выводе устанавливается низкий уровень. Второй транзистор - P-N-P, который подключен к выводу 4. Назначение этого транзистора - буферизовать вывод сброса, и поэтому микросхема 555 IC не получает ток от этого вывода и не вызывает его падение напряжения.

Выходной каскад

Он действует как буфер между таймером 555 и нагрузками, которые могут быть подключены к его выходному выводу.Этот каскад подает ток на выходной контакт.

Где использовать 555 IC?

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

Таймер 555 Различные режимы работы

Путем подключения 555 таймеров с резисторами и конденсаторами по-разному, он может работать в 3-х режимах:

  1. Моностабильный режим
  2. Астабильный режим
  3. Бистабильный режим

555 Таймер МОНОСТАБИЛЬНЫЙ РЕЖИМ

Этот режим используется для создания временных задержек.В этом режиме таймер 555 выдает высокий импульс. Моностабильное состояние - это одно стабильное состояние, то есть выключенное состояние. Каждый раз, когда он запускается входным импульсом, моностабильный переходник переходит в свое временное состояние. Он остается в этом состоянии в течение периода времени, который определяется сетью RC. Затем он возвращается в стабильное состояние.

  • На контакте триггера установлен низкий уровень (менее 1/3 В постоянного тока). Компаратор, подключенный к контакту триггера, будет иметь низкий выходной сигнал и устанавливает состояние триггера, изменяя выходной сигнал с низкого уровня на высокий уровень .
  • Разрядный транзистор, подключенный к выводу 7, отключится. На конденсаторе короткого замыкания не будет. Заряд будет накапливаться на конденсаторе до тех пор, пока напряжение на конденсаторе не станет равным 2/3 напряжения питания (напряжение на выводе 6 = 2/3 Vcc).
  • Теперь на выходе компаратора «ВЫСОКИЙ». Это вернет триггер в исходное состояние (низкое).
  • Теперь транзистор включается и разряжает конденсатор на землю через контакт 7. Это заставляет выход изменить свое состояние обратно на исходное стабильное (низкий).
  • Выход остается низким до тех пор, пока на триггерный штифт снова не появится низкий импульс.
  • Время, в течение которого выходное напряжение остается «ВЫСОКИМ» или на уровне логической «1», определяется следующим уравнением постоянной времени.

555 НАСТОЯЩИЙ РЕЖИМ IC

В этом режиме выдается колебательный импульсный сигнал. Выход переключается между высоким и низким состояниями с настраиваемой частотой и шириной импульса. Частота зависит от номиналов двух резисторов (R1 и R2) и конденсатора C1.Триггерный вывод подключен к пороговому выводу, который заставляет выход непрерывно переключаться между высоким и низким состояниями.

 Частота выхода = 1 / [0,7 * (R1 + 2 * R2) * C1]
рабочий цикл = (R1 + R2) / (R1 + 2 * R2) 
  • Изначально конденсатор C1 не заряжен, поэтому напряжение на конденсаторе равно нулю. Поскольку конденсатор C1, вывод порогового значения и вывод триггера подключены одновременно, они оба также будут иметь нулевое напряжение. Это увеличивает выходную мощность.
  • Vcc подается, ток, протекающий через резисторы, начинает накапливать заряд на конденсаторе C1.Это вызывает повышение напряжения на конденсаторе C.
  • Когда напряжение на конденсаторе C1 равно 2 / 3Vcc, пороговый вывод становится высоким, это переключает компаратор, прикрепленный к пороговому выводу. Это снижает выходную мощность и активирует разрядный штифт.
  • Когда разряд разрешен, конденсатор разряжается через R2.
  • Когда напряжение на конденсаторе C1 становится равным 1 / 3Vcc, на выводе триггера устанавливается низкий уровень. Это переворачивает компаратор, прикрепленный к контакту триггера, и повышает выходной сигнал.При повторении вышеуказанных шагов выход переключается между высоким и низким состояниями для создания непрерывной пульсовой волны.

555 Таймер БИСТАБИЛЬНЫЙ РЕЖИМ

В этом режиме таймеры 555 переключают свой выход между высоким и низким состояниями в зависимости от состояния двух входов. Схема стабильна в обоих состояниях. Он остается в том же состоянии (ВЫСОКИЙ или НИЗКИЙ) до тех пор, пока не сработает внешний триггер.

  • В этом режиме нет RC-сети, как в двух других режимах 555, следовательно, нет никаких уравнений.
  • Эта схема на самом деле является триггером.
  • Два входа - это триггер (контакт 2) и контакты сброса (контакт 4).
  • По умолчанию оба поддерживаются подтягивающими резисторами в бистабильном режиме.
  • Когда на выводе триггера находится низкий импульс (менее 1/3 (Vcc)), он дает высокий выходной сигнал. Выход будет оставаться высоким, даже если триггерный вывод снова будет установлен в высокий уровень.
  • Когда на выводе сброса находится низкий уровень импульса, выходной сигнал становится низким. Выход останется в этом состоянии, даже если на выводе сброса снова появится высокий уровень.

Таймер 555 Proteus Simulations

Пример схемы 1

Здесь мы используем 555 таймеров в моностабильном режиме. Когда триггерный вывод установлен на низкий уровень, он дает высокий выходной сигнал, а затем выходной сигнал становится низким.

Как видно из названия, он состоит из одного стабильного и одного нестабильного состояния. Он используется для создания заранее заданной длины импульса с помощью запускающего входа. Перед подачей триггерного входа выход остается в низком состоянии. Вы можете подключить питание с помощью кнопки на входном контакте триггера.При нажатии кнопки выход становится высоким и возвращается в исходное состояние через определенный период времени, который можно определить путем выбора соответствующих значений резистора и конденсатора. Следующее уравнение используется для установки значений R и C для получения желаемого периода времени.

Пример схемы 2

Здесь мы используем 555 таймеров в нестабильном режиме. Когда триггерный вывод установлен на низкий уровень, он выдает импульсы высокого и низкого уровня на выходе.

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

Пример схемы 3

В этом режиме оба состояния выхода стабильны. Контакты 2 и 4 подключены к кнопкам. Контакт 6 заземлен. Этот режим используется для выполнения только двух операций включения или выключения. Контакт 2 является активным низким, когда его значение больше 1/3 напряжения питания, это делает выход высоким .

Здесь мы используем таймер 555 в бистабильном режиме. Когда триггерный вывод установлен на низкий уровень, он дает высокий выходной сигнал и остается в этом состоянии, пока не будет нажата кнопка сброса.При нажатии кнопки сброса выходная мощность низкая. Опять же, мы можем сделать выходной сигнал высоким, нажав кнопку триггера.

555 Таймер приложений

Некоторые общие области применения этой ИС:

  • Генерация импульсов
  • Широтно-импульсная модуляция и позиционная модуляция
  • Последовательные схемы синхронизации для точной синхронизации или генерации импульсов
  • Генераторы и триггеры
  • Аналоговые частотомеры.

0 comments on “Схема таймера на микроконтроллере: РадиоКот :: Универсальный таймер на микроконтроллере.

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

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