Схема цифрового таймера на PIC16F628a, приведенная в данной статье, позволяет включать и выключать по расписанию нагрузку (бытовые приборы и электронные устройства). Нагрузка управляется посредством электромагнитного реле.
С этим программируемым цифровым таймером можно установить как время включения, так и время выключения. Это означает, что вы можете установить время, когда нагрузка должна быть включена и время отключения, то есть как долго она должна пробыть во включенном состоянии.
Предельный интервал времени, который вы можете установить для включения и выключения нагрузки — 99 часов и 59 минут. Для удобства работы таймер снабжен ЖК-дисплем 16×2 и 4-мя кнопками. Принципиальная схема данного цифрового таймера показана на рисунке ниже.
Реле с рабочим напряжением 5В коммутируется с помощью NPN транзистора BC337, управление самим же транзистором происходит сигналом с вывода 9 (RB3) микроконтроллера PIC16F628A.
Цифровые сигналы от 4-х кнопок считываются через входы 1, 2, 3 и 6. Стандартный LCD индикатор 16×2 работает в 4-битном режиме, поэтому задействованы только 6 контактов ввода/вывода микроконтроллера. Зуммер обеспечивает звуковой сигнал в момент, когда таймер запускается и останавливается. Он также издает звуковой сигнал, когда нагрузка включена или выключена.
Работа таймера просимулирована в Proteus:
Работа таймера
Все управление таймером осуществляется четырьмя кнопками:
- Кнопка SA1 (on/off) — позволяет устанавливать как время включения, так и время выключения таймера. При подаче питания на таймер, нагрузка находится в выключенном состоянии, и оба времени (включения и выключения) равны 0. При нажатии на кнопку SA1, вы можете переключаться между режимами включения и выключения.
- Кнопка SA2 (select) — позволяет выбирать во время установки цифры часов и минут включения и выключения таймера. Выбранная цифра увеличивается на единицу при нажатии SA1.
- Кнопка SA3 (enter) — позволяет выйти из режима установки таймера.
- Кнопка SA4 (start/stop) — запускает и останавливает работу таймера.
Теперь давайте посмотрим, как это работает. Предположим, что мы хотим включить нагрузку через 2 минуты и отключить ее после 20 минут работы. В этом случае время включения (ON) будет 00:02, а время выключения (OFF) 00:20, в формате чч: мм. После нажатия на кнопку SA4 запуститься таймер, и нагрузка включится через 2 минуты, и отключиться через 20 минут.
Скачать прошивку + proteus (20,7 KiB, скачано: 2 132)

А как можно включить нагрузку сразу после нажатия кнопки «старт/стоп», т.е. без паузы в начале ?
В исходнике на С — Oscillator: XT, 4.0 MHz
А в прошивке осциллятор — HS
У меня при программировании программатором К150 вылетает ошибка
В программе программатора выставил во фьюзах осциллятор ХТ всё стало нормально. Таймер работает.