Печать

Микроконтроллерный таймер на PIC16F84A

Опубликовано . Опубликовано в Устройства на PIC

Рейтинг:   / 3
ПлохоОтлично 

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

Предлагаемое устройство позволяет отсчитывать выдержку времени от 1 с до 99 ч 59 мин 59 с. Его основа популярный среди радиолюбителей микроконтроллер PIC16F84A (DD1). Кроме него, таймер содержит микросхему К176ИД2 (DD2) — преобразователь двоичного кода в семиэлементный, четырехразрядный светодиодный цифровой индикатор HG1 и стабилизатор напряжения питания DA1.

Микроконтроллерный таймер - схема

После включения питания микроконтроллер считывает из своей энергонезависимой памяти (EEPROM) информацию об установках времени (о том, как ее записать в EEPROM, будет сказано ниже) и начинает отсчет. При первом включении устройства автоматически устанавливается выдержка времени, равная 2 мин 59 с (на экране индикатора HG1 — цифры 2.59; незначащие нули в старших разрядах не высвечиваются). Требуемую выдержку вводят с помощью кнопок SB1 и SB2. При этом если она больше 1 ч, на экране индикатора отображаются часы и минуты, а если меньше, — минуты и секунды. Элемент Н второго разряда индикатора мигает с частотой 1 Гц, наподобие разделительного двоеточия на обычных электронных часах (он перестает мигать на последней минуте выдержки). С момента начала отсчета на выходе таймера (линия порта RA2 микроконтроллера DD1) устанавливается низкий логический уровень и подключенное к нему исполнительное устройство на транзисторе VT1 и электромагнитном реле К1 находится в режиме ожидания. По окончании заданного промежутка времени низкий логический уровень на выходе таймера сменяется высоким, транзистор VT1 открывается и реле К1 своими контактами (на схеме не показаны) включает или выключает управляемый аппарат (генератор сигнала звуковой частоты, электроприбор, телевизор и т. д.). Этот уровень напряжения на выходе сохраняется до тех пор, пока не будет отключено питание таймера или нажата кнопка SB2 (она в данном случае играет роль кнопки сброса).

Чтобы изменить выдержку, во время счета нажимают на кнопку SB2. При этом начинают мигать разряды часов. Установив с помощью кнопки SB1 необходимое время (от 00 до 99 ч), вновь нажимают на кнопку SB2, фиксируя этим число часов и переводя таймер в режим установки минут. Необходимое значение вводят той же кнопкой SB1, а затем, еще раз нажав на кнопку SB2, переходят к установке секунд. В этом режиме начинает мигать элемент Н второго разряда индикатора HG1 (при установке чисел часов и минут он не светился). Следующее нажатие на кнопку SB2 вызывает запись всех установок в EEPROM и перезагрузку микроконтроллера. В результате на экране индикатора появляются значения часов, минут и секунд, по истечении которых таймер сработает.

Кроме указанного на схеме микроконтроллера PIC16F84A, в устройстве без какой-либо доработки программы можно использовать PIC16F84. Допустима замена индикатора СА56-12GWA другим светодиодным индикатором динамического типа с общим анодом и числом разрядов не менее четырех (у него может быть иное назначение выводов, что следует учесть при монтаже). Транзистор КТ815А заменим любым кремниевым структуры n-р-n с предельным значением тока коллектора не менее рабочего тока реле. Вместо реле РЭН34 можно применить любое другое, надежно срабатывающее при напряжении 8... 10 В, с контактами, рассчитанными на коммутацию переменного напряжения 220 В притоке, потребляемом нагрузкой.

Программа, по которой работает микроконтроллер, реагирует на состояние контактов кнопки SB2 в момент их размыкания, т. е. после ее отпускания. Такая логика сохраняется во всех режимах работы. Изменение же состояния контактов кнопки SB1 программа обнаруживает в момент их замыкания. В режиме установки времени однократное нажатие этой кнопки увеличивает значение текущего разряда на единицу, а удержание ее в нажатом положении более 1 с заставляет программу перейти в режим автоматического увеличения значения разряда два раза в секунду. Нажатие на эту кнопку в режиме счета и удерживание ее в течение 1 с. приводит к тому, что независимо от значения времени в разрядах часов на экране индикатора отображаются минуты и секунды. После отпускания кнопки логика работы программы восстанавливается, т. е. становится такой, какой она была до ее нажатия.


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

Автор: Высочанский П.

Файлы:
Дата 17.02.2010 Размер файла 3.85 KB Закачек 1642

Рекомендуем посмотреть