Menu English Ukrainian Russian Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Простые часы-будильник на PIC16F84. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Часы, таймеры, реле, коммутаторы нагрузки

Комментарии к статье Комментарии к статье

Не так давно электронные часы строили на так называемых часовых микросхемах серии К176 и специализированных микросхемах серий К145 (К145ИК1901) и КР1016 (КР1016ВИ1). Главный их недостаток - ограниченные возможности совершенствования (любое изменение требовало аппаратной доработки). Выгодно отличаются часы, собранные на базе микроконтроллера. Схема значительно упрощается, а "апгрейд" можно проводить без каких-либо изменений аппаратной части. Даже настройка хода часов может быть чисто программной. Именно такие часы описаны в публикуемой ниже статье.

Предлагаемые часы-будильник с четырехразрядным светодиодным индикатором выполнены на базе микроконтроллера (МК) и показывают время в 24-часовом формате с гашением незначащего нуля в разряде десятков часов. Предусмотрены режим отображения минут и секунд, подача короткого (длительностью 1 с) звукового сигнала в начале каждого часа (при необходимости эту функцию можно выключить), два выключаемых будильника и программная настройка коэффициента коррекции времени, от которого зависит точность хода часов. Значение коэффициента и установки будильников записываются в энергонезависимую память (EEPROM) МК. Состояние будильников и сигнала "Каждый час" индицируется светодиодами.

Принципиальная схема устройства изображена на рис. 1. Его основа - микроконтроллер PIC16F84 (DD1), рабочая частота которого задается генератором с внешним резонатором ZQ1 на 4 МГц. Вход сброса МК (MCLR) напрямую подключен к шине питания +5 В.

Простые часы-будильник на PIC16F84

Пятиразрядный порт А, все линии которого настроены на вывод, управляет светодиодом HL1 и переключает разряды индикатора HG1. Четыре старших разряда порта В (RB4-RB7) настроены на ввод и принимают управляющие сигналы от кнопок SB1- SB4, которые подключены к выводам без "подтягивающих" резисторов, потому что таковые имеются в МК. Разряды RB0 и RB1 порта В используются для загрузки в регистр DD2 семиэлементного кода, соответствующего отображаемой цифре. Разряд RB2 - выход сигнала 3Ч или срабатывания будильника (в зависимости от версии программы), который можно подключить непосредственно к пьезоизлучателю (ЗП-1, ЗП-3 и им подобные), к входу усилителя 3Ч или к исполнительному устройству, например, реле, которое в момент срабатывания будильника будет включать радиоприемник, телевизор или другой прибор.

Светодиоды HL1 и HL2 индицируют состояние соответственно сигнала "Каждый час" и будильников: HL1 светится, если сигнал "Каждый час" включен, a HL2 - если включен хотя бы один из будильников или если включены оба.

В устройстве применен специализированный часовой светодиодный индикатор фирмы Kingbright, содержащий четыре семиэлементных разряда с общим анодом и две точки индикации секунд между средними разрядами. Поскольку выводы элементов a-g являются общими для всех разрядов, управление индикатором возможно только в динамическом режиме. Для данной конструкции индикатор подошел как нельзя лучше: число линий ввода/вывода общего назначения у МК P1C16F84 не позволяет реализовать статическую индикацию, а при динамической с другим индикатором пришлось бы объединять выводы одноименных элементов разных разрядов на плате.

Резисторы R3-R10 ограничивают ток через светодиоды индикатора. Сдвиговый регистр DD2 введен для экономии выводов МК - он преобразует последовательный код в параллельный в ходе динамической индикации.

Конденсатор С4 фильтрует пульсации в цепи питания МК. Место для него на плате не предусмотрено, его припаивают непосредственно к выводам розетки МК со стороны печатных проводников.

Управляющая программа для МК написана на стандартном ассемблере MPASM фирмы Microchip и скомпилирована в среде MPLAB той же фирмы. Из 1024 ячеек памяти программ МК использовано около восьмисот, так что ресурсы для усовершенствования имеются.

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

Основная задача программы - формирование точных временных интервалов длительностью 1с - решается с помощью прерываний от таймера 0. Его предцелитель подключается к кварцевому генератору МК и настраивается на коэффициент деления 16. В регистр таймера 0 при каждой обработке прерывания записывается число от 00h до OFh (это и есть коэффициент коррекции времени, в исходном тексте программы он называется TIME_SET), поэтому таймер переполняется не за 256, а к примеру, за 250 циклов тактовой частоты (при TIME_SET=5).

В таком случае при использовании кварцевого резонатора на частоту 4 МГц прерывания от таймера 0 происходят с частотой 1 000 000 Гц/250/16 = 250 Гц. После инициализации программа переходит в цикл ожидания этих прерываний и подсчитывает их. Когда число прерываний станет равным 250, текущее время увеличивается на секунду.

Прерывания от таймера 0 обеспечивают и динамическую индикацию. Во время их обработки МК устанавливает нулевой уровень на выводах RA0- RA3 и тем самым гасит индикатор. Далее в регистр DD2 через выводы МК RB0 и RB1 загружается семиэлементный код, соответствующий символу, который нужно отобразить. Затем на одном из выводов RAO-RA3 устанавливается высокий логический уровень, благодаря чему зажигается одно из знакомест. Все это происходит 250 раз в секунду, и благодаря инерции зрения пользователь видит включенными сразу все разряды.

Старший бит загружаемого в регистр DD2 кода служит для управления секундными точками индикатора, которые мигают с частотой 1 Гц. Таким образом, с помощью прерываний от таймера 0 решаются сразу две задачи. Кроме того, в подпрограмме обработки прерывания МК проверяет, не является ли выводимая цифра незначащим нулем в левом разряде, и если это так, то вместо семиэлементного кода цифры О МК загружает в регистр двоичное число 11111111 (индикатор с общим анодом, поэтому единица соответствует погашенному сегменту).

Клавиатура опрашивается примерно 10 раз в секунду, но после первого нажатия некоторых кнопок и их комбинаций программа не реагирует на повторные нажатия в течение 1 с (например, если кнопки удерживать). Это нужно для удобства управления часами.

Простые часы-будильник на PIC16F84

При срабатывании будильника на выводе RB2 на 1 мин появляется прерывистый сигнал 3Ч или, в зависимости от версии программы, - высокий уровень (точнее, импульсы с частотой повторения 1 Гц). Мигают светодиоды HL1 и HL2. По истечении минуты вызывается специальная подпрограмма, которая восстанавливает правильное свечение светодиодов.

Устройством управляют кнопками SB1-SB4, каждая из которых совмещает несколько функций (см. мнемосхему, показанную на рис. 2). Часы работают в трех режимах: основном (индикация текущего времени), с коэффициентом коррекции времени и режиме установки будильников.

В основном режиме индикатор HG1 отображает часы и минуты, при этом секундные точки мигают с частотой 1 Гц. Текущее время устанавливают кнопками SB1 (часы) и SB2 (минуты): каждое их нажатие увеличивает показания на единицу, а если это делается при нажатой SB4, - уменьшает. При достижении нулевых значений разрядов минут переноса в разряд часов не происходит.

Если удерживать кнопку SB4 в течение трех секунд, на индикатор вместо часов и минут выводятся минуты и секунды текущего времени.

Сигнал "Каждый час" включают и выключают кнопкой SB3 при удерживаемой SB4 (светодиод HL1 соответственно загорается или гаснет).

Для перехода в режим установки будильников нажимают на кнопку SB3. На индикаторе появляются показания первого будильника, секундные точки светятся непрерывно. Часы и минуты устанавливают теми же кнопками SB1 и SB2 (в данном случае только увеличение показаний). Нажатие на кнопку SB4 приводит к выключению будильника, и на индикаторе остаются лишь прочерки (светятся элементы G). При последующем включении будильника этой же кнопкой на индикаторе появляются, а в регистры будильника записываются нули (а не предыдущие значения). Если еще раз нажать на кнопку SB3, на индикаторе появятся показания второго будильника, однако секундные точки погаснут. Оба будильника настраиваются одинаково.

Третье нажатие на кнопку SB3 переводит часы в режим работы с коэффициентом коррекции времени: на индикатор выводятся символы "ЕЕ X", где ЕЕ означает EEPROM, а X - текущее значение коэффициента в шестнадцатиричном виде; секундные точки продолжают мигать. Кнопкой SB1 можно увеличивать, а кнопкой SB2 - уменьшать значение коэффициента в интервале от Oh до Fh. Установленное число будет записываться в таймер 0 в подпрограмме обработки прерывания по его переполнению.

При четвертом нажатии на кнопку SB3 установки будильников и значение коэффициента записываются в EEPROM: первый будильник - по адресам 02h-05h (соответственно минуты, десятки минут, часы и десятки часов), второй - по адресам 06h-09h (в том же порядке), коэффициент - по адресу 01 h.

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

Простые часы-будильник на PIC16F84

Без каких-либо изменений в схеме и программе МК можно применить PIC16C84 - однократно программируемый аналог PIC16F84. Указанный на схеме индикатор заменим любым другим четырехразрядным с общим анодом (желательно, чтобы выводы одноименных элементов разрядов были соединены внутри индикатора). Допустимо использование четырех одноразрядных индикаторов, в этом случае в качестве секундных точек можно применить два отдельных светодиода, подключенных катодами к правому (по схеме) выводу резистора R10 (если необходимо - через ключ на транзисторе). Резисторы, конденсаторы, светодиоды, кнопки - любые малогабаритные.

Для часов разработаны три версии управляющей программы. Версия 1.10 - основная (ее НЕХ-файл приведен в таблице). При срабатывании будильников на выводе RB2 появляется сигнал (меандр) частотой 1 Гц. Его можно использовать для управления различными исполнительными механизмами и генераторами сигналов 3Ч: от простейших на двух-трех логических элементах до сложных систем цифрового синтеза звука [1, 2]. Динамическая индикация в этой версии работает постоянно.

Простые часы-будильник на PIC16F84
(нажмите для увеличения)

В версии 1.11 индикация тоже работает непрерывно, но при срабатывании будильников и в момент генерации сигнала "Каждый час" на выводе RB2 появляются пачки импульсов с частотой повторения 1 Гц (частота колебаний, заполняющих пачки, соответствует частоте прерываний от таймера 0 - 250 Гц). Этот сигнал можно подать непосредственно на излучатель или на вход усилителя 3Ч.

Версия 1.20 отличается от 1.11 только тем, что по умолчанию динамическая индикация в ней выключена (при этом все прочие функции часов работают в обычном режиме). Она начинает работать, если нажать на кнопку SB4, и автоматически выключается через 10 с. При нажатии кнопок и срабатывании будильника отсчет этого интервала начинается заново. Если будильник сработал при выключенной индикации, она не включается: нужно дважды нажать кнопку SB4, чтобы выключить будильник и включить индикацию. Эту программу целесообразно использовать, если для питания часов используется батарея, составленная из гальванических элементов или аккумуляторов: выключение индикации экономит энергию батареи.

При программировании МК в слове конфигурации указывают тип генератора - XT, Power-up таймер - включен, сторожевой таймер и защита кода - выключены. Кроме того, в ячейку 01 h энергонезависимой памяти данных нужно занести число от Oh до Fh (коэффициент коррекции времени), а по адресам 02h-09h - установки будильников.

Если программная настройка точности хода часов окажется грубой (что вполне вероятно), следует установить изображенный на схеме штриховыми линиями подстроечный конденсатор C3 (на печатной плате место для него предусмотрено).

НЕХ-файлы программы версий 1.11 и 1.20, а также исходные тексты всех версий

Литература

  1. Долгий А. Как записать в ПЗУ аудиоданные из wav-файла и "проиграть" их. - Радио, 2001, № 4, с. 25-27; № 5, с. 23, 24.
  2. Партии А. Звуковой модуль на одной микросхеме. - Радио, 2002, № 11, с. 40, 41.
  3. Прожирко Ю. Электронные часы-будильник с радиоприемником. - Радио, 2001, № 7, с. 16, 17; № 8, с. 17, 18.

Автор: А.Вакуленко, г.Тюмень

Смотрите другие статьи раздела Часы, таймеры, реле, коммутаторы нагрузки.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Использование Apple Vision Pro во время операций 16.03.2024

Медицинская команда больницы Кромвеля в Лондоне впервые применила Apple Vision Pro в ходе двух операций на позвоночнике. Это событие подтверждает потенциал гарнитуры в качестве медицинского инструмента, изменяющего подход к хирургической практике. Хотя сами врачи не использовали Vision Pro, операционная медсестра работала с виртуальной реальностью, используя очки во время подготовки и выполнения процедур. Гарнитура позволила просматривать виртуальные экраны в операционной, выбирать инструменты и следить за ходом операции. Программное обеспечение, разработанное компанией eXeX, специализирующейся на создании приложений на основе искусственного интеллекта для хирургии, существенно улучшило процесс оказания медицинской помощи пациентам. Использование Apple Vision Pro открывает новые возможности для разработки приложений в сфере здравоохранения, таких как клиническое образование, планирование операций, обучение и медицинская визуализация. Внедрение Apple Vision Pro в медицинскую пр ...>>

Хранение углерода в Северное море 16.03.2024

Министр энергетики Норвегии Терье Осланд объявил о запуске проекта Longship, нацеленного на создание центрального хранилища углекислого газа в Северном море. Этот амбициозный проект оценивается в $2,6 млрд и направлен на применение технологии CCS (углеродного захвата и хранения) для смягчения воздействия климатических изменений. Норвегия уже имеет опыт в области CCS благодаря успешным проектам Sleipner и Snohvit, и сейчас стремится увеличить объем углерода, запечатываемого под морским дном. План Longship предусматривает создание мощности по захвату и хранению 1,5 млн. тонн углерода ежегодно в течение 25 лет. Несмотря на позитивные перспективы, существуют опасения по поводу долгосрочных последствий такого хранения. Однако сторонники проекта утверждают, что морское хранение углерода имеет ряд преимуществ, включая минимальное воздействие на окружающую среду. Проект Longship осуществляется при участии компаний Equinor, Shell и TotalEnergies через совместное предприятие Northern Li ...>>

Выращены мини-органы из амниотической жидкости человека 15.03.2024

Международная команда ученых под руководством профессора Фань Сюлиня из Университета Чжэцзян разработала уникальный способ выращивания мини-органов из клеток, обнаруженных в амниотической жидкости человека. Этот значительный прорыв в медицине может привести к улучшению диагностики и лечения врожденных заболеваний. Органоиды, представляющие собой трехмерные клеточные структуры, имитирующие органы в меньшем масштабе, были выращены из клеток легких, почек и тонкого кишечника, найденных в амниотической жидкости. Этот метод открывает новые возможности для изучения различных состояний плода и может стать ключом к ранней диагностике и лечению врожденных дефектов. Хотя пока не проводились попытки использования этого метода в лечении, ученые надеются, что их исследования в будущем помогут бороться с серьезными врожденными заболеваниями, которые затрагивают миллионы новорожденных ежегодно. Этот прорыв может изменить практику медицинских вмешательств, позволяя диагностировать и лечить врожд ...>>

Случайная новость из Архива

Шоковая терапия умного браслета 03.10.2014

Команда разработчиков-энтузиастов из Бостона решила, что применение легкой шоковой терапии может положительным образом сказаться на отказе от пагубных привычек. А лучше всего для этого подходит носимая на запястье электроника в виде стильного браслета. Сборы средств на серийный выпуск устройства под названием Pavlok было решено начать на краудфандинговом сайте Indiegogo. Конечной целью для реализации идеи являлась сумма $50 тыс., но всего за три дня перечислено свыше $62,5 тыс. При этом кампания по финансированию проекта, взявшая свой старт 30 сентября, продлится до 30 октября включительно.

Сам "умный" браслет Pavlok представляет собой носимый гаджет, который не только готов разбудить вас утром или напоминать о недопустимости выполняемого действия характерным звуковым сигналом, но и позволит ощутить вашему организму короткий разряд от 17 до 340 Вольт. Разработчики сразу предупреждают, что подобные удары током не нанесут какого-либо вреда здоровью, но при установленном значении на "максимум" они окажутся весьма неприятными и ощутимыми. Хотя наиболее уместным словом здесь окажется "мотивируемыми". По крайней мере, именно на это сделал ставку создатель "умного" браслета в попытках найти действенный метод воспитания силы духа в совокупности с оригинальным видом наказания небольших проступков.

Pavlok может стать отличным способом для курильщиков расстаться со своей вредной привычкой раз и навсегда. Для этого потребуется запрограммировать гаджет на распознавание определенного движения руки в пространстве - вроде характерного жеста, когда вы подносите сигарету ко рту, и заставить отказаться вас от данного рода занятий при помощи неприятных "напоминающих импульсов", исходящих из браслета. Подобное решение выполняется за счет встроенных в Pavlok разнообразных датчиков, в том числе акселерометра, а также не без помощи мобильного приложения. Кроме того, модель оснащается модулями Bluetooth и GPS, небольшим вибромотором и крохотным светодиодным индикатором.

Над созданием браслета трудился выпускник Стэнфордского университета Манеш Сетхи (Maneesh Sethi), который планирует сделать платформу Pavlok открытой, что должно подтолкнуть (на этот раз уже без неприятных ударов током) сторонних программистов на разработку новых приложений. В качестве возможного режима работы носимой электроники рассматривается более глубокое взаимодействие со смартфоном. Это позволит, скажем, бить вас током каждый раз, когда вы решите набрать номер или отправить текстовое сообщение своей "бывшей" или начальнику, заставив вас дважды подумать перед этим.

Текущая же функциональность Pavlok позволит огородить вас от походов по злачным местам или ресторанам быстрого питания. Для этого придется задействовать GPS-навигацию, которая сможет отследить ваше текущее местоположение и, когда вы приблизитесь к кафе, напоминать оригинальным образом про обещание придерживаться здорового питания. Или же просто "ущипнуть" вас с уведомлением на смартфон о необходимости посетить тренажерный зал, когда вы будете находиться в районе его расположения.

Pavlok синхронизируется через Bluetooth 4.0 LE с вашим мобильным устройством, после чего вы сможете в специальном приложении выбрать интересующий вас режим работы и ввести необходимые настройки. Если вы противник неприятных ощущений, то безвредные разряды можно заменить, как уже было отмечено выше, на звуковой сигнал из встроенного в браслет динамика. В списке безболезненных предупреждений носимого гаджета значится виброоповещение, а также команда на автоматически генерируемую запись (ей может стать и сообщение постыдного характера для лучшей мотивации) на вашей странице в Facebook.

Первые прототипы Pavlok уже были продемонстрированы в этом году, а их стоимость равнялась на тот момент $250. Теперь же, когда стартап перебазировался на ресурс Indiegogo, цена на устройство для участников проекта составит $149. Отправка браслета покупателям, оформившим предзаказ на гаджет, запланирована на май 2015 года.

Другие интересные новости:

▪ Новое применение водородному двигателю

▪ Микроводоросли - источник Омега-3

▪ Микрофон с подогревом

▪ У пчел обнаружена способность клонировать себя

▪ Структурная краска

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Строителю, домашнему мастеру. Подборка статей

▪ статья Изящная и стремительная лодка. Советы моделисту

▪ статья Какие здания располагаются в Москве на месте бывшего дома помещицы-садистки Салтычихи? Подробный ответ

▪ статья Промышленная безопасность. Справочник

▪ статья Усовершенствование регулятора мощности. Энциклопедия радиоэлектроники и электротехники

▪ статья Расширение тел от нагревания. Физический эксперимент

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





All languages of this page

Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2024