Печать

Часы-таймер на PIC16F628

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

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

Проект представляет собой часы с таймером, который может быть запрограммирован на включение и на выключение. Я начал его делать так как мне было лень включать и выключать каждый день аквариум. Не стал использовать уже готовые вещи по нескольким причинам - в том числе и потому что планирую добавить автоматическую систему для кормежки рыб.

Схема часов довольно проста, если не сказать очень проста. Главная часть, безусловно - программа на ассемблере. Для программирования я использовал Microchip's MPASMP, а для рисования схемы - Eagle.

Часы имеют 4 кнопки для:
увеличения часов (1)
увеличения минут (2)
режима программирования включения(3)
режима программирования выключения(4)

Часы имеют 4 режима:
часы
программирование часов
программирование включения
программирование отключения   

Новый режим устанавливается при нажатии на соответствующую кнопку. После того, как кнопка нажата или отпущена новый режим индицируется примерно в течение секунды символами ClOC, Prog, Pron, ProF соответственно. При нажатии кнопки (1) или (2) устанавливается режим программирования часов и часы (кнопка 1) или минуты (кнопка 2) будут увеличиватся каждую секунду. При нажатии кнопки (3) или (4) часы показывают время включения или отключения. Чтобы установить новое время включения/выключения - не отпуская кнопки (3) или (4) следует нажать кнопку (1) или (2). Если нажать вместе кнопки (3) и (4) секунды обнуляются и часы не идут до отпускания этих кнопок - это для установки точного времени. Защита от дребезга контактов - программная задержка на 16 миллисекунд (4 цикла) при нажатии и отпускании. 4 вывода PIC16F628 использованы для динамической индикации 7-сегментных индикаторов и сканирования клавиатуры. Программа работает по прерываниям. До вызова прерывания программа ничего не делает и может быть использована для других целей. Прерывания происходят каждые 4 миллисекунды. Каждый цикл новый 7-сегментный индикатор подключается. Каждый раз, когда проходит секунда вызывается подпрограмма проверки времени включения/выключения реле.

Часы-таймер на PIC16F628

Схема устройства

Организовать индикацию прямо с микроконтроллера не хватает выводов, поэтому я использовал дополнительную микросхему - сдвиговый регистр 74HC164. Реле и многие детали как транзисторы или диоды могут использованы практически любые того же классa. Я оставил свободными выводы RB0, RB1, RB2 для дальнейшего развития - подключения RS232 и так далее.

Печатная плата устройства

Автор Dmitriy Fitisov

Файлы:
Исходный код программы(Ассемблер), файл прошивки микроконтроллера, схема
Дата 24.07.2014 Размер файла 166.22 KB Закачек 1276

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