Страница 1 из 1

Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Пн авг 04, 2014 12:31:52
Umkalab
Доброго времени суток коты! Появилась потребность соорудить сей девайс для целей развлекательных...

Итак, нужен таймер обратного отсчета на 4-х семисегментах и "сердцем" из МК. Желательно PIC (имею PICkit 2). Да и ATMEGA8 тоже подойдет.


Функции таймера.

При включении индикация говорит 00:00 (0 часов и 0 минут).
2 кнопки (+ и -) для часов, 2 кнопки (+ и -) для минут.
Кнопка Старт/Пауза и кнопка Сброс.
При остатке времени меньше минуты, каждую секунду до конца времени попикивает буззер (можно и не делать).
После того как таймер отсчитал время по нулям, на 2 секунды включается нагрузка и соответственно выключается.

http://radiokot.ru/forum/viewtopic.php?f=2&t=61757 эту тему смотрел, подходящего немного не нашел...

Схему подключения семисегментов можно взять такую

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Пт авг 08, 2014 18:18:09
Maykill
а на обычной КМОП логике уже не модно?
максимум 6 корпусов надо....по идее

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Сб авг 09, 2014 15:10:32
4elovek37
Umkalab а в чем, собственно, проблема? В написании программы? Схема простая, используется динамическая индикация (в прерывании по таймеру по очереди открываете транзисторы, а на порт выставляете значение соответстующего открываемому транзистору индикатора). Только на данной схеме контроллеру не хватает портов.
Считать время можно тоже таймером, с использованием пределителя (что бы меньшее количество раз перезаряжать). Вообще тут много вариантов реализации можно придумать.

Бомбу делаете? :)))

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Пн авг 11, 2014 09:31:17
Umkalab
Коты, привет! Нет, не бомбу. Просто таймер обратного отсчета. К нему будет сирена привязана небольшая, которая будет оповещать о конце игрового времени.

Как понять что не хватает портов?!?!?! Там вроде всего в достаток.

"Считать время можно тоже таймером, с использованием пределителя (что бы меньшее количество раз перезаряжать). Вообще тут много вариантов реализации можно придумать."

Это Вам так все просто... Я ещё зеленый немного...

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Пн авг 11, 2014 20:44:23
4elovek37
Пример динамической индикации наберите в поисковике, там много примеров.
По поводу подсчета времени.
Можно считать с помощью встроенного таймера. Более конкретно реализация зависит от выбранного МК, но в общих чертах выглядит следующим образом. В МК есть 16-битный(предпочтительнее) или 8-битный таймер. Он может тактироваться от системной частоты (той же, что тактирует МК). То есть, если абстрагироватся от реальности, допустим МК тактируется с частотой 1Гц, то регистр таймера будет без вашего участия инкрементироваться раз в секунду. Проблема в том, что наш МК тактируется куда большей частотой (к примеру 4МГц). Таймер будет заполнятся ооочень быстро, и мы замучаемся его перезаряжать. Для этого во многих МК сущеструет пределитель таймера, который делит системную тактовую частоту на x, и уже получившейся частотой тактирует таймер. С этим все просто. В тот момент когда таймер досчитает до максимума, МК попробует сгенерировать прерывание (если разрешено), это то нам и нужно. В прерывании мы уже знаем сколько времени прошло с момента пуска таймера (это подсчитывается), и решаем что делать дальше. Можно завести отдельную переменную, которая будет подсчитывать количество вызванных прерываний (переполнений таймера), тем самым можно считать куда большие промежутки времени. То есть, представим что таймер заполняется за 0.5 сек. А ждать нам надо 3 секунды. Заводим переменную, а так же условие: если переменная == 6, сделать действие. В прерывании каждый раз инкрементируем переменную и сбрасываем таймер.
Только возможна одна проблема - динамическая индикация работает по тому же принципу, но тут все зависит от типа МК. Некоторые обладают парой-тройкой таймеров, а так же могут отличать источники прерываний. С ними проблем возникнуть не должно. Как вариант - не париться и сделать статичискую индикацию с помощью регистров. Но тут на вкус и цвет.
Это Вам так все просто... Я ещё зеленый немного...
Дак я тоже, но у меня главная беда - электротехника. Вон с простейшей обзязкой на МК проблемы... :(

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Пн авг 11, 2014 21:23:24
Umkalab
Про регистры думал тоже сидел уже... 74HC164 и в бой. Можно даже на PIC16F84 забубенить все это. Сейчас сижу рисую печатку для PIC16F873 в SOIC корпусе. Никогда не думал что простой таймер окажется таким лесом темным...

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Пн авг 11, 2014 21:29:33
4elovek37
Никогда не думал что простой таймер окажется таким лесом темным...
Это я написал плохо, на самом деле все не очень сложно. Про тот же таймер смотрите в ДШ выбранного контроллера, там все кратко изложено

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Ср авг 13, 2014 18:05:09
BOB51
Насчет регистров и статики для таймера кухонного...
Энто "перебор" явно...
Схемка в принципе вполне работоспособна... желательно ток светиков мимо МК пустить и дополнительно с "высокой" стороны их подкормить - но на то всего лишь ULN2803 плюс 4 оптрона с транзюками добавить потребуется.
Насчет программы -
используется классика с внутренним генератором "опорной метки", генерируемой каким-либо из внутренних таймеров и серии регистров - счетчиков на окно позиции (с запросом статуса ЛВК), строку вывода (из 4-зх позиций) и масенькое окошко анализатора ЛВК и текущего статуса регистров таймера.
Все сие в бесконечном цикле. Анализ ЛВК раз за две строки даст необходимый антидребезг по кнопам.
Суммарная регенерация, включая анализатор примерно 62Гц.
:beer:

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Ср авг 13, 2014 18:20:27
Maykill
BOB51
как говорят- РЕСПЕКТ! в такой обстановке и не съехать до химерыча :))
удачи!

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Ср окт 22, 2014 03:23:01
eduardo
Ещё вот такой вот есть,если надо кому....

Re: Таймер обратного отсчета на 4-х семисегментах и МК

Добавлено: Ср окт 22, 2014 09:24:04
pyzhman
Не, никому уже не надо.