Часы на ATmega8

Часы на ATmega8.

  • 10 будильников на каждый день недели.
  • Отсрочка сигнала, если будильник не отключить, срабатывает примерно через 5 мин.
  • Два будильника на отдельную ножку мк, вкл\откл нагрузки.
  • Два датчика температуры DS18B20 (дома и на улице).
  • Выбор отображения температуры (гашение не значащего нуля).
  • Таймер 99 часов.
  • Яркость индикатора настраивается для дневного и ночного времени.
  • Изменяемый параметр плавно меняет яркость.
  • При пропадании 220 вольт потребление от батарей меньше 40 микроампер.
  • Будильник срабатывает при любом режиме питания.
  • Часы могут показывать до 8 режимов.
  • В схеме можно использовать индикаторы с общим анодом или катодом.

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

Форматы отображения.
0 25,7 18-24

Число, День недели, Часы-минуты.

1 18-24-01

Часы-минуты-секунды.

2 17-25

Часы-минуты.

3 10-05 CP

Часы-минуты, День недели.

4 24_03_ПН

Число_месяц_день недели.

5 31.12.2008

Число месяц год.

6 27.07.08 ПН

Число месяц год день недели.

7  25° -15.°

Температура 1 датчик, Температура 2 датчик.

8 d 23.4 °C

Температура 1 датчик (датчик дома).

9 У -15.7 °C

Температура 2 датчик (датчик на улице).

A  25°12-00

Температура 1 датчик, Часы-минуты.

b -15.°12-00

Температура 2 датчик, Часы-минуты.

C  23.2°-15.7

Температура 1 датчик, Температура 2 датчик.

d  23.2 -15.7

Температура 1 датчик, Температура 2 датчик.

E 4 31.12.2008г.

День недели число месяц год.

F 31.12.2008г.

Число месяц год.

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


Кнопка F — выход из режима. Выбор 3 основных режимов.
Кнопка SET — вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).
Кнопка PLUS — плюс/on. В режиме SETUP листать главные меню.
Кнопка MINUS — минус/__(off). В режиме SETUP листать главные меню.

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

Режим 0
нажать F
SET — вход в режим будильников.
F
SET — вход в режим таймера.
F
SET — вход в режим настроек.
F
Режим 0

Режим CALLS

on/__-будильник вкл/откл.
Дни недели, в которые сработает будильник (здесь в 6 и 7 день будильник выключен).
Будильники для управления нагрузкой.
Будильники A B вкл/откл. вывод call a_h мк. С его помощью вывод call a_h можно устанавливать до 23 часов 59 минут.
Устанавливается время, часы-минуты, на которое включится вывод call a_h. Затем идет установка дней.

Режим SETUP.
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT    ->SET-> L.ooooo  ->SET-> НО4Ь L.2  ->SET->    LIGHT .

Главные меню режима SETUP.
PORT PLUS MINUS листать основные режимы меню SETUP.
SET — вход в выбранный режим, далее переход к следующему параметру.
Что бы выйти из выбранного режима нажать F.
ЧАСЫ
УSt SEE
УSt БУД
SIGNAL
LIGHT
DS18B20
СБРОС НАС.

Режим PORT.

Port Установить/сбросить ножку будильника A..H. call a_h.

Режим часы.

Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль. Если секунд было больше 31, то минуты инкрементируются.
Далее идет установка минут и часов.
Устанавливаются:
число, месяц, год и день недели.
Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0.008 секунды. (50 значений), максимальное значение 0.391. Пример расчета: при коррекции равной нулю измеряется уход часов, например за 5 дней часы убежали на 3 секунды, тогда коррекция ровна 3/(5*24)=0.025.

Режим Уст SEE.

В нулевом режиме часы показывают попеременно до 8 режимов, для которых выбирается один из десяти форматов отображения и время его показа (верхняя таблица).
1 выбор режима.
r5 выбор одного из пятнадцати форматов отображения.
с03 время в секундах, которое будет виден выбранный режим.
n0 сколько раз пропускать (не показывать) режим. Пример:
1 r0 c03n0
2 r5 c03n0
3 r4 c02n1
r0; r5; r4; r0; r5; r4; r0; r5; r4; r0; r5; r4;..
r4; — виден, r4; — пропущен.
При времени равном 00 режим выключен.

Режим УSt Буd. Установки будильника.

Bip сигнал будильника — ШИМ.
Pin сигнал будильника — уст в 1 вывод буд.
Oba Шим и вывод.
Отсрочка сигнала.
Задаётся число отсрочек сигнала.
При откл. отсрочке (00) будильник выключается нажатием любой клавиши.
При вкл. отсрочке сигнала будильник откл. кнопкой F, при нажатии кнопок SET PLUS MINUS сигнал отключается, но опять сработает примерно через 5 минут.
При активной отсрочке сигнала, в нулевом режиме, мигает точка последнего разряда.
Отключение отсрочки (при отсутствии сигнала). В режиме 0, нажатие SET вкл. этот режим. Наличие активной отсрочки индуцирует символ о на 4 знакоместе. Нажатие PLUS MINUS выключает отсрочку.

Режим DS18B20.

Датчики температуры DS18B20.
Режим показывает, как определилось подключение датчиков, и настраивает датчики на разрешение 12 бит.
Выбор отображения температуры.
1 — 07.5
2 —   7.5 гашение нуля.
on — датчик подключен 3 проводами;
PA.- паразитное питание, датчик подключен 2 проводами;
— — датчик отсутствует.
При выходе из этого режима датчики настраиваются на разрешение 12 бит.

Режим Light.

Настраивается яркость для дневного времени.
Для ночи.
Ночное время.

Режим Сигнал.

SIGNAL после входа в режим кнопками плюс/минус выбирается:
budil. S или button. S
соответственно частота ШИМ для будильника и кнопок.
При входе в эти подрежимы на индикаторе:
H004.L000.
Частота генерируется в режиме быстрой шим(CTC mode). Верхний порог задается регистром OCR1A1. H004-старший байт L000-младший байт.
Что бы отключить сигнал от нажатия кнопок — установить H000 L000.
Если в режиме УSt Буd.выбрана опция PIN, для будильника шим сигнал выводится не будет.

Режим Сброс настроек.

По нажатию SET: Установка по умолчанию основных переменных в программе, обнуление всех будильников. Запись этих значений в EEPROM.

Действия в нулевом режиме.

F — выбор режима.
SET — режим отмены отсрочки сигнала
PLUS — режим Уст SEE.
MINUS — установка будильников.


Каждый час, на одну секунду, устанавливается вывод PB2(16).

Для экономии, в режиме питания от батарей запрещается отсрочка сигнала. Так же останавливается работа таймера.


схема

Из схемы можно исключить конденсаторы к кварцу, если запрограммировать fuse бит CKOPT.

Датчик температуры можно подключить двумя проводами, для этого нужно замкнуть GND c VDD, при этом датчик переключится в режим паразитного питания. Такой способ удобно применять для датчика, который расположен на улице. При таком подключении нужен резистор 100 ом для защиты порта, на схеме указан. По программе перед каждым циклом чтения температуры выполняется проверка на замыкание и на присутствие датчика. При любом криминале вывод мк. переводится в Z состояние, на индикаторе: —.

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


Монтажная плата В этой монтажке не установлены транзисторы на вывод таймера и будильника A..H.
Монтажная плата разрабатывалась под корпус телефонной приставки калибри.


Посмотреть фотографии.


При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ). посмотреть для PonyProg. Cбросить основные переменные в программе — SETUP -> СБРОС НАС. -> SET.


Исходник WinAVR-20060421.
Прошивки (анод/катод).
Схема в splan5.
монтажки.

Исходник WinAVR-20060421. Прошивки анод, катод и прошивка для схемы с большими индикаторами. C автоматическим переходом на летние зимние время.
Без перехода на летние зимние время.
Схема для больших индикаторов. Прислал Алексей.

5 комментариев

  1. здравствуйте, а можно схему по точнее?

  2. Здравствуйте. В схеме ошибок нет! Я её делал, только не с таймером а с термостатом.
    http://startcd.narod.ru/clock/cl_termo.html Работает уже пол года. Очень доволен. Если надо печатки могу выслать на мыло.

  3. Подскажите а куда идет 16 нога в атмеге? Потом не совсем понял как подключить выводы микросхемы 74hc 595 .вобщем у меня на запуске цифры мигают даже без установленного кварца что-то я не совсем понимаю. И программировать ли сторожевой таймер или нет. Кто может объяснить как-то?

  4. Здравствуйте!Кто может помочь?Собрал на макетке часы,но чтото не разберусь,всё мигает,хотя и видно что прошивка рабочая(есть переключения по режимам),хотя очень трудно орентирватся при таком мерцании.Может даже на время остановится мерцание,если поднести руку или както стать ближе к ним.Отключения питания буферной микросхемы даже не выключает сегментов.Выдёргиваю кварц,всё равно идёт счёт.У меня такое первый раз на практике,что это? может кто сталкивался?