Прост часовник на AVR микроконтролер

  • Алекс на HF приемник наблюдател
  • Volfff на нискочестотния усилвател на чипа TDA7384
  • Lightman за цветна музика: Направи си сам LED светлинна музика
  • IGOR on Петканална LED цветомузика
  • Павел на фоторелето за автоматично включване на осветлението

микроконтролер

Радиокомпоненти - по пощата

Схема и програма на много прост часовник на AVR микроконтролер, използващ чип за реално време DS1307

Добър ден скъпи радиолюбители! Добре дошли в сайта “Радиолюбител”

Днес, скъпи радиолюбители, вашето внимание е поканено на много простасхема на часовник на микроконтролера AVR ичасовник в реално време със сериен I2C интерфейс DS1307.

Дизайнът е сглобен на микроконтролера ATyni26 (точно този MK беше под ръка). Но можете да използвате всеки друг MK, основното е, че има 13 безплатни входа - 11 за извеждане на текущото време към четирицифрен седемсегментен LED индикатор и 2 изхода към бутоните за настройка и корекция на времето.

DS1307

Програмна работа. Тактовата честота на микроконтролера е 1 MHz (фабрична настройка, битовете FUSE не трябва да се докосват или настройват). Размерът на програмата е 1 килобайт. Когато програмата стартира: - стартиране на таймера T0 с предварително зададена честота CK/8 и задейства прекъсване при препълване (с такава предварително зададена честота, прекъсване се извиква на всеки 2 милисекунди) - инициализация на портове (портове PA0-6 и PB0-3 са конфигурирани за изход, PA7 и PB6 за вход) - инициализация на I2C шината (пинове PB4 и PB5 ) - при първо стартиране или рестартиране при липса на резервно захранване към DS307 се проверяват 7 бита (CH) от нуларегистър DS1307 и има преход към първоначалната настройка на текущото време. В този случай бутонът S1 - за задаване на времето, бутонът S2 - преход към следващата категория. Задайте време - часовете и минутите се записват в DS1307 (секунди са настроени на нула), а щифтът SQW / OUT (7-ми щифт) е конфигуриран да генерира правоъгълни импулси с честота 1 Hz - глобалното прекъсване е активирано - програмата влиза в цикъл с запитване на бутона S2 Когато броячът на таймера T0 препълни, програмата преминава към прекъсване на услугата (на всеки 2 ms): - чете текущото време от DS1307, което се записва в четири SRAM променливи (десетки часове, единици часове, десетки минути, единици минути) - подпрограмата за извеждане на текущото време динамично показва текущото време на LED индикатора - при натискане на бутона S2 програмата деактивира глобалното прекъсване и преминава в подпрограмата за корекция на времето (десетки и единици минути се задават с бутоните S1 и S2, след това, от 0 секунди, чрез натискане на бутона S2, актуализираното време се записва в DS1307, разрешава глобалното прекъсване и се връща към основната програма).

Часовникът DS1307, използван във веригата, ви позволява да показвате секунди, минути, часове, ден от седмицата, дата и година. Ако използвате LCD дисплей вместо LED индикатори във веригата, например WH0802 (двуредов, с осем знака на ред) или подобен, тогава можете да организирате пълноценен часовник с пълно показване на текущото време и да организирате захранването на устройството от галванични клетки или батерии.

Разпределение на микроконтролера ATyni26:

прост

Назначаване на щифтове DS1307:

прост

Типична схема на свързване D1307:

прост

Препоръчителна схемасвържете кварц към DS1307:

прост

Комуникацията на микроконтролера с часовника за реално време DS1307 е организирана от софтуер, така че във веригата може да се използва микроконтролер, който няма хардуерен I2C модул.

време

DS1307 datasheet на български (312.1 KiB, 1762 посещения)

Часовник на ATyni26 в Algorithm Builder (8,2 KiB, 1682 посещения)

Програма за часовник ATyni26 в HEX код (3,1 KiB, 1530 посещения)

Схема на часовника във формат sPlan7 (119,3 KiB, 3477 посещения)

Коментари

Направих такъв часовник на ATtiny26.Те вървят, но не можете да настроите минутите и часовете с превключватели S1 и S2.S1 нулира и S2 нулира. Вероятно трябва да завършите и добавите часовниковата програма 1111.alp. Моля, добавете го. Много е необходимо.

Въпрос: нулата е незначителна, в десетки часове, показва се?