Top.Mail.Ru
Таймер с запоминанием выдержки на PIC12F629 - Микроконтроллеры и Технологии

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

Схема реле приведена на рисунке. Его основной элемент — микроконтроллер PIC12F629.  Сигналом с выв. 6 микроконтроллер через усилитель на транзисторе VT1 управляет реле К1, которое в свою очередь включает и выключает исполнительное устройство, например, лампу фотоувеличителя. Диод VD1 защищает транзистор от выбросов напряжения самоиндукции на обмотке реле. Через интегральный стабилизатор DA1 на микроконтроллер поступает напряжение питания (5 В), о его наличии сигнализирует светодиод HL1.

Таймер с запоминанием выдержки - схема

Светодиод HL2 во время отсчета выдержки мигает с частотой 1 Гц. О ее окончании и срабатывании реле сигнализирует включение светодиода HL3. С этого же момента частота вспышек светодиода HL2 увеличивается до 3 Гц. Чтобы повторить выдержку, достаточно выключить и вновь включить питание.

Чтобы задать или изменить выдержку, достаточно подать на прибор питание при нажатой кнопке SB1 и отпустить ее спустя нужное время. Максимальная продолжительность выдержки практически неограничена. Запомнив выдержку в энергонезависимой памяти, микроконтроллер будет повторять ее при каждом включении с ненажатой кнопкой.

Чтобы улучшить температурную стабильность выдержки, можно подключить между выв. 2 и 3 микроконтроллера  кварцевый  резонатор  на 4 МГц и заменить предпоследнюю строку таблицы кодов программы на:

:02400E00C911D6

Если для загрузки кода в микроконтроллер применяется программа IC-prog, изменения в таблицу можно не вносить. Достаточно указать в окне "Oscillator" тип тактового генератора "XT". Это нужно сделать после загрузки кода в буфер программатора, но до фактического выполнения операции программирования.

Автор: Прадифенко А.


Архив для статьи "Таймер с запоминанием выдержки"
Описание:
Размер файла: 3.05 KB Количество загрузок: 3 028 Download

Комментарии  
если кто собирал-подскажите-не работает-в чём трабла?заранее спасибо.
+1
Cхему собрал, все заработало с первого раза. Трудности могут быть только при программировании. А так устройство может быть полезно при отсчете небольших промежутков времени.
Собрал, все работает, еще бы алгоритм пересчета времени в HEX значение, можно на программаторе сразу нужное значение вписывать, а то как-то минут 5 набирать удерживая кнопку не есть хорошо,а так все супер, автору респект, побольше таких поделок, особенно на этом МК.
Почему не работает на PIC12F675? Подскажите кто знает,ведь должен работать МК 675 структура та же и возможностей больше.
Отличие только в АЦП, который есть в PIC12F675, но перекомпиллировать программу обязательно
+4
всем привет!)а есть у кого этой схемы печатная плата???если есть скиньте пожалуйста,буду очень благодарен!(
+1
[CODE name="derby"]Собрал, все работает, еще бы алгоритм пересчета времени в HEX значение, можно на программаторе сразу нужное значение вписывать
---------------------------------------
алгоритм пересчета найден, теперь любое значение времени, калькулируем и вписываем в еепром, применимо к большим интервалам времени.

Цитирую derby:

алгоритм пересчета найден, теперь любое значение времени, калькулируем и вписываем в еепром, применимо к большим интервалам времени.


А поподробнее можно...
+2
Всем привет. И так кому интересно как посчитать нужное значение времени. Сначала нужно перевести выбранный вами интервал в секунды т.е (1 год = 12614400 сек, или 1 месяц = 2592000 сек, или 24 часа = 86400 сек, и т.д) думаю с этим все справятся.
Далее если вы работали в калькуляторе windows в обычном виде, переключаем инженерный вид, в десятичной системе DEC вводим нужное количество секунд (посчитанных заранее на пример 1 минута = 60 сек) умножаем на 10 получаем число 600 теперь переводим это число в шестнадцатеричный вид HEX и получаем 258, это 02 58, теперь меняем байты местами 58 02 и вписываем в область EEPROM микроконтроллера по адресам 00h 01h 02h 03h это первые четыре байта первой строки, вот несколько примеров
15 sek = 96 00 00 00
1 m = 58 02 00 00
2 m = B0 04 00 00
3 M = 08 07 00 00
9 M = 18 15 00 00
10M = 70 17 00 00
1 Ч = A0 8C 00 00
ну вот как то так.
Подскажите пожайлуста каким компилятором Ви компилировали прошивку. Пробовал последнюю версию хайтеч и микро си, оба ругаются на некоторие команди в исходнике.
PIC C Compiler (CCS PCWHD )
-1
Надеюсь автор ещё заглядывает на страничку.Вопрос к автору, или кто может помочь. Очень нужно инвертировать работу таймера,желательно без внесения дол.элементов. Чтоб таймер при подаче питания включался и через заданное время отключался.
-1
а нельзя нагрузку включить на другую пару контактов реле?
Внимательно читайте мой вопрос. В предлагаемой схеме реле срабатывает только один раз при истечении времени, мне нужно чтоб реле сработало при включении питания таймера и отпустило при истечении установленного времени. Чтоб контакты переключались не один,а два раза.
Помогите с компиляцией на 12F675 .