Прошивку На Простые Часы На Микроконтроллере

Простые часы на Attiny 2. Представлена схема цифровых часов на МК ATtiny 2. Часы отображают часы и минуты. Основной целью проекта была индикация времени в тёмное время суток. Индикатор: 7- сегментный, четырёх разрядный с общим анодом(на схеме изображено как 4 односегментных) и объединёнными одноименными сегментами.

Прошивку На Простые Часы На Микроконтроллере

Для чего объединёнными? На плате тогда получается меньше дорожек и перемычек. И сама схема несколько компактнее. Транзисторных ключей на индикаторе нет, потому что при динамической индикации, даже при существенном превышении тока МК, он не успевает перегреться. Правильно собранные часы не требуют настройки и работают сразу. Ниже вы можете скачать исходник ASM, прошивку и печатную плату.

В радиолюбительской литературе и на сайтах подобной тематики схемы часов на микроконтроллере встречаются очень часто. Это простые электронные часы, на основе микроконтроллера PIC16F628A, кроме него. Скачать архив : Схема, прошивка, исходник. Главная » Схемы » Простые часы на PIC. Эти электронные часы простейшие. Основа микроконтроллер PIC16F628A, кроме него часы содержат несколько. Модель протеуса, исходник (ASM), прошивка (HEX) и плата (LAY). Микроконтроллер обошелся в 41 руб, индикаторы по 52,8 руб за штуку. Часы предельно простые, поэтому не считают ни дату, ни перевод на.

Список радиоэлементов. Скачать список элементов (PDF)Теги.

Простые электронные часы на микроконтроллере ATiny26, с использование микросхемы часов реального времени DS1307 .

Делаем сами простые часы за выходные / Geektimes. Статья о том, как за выходные с нуля сделать простые электронные часы с использованием микроконтроллера.

Показана только основа часов, количество программных и аппаратных фич ограничивается только вашей фантазией). Данная статья является логическим продолжением статьи о микроконтроллерах, опубликованной на хабре 2. Основной задачей я ставлю не дать пошаговые инструкции, какой проводок к чему припаивать, а вызвать интерес читателей к теме, смотивировав к самостоятельному изучению. Итак, для того что бы создать часы необходимо освоить 2 технологии — это пайка и создание печатных плат при помощи лазерно- утюжной технологии. Статья о пайке: licrym. D0%9. F%D0%B0%D0%B9%D0%BA%D0%B0. Статья о лазерно- утюжной технологии изготовления плат: licrym.

Texnologii/Lazerno. Utjuzhnaja. Texnologija.

Izgotovlenija. Plat. Если нет желания / возможности изготовить печатную плату, то можно обойтись макетной платой, выглядит она так: В ней просверлены отверстия с шагом 2,5. Выглядит неэстетично (паутина проводов), зато ненужно травить плату. В совершенно крайнем случае можно заменить макетную плату плотной картонкой с проколотыми отверстиями, но тогда эту импровизированную плату нельзя ни мять ни гнуть. Итак, нам понадобятся инструменты: паяльник, бокорезы, мультиметр (для отладки, хотя у меня всё заработало сразу). Детали: микроконтроллер attiny.

SA1. 5–1. 1GWA (высота цифр 3. Размер индикатора любой, главное что бы ток сегмента не превышал 4. А (смотреть в даташите на конкретный индикатор), 4 транзистора КТ8. Б, кварц на 1. 6 мгц, 2 конденсатора на 2. Конкретные компоненты указывать не имеет смысла, т. Всего получается 2. Остальное было извлечено из запасов, но в любом случае бюджет бы не превысил бы 3.

Плата была нарисована вручную в программе Sprint Layout 4. Вот вытравленная плата: Фото часов в сборе. На заднем плане мой блок питания, который я описывал тут: Универсальный блок питания. Вид часов в полумраке: А теперь давайте разберемся с тем как это работает. Вот схема(широкая, потому ссылкой): licrym. Микроконтроллер тактируется от кварца с частотой 1. МГц. В микроконтроллер залита управляющая программа.

У микроконтроллера есть внутри так называемый таймер, обычно их несколько (8ми и 1. Таймер можно использовать по разному, для подсчета внешних импульсов, для генерирования заданной частоты, для генерирования ШИМ сигнала и т. В данном случае мы будем использовать его для отсчета времени. Мы включим таймер считать импульсы на системной шине (т. Тоесть таймер будет у нас тикать с частотой 1. Мгц/2. 56=6. 25. 00 Гц, и вызывать прерывание как только таймер досчитает до 6.

Каждое прерывание программа будет увеличивать счетчик сотых секунд на 1, сбрасывать таймер и возвращаться к отображению времени. Если количество сотых секунд достигает 1. И так далее вплоть до десятков часов, которые сбрасываются по достижении 2. Часы предельно простые, поэтому не считают ни дату, ни перевод на зимнее/летнее время и т. Данные функции можно реализовать программно, без изменения аппаратной части, поэтому остаются для реализации желающим. Разобравшись с таймером и прерываниями мы получаем значение текущего времени в глобальных переменных. Теперь займемся выводом этих значений. Образец Письма О Представлении Нового Сотрудника подробнее.

Так как количество портов микроконтроллера ограничено, то будем эксплуатировать инерционность зрения. Катоды всех 4 индикаторов соединены параллельно, а аноды коммутируются отдельно, что позволяет нам в любой момент времени вывести любую цифру на любой индикатор. Быстро переключая порт B, к которому подключены катоды и быстро переключая аноды мы можем создать видимость, что у нас работают все 4 цифры, хотя единовременно работает только одна. Иными словами, если текущее время 1. Кнопки опрашиваются после каждого цикла отображения (примерно 4. Транзисторы установлены для комутации анодов.

Дело в том что ток, который может пропустить через себя одна нога порта ограничено 4. А, а у моего индикатора в случае включения всех 7 сегментов и точки (отдельный светодиод на схеме это как раз точка) составит 1. А. код, который управляет часами: /*****************************************************This program was produced by the.

Code. Wizard. AVR V1. Professional. Automatic Program Generator. Какой элемент массива будет отправлен в порт, такая цифра и загорится.// Crystal Oscillator division factor: 1. CLKPR=0x. 80; CLKPR=0x. Input/Output Ports initialization// Port A initialization// Func. In Func. 1=In Func. In // State. 2=T State.

T State. 0=T PORTA=0x. DDRA=0x. 00; // Port B initialization// Func. Out Func. 6=Out Func. Out Func. 4=Out Func. Out Func. 2=Out Func.

Out Func. 0=Out // State. State. 6=1 State. State. 4=1 State. State. 2=1 State.

State. 0=1 PORTB=0x. FF; DDRB=0x. FF; // Port D initialization// Func. Out Func. 5=Out Func. Out Func. 3=Out Func. Out Func. 1=In Func.

In // State. 6=0 State. State. 4=0 State. State. 2=0 State.

P State. 0=P PORTD=0x. DDRD=0x. 7C; // Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0. A output: Disconnected// OC0.

B output: Disconnected. TCCR0. A=0x. 00; TCCR0.

B=0x. 00; TCNT0=0x. OCR0. A=0x. 00; OCR0. B=0x. 00; // Timer/Counter 1 initialization// Clock source: System Clock// Clock value: 6.

Hz// Mode: Normal top=FFFFh// OC1. A output: Discon.// OC1.

B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: On// Compare B Match Interrupt: Off. TCCR1. A=0x. 00; TCCR1. B=0x. 04; TCNT1. H=0x.

TCNT1. L=0x. 00; ICR1. H=0x. 00; ICR1. L=0x.

OCR1. AH=0x. 02; OCR1. AL=0x. 71; OCR1. BH=0x. OCR1. BL=0x. 00; // External Interrupt(s) initialization// INT0: Off// INT1: Off// Interrupt on any change on pins PCINT0- 7: Off. GIMSK=0x. 00; MCUCR=0x. Timer(s)/Counter(s) Interrupt(s) initialization. TIMSK=0x. 40; // Universal Serial Interface initialization// Mode: Disabled// Clock source: Register & Counter=no clk.// USI Counter Overflow Interrupt: Off. USICR=0x. 00; // Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: Off.

ACSR=0x. 80; // Global enable interrupts#asm(. Схема создана в программе PROTEUS. Кстати там же в протеусе можно нарисовать виртуальную схему устройства и тут же запустить ее на симуляцию, узнав работает или нет. Само собой в статье невозможно ответить на все вопросы и рассказать про все тонкости. В частности тем, кто решит повторить конструкцию, необходимо будет сделать программатор (в самом простом случае 4 проводка на порт LPT, распаять колодку программирования на плате (подключить 1.

MOSI, MISO, SCK, RESET и GND) и выставить FUSE биты микроконтроллера что бы тактовый генератор переключится от внутренней RC цепочки на внешний кварц. Я создал блог DIY (http: //habrahabr. DIY/) и впредь все статьи из разряда «сделай сам» буду публиковать там. P. P. S. Во избежание недоразумений поясняю.

Часы эти делал лично я, и первоначально публиковал на своем портале licrym.