Сайт радиолюбителей Республики Коми.

: главная: странички:

Универсальный таймер.

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

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

Установка значений производится в регистры установки, поэтому после каждой установки происходит перезапись в регистры индикации. Запись в необходимые регистры индикации осуществляется в зависимости от положения запятой. Если запятая в нулевом разряде, то счет происходит в секундах; если – в первом разряде, то счет в минутах и, наконец, если запятая во втором разряде, то счет в часах.

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

Если установка не происходит и флаг установки равен нулю, то включается счетчик паузы. Каждую секунду значение восьмиразрядного регистра счетчика увеличивается на единицу. Таким образом, регистр паузы переполнится (установится в ноль) через 256 секунд (4 минуты 16 секунд) и включит флаг паузы. После завершения прерывания в подпрограмме индикации индикация выключится. После нажатия кнопки “Стоп”, все флаги сбросятся, и индикация снова включится.

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

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

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

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

Входы RB0-RB7 используются как выходы значений сегментов светодиодов. Во время прерывания входы RB4-RB7 нагружаются кнопками SA2-SA5: “Плюс”, “Минус”, “Пуск”, “Стоп”. Кнопка SA1 (ЗПТ) подключена к постоянному входу RA3. Выводы RA0-RA3 используются как выходы анодов светодиодов.

Вывод RA4 на схеме нагружен звуковым излучателем НСМ1206х со встроенным генератором частотой 2 кГц. Этот вывод включает нагрузку нулевым потенциалом и может быть использован для подключения сильноточной нагрузки обычными способами, т.е. при помощи реле, оптопары или симметричного тиристора. В непрерывном режиме работы на этом выводе потенциал будет изменяться с каждым циклом, поэтому включать нагрузку можно как высоким уровнем, так и низким.

Питание таймера осуществляется тремя элементами типа АА (пальчиковые). Потребляемый ток при всех включенных сегментах равен 15 мА. Малый потребляемый ток в режиме “Пауза”, равный 0,1 мА, позволяет обойтись без выключателя питания. Если таймер будет использоваться для коммутации сильноточной нагрузки, то напряжение источника питания не должно превышать 6 В.

Необходимо заметить, что гасящие резисторы R1-R8 подобраны для максимальной яркости и, в зависимости от условий эксплуатации, могут быть увеличены до 560 Ом, что немного уменьшит потребляемый ток таймера с включенной индикацией.

Если таймер будет запитываться от блока питания, то возможна установка светодиодов с большими размерами цифр, например, АЛ333Г. В этом случае значение гасящих резисторов R1-R8 должно быть равно 200 Ом (общая нагрузка на порт: не более 50 мА).

Кварцевый резонатор ZQ1 на частоту 32768 Гц цилиндрический, часовой. Применяемые кнопки: миниатюрные импортные мембранного типа (маркировка неизвестна).

Назначение кнопок и работа с таймером:

  • SA1 (ЗПТ.) – кнопка переключения запятой по разрядам индикатора;
  • SA2 (Плюс) – кнопка прибавления единицы в выбранный разряд установки;
  • SA3 (Минус) – кнопка вычитания единицы из выбранного разряда установки;
  • SA4 (Пуск) – кнопка включения индикации и таймера;
  • SA5 (Стоп) – кнопка включения индикации и остановки таймера. Одновременное нажатие кнопок: “Стоп” + “Плюс” вызывает запись в энергонезависимую память индицируемого значения;
  • “Стоп” + “Минус” вызывает считывание из памяти;
  • “Стоп” + “ЗПТ.” включает непрерывный режим.

Индикация непрерывного режима осуществляется чередованием включения всех запятых и запятой в выбранном разряде. Работу с таймером необходимо начинать с выбора разряда установки при помощи кнопки “ЗПТ.”.

В выбранном разряде устанавливается необходимое значение кнопками “Плюс” или “Минус”. Изменение на единицу значения в выбранном разряде будет происходить через одну секунду. Далее необходимо установить запятую на разряд в зависимости от времени счета.

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

Затем включается непрерывный режим (“Стоп” + “ЗПТ.”). Кнопка “Пуск” может быть нажата в любое время, даже после включения режима “Пауза”.

Установленные ранее значения сохранятся и будут отработаны таймером. Выход из режима непрерывной работы осуществляется кнопкой “Стоп” при этом сбрасывается индикация непрерывного режима.

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

Выключение зуммера происходит при нажатии кнопки “Стоп”. Нажатием кнопки “Стоп” можно остановить работу таймера в любой момент. При повторном нажатии кнопки “Пуск”, таймер начнет работу со значений, записанных в установочных регистрах.

Счет таймера производится в вычитающем режиме, но в часовом формате. Например, установленное значение 560, в секундах будет соответствовать 5 минутам и 60 секундам, т.е. фактически - 6 минутам.

Максимально возможные значения установки таймера:

  • Запятая в нулевом разряде - 999, = 9 мин. 99 сек. = 10 мин. 39 сек.
  • Запятая в первом разряде – 99,9 = 9 час. 99 мин. = 10 час. 39 мин.
  • Запятая во втором разряде – 9,99 = 9 дней 99 часов = 13 дней 3 часа.

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

Т.е. при работе со счетом в секундах (запятая в нулевом разряде) индикация выключаться не будет, потому что нет изменения регистра десятков минут. Установлен только регистр единиц минут. При установке значения, например, 01,1 (11 минут) индикация выключится через одну минуту.

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

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

На рис. 3 и 4 изображены печатная плата и расположение элементов таймера. На рис. 5 изображена печатная плата для светодиодов АЛ304Г со стороны их установки. Тонкими линиями показаны проводники, идущие с обратной стороны.

Скачать прошивку микроконтроллера PIC16F84.

Оригинал статьи - http://www.radic.newmail.ru

Н. Заец saes@mail.ru

Rambler's Top100
Rambler's Top100
Copyright © Russian HamRadio

Hosted by uCoz