Проект представляет собой часы с таймером, который может быть запрограммирован на включение и на выключение. Я начал его делать так как мне было лень включать и выключать каждый день аквариум. Не стал использовать уже готовые вещи по нескольким причинам - в том числе и потому что планирую добавить автоматическую систему для кормежки рыб.
Схема часов довольно проста, если не сказать очень проста. Главная часть, безусловно - программа на ассемблере. Для программирования я использовал 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-сегментный индикатор подключается. Каждый раз, когда проходит секунда вызывается подпрограмма проверки времени включения/выключения реле.
Схема устройства
Организовать индикацию прямо с микроконтроллера не хватает выводов, поэтому я использовал дополнительную микросхему - сдвиговый регистр 74HC164. Реле и многие детали как транзисторы или диоды могут использованы практически любые того же классa. Я оставил свободными выводы RB0, RB1, RB2 для дальнейшего развития - подключения RS232 и так далее.
Автор Dmitriy Fitisov
Архив для статьи "Часы-таймер на PIC16F628" | |
Описание: Исходный код программы(Ассемблер), файл прошивки микроконтроллера, схема | |
Размер файла: 166.22 KB Количество загрузок: 2 365 | Скачать |