Таймер обратного отсчета на мк atmega8

Самодельный простой кухонный таймер, секундомер на МК Attiny 2313 с выбором мелодий

Кухонный таймер, секундомер | Часы, Будильники | Таймер

Обо всех преимуществах таймеров, в том числе и кухонных таймеров, секундомеров, можно не рассказывать, они ясны и так.

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

Один из вариантов таких самодельных таймеров собрал для жены, в помощь на кухне и для себя, чтобы не передержать и не перетравить печатные платы.

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

Также корректировке подверглась прошивка. Теперь, при промежуточных положениях энкодера, значения таймера не скачут в произвольных направлениях. За это отдельное спасибо пользователю «vasia_12». Он также описал механизм замены мелодии в прошивке таймера на ту, которая больше Вам нравится.

Инструкцию по замене мелодии таймера и сборник мелодий, можно скачать ЗДЕСЬ.

Касаемо принципиальной схемы таймера – ничего особенного и сложного нет. Микроконтроллер – Attiny 2313, индикатор с общим анодом. Транзистор можно заменить на любой другой маломощный npn транзистор.

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

Я же поставил аккумулятор от мобильного телефона, так как их у меня в избытке, да и в монтаже, в данном случае, он удобней.

В качестве корпуса я использовал старую оптическую мышь, оттуда взял энкодер и кнопку. Точнее выпаял с платы все детали, кроме них, ненужную часть платы – отрезал.

Управляется таймер очень просто. При кратковременном нажатии на колесико он включается и выключается. Время выбирается, прокруткой колесика, в диапазоне от 1 до 99 минут. В процессе отсчета времени издается звуковой сигнал, напоминающий быстрое тиканье часов, по завершению – мелодия, и затем – сигнал, звучащий пока таймер не отключат.

При длительном нажатии на колесико – можно выбрать 3 команды, при этом, на экране отобразится «OF», «PE», «CE».

«OF» – выключит таймер, «РЕ» – начнет отсчет времени со значения, которое было задано в последний раз, «СЕ» – секундомер, но, если сказать точнее, «минутомер» – просто показывает количество минут, которое прошло после запуска этой команды.

Прошивку на самодельный таймер-секундомер можно скачать ЗДЕСЬ. При прошивке нужно выставить следующие фьюзы: CKDIV8, SUT1, CKSEL0, CKSEL1.

Кстати, есть очень удобная дополнительная функция. 19я нога Attiny 2313 может управлять реле (размыкателем), т.е. по окончанию таймером отсчета времени будет звучать звуковой сигнал и отключится какое-то устройство, включенное через реле, например, мультиварка. Чтобы звук не мешал (иногда это важно), а размыкатель сработал, просто добавьте выключатель перед динамиком.

Страницы:

Необходимо авторизоваться, чтобы комментировать.

Источник: http://best-chart.ru/samodelnye-elektronnye-chasy-budilniki/samodelnyj-prostoj-kuxonnyj-tajmer-sekundomer-na-mk-attiny-2313-s-vyborom-melodij.html

Трехканальный термостат, терморегулятор, таймер на ATmega8

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»

Описание и характеристики двухканального термометра, термостата (терморегулятора), одноканального таймера реального времени
на ATmega8 и DS18B20

Так-как данная конструкция «вышла» из предыдущей — «Двухканальный термометр, термостат, терморегулятор», и подробно описана (все характеристики термометров и термостатов, режимы работы, реакция на ошибки — остались без изменений), я остановлюсь только на нововведении — таймере реального времени.

Таймер реального времени

В конструкцию введен таймер реального времени, который позволяет управлять своей, третьей нагрузкой, в режиме реального времени в течении 24 часов и позволяет в течении суток задать два временных интервала управления нагрузкой.

Также таймер позволяет задать в течении суток для каждого канала термостатирования (терморегулирования) по одному временному интервалу управления нагрузками.
Что я подразумеваю под таймером реального времени. По сути, это внутренние часы с дискретностью 10 минут.

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

Дискретность отсчета временных интервалов 10 минут принята по двум причинам: — удобство вывода информации на трехразрядном индикаторе, к примеру 22 часа 40 минут — 22,4

— управление нагрузкой с точностью до 10 минут вполне достаточна для большинства задач (реально точность составляет 5 минут — если вам надо включить нагрузку в 7 часов 35 минут, то можно установить или 7,4 или 7,3)

Введение таймера немного изменило алгоритм работы с устройством (об алгоритме работы я расскажу ниже). Теперь нажатием кнопки «Выбор» можно попасть в два меню: — меню установки пределов температур работы термостатов и временных интервалов работы термостатов, временных интервалов управления нагрузкой по таймеру — меню коррекции хода часов и установки текущего времени.

Так как МК работает от внутреннего RC-генератора (8 МГц), который не отличается стабильностью и зависит как от температуры МК, так и питающего напряжения, функция коррекции хода часов позволяет подстроить точность хода для конкретных условий.

А функция установки текущего времени позволяет установить текущее реальное время при первоначальной настройке или уточнять его при сильном отличии от реального времени.

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

Управление нагрузками по таймеру не осуществляется (выключено), если время включения и выключения установлены в ноль. В принципе, управление нагрузками по таймеру не осуществляется при равенстве времени включения и выключения.

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

Схема трехканального термометра, термостата, таймера на ATmega8

Схема устройства создана в программе «Cadsoft Eagle» и в принципе не отличается от схемы двухканального термостата (добавлен третий канал управления нагрузкой и изменены, для разнообразия, схемы управления нагрузками):
Так-как в схеме применены «выводные» детали, то для удобства размещения конструкции в подходящем корпусе схема разделена на две части: — Блок индикации — индикаторы и кнопки — Блок управления — все остальное

Надо было бы вывести в блок индикации и светодиоды, которые сигнализируют о включенных каналах, но это можно сделать и самостоятельно при разводке платы (добавить три пары контактных площадок для светодиодов и соединить их с блоком управления проводами).

Конструкция устройства

Основа устройства — микроконтроллер ATmega8 с тактовой частотой 8 МГц от встроенного генератора с внутренней RC-цепочкой.

Для подстройки частоты внутреннего генератора необходимо при программирование МК записать в EEPROM-память по нулевому адресу значение калибровочной ячейки для тактовой частоты 8 МГц.

В выложенном ниже НЕХ-файле EEPROM-памяти по умолчанию записано число $В1 (В1) — среднее значение калибровочных ячеек 5 проверенных микроконтроллеров.

Кроме того, для правильной работы таймера реального времени, а работает он по прерываниям от таймера/счетчика Т1 при равенстве счетного регистра и регистра сравнения OCR1A, при программировании EEPROM-памяти следом за значением калибровочной ячейки записывается число 33050 (1А81) которое программным путем заносится в регистр сравнения OCR1A. При коррекции хода таймера меняется и значение этого числа.

Индикация текущих температур и значений в режиме установки осуществляется на два трехразрядных семисегментных индикатора с схемой включения «общий катод».

Датчики DS18B20 подсоединяются к устройству через 3-х контактные штыревые линейки DS1 и DS2, нумерация выводов которых соответствует нумерации выводов датчиков.

Управление разрядами осуществляется маломощными биполярными транзисторами NPN-типа.

Вход в меню, установка значений, запуск режимов однократного нагрева (охлаждения) осуществляется тремя тактовыми кнопками типа DTS: — S1 — «Выбор» — S2 — » + »

— S3 — » — »

Схемы управления нагрузками: — для каналов термостатирования — через оптосимисторы МОС3063 и симисторы ВТ139-800Е по стандартной схеме включения, что позволяет управлять нагрузками мощностью до 3,5 кВт (если мощность нагрузки более 300-400 Вт — симисторы необходимо ставить на радиаторы)

— для канала от таймера — через миниатюрное механическое реле с напряжением питания катушки 5 Вольт, что позволяет, в зависимости от примененного реле, управлять нагрузкой до 2 — 2,5 кВт

Обращаю ваше внимание на подключение сетевого напряжения 220 вольт к устройству и включение нагрузки — подключать надо как на схеме, с учетом «фазы» и «нуля» сетевого напряжения.

Питание устройства осуществляется от любого источника постоянного тока напряжением 7-25 Вольт. Схему можно запитать и от ненужного зарядного устройства от сотового телефона с выходным напряжением 5 +-0,5 Вольт. В этом случае можно из схемы исключить стабилизатор 7805 и конденсаторы С4, С5. Средний ток потребления устройством 40 миллиампер.

При необходимости организации резервного питания (для бесперебойной работы таймера) можно применить, к примеру, такую схему:

Детали, примененные в конструкции:

Управление трехканальным термометром, термостатом, терморегулятором, таймером

1. Вход в меню

В устройстве имеется два меню.

При «коротком» нажатии на кнопку «Выбор» на индикаторах высвечивается надпись «ON—-OFF», входим в меню: — установки пределов температур работы термостатов и временных интервалов работы термостатов, временных интервалов управления нагрузкой по таймеру При «длинном» нажатии кнопки «Выбор» надпись «ON—-OFF» сменяется надписью «Cor—-USt», при этом надо отпустить кнопку, входим в меню:

— коррекции хода часов и установки текущего времени

Обращаю внимание, что при входе в меню (длинное или короткое нажатие кнопки «Выбор») все каналы управления нагрузками отключаются.

2. Меню «Коррекции хода и установки текущего времени» (длинное нажатие кнопки «Выбор»)

После входа в меню сразу попадаем в режим коррекции хода часов:
«Cor—-00» Повторным нажатием кнопки «Выбор» переходим в режим установки текущего времени:

«USt—-00.0»

В режиме установки текущего времени смотрим на свои самые точные часы и кнопками «+» и «-»  устанавливаем ближайшее время с точностью до 10 минут. К примеру — текущее время 20 часов 37 минут, устанавливаем на индикаторе «20,4» (20 часов 40 минут) и ровно в 20.40, нажатием кнопки «Выбор» выходим из меню.

Все, реальное время выставлено, часы запущены. Корректировать ход часов можно от +50 единиц до -50 единиц. Первоначальное значение «00» («00» появляется всегда при входе в этот режим) При изменении установки на единицу ход часов увеличивается (+1) или уменьшается (-1) примерно на 4 секунды за 24 часа.

Точность хода часов можно проверить на канале управления нагрузкой по таймеру без подключенной нагрузки по зажиганию светодиода.

К примеру, в 21.00 мы установили текущее время, задали включение нагрузки — 8.50, выключение — 9.00. Утром замерили время выключения нагрузки.

Допустим нагрузка отключилась в 8 часов 59 минут 20 секунд. Значит таймер отстал на 40 секунд за 12 часов. За 24 часа отставание составит уже 80 секунд. 80 секунд делим на 4 = 20.

В режиме коррекции устанавливаем показание 20, затем переходим в режим установки текущего времени, устанавливаем ближайшее текущее время, например 9.1, и в 9 часов 10 минут, нажатием кнопки «Выбор» выходим в рабочий режим.

Обращаю внимание, что при отсутствии резервного источника питания, при «пропадании» сетевого напряжения часы обнуляются и текущее время необходимо устанавливать заново.

3. Меню установки температурных и временных интервалов для термостатов

Напомню режимы работы каналов термостатирования (терморегулирования):
— режим термостатирования — поддержание определенной температуры
— режим терморегулирования — поддержание температуры в определенных границах
— режим однократного нагрева (охлаждения)
Все эти режимы подробно описаны в статье «Двухканальный термостат/терморегулятор», там же приведены подробные инструкции и возможности каждого режима. С введением в конструкцию таймера реального времени появилась возможность для каждого канала задавать в течении суток один временной интервал работы канала. Для этого в меню введены дополнительные строчки времени включения и выключения каналов. К примеру, нам надо чтобы 1-й канала термостатирования работал только в ночное время с 23.00 до 6.30. Для этого в 1-м меню (короткое нажатие кнопки «Выбор»): — после установки верхнего и нижнего температурного предела появятся еще две строчки: «t.On——00,0» и «t.OF——00,0» (тоже самое будет и для второго канала) — кнопками «+» и «-» устанавливаем: «t.On——23,0» и «t.OF——06,3» Теперь, в 23.00 1-й канал начнет работать в заданном режиме, а 6.30 канал будет отключен, и так каждые сутки. По режиму однократного нагрева/охлаждения. Если временной интервал не выбран (время включения/выключения установлены в «0»), то запуск этих режимов осуществляется в ручном режиме, нажатием соответствующей кнопки. Этот режим может работать и по времени. Допустим нам надо на 2-м канале термостатирования с утра, к 7.00, нагреть воду в баке до 45 градусов, учитывая, что вода в баке до этой температуры нагревается за 25 минут: — устанавливаем «2.On——00» и «2.OF——45» — устанавливаем «t.On——06,3» а «t.OF» оставляем по умолчанию «t.OF——00,0» Теперь, 2-канал автоматически запуститься в 6.30 минут, и по достижению температуры воды 45 градусов отключится.

При использовании режима однократного нагрева/охлаждения совместно с таймером сохраняется возможность и ручного запуска режима, но при этом следует учитывать, что в промежуток времени «t.OF—-t.

On» (для предыдущего примера — с 24.00 до 6.30) ручной режим невозможен. Поэтому, для того, чтобы в любой момент времени запустить режим вручную, необходимо «t.OF» устанавливать на 10 минут меньше чем «t.

On».

4. Меню установки временных интервалов для таймера

Таймер реального времени позволяет задать два временных интервала в течении суток для управления нагрузкой по таймеру.
Для этого в меню введены дополнительно четыре строчки:
— t1.1 — время включения для первого временного интервала
— t1.0 — время выключения для первого временного интервала
— t2.

1 — время включения для второго временного интервала
— t2.0 — время выключения для второго временного интервала Временные интервалы не должны пересекаться. Допустим, нам необходимо включать освещение во дворе два раза в сутки: с 21.00 до 0.30 и с 5.30 до 7.00 Устанавливаем: — t1.1 — 21,0 — t1.0 — 00,3 — t2.1 — 05,3 — t2.

0 — 07,0

Теперь нагрузка по таймеру будет включена в 21.00 и в 5.30, и выключена в 0.30 и в 7.00

Печатная плата конструкции (автор Роман):

Второй вариант печатной платы:

Вариант установки FUSE битов:

  Файл программы в НЕХ коде (22,2 KiB, 687 hits)

  НЕХ-код для записи в ЕЕPROM (169 bytes, 1 305 hits)

  Схема конструкции в “Cadsoft Eagle” (886,7 KiB, 1 167 hits)

  Печатная плата термостата-таймера в SpintLayout (367,4 KiB, 1 726 hits)

  Программа в Algorithm Builder (61,9 KiB, 184 126 hits)

  Второй вариант печатной платы в формате lay6 (186,9 KiB, 628 hits)

Скачать программу с ЯндексДиска

Все необходимы радиодетали для сборки этой конструкции, а также запрограммированный микроконтроллер ATmega8-16PU, вы можете заказать в интернет-магазине сайта «МирМК-SHOP»

Другие конструкции на микроконтроллерах:
1. Простые электронные часы на микроконтроллере ATyni26, с использование микросхемы часов реального времени DS1307
2. Простой термометр на микроконтроллере ATmega8 и датчика температуры DS18B20
3.

Двухканальный термометр на микроконтроллере ATmega8 и датчиках температуры DS18B20
4. Двухканальный термостат, терморегулятор на ATmega8 и датчиках DS18B20
5. Двухканальный термометр, термостат, терморегулятор с возможностью работы по времени, одноканальный таймер реального времени на ATmega8 и датчиках DS18B20
6.

Двухканальный термометр, часы на ATmega8, датчиках температуры DS18B20, RTC DS1307, LCD 1602

Источник: https://microkontroller.ru/shemyi-konstruktsii-na-mikrokontrollerah/trehkanalnyiy-termostat-termoregulyator-taymer-na-atmega8/

ТВ-таймер обратного отсчета на микроконтроллере AVR

Однажды один мой друг спросил, на чем бы я сделал таймер обратного отсчета, чтобы на телевизоре показывал большие цифры. Понятно, что можно подключить ноутбук / iPad / Android и написать приложение, только ноутбук — громоздко, а написанием мобильных приложений ни друг, ни я никогда не занимались.

И тут я вспомнил, что видел в сети проекты тв-терминалов на микроконтроллере AVR. В голове сразу появилась идея объединить маленькие символы в большие и мы решили попробовать. Как-то само собой получилось, что основную работу пришлось делать мне.

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

Основным критерием поиска стала, в первую очередь, простота, по возможности, использование языка С без ассемблерных вставок, высокое качество изображения.

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

Но на данном этапе безусловным фаворитом стал проект Максима Ибрагимова «Простой VGA/видео адаптер», он и лег в основу моей поделки.

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

Дополнительной задачей, которую я практически сам себе придумал, стало задание начального времени с ИК-пульта.

В качестве основного контроллера я решил использовать ATMega168, работающий на 20МГц. Аппаратная часть формирователя видеосигнала выглядит так:

Начал я с того, что выкинул из проекта все, что касается VGA, так как его делать не планировал. Попутно изучал стандарты кодирования видеосигнала, наиболее доступной мне показалась картинка с сайта Мартина Хиннера:

.

По этой картинке делал генератор сигнала синхронизации.

В основе генератора — Timer1 в режиме fastPWM. Дополнительно глобальной переменной организован счетчик синхроимпульсов.

По каждому прерыванию переполнения таймера происходит проверка номера синхроимпульса на ключевое значение, изменение длительности следующего синхроимпульса и период следующего синхроимпульса (полная строка / половина строки).

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

#define// 2. System definitions #define Timer_WholeLine F_CPU/15625 //One PAL line 64us
#define Timer_HalfLine Timer_WholeLine/2 //Half PAL line = 32us
#define Timer_ShortSync Timer_WholeLine/32 //2us
#define Timer_LongSync Timer_ShortSync*15 //30us
#define Timer_NormalSync Timer_WholeLine/16 //4us
#define Timer_blank Timer_WholeLine/8 //8us //Global definitions for render PAL #define PAL_FPS 50 #define pal_first_visible_line1 40
#define pal_last_visible_line1 290 //pal_first_visible_line1+pal_row_count*pal_symbol_height #define horiz_shift_delay 15
Инициализация таймера (фрагмент функции)// Initialize Sync for PAL
synccount = 1; VIDEO_DDR |= (1

Источник: http://www.pvsm.ru/avr/121581

Таймер обратного отсчета на МК ATmega8

Таймер обратного отсчёта поможет вам точно отмерять интервал времени в диапазоне от 1 секунды до 24 часов.

Сегодня никого не удивишь конструкцией таймера, т.к. в продаже и в интернете подобных устройств, сколько угодно. И все таймеры вроде бы похожи друг на друга. И когда более подробно начинаешь рассматривать функции схемы, находишь в ней  какие либо неудобства для себя.

Вот из этих соображений я и сделал программу таймера, который отвечает следующим параметрам: – компактная конструкция и простая схемотехника; – оперативное кнопочное управление; – при управлении кнопками, дублирование действий на ЖКИ; – задание времени с точностью до секунды; – диапазон отсчета от 1 секунды до 24 часов; – функция  старт, пауза; – функция сброса отсчета и выставленных значений времени;  

– при достижении значения 00.00.00, включается исполнительное устройство;

Все поставленные задачи были реализованы в этом  проекте.

Описание режимов работы таймера

После включения таймера, можно выставлять время, которое нам требуется. Назначение кнопок видно на схеме. После установки, нажимаете кнопку  СТАРТ-пауза  отсчет начинается. Максимальное выставляемое время 23.59.59.

Коррекция времени отсчета может быть произведена в любой момент работы таймера, после подачи питания на схему.

Как только время достигает 00.00.00, – включается светодиод  (в данный момент это имитация включения исполнительного устройства или просто можно пищалку с генератором).

Если при его работе таймера нажать кнопку старт-ПАУЗА, таймер остановит отсчет, двойное нажатие кнопки СТАРТ-пауза приводит к возобновлению остановленного отсчета.

Чтобы выключить нагрузку после включения, нужно нажать СБРОС, данные таймера установятся 00.00.01 – нагрузка выключиться. Или выставить новый период отсчета и двойное нажатие кнопки СТАРТ-пауза.

Отображение на ЖКИ символов означает, что нагрузка отключена (PD3) и при однократном нажатии кнопки СТАРТ начнется обратный отсчет установленного времени.

Кварц внешний 8 MHz, для точности счета.

FUSE

Для программатора в PonyProg и CodeVisionAVR нужно убрать все галочки с настройки тактового генератора.

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

Внимание! Что касается FUSE-битов. Это основной источник ошибок, приводящих к залочиванию контроллера.
– CKSEL3…0 должны быть НЕзапрограммированы.

В PonyProg и CodeVisionAVR стоят так:

ЖК должен быть на  базе контроллера HD44780

16х1, для него в архиве имеется прошивка V-1

или  8х2, в архиве прошивка V-2.

Работу схемы можно протестировать в proteus'е.

Если при симуляции проекта в proteus'е некорректно отображаются символы кириллицы  на ЖКИ, то для правильного отображения кириллицы на ЖК индикаторе распаковать библиотеку  LCDrus.zip (приложена в архиве проекта) в папку models proteus'а.

Скачать архив проекта: прошивка, фьюзы, proteus вы можете ниже

C@at (http://c2.at.ua)

Список радиоэлементов

Скачать список элементов (PDF)

Прикрепленные файлы:

  • Taimer_V1_V2.rar (110 Кб)

Источник: http://cxem.gq/mc/mc80.php

Урок 5. Использование таймера в AVR микроконтроллерах

Прежде чем приступить к изучению таймера определимся с базовым понятием «частота». Простым языком, это количество повторений, в секунду. Это значит, что если вы за секунду хлопнете в ладошки 2 раза, то частота хлопков будет равна 2Гц. Если за 3 раза, значит 3Гц.

Каждый микроконтроллер работает на определенной частоте. Большинство инструкций выполняется за один такт, поэтому чем выше частота, тем быстрее работает микроконтроллер.

Если нет источника тактирования, соответственно ничего работать не будет. На случай отсутствия внешнего источника тактирования, в большинстве микроконтроллеров имеется свой внутренний генератор.

Обычно на него «с завода» настроены.

Частота внутреннего источника может изменяться («плавать») из за температуры и т.п., поэтому считается непригодным для серьезных проектов, а у нас ведь именно такие

Источник: http://avr-start.ru/?p=414

Таймер обратного отсчета на ретро-процессоре AT89C2051

Внезапно понадобился таймер, для включения на короткое время УФ лампы. Под рукой как раз оказался AT89C2051 после экспериментов с термометром. В результате получился вот такой таймер:

Принципиальная схема

Таймер умеет считать назад до нуля. Начальное время выставляется от 1 минуты до 99 часов 59 минут. Есть звуковая индикация окончания обратного отсчета. По окончании отсчета нагрузка включается или, наоборот, отключается в зависимости от режима, выбранного при начальной установке.

Таймер очень удобно использовать при засветке ультрафиолетом плат с фоторезистом. Или, например, обеззараживании помещений УФ лампой.

Еще один планируемый вариант использования – включение стиральной машины ночью, когда электричество более дешёвое. В этом случае, симистор надо ставить на радиатор или заменять выходную цепь на мощное реле.

Принципиальная схема в формате Splan7: (доступно зарегистрированным пользователям)

Печатная плата

Печатная плата изготовлена по лазерно-утюжной технологии.

Печатная плата таймера обратного отсчета на AT89C2051

Печатная плата в формате Sprint Layout: (доступно зарегистрированным пользователям)

Прошивка “A”

Прошивка с установкой часов-минут. Версия A-1.0: (доступно зарегистрированным пользователям)

Прошивка “B”

Прошивка с установкой часов-минут-секунд. Версия B-1.1: (доступно зарегистрированным пользователям)

Прошивка “B” проверена только в протеусе, требуется проверка в железе!

Файл для Протеуса

По просьбам трудящихся:

DSN файл для протеуса для проверки работоспособности прошивки: (доступно зарегистрированным пользователям)

Коллега mcm777 пишет в комментариях, что успешно повторил конструкцию, заменив микроконтроллер AT89C2051 на AT89C51.

Я продублирую тут его замечания по адаптации схемы под AT89C51:

Программируются они по разному, C51 нужно указывать адрес, а C2051 содержит счетчик адреса….

По подключению – индикатор нужно подключать к тем же портам, но у C51 они выдают меньший ток (около 10mA). При использовании современных китайских индикаторов яркость получается достаточной, резисторы R6-R13 можно увеличить до 1кОм чтоб не перегружать порты.

Вывод 31(EA – переключает с внешней памяти программ на внутреннюю) необходимо подтянуть резистором 4,7-10 кОм к +5 Вольт (40 нога C51). 20 нога – общий.

Выводы AT89C51 (DIP-40):

  • 40 – +5В;
  • 20 – Общий;
  • 31 – EA (подтянуть резистором 4,7-10 кОм к +5В);
  • 9 – Reset (аналогично как C2051);
  • 18,19 – кварц;
  • 10,11 – P3.0, P3.1 (кнопки);
  • 12 – P3.2 (на R4);
  • 13 – P3.3 (на Horn1);
  • 1 – P1.0 (Ind – 10);
  • 2 – P1.1 (Ind – 5);
  • 3 – P1.2 (Ind – 11);
  • 4 – P1.3 (Ind – 7);
  • 5 – P1.4 (Ind – 4);
  • 6 – P1.5 (Ind – 2);
  • 7 – P1.6 (Ind – 1);
  • 8 – P1.7 (Ind – 3);
  • 14 – P3.4 (Ind – 12);
  • 15 – P3.5 (Ind – 9);
  • 17 – P3.7 (Ind – 8);

У индикаторов 6-й вывод может отсутствовать, но он как бы есть)) т.е. посчитан..

Источник: https://www.linker.ru/article/taymer-obratnogo-otscheta-na-retro-processore-at89c2051.htm

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}