Часы на микроконтроллере pic16f628a: Часы на PIC16F628A и FYQ3641A

Содержание

Простые цифровые часы на PIC16F628A и DS1307 и 7-сегментным светодиодным дисплеем

В этом новом проекте снова используется микроконтроллер PIC16F628A . Цель проекта – создать простые цифровые часы с 7-сегментным светодиодным дисплеем. У часов нет дополнительных функций, таких как будильник, отображение секунд и даты. Однако их можно добавить в код программы.

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

В качестве микросхемы часов реального времени (RTC) выбрана микросхема DS1307. В качестве 7-сегментного светодиодного дисплея использован Kingbright CC56-21SRWA.

Принципиальная схема цифровых часов

Микроконтроллер работает от внутреннего генератора на частоте 4 МГц, что позволяет сэкономить 2 дополнительных контакта. Вывод сброса (MCLR) используется в качестве входа для одной из кнопок.

Все сегменты светодиодного индикатора (анод) подключены к порту PORTB, а катоды подключены к порту PORTA. Микросхема RTC также подключена к порту PORTA.

Схема предельно проста, и для быстрого тестирования была собрана на макетной плате.

Портативный паяльник TS80P

TS80P- это обновленная версия паяльника TS80 Smart, работающий от USB…

Все заработало, как и ожидалось. Частота мультиплексирования (обновления цифр) составляет около 53 Гц, видимого мерцания не наблюдается. Из-за мультиплексирования цифры получились более тусклые, и для компенсации этого ток через сегменты должен быть немного выше.

Было протестировано с разными значениями сопротивления токоограничивающих резисторов R1-R7. С сопротивлением ниже 220 Ом микроконтроллер начинает плохо себя вести — некоторые цифры начинают мерцать. Если сопротивление 220 Ом и выше все вроде работает нормально.

Две точки посередине подключены к выводу SQW DS1307. Этот вывод настроен как выходной сигнал прямоугольной формы с частотой 1 Гц. Данный выход с открытым стоком, поэтому для работы он должен иметь подтягивающий резистор.

Часы имеют две кнопки для настройки времени — одна для часов и одна для минут. У микроконтроллера остался один неиспользованный контакт — RB7, который можно использовать для дополнительных функций. Например, можно подключить зуммер и добавить в программное обеспечение функцию будильника.

Программное обеспечение написано и скомпилировано с помощью программы MikroC Pro и использует встроенную программную библиотеку I2C для связи с микросхемой RTC.

Если кто-то желает использовать программное обеспечение MPLAB для компиляции кода, он должен написать свою собственную функцию для I2C с нуля.

Для программирования микроконтроллера можно использовать этот программатор.

Скачать файлы проекта (302,1 KiB, скачано: 283)

Источник

Паяльный фен YIHUA 8858

Обновленная версия, мощность: 600 Вт, расход воздуха: 240 л/час…

Часы на pic16f628a

Схемы на микроконтроллерах. Вольтметры, термометры, амперметры, программаторы и многое другое. Раздел пополняется. Книги по программированию и полезные программки можно скачать в разделе Скачать.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам. ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Часы на PIC16F628A

Часы на PIC16F628A и FYQ3641A


Схемы на микроконтроллерах. Вольтметры, термометры, амперметры, программаторы и многое другое. Раздел пополняется. Книги по программированию и полезные программки можно скачать в разделе Скачать. Не нашли, что искали? Попробуйте вернуться на главную.

Все права защищены. UA, полное или частичное использование материалов разрешается. Уважайте чужие труды! Не забывайте проставлять ссылки! Главная Схемы. Схемы 10 Схемы на микроконтроллерах. Часы на DS Автор: Алексей. Часы на DS — статья, в которой расскажу, как сделать часы реального времени на DS с функцией напоминания.

Вся информация будет выводиться на Oled-дисплей х Ну, а теперь обо всём по порядку…. Прочитано раз. Опубликовано в Часы. Комментарии 2. FM приемник на RDA Опубликовано в Звук. Комментарии Данный переходник, кстати, совместим с процессорным модулем CPU P. Опубликовано в Без МК. Добавить комментарий. Устройство проверки форсунок — статья, в которой расскажу об электронной части стенда для проверки форсунок.

Устройство довольно простое, но свои функции выполняет. Добавив к электронике необходимое железо можно сделать Опубликовано в Автолюбителям. Доброго всем времени. С момента публикации статьи о предыдущей версии термометра прошло немало времени. Устройство пользуется довольно неплохой популярностью. В мой адрес приходит немало писем с просьбой о модернизации. По возможности, на все письма отвечаю и модернизирую прошивку. В очередном письме автор попросил добавить возможность.

Опубликовано в Термометры. В этой статье хочу предложить радиолюбителям самостоятельно изготовить реле уровня воды на микроконтроллере PIC16FA. Похожая разработка ранее рассматривалась на сайте, однако там отсутствовала возможность Опубликовано в Разное.

Идеальным решением Опубликовано в Источники питания. Комментарии 5. Предлагаемое устройство может пригодиться всем, у кого есть загородный дом с летним душем или дача, огород, да что угодно лишь была бы емкость с водой Комментарии 8.


Часы-термометр с анимированной сменой индикации (PIC16F628A).

Эти схемы часов на микроконтроллере очень помогут начинающим радиолюбителям разобраться с вопросами работы и программирования микроконтроллеров. Рассмотрим подробней эту простую схему: Питание можно подавать как от трех пальчиковых батареек, так и от стабилизированного блока питания. Микроконтроллер Attiny тактируется кварцем на 16 МГц. В качестве счетчика времени, в внутренней схеме микроконтроллера используется 16 битный таймер с делителем на Как только внутренний счетчик досчитает до , осуществится прерывание. Поэтому у нас будут происходить прерывания раз в секунду. Временной интервал учитывается в глобальных переменных, и при каждом прерывании требуется увеличить значение миллисекунд на единицу.

Особенно для односекундных событий, таких как простые часы. Имеются два варианта прошивок микроконтроллера PIC16FA, для.

Часы на микроконтроллере своими руками

Новокузнецк, Кемеровская обл. Логин: Пароль Забыли? Секреты самодельщика Микроконтроллеры. Здравствуйте, уважаемые читатели журнала Datagor. Полную схему в формате sPlan берите в Файлах. Дмитрий Wishmaster. Список всех статей. Профиль Wishmaster.

Часы с таймером на микроконтроллере (PIC16F628A, asm)

Предлагаемое устройство отсчитывает время, измеряет температуру в доме и на улице, выключает по истечении заданного времени сетевую нагрузку. Оно просто в изготовлении. Вся информация выводится на светодиодный индикатор, который видно как днем, так и ночью, как вблизи, так и издалека. В продаже имеются различные устройства отображающие время, температуру в помещении и на улице Но практически все они выполнены на ЖКИ, которые необходимо освещать в темное время суток. А встроенную подсветку, если она есть, в приборах с автономным батарейным питанием не рекомендуется использовать длительное время.

Пожалуйста, подождите На каком языке программирования вы пишите программы?

Часы на газоразрядных индикаторах

Officia fore sunt nam elit do id aliqua in irure. Varias e ita quae expetendis qui ad tamen commodo transferrem hic se legam nostrud arbitrantur, consequat graviterque te incurreret, a veniam iis elit, lorem consectetur quamquam summis tempor, incididunt anim singulis eu pariatur aute ad deserunt graviterque. Quamquam sunt duis eu illum non magna quibusdam probant, ea nam velit fugiat quid ad magna litteris ita tamen quae. Proident e noster est fore incurreret eu exercitation hic mandaremus tamen de quibusdam graviterque, qui multos magna legam excepteur ea excepteur ipsum fugiat deserunt summis a sunt do an sint iudicem qui esse instituendarum fabulas quorum excepteur iis se a consectetur. Eiusmod eram litteris possumus. Ita pariatur despicationes, in anim deserunt ingeniis non ubi cillum probant, iis labore aute velit laboris se e eram do nisi nam singulis quorum malis excepteur fugiat ubi mandaremus amet incididunt ullamco an pariatur voluptatibus nam deserunt.

Очень простые часы на PIC-контроллере

Это простые электронные часы, на основе микроконтроллера PIC16FA , кроме него часы содержат несколько простых и дешевых элементов, информация выводится на 4-х разрядный часовой светодиодный индикатор с общим анодом. Данную конструкцию можно рекомендовать начинающим, я специально снабдил исходную программу подробными комментариями, чтобы легче было понять, что и как тут работает. Схема очень простая, простой и алгоритм их работы см. Кнопки S1 и S2 служат для коррекции времени — часов и минут соответственно. Часы имеют 24 часовой формат отображения.

Нужно было построить часы, у которых большие сегменты индикаторов. Все традиционные схемы часов на микроконтроллере рассчитаны на типовые.

Часы-термометр на PIC16F628A

Проект Eldigi. В связи с этим на сайте могут быть ошибки. Нашли ошибку? Проэкт представляет собой часы с таймером, который может быть запрограммирован на включение и на выключение.

Сама схема:. Итак: -Реализовано 2 режима отображения часы-минуты и минуты-секунды. Переключение кнопкой «Инкремент». Следующее нажатие кнопки «Коррекция» переводит часы в режим коррекции минут минуты увеличиваются кнопкой «Инкремент». Ещё одно нажатие кнопки «Коррекция» — переход к коррекции часов часы увеличиваются кнопкой «Инкремент».

Схема часов с будильником своими руками вы можете собрать такую как на фото слева.

Часы на газоразрядных индикаторах в последнее время стали весьма популярными среди радиолюбителей, такие часы привлекают внимание теплым ламповым свечением, желто-оранжевого цвета. В сети можно найти множество различных вариантов и исполнений, вот и я решил разработать и собрать свой вариант часов, с возможностью синхронизации времени по спутникам GPS. В последние годы появилось много желающих, которые хотят собрать или приобрести часы на газоразрядных индикаторах, это соответственно вызывает большой спрос на индикаторы, вследствие чего самые востребованные из них заметно подорожали, а крупные индикаторы вовсе имеют заоблачную цену. Газоразрядный индикатор представляет собой лампу с электродами катодами , наполненную инертным газом неоном. Катоды могут быть выполнены в виде различных знаков, обычно цифр от 0 до 9, которые располагаются друг за другом стопкой, то есть на разной глубине. При подаче напряжения между анодом и катодом величиной примерно В, вблизи катода по его периметру возникает оранжево-желтое свечение газа тлеющий разряд.

Новокузнецк, Кемеровская обл. Логин: Пароль Забыли? Секреты самодельщика Микроконтроллеры.


Двоичные часы на микроконтроллере PIC16F628A

Схема самодельных двоичных часов на микроконтроллере PIC16F628A и светодиодах. Эти необычные карманные часы могут стать оригинальным подарком. Индикатор времени в них построен всего на шести единичных светодиодах.

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

Как разобраться в двоичном формате

Чтобы понять, что такое двоичная система счисления, запустим в компьютере имеющуюся в операционной системе Windows программу «Калькулятор».

Поскольку в различных версиях системы эти программы различаются, здесь будем рассматривать ту, которая входит в состав Windows XP Запустив программу, найдите в её окне и нажмите мышью экранную кнопку «Вид», затем в выпавшем списке выберите «Инженерный».

После этого к прежним простейшим функциям калькулятора добавится множество других, позволяющих производить сложные вычисления. Слева под индикатором появится переключатель системы счисления: «Hex» (шестнадцатеричная), «Dec» (десятичная), «Oct» (восьмеричная) и «Bin» (двоичная). Сразу после запуска программы он находится в положении «Dec».

Это означает, что все исходные данные для вычислений и их результаты будут представляться в привычной для нас десятичной системе счисления.

Наберите для примера число 58, нажав на соответствующие цифровые кнопки. Если теперь перевести переключатель в положение «Bin», щёлкнув мышью по соответствующей надписи, то в окне результата цифры 58 сменятся на 111010. Это то же самое число, представленное в двоичной системе счисления.

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

Система счисления Двоичная Десятичная
Номер разряда 5 4 3 2 1 0 2 1
Вес разряда 32 16 8 4 2 1 10 1
Значение разряда 1 1 1 0 1 0 5 8
Произведение веса на значение 32 16 8 0 2 0 50 8
Сумма произведений 58 58

Двоичная система исчисления широко используется в цифровых устройствах, поскольку позволяет обойтись простыми логическими элементами, различающими только два значения — 0и 1. Примером устройства с двоичной индикацией может служить термометр, описанный в [1]. Изготовленный за восемь лет до публикации, он до сих пор исправно работает.

За это время не потребовалась даже замена элементов питания, так как термометр включают только несколько раз в день всего на пару секунд. Во время разработки термометра у автора было желание сделать и часы с двоичной индикацией, однако вызывало сомнение удобство пользования ими. Время показало, что сомнения были напрасными.

Сегодня многие фирмы выпускают такие часы. Чтобы убедиться в этом, достаточно поискать в Интернете фразу «Часы двоичные».

Но для радиолюбителя гораздо интереснее не купить, а сделать двоичные часы своими руками. В предлагаемой конструкции всего три управляющие кнопки: включения индикации текущего часа, минут и коррекции времени — точной установки момента начала часа.

Часы защищены от сбоев, вызванных случайными нажатиями на кнопку коррекции. Они построены на широко известных и часто применяемых радиолюбителями элементах.

Принципиальная схема

Схема часов показана на рис. 1. Отсчёт времени ведёт и выводит его на светодиоды микроконтроллер DD1 PIC16F628A. Его тактовая частота 32768 Гц стабилизирована низкочастотным часовым кварцевым резонатором ZQ1.

Питается устройство от литиевого элемента G1 CR2032 напряжением 3 В. Как известно, такие элементы отличаются минимальной саморазрядкой и способностью работать при пониженной температуре.

Конденсатор С1 подавляет высокочастотные импульсы. Благодаря низкой тактовой частоте микроконтроллер потребляет небольшой ток, что делает возможной длительную эксплуатацию часов без замены элемента питания.

Рис. 1. Принципиальная схема самодельных двоичных светодиодных часов на микроконтроллере PIC16F628A.

К выходам микроконтроллера RA0- RA4, RB5, RB6 через ограничительные резисторы R1-R7 подключены светодиоды HL1-HL7. Шесть из них (HL2- HL7) показывают время, на них можно отобразить числа от 0 (все выключены) до 63 (все включены). Это позволяет вывести по очереди число часов от 0 до 23 и минут от 0 до 59.

Около светодиодов указаны веса двоичных разрядов, которым они соответствуют. Включают индикацию часов или минут соответственно кнопками SB1 и SB2, соединёнными с входами RB0 и RB1 микроконтроллера. Так как индикация включается всего на несколько секунд, в течение которых кнопка удерживается нажатой, энергия элемента питания расходуется экономно, он служит длительное время.

Кнопкой SB3, подключённой к входу RB7 микроконтроллера, производят корректировку времени. Это следует делать только в начале очередного часа, так как в процессе корректировки счётчики минут и секунд обнуляются.

Светодиод HL1 при нажатой кнопке SB1 или SB2 вспыхивает каждую секунду. Он служит индикатором активности устройства и позволяет убедиться в его работоспособности при нулевых значениях часов или минут.

Если бы его не было, возникала бы неприятная ситуация, когда при нажатой кнопке ни один из светодиодов не подаёт «признаков жизни». Вывод 4 микроконтроллера, обычно служащий входом его установки в исходное состояние MCLR, в данном случае сконфигурирован как обычный дискретный вход RA5. Начальная установка при включении питания производится внутренними средствами микроконтроллера.

Для исключения случайных помех вход RA5 соединён с общим проводом. Остальные линии порта A программа конфигурирует как выходы.

Линии RB0, RB1, RB7 порта B она конфигурирует как входы и подключает к ним внутренние резисторы, поддерживающие на этих входах высокий логический уровень (при отпущенных кнопках). Остальные линии порта B конфигурируются как выходы. В завершение процедуры инициализации программа по очереди включает на секунду каждый светодиод.

Это позволяет оценить правильность монтажа и убедиться в работоспособности программы. Счёт времени в микроконтроллере DD1 ведёт встроенный таймер T1. Программа настраивает его так, что он каждую секунду генерирует запрос прерывания.

Подпрограмма-обработчик прерывания формирует в оперативной памяти микроконтроллера значение текущего времени — секунды, минуты и часы.

Обработчик прерывания при каждом вызове проверяет также логические уровни на входах RB0, RB1 и RB7, зависящие от состояния кнопок SB1-SB3.

При низких уровнях на входах RB0 или RB1 включается соответственно индикация часов или минут. При низком уровне на входе RB7, свидетельствующем о нажатой кнопке SB3, и одновременно низком уровне на одном из входов RB0 или RB1 производится корректировка времени. Так сделано для уменьшения вероятности сбоя хода часов в результате случайного нажатия на кнопку SB3.

Корректировка времени производится точно так же, как описано в [2, 3]. При её выполнении значения минут и секунд обнуляются. Если минут было меньше 30, число часов не изменяется, в противном случае оно увеличивается на единицу.

Если кнопку SB3 удерживать нажатой, то каждую секунду к числу часов будет добавляться единица. Это бывает необходимо при первоначальной установке текущего времени после включения питания, а также при переходах с летнего на зимнее время и обратно. Программа микроконтроллера небольшая по размеру и несложная.

Без всяких изменений она может работать как в микроконтроллерах PIC16F628A, так и в PIC16F628. Исходный текст программы, приложенный к статье, снабжён подробными комментариями, позволяющими разобраться в алгоритме работы и даже усовершенствовать программу. Например, ввести индикацию секунд или режим секундомера.

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

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

При двух нажатых кнопках его содержимое следует каждую секунду увеличивать на единицу и выводить на индикацию. Изменённый текст программы следует оттранслировать в среде MPLAB, а полученный HEX-файл загрузить в память микроконтроллера.

Детали и конструкция

Часы собраны на фрагменте макетной платы, как показано на рис. 2. Резисторы (для поверхностного монтажа) смонтированы на обратной стороне платы.

Светодиоды FYL-3014SRC можно заменить другими. Чтобы убедиться в пригодности светодиода, подключите его к источнику напряжения 3 В через резистор 390 Ом и оцените яркость свечения.

Рис. 2. Готовая плата бинарных чаов на микроконтроллере и светодиодах.

Конденсаторы, резисторы, кнопки — любые малогабаритные. Желательно, чтобы кнопка SB3 была с укороченным толкателем. Его конец не должен возвышаться над поверхностью корпуса часов и даже быть утоплен, чтобы нажать на него было можно только каким-либо заострённым предметом. Такое конструктивное решение служит дополнительной к программной защитой от случайного нажатия на кнопку.

Рис. 3. Фото часов в корпусе.

Автор сделал часы карманными (рис. 3), поместив их в подходящий пластмассовый футляр. Но оформление может быть и иным.

В случае размещения часов на стене их вполне можно собрать в телефонной розетке, т. е. оформить как термометр в статье [1].

Программа и прошивка для МК — Скачать .

Э. Щенов, г. Ульяновск. Р-08-2014.

Литература:

  1. Щенов Э. Необычный термометр. — Радио, 2007, № 12, с. 51,52.
  2. Щенов Э. Автомобильные говорящие часы с термометром. — Радио, 2012, №6, с. 45-47.
  3. Щенов Э. Часы с автономным питанием для автомобиля. — Радио, 2012, № 10, с. 44, 45.

РадиоКот :: Часы — будильник на микроконтроллере PIC16F628A.

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Часы — будильник на микроконтроллере PIC16F628A.

Вашему вниманию предлагаются часы на МК PIC16F628A с точностью хода 30 секунд в год.
Давайте посмотрим схему, а потом будет длинный расказ о том, что есть в этих часах и как ими пользоваться.

Ну а теперь — обещанный расказ, итак:
-Реализовано 2 режима отображения часы-минуты и минуты-секунды. Переключение кнопкой «Инкремент«.

-При нажатии кнопки «Коррекция» часы переходят в режим коррекции секунд (секунды обнуляются кнопкой «Инкремент«). Следующее нажатие кнопки «Коррекция» переводит часы в режим коррекции минут (минуты увеличиваются кнопкой «Инкремент«). Ещё одно нажатие кнопки «Коррекция» — переход к коррекции часов (часы увеличиваются кнопкой «Инкремент«). Следующее нажатие кнопки «Коррекция» — возврат в режим отображения часов-минут.

-При нажатии кнопки «Будильник» часы переходят в режим отображения уставки будильника. В этом режиме кнопкой «Инкремент» включаем будильник. Включение подтверждается коротким звуковым сигналом и включается мигающая точка. Корректируется уставка будильника после нажатия кнопки «Коррекция«. После первого нажатия — минуты, после второго — часы (увеличиваются кнопкой «Инкремент«). После третьего нажатия — переход в обычный режим.

-В часах реализована функция коррекции посредством подстройки константы (режим подстройки включается при удержании кнопки «Коррекция» дольше 1-й секунды). По умолчанию константа равна 1032 микросекунды в секунду. При отставании часов константу увеличиваем (кнопка «Инкремент«) на величину отставания вычисленное в микросекудах за 1 секунду. Если часы спешат, константу уменьшаем (кнопка «Будильник«) по тому же принципу.

-Возврат в обычный режим осуществляется из режимов коррекции через 3 минуты после последнего нажатия любой из кнопок.

-При срабатывании будильника подаётся звуковой сигнал, который отключается нажатием любой из кнопок или автоматически через примерно 4 минуты (за 4 минуты вполне можно проснуться (Ох не факт, не факт… Прим. Кота.))

-При установке батареек соответственно схеме, часы продолжают идти при отключении от сети. Использованы 3 батарейки А3 для наручных часов.

Прошивку берем тут.
Исходники тут.
Печатная плата для индикатора 5620 тут.(от maverick5334)
Печатная плата для индикатора АЛС324 тут.(от maverick5334)

Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?


Эти статьи вам тоже могут пригодиться:

Конструкции на pic16f628a. Схема электронных часов на pic16f628a — устройства на мк — radio-bes

Эти электронные часы простейшие. Собраны были за несколько часов. Основа микроконтроллер PIC16F628A, кроме него часы содержат несколько простых и дешевых элементов, информация выводится на 4-х разрядный (часовой) светодиодный индикатор. Схема питается от сети, а также имеет резервное питание. Данную конструкцию можно рекомендовать начинающим, я специально снабдил исходную программу подробными коментариями, чтобы легче было поять, что и как тут работает.

Схема очень простая, простой и алгоритм их работы (см.коментарии в исходнике). Кнопки кн1 и кн2 служат для коррекции времени — часов и минут соответственно. Часы имеют 24 часовой формат отображения. В 1-м разряде часов сделано гашение незначащего нуля. Точность хода часов целиком зависит от частоты кварцевого резонатора. Но даже без специальных подборок кварцев и конденсаторов в тактовом генераторе — часы идут весьма точно.

Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На одной плате размещен целиком индикатор, а все остальное на другой. Элемент резервного питания выломан из китайской зажигалки со светодиодным фонариком. Удаляем светодиод, а держатель батареек устанавливаем на плату. На фотографии видно, что к батарейкам выведены обрезки выводов резисторов — они то и держут всю эту конструкцию. Конечно емкость таких батареек невелика, но когда часы питаются от сети, ток от батареек не потребляется. Они питают схему, только если нет сетевого питания. При этом питается только микроконтроллер, индикатор же от батареек не питается, поэтому гаснет, а часы продолжают ход. Кнопки управление вынесены с платы в любое удобное место корпуса. Конструкция кнопок может быть любой. Для питания от сети использован китайский БП-адаптор, в который добавлена плата с микросхемой 7805 (5-ти вольтовый стабилизатор). Вобще подойдет любой блок питания, с выходным напряжением 5В и током 150мА.

Программа написана таким образом, что ее можно использовать для начального изучения микроконтроллера PIC, прокоментировано действие практически каждой команды. При желании в нее легко можно добавить дополнительные функции, например календарь, таймер, секундометр и др.

Файл:
Размер:
Содержимое:


Этот вариант часов сделан таким образом, чтобы максимально упростить схему, снизить энергопотребление, и в итоге получить прибор, который легко помещается в кармане. Выбрав миниатюрные аккумуляторы для питания схемы, SMD — монтаж и миниатюрный динамик (например от нерабочего мобильного телефона), Вы можете получить конструкцию, размером чуть больше спичечного коробка.
Применение сверхъяркого индикатора позволяет снизить ток, потребляемый схемой. Снижение тока потребления также достигается в режиме «LoFF» — индикатор погашен, при этом включена только мигающая точка младшего разряда часов.

Индикация
Регулируемая яркость индикаторов позволяет выбрать наиболее комфортное отображение показаний (и опять же снизить энергопотребление).
В часах реализовано 9 режимов индикации. Переход по режимам осуществляется с помощью кнопок «плюс» и «минус». Перед выводом на индикацию самих показаний, на индикаторы выводится короткая подсказка названия режима. Длительность вывода подсказки — одна секунда. Применение кратковременных подсказок позволило достичь хорошей эргономичности часов. При переходах по режимам отображения (которых получилось достаточно много, для такого простого прибора, как обычные часы) не возникает путаницы, и всегда понятно, какие именно показания выведены на индикатор.


Коррекция показаний, выведенных на индикатор включается при нажатии на кнопку «Коррекция». При этом кратковременная подсказка выводится на 1/4 секунды, после чего корректируемое значение начинает мигать с частотой 2 Гц. Корректируются показания кнопками «плюс» и «минус». При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Частоты автоповтора нажатия кнопки составляют: для часов, месяцев и дня недели — 4 Гц; для минут, года и яркости индикатора — 10 Гц; для корректирующего значения — 100 Гц.
Все откорректированные значения, кроме часов, минут и секунд, записываются в EEPROM и восстанавливаются после выключения — включении питания. Секунды при коррекции обнуляются. Из всех режимов, кроме часы-минуты, минуты-секунды и LoFF организован автоматический возврат. Если в течение 10 секунд ни одна из кнопок не нажата, то часы переходят в режим отображения часов — минут.
Нажатием на кнопку «Вкл/Выкл буд.» включается/выключается будильник. Включение будильника подтверждается коротким двухтональным звуком. При включенном будильнике светится точка в младшем разряде индикатора.
В режиме «Corr» на индикатор выведена корректирующая константа, начальное значение которой 5000 микросекунд в секунду. При отставании часов константу увеличиваем на величину отставания, вычисленное в микросекундах за одну секунду. Если часы спешат, то константу уменьшаем по тому же принципу.

Данное устройство представляет из себя обычные электронные часы с будильником, но управляются они с пульта дистанционного управления на ИК лучах. Часы реализованы программно, индикация динамическая. В схеме предусмотрено резервное питание, на случай отключения эл.энергии. Будильник реализован на простой «пищалке» с встроенным генератором — buzzer.

Пульт управления реализован на микроконтроллере PIC12F629. Питается пульт от обычной батарейки для материнской платы компьютеров. Если не нажата ниодна из кнопок — микроконтроллер находится в режиме SLEEP и практически не потребляет тока. Как только кнопка нажата — микроконтроллер «просыпается» и формирует кодовую посылку на ИК светодиод.


При включении питания на дислей выводится текущее время, двоеточие мигает. Если нажать кнопку CLOCK диплей покажет время на которое установлен будильник (двоеточие не мигает), либо —:— , если будильник выключен. Повторное нажатие на кнопку CLOCK, или через 6 секунд — девайс будет опять отображать текущее время. Нажатие кнопки COR переводит устройство в режим коррекции часов, если в данный момент индицируются часы; либо в режим установки будильника, если на дисплее отображается будильник. Первое нажатие — мигают часы, кнопкой +1 устанавливаются часы, второе нажатие кнопки COR — мигают минуты — кнопкой +1 устанавливаются минуты, третье нажатие — выход из режима коррекции часов (или будильника). Если корректируется время будильника — то он автоматически включается.

Когда дисплей индицирует время установки будильника (включается кнопкой CLOCK) — нажатие кнопки +1 включает, а повторное нажатие выключает будильник, дисплей, соответственно, показывает время установки будильника или —:— (двоеточие не мигает). Если будильник выключен, то время его установки не сбрасывается.

В режиме индикации часов (двоеточие мигает) — нажатие кнопки +1 — переводит часы в «ночной» режим — в этом режиме индикатор полностью гаснет и мигает только двоеточие, что снижает энергопотребление и не создает лишней ночной подсветки. При этом нажатие любой кнопки на пульте, а также срабатывание — выводит часы из ночного режима.

Если сработал будильник — звучит звуковой сигнал в течение одной минуты, все цифры на дислее мигают. Нажатие любой кнопки на пульте управления выключают будильник (не сбрасывая времени его установки).

Для резервного питания часов, также как и в пульте управления, использована батарейка от материнской платы компьютера. Ее напряжение 3V, поэтому микроконтроллер в часах нужно применить низковольтный — PIC16LF628A. Если же применить батарейку с напряжением более 3,6V то подойдет и обычный PIC16F628A. Ну и совсем идеальный вариант — применить микроконтроллер с технолигией NANOWATT — PIC16F819 (Внимание! для этого микроконтроллера используется другая прошивка).

Вот еще один образец лабораторного оборудования — LC метр. Данный режим измерения, особенно замер L практически невозможно найти в дешевых заводских мультиметрах.

Схема данного LС метра на микроконтроллере была взята с сайта www.sites.google.com/site/vk3bhr/home/index2-html. Прибор построен на PIC микроконтроллере 16F628A, и так как я недавно приобрел программатор PIC, я решил испытать его это с помощью этого проекта.

Я убрал регулятор 7805, так как решил использовать зарядное устройство на 5 вольт от сотового телефона.

В схеме подстроичный резистор на 5 кОм, но на самом деле я поставил 10 кОм, согласно datasheet на приобретенный LCD модуль.
Все три конденсаторы 10 мкФ танталовые. Необходимо заметить что конденсатор C7 – 100мкФ на самом деле 1000мкФ.
Два конденсатора по 1000пФ конденсаторы styroflex с допустимым отклонением в 1%, индуктивная катушка 82мкГн.

Общий ток потребления с подсветкой составляет около 30мА.
Резистор R11 ограничивает ток подсветки и должен быть рассчитан в соответствии с фактически используемым LCD-модулем.

Я использовал оригинальный рисунок печатной платы в качестве отправной точки и изменил его под имеющиеся у меня компоненты.
Вот результат:




Последние две фотографии показывают LC метр в действии. На первом из них измерение емкости конденсатора 1нФ с отклонением 1%, а на втором — индуктивность 22мкГн с отклонением в 10%. Устройство очень чувствительно – то есть, с неподключенным конденсатором он показывает емкость порядка 3-5 пФ, но это устраняется путем калибровки.

Часы с небольшим 4-х цифровым индикатором. Точка между часами и минутами мигает с частотой 0,5 секунд. Можно встроить в любой предмет: в настольный календарь, в радиоприемник, в автомобиль. Расчетная погрешность – 0,00002%. На практике – за полгода ни разу не было необходимости в коррекции.

Питание 4.5 — 5 вольт, ток до 70мА. Стабилизатор напряжения находится в вилке — адаптере. Он собран на 3 ваттном трансформаторе и высокочастотном преобразователе – стабилизаторе по стандартной схеме. Для авто, конечно, трансформатор не нужен. Микросхема без радиатора, практически не греется. Разъём для блока питания 3.5мм. Кварц 4 МГц. Транзисторы n-p-n любые маломощные.

Кнопки любые. Длина толкателя кнопок выбирается исходя из требований конструкции. Можно кнопки припаять и со стороны проводников. При каждом нажатии на кнопку добавляется единичка. При удержании – счет ускоряется до разумной скорости.

Резисторы МЛТ – 0,25. R7 – R14 300 – 360 Ом. R3 – R6 1-3 кОм.
Аккумуляторы: 4 штуки из GP- 170, или подобные. При отключении сетевого напряжения они питают только микроконтроллер. 8 суток выдерживают точно, проверил.
Диоды с наименьшим падением напряжения в прямом направлении.

Платы изготовлены из одностороннего фольгированого стеклотекстолита.

До установки микроконтроллера в панель изготовленной платы, включите питание и замеряйте напряжение на 14 ножке панельки. Должно быть 4,5 – 4,8 вольт. На 5-ой ножке 0 вольт. Если вы не уверены в качестве изготовленной платы или в исправности деталей – проверьте устройство без микроконтроллера. Делается это очень просто:

  • Вставьте перемычку из оголенного провода в панельку, 1 и 14 клемму. Это значит, что +4,5 вольт с первой ноги через резистор откроет транзистор VT 2 и катод индикатора единиц часов будет соединен с нулем.
  • Любой провод присоединить одним концом к +, а другим концом поочередно касаться клемм 6,7,8,9,10,11,12,13 панельки.
  • При этом наблюдать зажигающиеся сегменты и их соответствие схеме: + на 6-ой ножке – горит сегмент «g» и так далее.
  • Переставьте перемычку в 2 и 14 клеммы панельки. Проверьте все сегменты индикатора единиц минут.
  • Перемычка 18 и 14 – проверяются десятки часов, 17 и 14 – десятки минут.

Если что-то неправильно работает – исправляйте. Если все правильно – программируйте микроконтроллер и вставляйте, при отключенном питании, в панельку.
НЕХ файл прилагается.
Включайте питание и получайте готовые часы.

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

  • PIC16F628A – 22,8 грн
  • LM2575T-5.0 – 10грн
  • FYQ 3641AS21 — 9,3грн
  • Панелька – 3грн
  • Кварц – 1,5грн

Литература:

  • Pic микроконтроллеры. Все, что вам необходимо знать. Сид Катцен.2008г.
  • PIC-микроконтроллеры. Архитектура и программирование. Майкл Предко. 2010г.
  • Pic микроконтроллеры. Практика применения. Кристиан Тавернье.2004г.
  • Разработка встроенных систем с помощью микроконтроллеров PIC. Тим Уилмсхерст. 2008г.
  • Data sheet: PIC16F628A, FYQ 3641, LM2575.
  • Самоучитель по программированию PIC контроллеров для начинающих. Евгений Корабельников. 2008г.

Ниже вы можете скачать прошивку и печатную плату в формате LAY

Список радиоэлементов
Обозначение Тип Номинал

Магазин

МК PIC 8-бит

PIC16F628A

1
Поиск в магазине
VR2 DC/DC импульсный конвертер

LM2575

1 Поиск в магазине
VT1-VT4 Биполярный транзистор

КТ315А

4
Поиск в магазине
VD1, VD3, VD4 Диод

Д310

3
Поиск в магазине
VD2 Диод Шоттки

1N5819

1
Поиск в магазине
VD5 Диодный мост

DB157

1
Поиск в магазине
С1, С2 Конденсатор 20 пФ 2
Поиск в магазине
С3 Конденсатор 0.1 мкФ 1
Поиск в магазине
С4 330 мкФ 16 В 1
Поиск в магазине
С5 Электролитический конденсатор 100 мкФ 35 В 1
Поиск в магазине
R1, R2 Резистор

10 кОм

2
Поиск в магазине
R3-R6 Резистор

1.5 кОм

4
Поиск в магазине
R7-R9, R11-R14 Резистор

300 Ом

7
Поиск в магазине
R10 Резистор

360 Ом

1

Радио схемы електроника журналы замки

Вы здесь: Главная » Схема электронных часов на pic16f628a

Схема электронных часов на pic16f628a

Схема электронных часов на pic16f628a

Предлогаю вашему вниманию схему электронных часов своими руками на микроконтроллере PIC 16F628A

 

 

 

 

 

 

 

 

 

Схема часов на микроконтроллере:

 

 

 

 

 

 

 

 

 

 


-Реализовано 2 режима отображения часы-минуты и минуты-секунды. Переключение кнопкой «Инкремент«.

-При нажатии кнопки «Коррекция» часы переходят в режим коррекции секунд (секунды обнуляются кнопкой «Инкремент«). Следующее нажатие кнопки «Коррекция» переводит часы в режим коррекции минут (минуты увеличиваются кнопкой «Инкремент«). Ещё одно нажатие кнопки «Коррекция» — переход к коррекции часов (часы увеличиваются кнопкой «Инкремент«). Следующее нажатие кнопки «Коррекция» — возврат в режим отображения часов-минут.

-При нажатии кнопки «Будильник» часы переходят в режим отображения уставки будильника. В этом режиме кнопкой «Инкремент» включаем будильник. Включение подтверждается коротким звуковым сигналом и включается мигающая точка. Корректируется уставка будильника после нажатия кнопки «Коррекция«. После первого нажатия — минуты, после второго — часы (увеличиваются кнопкой «Инкремент«). После третьего нажатия — переход в обычный режим.

-В часах реализована функция коррекции посредством подстройки константы (режим подстройки включается при удержании кнопки «Коррекция» дольше 1-й секунды). По умолчанию константа равна 1032 микросекунды в секунду. При отставании часов константу увеличиваем (кнопка «Инкремент«) на величину отставания вычисленное в микросекудах за 1 секунду. Если часы спешат, константу уменьшаем (кнопка «Будильник«) по тому же принципу.

-Возврат в обычный режим осуществляется из режимов коррекции через 3 минуты после последнего нажатия любой из кнопок.

-При срабатывании будильника подаётся звуковой сигнал, который отключается нажатием любой из кнопок или автоматически через примерно 4 минуты.

-При установке батареек соответственно схеме, часы продолжают идти при отключении от сети. Использованы 3 батарейки А3 для наручных часов.

На самой первой фотографии представлено фото часов которые собирал Олег Наконечный по данной схеме.

Источник радио строй точка ру

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

Информация о материале

Часы на микроконтроллере схема

Данные часы просто собрать за несколько часов самому.Часы сделаны на микроконтроллере PIC16F628A. Схема питается от сети и имеет резерв питания. Так же данная схема часов подойдет для начинающих радиолюбителей.

 

 

 

А вот и сама схема данных часов ниже:

Часы имеют 24 часовой формат отображения. В 1-м разряде часов сделано гашение незначащего нуля. Точность хода часов целиком зависит от частоты кварцевого резонатора. Но даже без специальных подборок кварцев и конденсаторов в тактовом генераторе — часы идут весьма точно.

Часы собраны на 2-х печатных платах, пристыкованных одна к одной под углом 90 градусов. На одной плате размещен целиком индикатор, а все остальное на другой. Элемент резервного питания выломан из китайской зажигалки со светодиодным фонариком. Удаляем светодиод, а держатель батареек устанавливаем на плату. На фотографии видно, что к батарейкам выведены обрезки выводов резисторов — они то и держут всю эту конструкцию. Конечно емкость таких батареек невелика, но когда часы питаются от сети, ток от батареек не потребляется. Они питают схему, только если нет сетевого питания. При этом питается только микроконтроллер, индикатор же от батареек не питается, поэтому гаснет, а часы продолжают ход. Кнопки управление вынесены с платы в любое удобное место корпуса. Конструкция кнопок может быть любой. Для питания от сети использован китайский БП-адаптор, в который добавлена плата с микросхемой 7805 (5-ти вольтовый стабилизатор). Вобще подойдет любой блок питания, с выходным напряжением 5В и током 150мА.

Прошивку к микроконтроллеру и печатку в формате LAY скачивайте

Простые цифровые часы с PIC16F628A и DS1307 и 7-сегментным светодиодным дисплеем

В этом новом проекте я снова использую микроконтроллер PIC16F628A. Целью являются простые цифровые часы с 7-сегментным светодиодным дисплеем, и часы не будут иметь никаких дополнительных функций — ни будильника, ни цифр секунд, ни даты. Последнее может быть добавлено в программном обеспечении. Для чипа RTC я выбрал DS1307. Для светодиодного дисплея я использовал Kingbright CC56-21SRWA.

Это схема, которую я придумал. Микроконтроллер работает со своим внутренним генератором на частоте 4 МГц, чтобы сэкономить 2 дополнительных вывода.Контакт сброса (MCLR) также используется как вход для одной из кнопок. Все сегменты подключены к PORTB, а COM подключены к PORTA. Чип RTC также подключен к PORTA.
Схема предельно проста и я собрал ее на макетке для быстрого теста:
Это сработало, как и ожидалось. Частота обновления цифр составляет около 53 Гц, а видимого мерцания нет. Из-за мультиплексирования цифры тусклее, и для компенсации этого ток через сегменты должен быть выше. Я тестировал его с разными номиналами токоограничивающих резисторов R1-R7 и ниже 220 Ом микроконтроллер начинает хулиганить — начинают мерцать некоторые цифры.220 Ом и выше вроде нормально. Две точки посередине подключены к выводу SQW DS1307. Этот вывод сконфигурирован как прямоугольный сигнал с частотой 1 Гц. Это выход с открытым стоком, поэтому для работы он должен иметь подтягивающий резистор. Я искал и нигде не нашел информации о текущих возможностях этого вывода. Пробовал на 330 и 470 Ом, не сгорел 🙂 На всякий случай оставил 470 Ом — он чуть тусклее остальных сегментов, но все равно хорошо виден.
Есть две кнопки для настройки времени: одна для часов и одна для минут.
Остался один неиспользуемый пин — RB7, который можно использовать для дополнительной функциональности. Например, можно подключить зуммер и добавить в программное обеспечение функцию будильника.

Программное обеспечение написано и скомпилировано с помощью MikroC Pro и использует встроенную программную библиотеку I2C для связи с чипом RTC. Если кто-то хочет использовать программное обеспечение MPLAB для компиляции кода, он должен написать свою собственную функциональность I2C с нуля.
Вот короткое видео, демонстрирующее, как это работает:

Программный код и HEX-файл: DigitalClock
Если вы используете отдельное программное обеспечение PICkit 3 для загрузки HEX-кода в микроконтроллер, то в меню «Инструменты» установите флажок «Использовать ввод первой программы VPP».

Обновление: 30 июня 2020 г.
Эти часы (с улучшенной схемой) можно приобрести на tindie.com

Таймер

0 и PIC16F628A

Джона Уайлдера

Некоторых смущает встроенный в PIC таймер. Но не волнуйтесь… это, вероятно, одно из самых простых встроенных периферийных устройств для использования с PIC. В этой статье мы будем использовать PIC16F628A в качестве примера того, почему это так.

Таймер 0 (TMR0) — это один из трех таймеров, доступных на 16F628A, который работает постоянно — его невозможно отключить.По сути, это 8-битный регистр в SFR, и источник тактового сигнала управляет его значением. Источником тактового сигнала для TMR0 может быть либо внешний стробирующий сигнал, подаваемый на контакт RA4/T0CKI (T0CKI = тактовый вход таймера 0), либо внутренний тактовый сигнал командного цикла. При работе с внешним стробоскопом это может быть счетчик, который «считает» строб-импульсы внешнего источника стробоскопа. При работе с часами командного цикла он работает как таймер. По этой причине иногда можно услышать, как инженеры называют TMR0 «таймером/счетчиком».

Значение, находящееся в регистре TMR0, начинается с 0x00, а затем увеличивается на единицу при каждом переходе источника тактового сигнала с низкого уровня на высокий. Вы также можете настроить его на увеличение при переходе от высокого к низкому или от низкого к высокому с помощью внешнего источника синхронизации. По сути, это просто регистр, который подсчитывает импульсы от одного из двух возможных источников тактовых импульсов до 0xFF (десятичное число 255). В этом примере мы будем использовать часы инструкций, работающие как таймер.

Тактовый генератор команд работает на частоте 1/4 частоты Fosc.Это означает, что если Fosc = 4 МГц, наши часы инструкций работают на частоте 1 МГц, или одна инструкция в микросекунду. В этом сценарии — при условии, что мы не назначаем предварительный делитель TM — значение TMR0 увеличивается на каждый импульс тактового сигнала инструкции. При тактовой частоте инструкции 1 МГц это увеличивает значение в регистре TMR0 один раз в микросекунду (1/μ).

Поскольку размер регистра TMR0 составляет всего 8 бит, максимальное значение, до которого может быть увеличено значение TMR0, равно 0xFF или десятичному числу 255. В этот момент оно будет сброшено до нуля при следующем тактовом импульсе.Как только происходит это переключение, в регистре INTCON устанавливается флаг прерывания Таймера 0 (T0IF). Этот флаг должен быть сброшен в программном обеспечении.

Поскольку TMR0 в настоящее время работает с одним приращением на мк, это означает, что обновление происходит, и флаг T0IF устанавливается один раз каждые 256 мк (0x00–0xFF или 0–255 для 256 приращений). Если мы хотим знать, когда прошел период 256 мк, мы можем очистить TMR0, очистить флаг T0IF, затем опросить флаг прерывания T0IF, пока T0IF не станет высоким (произошло опрокидывание), и продолжить нашу программу.

Конечно, таймер не был бы полезен, если бы не было способа замедлить его работу до разных скоростей приращения. Это работа «прескейлера». Предварительный делитель позволяет нам предварительно масштабировать таймер таким образом, чтобы вместо того, чтобы увеличивать его при каждом тактовом импульсе, мы могли увеличивать его каждые два тактовых импульса, каждые четыре, каждые восемь и т. д. вплоть до каждых 256 тактовых импульсов. Если бы мы установили предварительный делитель на 1:256 с тактовой частотой команд 1 МГц, таймер увеличивался бы один раз каждые 256 микрон. Поскольку наш регистр TMR0 может считать до 256, он будет подсчитывать, сколько раз период 256 мк проходит до 256 раз.Это означает, что T0IF будет устанавливаться каждые 65,5 мс (миллисекунды… 256 мкс x 256 = 65,5 мс).

Четыре регистра TMR0
С TMR0 связаны четыре регистра: TMR0, OPTION_REG, INTCON и TRISA. Давайте рассмотрим это подробно.

TMRo
Регистр TMR0 содержит значение, которое увеличивается источником синхронизации. Любая запись в этот регистр (например, clrf TMR0, movwf TMR0, bsf TMR0, X) также очистит предварительный делитель обратно до предварительного масштабирования 1:2. Это означает, что вам придется сбрасывать предварительный делитель обратно в исходное положение каждый раз, когда вы записываете в регистр TMR0, если вы установили его где-либо, кроме 1:2.

OPTION_REG
____
| РБПУ |ИНТЕДГ| Т0КС | Т0СЭ | СРП | PS2 | ПС1 | ПС0 |

Регистр OPTION содержит управляющие биты для следующего:

  • Источник синхронизации таймера 0 (T0CS)
  • Бит выбора исходного фронта таймера 0 (TOSE)
  • Бит назначения предварительного делителя (PSA)
  • Биты выбора скорости предварительного делителя (PS2-PS0)

T0CS — выбирает источник синхронизации для TMR0. По умолчанию 1/T0CKI. Очистка этого бита выберет тактовый сигнал инструкции в качестве источника тактового сигнала TMR0.

T0SE — выбирает, будет ли TMR0 увеличиваться по переднему или заднему фронту T0CKI. По умолчанию 1/приращение по заднему фронту. Применяется только тогда, когда T0CKI является источником синхронизации.

PSA — устанавливает, назначен ли прескалер TMR0 или сторожевому таймеру. По умолчанию 1/пределитель назначен WDT. При назначении WDT TMR0 работает с предмасштабированием 1:1 (увеличивается при каждом импульсе источника тактового сигнала).

PS2-PS0 — устанавливает скорость предварительного делителя в диапазоне от 1:2 до 1:256 в значениях, кратных битам.По умолчанию 111/1:256 (1:128, если назначен WDT).


Настройка TMR0 с тактовой частотой инструкций в качестве источника тактовой частоты и предварительным делителем 1:4

 

INTCON
Регистр управления прерываниями INTCON содержит как бит управления прерыванием TMR0 (T0IE), так и бит флага прерывания TMR0 (T0IF). Если прерывание TMR0 включено (T0IE = 1…отключено по умолчанию), программный счетчик перейдет к коду обработчика прерывания при переполнении TMR0, когда будет установлен T0IF (T0IF должен быть очищен в программном обеспечении перед выходом из прерывания).Однако, поскольку T0IF продолжает нормально работать независимо от того, включено или отключено прерывание TMR0, оно всегда доступно для опроса, если вы не хотите, чтобы TMR0 вызывал прерывание.


Настройка прерывания TMR0

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

 

TRISA
Регистр TRISA содержит бит направления порта для RA4/T0CKI.Чтобы настроить RA4 в качестве входа источника тактового сигнала TMR0, необходимо установить бит 4 TRISA, чтобы настроить его в качестве входа.


Полная настройка TMR0 с прерыванием, тактовым сигналом инструкций в качестве источника тактового сигнала и предварительным делителем 1:4

 

Если мы опустим две нижние строки кода, чтобы не работать с прерыванием TMR0, мы все равно можем опросить флаг прерывания TMR0, чтобы узнать, когда произойдет переполнение:

 

Использование TMR0 в качестве счетчика
Вы также можете настроить TMR0 в качестве счетчика импульсов.Для этого вы настраиваете T0CKI в качестве источника тактового сигнала, устанавливая бит T0CS в OPTION_REG. Бит T0SE в OPTION_REG будет управлять тем, увеличивается ли значение регистра TMR0 по заднему фронту источника импульсов (1) или по нарастающему фронту источника импульсов (0).

. Вы можете реализовать один из двух других аппаратных таймеров для установки интервала выборки или сделать это в программном обеспечении с циклами задержки. Настройте код так, чтобы он вызывал цикл задержки, после чего производится выборка TMR0, чтобы увидеть, сколько импульсов было подсчитано в течение установленного интервала задержки.

И это все, что нужно знать о TMR0. Простой не так ли?


Об авторе
Джон Уайлдер — внештатный инженер-электронщик и энтузиаст электроники с более чем 20-летним стажем. Он провел четыре года в ВМС США в качестве техника по авиационной электронике. Джон также играет на гитаре с 13 лет и начал интегрировать электронику и музыку с 15 лет. Джон построил свой первый ламповый усилитель в 17 лет. «Музыкальная электроника», — говорит Джон, — это его любовь и страсть.

Джон также является частым участником и страстным членом Electro-Tech-Online, сообщества по электротехнике. В Electro-Tech-Online вы можете задавать вопросы и получать ответы от своих коллег-инженеров по всем вопросам: от микроконтроллеров, возобновляемых источников энергии и автомобильной электроники до моделирования и проектирования схем. Кроме того, существуют специализированные форумы MCU для 8051/8951, AVR, ARM, Arduino, Oshonsoft Project, а также репозиторий кода, где участники делятся фрагментами кода.

Следите за новостями Джона в Твиттере: @PICmcuguy.

 

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

— Есть ли проблема с использованием функций задержки при использовании внутреннего генератора в PIC?

Сводка:

Вам необходимо установить OSCF (бит 3) на 0 в регистре PCON в вашем коде (т. между 31,4 кГц и 78.62 кГц) вместо частоты включения INTOSC по умолчанию, равной 4 МГц.

Детали:

Я решил установить внутренний генератор на минимально возможную частоту (48 кГц) для снижения энергопотребления, и я указал это в мастере, поэтому в файле .h есть строка #use delay(internal=48kHz).

Проблема в том, что ни одна из вещей, которые вы перечисляете, на самом деле не устанавливает аппаратную часть INTOSC на 48 кГц. Судя по тому, что вы сказали, ваше программное обеспечение предполагает, что ЦП будет работать на частоте 48 кГц, но ваше оборудование по-прежнему будет работать на частоте INTOSC по умолчанию 4 МГц.

программа работала в Proteus, как и предполагалось, но она работала примерно в 85 раз быстрее, чем когда я пробовал ее на плате.

Да, я этого и ожидаю.

85 быстрее x 48 кГц = 4 МГц (прибл.)

Этот результат предполагает, что ваш MCU был , на самом деле все еще работал на частоте INTOSC по умолчанию, равной 4 МГц.

Важным моментом является то, что вы не можете настроить этот PIC для работы на частоте 48 кГц при включении питания . Если вы установите биты конфигурации (a.к.а. Предохранители) к одному из двух вариантов настройки INTOSC, тогда MCU будет использовать внутреннюю частоту 4 МГц при включении питания.

Затем, когда вы хотите переключить его на 48 кГц (возможно, в начале вашего main() , но, возможно, в другом месте вашего кода — выбор за вами), вы затем устанавливаете OSCF (бит 3) на 0 в регистре PCON этот бит переключает частоту INTOSC с 4 МГц на 48 кГц (после короткого перехода переключения).



Подробнее см. в разделе 14.2.8 «СПЕЦИАЛЬНАЯ ФУНКЦИЯ: РЕЖИМЫ ДВУХСКОРОСТНОГО ГЕНЕРАТОРА» на стр. 101 технического описания PIC16F628A.



Также обратите внимание, что в техническом описании не указана точность тактовой частоты 48 кГц (там указана только точность тактовой частоты 4 МГц). Однако опечатки PIC16F628A показывают, что тактовая частота 48 кГц может фактически варьироваться от 31,4 кГц до 78,62 кГц.



PIC16F628 18-контактный микроконтроллер PIC в Пакистане

• 16 контактов ввода/вывода с индивидуальным управлением направлением

• Сильноточный приемник/источник для прямого привода светодиодов

• Модуль аналогового компаратора с:

– Два аналоговых компаратора

— Программируемый встроенный источник опорного напряжения

(VREF) модуль

— Выбираемая внутренняя или внешняя ссылка

– Выходы компаратора доступны извне

• Timer0: 8-битный таймер/счетчик с 8-битным

программируемый прескалер

• Таймер 1: 16-разрядный таймер/счетчик с внешним кристаллом/

тактовая частота

• Таймер2: 8-битный таймер/счетчик с 8-битным периодом

Регистр

, прескалер и постделитель

• Захват, сравнение, модуль ШИМ:

— 16-битный захват/сравнение

— 10-битный ШИМ

• Адресный универсальный синхронный/асинхронный

Приемник/передатчик USART/SCI

 

 

Высокопроизводительный RISC-процессор:

• Рабочие скорости от постоянного тока – 20 МГц

• Возможность прерывания

• 8-уровневый аппаратный стек

• Режимы прямой, косвенной и относительной адресации

• 35 инструкций, состоящих из одного слова:

— Все инструкции одного цикла, кроме ответвлений

Специальные функции микроконтроллера:

• Опции внутреннего и внешнего генератора:

— Прецизионный внутренний заводской генератор 4 МГц

откалиброван до ±1%

— Маломощный внутренний генератор 48 кГц

— Поддержка внешнего генератора для кристаллов и

резонаторов

• Энергосберегающий спящий режим

• Программируемые слабые подтяжки на PORTB

• Мультиплексированный основной сброс/входной контакт

• Сторожевой таймер с независимым генератором для

надежная работа

• Программирование низкого напряжения

• Внутрисхемное последовательное программирование™ (через два контакта)

• Программируемая кодовая защита

• Сброс при снижении напряжения

• Сброс при включении

• Таймер включения питания и таймер запуска генератора

• Широкий диапазон рабочего напряжения (2.0-5,5В)

• Промышленный и расширенный диапазон температур

• Ячейка флэш-памяти/EEPROM повышенной надежности:

— ресурс флэш-памяти на 100 000 операций записи

— 1 000 000 операций записи EEPROM

– 40 лет хранения данных

Характеристики с низким энергопотреблением:

• Ток в режиме ожидания:

— 100 нА при 2,0 В, типичный

• Рабочий ток:

— 12 мкА при 32 кГц, 2,0 В, типичный

— 120 мкА при 1 МГц, 2,0 В, тип.

• Ток сторожевого таймера:

– 1 мкА при 2.0 В, типичный

• Ток генератора таймера 1:

— 1,2 мкА при 32 кГц, 2,0 В, типичный

• Двухскоростной внутренний осциллятор:

— время работы выбирается в диапазоне от 4 МГц до 48 кГц

— выход из спящего режима за 4 мкс, 3,0 В, типичный

PIC16F628A-I/SS от Microchip Technology | Микропроцессоры

Соответствует EAR99 Активный RISC 20 2 2 3
EU RoHS
ECCN (США)
Часть Статус
HTS 8542.31.00.01
Автомобили Нет
РРАР Нет
Фамилия PIC16
Набор команд архитектуры
Устройство Core PIC
Pic
Максимальная частота ЦП (МГц) 20
Максимальная часовая скорость (МГц) 20
шина данных ширина (бит) 8
Программа памяти

6

Flash
Программный размер памяти 3.5KB
RAM Размер 224В
Максимальная Expanded Размер памяти 64KB
программируемость Да
Process Technology CMOS
Тип интерфейса SCI/USART
Количество входов/выходов 16
№таймеров 3
ШИМ 1
УСАПП 1
UART 0
USB 0
SPI 0
I2C 0
I2S 0
CAN 0
Ethernet 0
watchdog 1
Аналоговые компараторы 2
3 3
Типичное рабочее напряжение по эксплуатации (V) 3.3 | 5
Максимальное напряжение эксплуатации (V) 5.5

8

Максимальная рассеивание мощности (MW) 800
Минимальная рабочая температура (° C) — 40
Максимальная рабочая температура (° C) 85 95
Промышленный
Упаковка Tube 20
20
Стандартное имя пакета SOP
SSOP SSOP Mounting Mountain 9004 Поверхностная гора
Высота упаковки 1.75
Пакет Длина 7,2
Пакет Ширина 5,3
ПХБ изменился 20
Свинец Форма крыло чайки

Чтобы сделать ваш процессор более универсальным, используйте этот фантастический микроконтроллер PIC16F628A-I/SS от Microchip Technology. Этот микроконтроллер имеет минимальную рабочую температуру -40 °C и максимальную 85 °C.Его максимальная тактовая частота составляет 20 МГц. Это 8-битный процессор. Это устройство имеет типичное рабочее напряжение питания 3,3 | 5 В. Минимальное рабочее напряжение питания 3 В, максимальное 5,5 В. Это устройство основано на архитектуре ядра PIC. Объем флэш-памяти программ составляет 3,5 КБ.

Таймер от 00 до 99 минут с использованием схемы микроконтроллера PIC16F628A

это может быть хорошим практическим проектом для новичков, которые только начали изучать встраиваемую электронику. Речь идет о создании очень простого программируемого цифрового таймера с использованием микроконтроллера PIC16F628A.Продолжительность таймера может быть установлена ​​от 0 до 99 минут.

Как я упоминал ранее, в этом проекте используется микроконтроллер PIC16F628A, работающий на тактовой частоте 4,0 МГц с использованием внешнего кристалла. ЖК-дисплей с разрешением 16×2 символов на базе HD44780 является основным дисплеем проекта, где вы можете наблюдать и устанавливать продолжительность таймера с помощью входов тактового переключателя. К контактам RB0 (Пуск/Стоп), RB1 (Единица) и RB2 (Десять) подключены три тактовых переключателя. Вы можете выбрать интервал таймера от 0 до 99 минут с помощью переключателей единиц и десяти минут.Переключатель Start/Stop предназначен для включения и выключения таймера. Когда таймер включается, на выводе RA3 появляется высокий логический уровень, который можно использовать для включения реле. Принципиальная схема этого проекта описана ниже.

Когда устройство включено, микроконтроллер инициализирует ЖК-дисплей и показывает следующее сообщение. Таймер изначально выключен, как и светодиод или реле, в зависимости от того, что подключено к контакту RA3. Вы можете установить продолжительность времени в диапазоне от 00 до 99 минут (с шагом 1 минута) с помощью тактовых переключателей Unit и Ten.Каждое нажатие переключателя будет увеличивать соответствующую цифру времени.

Когда нужное время установлено, нажмите переключатель Старт/Стоп, чтобы включить таймер. На контакте RA3 устанавливается высокий уровень (светодиод горит), и начинается обратный отсчет. Когда таймер включен, оставшееся время также отображается на ЖК-дисплее. По истечении времени таймер останавливается и светодиод гаснет. Вы можете прервать и остановить таймер в любое время, еще раз нажав переключатель Start/Stop. Прошивка для PIC разработана с использованием компилятора mikroC Pro for PIC.Использование таймеров избегается для простоты. Временные задержки создаются с помощью функции MikroC Delay_ms(), которая дает достаточно точные временные задержки.

Скачать исходный код Mikroc и HEX-файл


Введение в PIC16F628a — Инженерные проекты

Привет ребята! Я вернулся, чтобы дать вам ежедневную дозу ценной информации, чтобы вы продолжали возвращаться за тем, что мы можем предложить. Сегодня я расскажу подробности о Introduction to PIC16F628a.  Определяется как автономный 18-контактный микроконтроллер PIC, который поставляется с памятью, процессором, периферийными устройствами и в основном используется для встроенных систем и приложений.

Микроконтроллеры всегда остаются главным приоритетом для специалистов, где главной задачей является автоматизация. До изобретения микроконтроллеров микропроцессоры широко использовались для выполнения различных функций, связанных с промышленной автоматизацией и обработкой данных. Оба они работают одинаково в той или иной степени, однако есть некоторые исключения, т.е.е. микропроцессоры не поставляются с ПЗУ, ОЗУ и другими периферийными устройствами, нам нужно добавить их извне, чтобы они работали как микроконтроллер, однако микроконтроллер поставляется со всеми периферийными устройствами на одном кристалле, нам не нужно добавлять их извне; именно это делает его компактным по сравнению с громоздким микропроцессором.

В этом уроке я расскажу обо всем, что связано с PIC16F628a, его основных функциях, распиновке, работе и приложениях. Давайте прыгнем прямо и закрепим все, что вам нужно знать.

Знакомство с PIC16F628a
  • PIC16F628a представляет собой крошечный 18-контактный чип, который содержит процессор, память, контакты ввода-вывода и другие периферийные устройства. автоматизация.
  • Это недорогой, высокопроизводительный 8-разрядный микроконтроллер на базе флэш-памяти CMOS, который в равной степени совместим с устройствами PIC16F628, PIC16C5X, PIC16C62XA и PIC12CXXX.
  • PIC16F628a поставляется со 128 байтами памяти данных EEPROM, внутренним генератором 4 МГц, двумя 8-битными и одним 16-битным таймером, USART, ШИМ, двумя компараторами и программируемым опорным низким напряжением, что делает его подходящим для бытовой техники, автомобилей, промышленности и потребителей. Приложения.
  • Процессор PIC основан на передовой архитектуре RISC и поставляется с 35 наборами инструкций, которые просты в использовании и настройке.

  • Как и некоторые контроллеры PIC, PIC16F628a имеет рабочий диапазон от 2 до 5,5 В при температуре от -40 до 125 °C.
  • Размер программируемой памяти составляет 3,5 КБ, а SRAM — 224 байта.
  • Эта модель PIC способна хранить 2048 слов памяти программ, поэтому максимальная длина программы не может превышать 2048 инструкций, где каждое слово определяет одну инструкцию.
  • Для выполнения каждой инструкции требуется четыре такта, за исключением инструкций перехода и условных инструкций, для которых может потребоваться 8 тактов.
Распиновка PIC16F628a

На следующем рисунке показана распиновка PIC16F628a.

  • Глядя на распиновку контроллера выше, вы можете ясно ожидать, что большинство контактов на левой стороне могут использоваться для нескольких целей, однако указание любого контакта для конкретной функции исключает использование этого контакта для другой. цель.
  • В этой модели есть два порта, известные как порт A и порт B.
  • Все эти контакты являются двунаправленными контактами ввода-вывода, кроме Контакт № 14 и Контакт № 5 , которые являются контактами питания и заземления соответственно.
  • Контакт № 7   и Контакт № 8 используются для последовательной связи, где Rx — это приемный контакт USART, используемый для приема последовательных данных, а Tx — передающий контакт USART, используемый для отправки последовательных данных. .
  • Штифт № 4 можно использовать тремя способами, т.е.  MCLR (Master Clear)  , для которого требуется постоянное питание 5 В, напряжение не должно превышать Vdd. При настройке в качестве MCLR этот вывод ведет себя как активный низкий уровень сброса устройства. Он также используется в качестве входного порта и входа напряжения программирования.
  • Контакты № 15 и 16 известны как  OSC2 (Генератор 2) и  OSC1 (Генератор 1), , к которым мы можем подключить внешний генератор с частотой около 20 МГц. Контакт 16 является входом для кварцевого генератора, а контакт 15 действует как выход для генератора.
  • Оба контакта , контакт № 2 и , контакт № 3 , являются контактами аналогового компаратора, где контакт 3 также используется в качестве тактового входа для Timer0.
  • Контакт № 6 — это двунаправленный контакт ввода-вывода, который можно использовать для внешнего прерывания.
  • Контакт № 9 используется для захвата, сравнения и ШИМ и может программироваться программно.
  • Контакт № 10 — это контакт входа программирования низкого напряжения, который также может использоваться для смены прерывания на контакте.Важно отметить, что при настройке программирования низкого напряжения отключаются как «слабые подтягивающие резисторы, так и прерывание по смене контакта».
  • Если вы новичок в микроконтроллерах и чувствуете трудности с поиском правильного подхода к практическому опыту работы с контроллером, вы можете взглянуть на Введение в микроконтроллеры, где я изложил все, что вам нужно знать, и с небольшими усилиями вы можете стать довольно изящным о контроллере и оптимизировать проекты в реальном времени в соответствии с вашими потребностями и требованиями.

Структура памяти  

  • Структура памяти немного отличается, поскольку каждая ячейка памяти рассматривается как регистр, к которому можно получить доступ по его адресу.
  • Важно отметить, что не все регистры доступны все время, а память разбита на четыре банка по 128 регистров, и в каждый момент времени можно получить доступ только к одному обратному.
  • Первые 32 регистра в каждом банке известны как регистры специального назначения, которые можно использовать для управления процессором и контактами ввода/вывода.Последние 16 регистров, доступных в каждом банке, являются общими для всех банков, значения которых могут быть доступны в любое время, независимо от того, какой конкретный банк используется.
  • Существует единственный рабочий регистр, известный как «W», который в основном используется для хранения измененных значений различных функций, используемых в контроллере.
  • Объем памяти этой модели немного меньше, чем у других контроллеров, доступных на рынке, однако вы можете скомпилировать функцию, требующую минимальных инструкций и скорости обработки.Если вы собираетесь работать с высокой скоростью обработки и большим объемом памяти, то вам необходимо рассмотреть возможность работы с PIC16F877a.
Основные характеристики

Эта модель PIC-контроллера очень удобна для встраиваемых проектов и обладает некоторыми ценными функциями, которые ставят этот совет перед многими контроллерами в сообществе PIC.

Специальные функции микроконтроллера
  • Низковольтное программирование, при котором микросхема программируется с использованием рабочего напряжения устройства
  • Низкоскоростной режим часов
  • Программируемый сброс при снижении напряжения (BOR)
  • Сброс при включении
  • Сторожевой таймер с независимым генератором для надежной работы
  • Выбираемые опции осциллятора
  • Программируемая кодовая защита
  • Мультиплексированный основной сброс/входной контакт
  • Промышленный температурный диапазон


Ввод/вывод и пакеты
  • 15 контактов ввода/вывода с индивидуальным управлением направлением
  • 18-контактный корпус DIP и SMD

Высокопроизводительный ЦП RISC
  • Всего 35 однословных инструкций для заучивания
  • Все инструкции выполняются за один цикл (1 мкс), за исключением ветвей программы
  • Работа на частоте 20 МГц с внешним генератором
  • Внутренний генератор с частотой 4 МГц, который выдает тактовый сигнал на определенной частоте, используя постоянное напряжение.Его можно заставить работать на частоте 48 кГц для экономии энергии и отладки
  • 2 КБ флэш-памяти программ
  • 224 байта оперативной памяти
  • 128 байт EEPROM
  • Внутрисхемное последовательное программирование
  • 1 000 000 циклов записи EEPROM
  • 100 000 операций записи Flash Endurance
  • Таймер запуска и включения генератора
  • Широкий диапазон рабочего напряжения от 2 до 5,5 В


Периферийные устройства
  • Универсальный синхронный/асинхронный приемник/передатчик (USART)
  • Один 16-битный таймер/счетчик
  • Два 8-битных таймера/счетчика (TMR0,TMR2)
  • Модуль захвата/сравнения ШИМ (CCP)
  • Сильноточный источник/потребитель для прямого привода светодиодов
  • Два аналоговых компаратора
  • Программируемые слабые подтяжки на PORTB
Технология CMOS
  • Высокоскоростная технология CMOS FLASH
  • Полностью статическая конструкция
  • Энергосберегающий спящий режим
  • 40-летнее хранение данных
  • Высокопрочная флэш-ячейка
  • Программируемый компилятор VREF
Компилятор PIC16F628a
  • Компилятор MPLAB C18 — это стандартный компилятор, используемый для микроконтроллеров PIC.Вы можете получить этот компилятор онлайн с официального сайта Microchip.
  • Сторонние приложения также доступны для компиляции программы, в которой MikroC Pro For PIC опережает другие компиляторы, доступные на рынке.
  • Вы должны проверить этот список 3 лучших компиляторов PIC C, где вы можете выбрать любой компилятор в зависимости от ваших потребностей и требований.
  • Код написан в компиляторе PIC, который компилирует код и генерирует шестнадцатеричный файл, который загружается в микроконтроллер PIC.
Приложения
  • В основном используется во встроенных системах
  • Приложения для промышленной автоматизации и обработки
  • Системы домашней автоматизации и безопасности
  • Блоки обработки данных
  • Робототехника

На сегодня все. Надеюсь, я предоставил вам все, что вам нужно знать об этом контроллере. Если вы не уверены или у вас есть какие-либо вопросы, вы можете задать их мне в разделе комментариев ниже.

Добавить комментарий

Ваш адрес email не будет опубликован.