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

Ко мне обратился сосед-автолюбитель с просьбой изготовить часы с таймером: чтобы зимним утром он пришел в гараж и сел в теплую машину; и чтобы часы в заданное время включили у него подогреватель масла в автомобиле и, во избежание всяких неприятностей, выключили подогреватель в заданное время. На первый взгляд, задача проста: решаю купить часы в магазине и поставить на таймер реле. Хотя выбор часов многообразен: есть часы пищащие, пикающие, с музыкой и так далее, но у всех их начисто отсутствует такая нужная функция, как выключение таймера. Поиск в Интернете также не дал никакого результата. Да, есть программы и, казалось бы, остается дописать кусочек программы на выключение и все - задача решена. Не учел только одного, что все программисты пишут программы так, как удобно им, но не мне. Разобрать чужое написаное иногда просто непосильная задача. Оставалось одно - садиться за компьютер и писать программу самому, что и было сделано.

Часы с таймером на PIC16F84 - схема

Схема электрическая принципиальная приведена на рисунке. Кварцевые резонаторы на 1 МГц у меня закончились, поэтому пришлось писать программу для кварцевого резонатора 455 кГц (благо старых пультов от телевизоров скопилось много), да и данный кварц идеально подходит как кварцевый резонатор параллельного типа. Единственно, что не удалось (да и не очень-то пытался) - чтобы программа работала по прерываниям, что отразилось на точности хода часов. Но помня о том, что ни разу не встречал электронных часов, точное время которых не надо было бы корректировать, решил не огорчаться, а сделать так, чтобы подводить их было более удобно - сделал с отставанием на одну минуту в неделю (значительно легче перевести на одну единицу вперед, чем переустанавливать все).

Индикаторы в таймере - счетверенные семисегментные, суперяркие с общим анодом типа СС56-21SRWA. Разделительные точки мигающие, т.е. зажигаются и гаснут с периодичностью 1 секунда. Установки первого и второго таймера автоматически записываются в энергонезависимую память контроллера. Блок питания особенности не имеет - подойдет любой с напряжением 9...12 В. Реле - любое подходящее с напряжением срабатывания 5...12 В, с током контактов от 10 А.

Настройка часов

При нажатии кнопки S1 происходит переход часов на установку времени. На дисплее высвечивается надпись CLOC. При нажатии кнопки S3 происходит установка минут, а при нажатии кнопки S2 - часов. Если кнопки S3 и S2 не будут нажаты в течение 10 секунд, часы автоматически переходят на рабочий режим.

Установка таймеров

Таймер на включение реле.

Нажав кнопку S1 два раза, переходим на дисплей первого таймера. На дисплее высвечивается надпись OnCL. Нажатием кнопок S3 и S2 выставляется время включения реле. Запись в память и возврат в режим часов происходит автоматически через 10 секунд.

Таймер на выключение реле.

Нажав кнопку S1 три раза, переходим на дисплей второго таймера. На дисплее высвечивается надпись OFCL. Нажатием кнопок S3 и S2 выставляется время выключения реле. Запись в память и возврат в режим часов происходит автоматически через 10 секунд.

Автор:  Александр Павельчук


Архив для статьи "Часы с таймером на PIC16F84"
Описание:
Размер файла: 1.58 KB Количество загрузок: 2 735 Скачать

Комментарии  

+5 #1 Эрик Фахредди 18.05.2014 21:32
Собрал схему, по-моему, в схеме недоработка - куда присоединяется общая тока трёх кнопок? То есть как часы должны реагировать на нажатие s1 (провод висит "в воздухе") ?
Сообщить модератору