Как работает цифровой таймер на PIC16F84A. Каковы его основные функции и возможности. Как собрать схему таймера своими руками. Как запрограммировать микроконтроллер для управления таймером.
Обзор программируемого цифрового таймера на PIC16F84A
Программируемый цифровой таймер на базе микроконтроллера PIC16F84A позволяет автоматически управлять включением и выключением электроприборов по заданному расписанию. Основные возможности данного устройства:
- Установка времени включения и выключения нагрузки с точностью до 1 минуты
- Максимальный интервал работы — 99 часов 59 минут
- Управление нагрузкой через релейный выход
- Отображение текущего состояния и настроек на ЖК-дисплее
- Управление с помощью 4 кнопок
- Звуковая индикация срабатывания таймера
Таймер позволяет задать расписание работы для различных бытовых приборов — освещения, обогревателей, вентиляторов и т.д. Это дает возможность автоматизировать их работу и сэкономить электроэнергию.

Схема таймера на PIC16F84A
Принципиальная схема программируемого таймера на микроконтроллере PIC16F84A показана на рисунке:
[Здесь должно быть изображение принципиальной схемы таймера]
Основные компоненты схемы:
- Микроконтроллер PIC16F84A — управляющий элемент таймера
- ЖК-дисплей 16×2 символа — для отображения информации
- 4 кнопки управления — для программирования таймера
- Реле 5В — для коммутации нагрузки
- Транзистор PN2222 — для управления реле
- Пьезоизлучатель — для звуковой индикации
Питание схемы осуществляется от стабилизированного источника 5В. Для получения стабильного напряжения используется микросхема LM7805.
Принцип работы цифрового таймера
Работа таймера основана на программе, записанной в память микроконтроллера PIC16F84A. Алгоритм работы следующий:
- При включении питания таймер находится в выключенном состоянии
- С помощью кнопок задается время включения и выключения нагрузки
- После запуска таймер начинает отсчет времени
- При достижении времени включения активируется реле и подключается нагрузка
- При наступлении времени выключения реле обесточивается
- Цикл повторяется пока таймер не будет остановлен
Текущее состояние и настройки отображаются на ЖК-дисплее. Это позволяет легко контролировать работу таймера.

Программирование микроконтроллера PIC16F84A
Для программирования PIC16F84A используется язык ассемблера или Си. Основные функции, которые должна выполнять программа:
- Инициализация микроконтроллера и периферии
- Опрос состояния кнопок управления
- Отсчет времени с помощью таймера
- Управление релейным выходом
- Вывод информации на ЖК-дисплей
- Генерация звуковых сигналов
Программа должна обеспечивать корректную работу всех узлов таймера и обработку команд пользователя.
Сборка и настройка таймера
Собрать таймер можно на макетной плате или изготовить печатную плату. Порядок сборки:
- Установка и пайка компонентов согласно схеме
- Подключение ЖК-дисплея и кнопок управления
- Программирование микроконтроллера
- Настройка и калибровка таймера
- Проверка работоспособности всех функций
После сборки необходимо откалибровать точность хода часов и проверить корректность срабатывания реле.
Возможности применения таймера
Программируемый таймер на PIC16F84A может использоваться для управления различными электроприборами:

- Автоматическое включение и выключение освещения
- Управление работой обогревателей и кондиционеров
- Полив растений по расписанию
- Кормление домашних животных в заданное время
- Имитация присутствия в доме
Таймер позволяет автоматизировать многие бытовые процессы и сделать использование электроприборов более удобным и экономичным.
Преимущества цифрового таймера на PIC16F84A
Основные достоинства данного устройства:
- Точность отсчета времени до 1 минуты
- Простота программирования и использования
- Наглядное отображение настроек на дисплее
- Возможность быстрой перенастройки
- Низкое энергопотребление
- Невысокая стоимость компонентов
Благодаря использованию микроконтроллера, функциональность таймера можно легко расширять, добавляя новые возможности.
Заключение
Программируемый цифровой таймер на базе PIC16F84A является простым, но функциональным устройством для автоматизации работы бытовых электроприборов. Его можно самостоятельно собрать и запрограммировать под свои нужды. Таймер позволяет сделать использование техники более удобным и энергоэффективным.

Часы, термометр, таймер управления освещением цветов
Контроллер собран на микропроцессоре PIC16F84A. Измеряет температуру и выводит ее на индикатор. Включает и выключает нагрузку (лампу дневного света) по таймеру. Таймер имеет резервный источник питания — литиевую батарейку на 3 вольта типа CR2032. Часы, время включения и время выключения нагрузки устанавливается с пульта ДУ. Показания часов выводятся на индикатор при нажатии кнопки на пульте ДУ. Точность измерения температуры 0.5 градуса.
Испытательный полет. Температура за бортом — 20 градусов.
Импульсный источник питания на 5 вольт. Работает годами без нареканий
Плата практически пустая.
На свободном месте расположится источник питания.
Хорошая коробка — 90 процентов успеха!
Принципиальная схема
Использованные компоненты
- DD1 — микропроцессор PIC16F84A
- DD2 — ЖК индикатор MT-10S
- DD3 — интегральный таймер PCF8583 с управлением по I2C
- DD4 — I2C порт-расширитель PCF8574
- DD5 — ИК-приемник TSOP1738
- DD6 — датчик температуры DS18S20
- T1 — полевой транзистор IRFD110
- DA1 — оптосимистор MOC3061
- VS1 — симистор MAC15N
- ZQ1 — часовой резонатор на 32768Hz
- ZQ2 — резонатор на 4MHz
Прошивка
Версия 3 от 19. 11.2004: (доступно зарегистрированным пользователям)
С такого пульта производится установка таймера и часов.
При первом нажатии любой кнопки на пульте включается подсветка индикатора. Он гаснет через 30 секунд после последней команды с пульта.
Основной режим | |
Нагрузка выключена: | |
Нагрузка включена: | |
Основной режим, разовое переопределение состояния нагрузкиРазовое — в том смысле, что на следующие сутки контроллер снова будет отрабатывать включение и выключение нагрузки по таймеру. Буковка «Р» как-бы говорит нам, что в данный момент состояние нагрузки переопределено вручную. Для ручного изменения состояния нагрузки нажимать на пульте кнопку ?1. | |
Нагрузка выключена вручную: | |
Нагрузка включена вручную: | |
УстановкиВход в этот режим и выход осуществляется кнопкой ?2 Переключение между пунктами в режиме установки — кнопка ?4 Изменение значений минут и секунд — кнопка ?3 | |
Часы — установка часов: | |
Часы — установка минут: | |
Время включения нагрузки — установка часов: | |
Время включения нагрузки — установка минут: | |
Время выключения нагрузки — установка часов: | |
Время выключения нагрузки — установка минут: |
|
Переключение часов — Помощь разработчикам
Переключение часов
Источник системных часов можно переключать между внутренним и внешним источником с помощью управляющих битов в регистре OSCCON. Это позволяет микроконтроллеру PIC ® управлять скоростью работы, а также может способствовать снижению энергопотребления. Более медленный генератор будет потреблять меньше тока, чем высокоскоростной генератор. Во время нормальной работы может потребоваться более высокая скорость, но когда приложение менее активно, более медленный осциллятор может справиться с задачами обработки. Это уменьшит энергопотребление. Различные варианты сна доступны для очень низкого энергопотребления, но часто необходимо поддерживать непрерывную работу во время сна. Более низкая частота генератора может быть всем, что требуется во время работы в спящем режиме.
Функцией переключения часов на многих устройствах можно управлять из прикладного программного обеспечения. Существует три варианта системных часов, которые можно выбрать с помощью функции переключения часов. К ним относятся:
- Системные часы, определяемые настройками Fosc в конфигурационном слове
- INTOSC — внутренний осциллятор
- Таймер 1 Внешний тактовый кристалл 32,768 кГц
Примечание: Переключение часов — это операция, управляемая программным приложением, а не автоматическая операция. Другие функции переключения часов, такие как Fail Safe Clock Monitor и Two Speed Start-Up, представляют собой функции автоматического переключения часов, которые не влияют на настройки переключения часов.
Режим переключения часов управляется битами SCS в регистре OSCCON. Эти биты можно изменить с помощью программного обеспечения во время выполнения, чтобы изменить источник синхронизации.
Когда биты SCS = 00 , системные часы переключаются на источник синхронизации, выбранный битами Fosc в регистре конфигурации. Это может быть внутренний генератор , внешний кристалл/резонатор или внешний тактовый генератор .
Когда биты SCS = 01 , системные часы переключаются на вторичный генератор , который представляет собой внешний кристалл 32,768 кГц , управляющий периферийным устройством таймера 1 . Внешний тактовый кристалл является дополнительным источником тактового сигнала, который должен быть частью схемы разработки Timer1.
Когда биты SCS = 10 или 11 , системные часы переключаются на внутренний генератор независимо от настроек бита конфигурации Fosc. Биты IRCF регистра OSCCON выбирают частоту внутреннего генератора.
При переключении на новый источник синхронизации рекомендуется перед переключением проверить состояние источника синхронизации. Каждый выбор генератора имеет бит состояния в регистре OSCSTAT , чтобы указать, готов ли он или достигнута ли ожидаемая точность. Если устройство находилось в спящем режиме, когда осциллятор мог быть отключен для экономии энергии, может возникнуть задержка в готовности источника тактового сигнала к переключению тактового сигнала. Проверка бита состояния конкретного источника тактового сигнала в регистре OSCSTAT определит, готов ли источник к переключению тактового сигнала.
Бит OSTS указывает состояние генератора, выбранного настройками бита конфигурации Fosc. После сброса внутренний генератор INTOSC может управлять устройством, в то время как выбор Fosc завершает задержку запуска или даже задержку Power-Up Timer . Проверка бита OSTS покажет, какой осциллятор управляет устройством.
Вернуться к началу
Сгиб Содержание Управление переключением часов Биты состояния генератора Состояние Fosc |
Программируемый цифровой таймер с использованием микроконтроллера PIC
Цифровые таймеры используются для управления работой электрических устройств по запрограммированному расписанию. В этом проекте описывается программируемый цифровой таймер на базе микроконтроллера PIC16F628A, который можно запрограммировать на включение и выключение электроприбора по расписанию. Прибор управляется с помощью релейного переключателя. Этот переключатель таймера позволяет установить время включения и выключения. Это означает, что вы можете запрограммировать, когда вы хотите включить устройство и как долго вы хотите, чтобы оно оставалось включенным. Максимальный временной интервал, который можно установить для включения и выключения, составляет 99 часов 59 минут. Проект предоставляет интерактивный пользовательский интерфейс с использованием ЖК-дисплея 16×2 символов и 4 кнопок.
Программируемый цифровой таймер
Примечание: (30 июня 2016 г.) Пересмотренная версия этого проекта с добавленными новыми функциями размещена здесь .
Схема
Принципиальная схема этого проекта показана ниже. Реле 5В управляется транзистором PN2222, который управляется выводом RB3 PIC16F628A. Цифровые входы от 4 кнопок считываются через контакты порта RA2, RA3, RA4 и RB0. Функции этих кнопок обсуждаются в разделе операций ниже. В проекте используется стандартный ЖК-дисплей 16×2 символов для отображения состояния устройства, меню программ и времени. ЖК-дисплей работает в 4-битном режиме, поэтому для его управления требуется всего 6 контактов ввода-вывода PIC16F628A. Пьезоэлектрический зуммер издает звуковой сигнал при запуске и остановке таймера. Он также издает звуковой сигнал при включении или выключении устройства. Источник питания + 5 В для схемы получен от микросхемы стабилизатора LM7805. Вход на регулятор подается с 9Настенный адаптер постоянного тока В.
На принципиальной схеме контакты 15 и 16 ЖК-дисплея показаны разомкнутыми. Эти контакты доступны только в тех ЖК-дисплеях, которые имеют светодиодную подсветку. Контакты 15 и 16 являются анодом и катодом светодиода. Если ваш ЖК-дисплей оснащен светодиодной подсветкой, вы можете последовательно подключить эти контакты к клеммам источника питания с резистором 39 Ом. Светодиодная подсветка улучшает читаемость ЖК-дисплея в условиях низкой освещенности.
Полная схема, припаянная к макетной плате общего назначения, показана ниже.
Работа таймера
Таймер получает сигналы от 4 кнопок. Их функции описаны следующим образом:
- ВРЕМЯ ВКЛЮЧЕНИЯ/ВЫКЛЮЧЕНИЯ: Этот таймер позволяет установить время включения и выключения. Когда таймер первоначально включен, устройство находится в выключенном состоянии, а время включения и выключения равно 0.
Нажимая эту кнопку, вы можете переключаться между временем включения и выключения на дисплее.
- ВЫБОР: Это позволяет вам выбирать между настройками времени включения и выключения, а также часами и минутами. Выбранная цифра увеличивается при нажатии кнопки ON/OFF TIME.
- ENTER : Когда выбраны соответствующие часы и минуты, нажатие ENTER завершает установку соответствующего времени включения или выключения.
- ПУСК/СТОП запускает или останавливает таймер. Если таймер уже включен, вы можете остановить его в любой момент во время его работы, нажав эту кнопку.
Теперь посмотрим, как это работает. Допустим, устройство, подключенное к релейному выключателю, необходимо включить через 2 минуты. Кроме того, после включения он должен быть включен в течение следующих 20 минут. В этом случае время выключения — 00:02, а время включения — 00:20 в формате чч:мм. После запуска таймера устройство включится через 2 минуты и останется включенным в течение 20 минут.