Частотомер на pic16f628

Частотомер на PIC16F628 своими руками | Мастер Винтик. Всё своими руками!

Одним из приборов-помощников радиолюбителя должен быть частотомер. С его помощью легко обнаружить неисправность генератора, измерить и подстроить частоту. Генераторы очень часто встречаются в схемах. Это приемники и передатчики, часы и частотомеры, металлоискатели и различные автоматы световых эффектов…

Особенно удобно пользоваться частотомером для подстройки частоты, например при перестройки радиостанций, приёмников или настройки металлоискателя.

Один из таких несложных наборов я недорого приобрёл на сайте китайского магазина здесь: GEARBEST.com

Набор содержит:

  •  1 x PCB board (печатная плата);
  •  1 x микроконтроллер PIC16F628A;
  •  9 x 1 кОм резистор;
  •  2 x 10 кОм резистор;
  •  1 x 100 кОм резистор;
  •  4 x диоды;
  •  3 x транзисторы S9014, 7550, S9018;
  •  4 x конденсаторы;
  •  1 x переменный конденсатор;
  •  1 x кнопка;
  •  1 x DC разъём;
  •  1 x 20МГц кварц;
  •  5 x цифровые индикаторы.

Описание частотомера

  • Диапазон измеряемых частот: от 1 Гц до 50 МГц;
  • Позволяет измерять частоты кварцевых резонаторов;
  • Точность разрешение 5 (например 0,0050 кГц; 4,5765 МГц; 11,059 МГц);
  • Автоматическое переключение диапазонов измерения частоты;
  • Режим энергосбережения (если нет изменения показаний частоты — автоматически выключается дисплей и на короткое время включается;
  • Для питания Вы можете использовать интерфейс USB или внешний источник питания от 5 до 9 В;
  • Потребляемый ток в режиме ожидания — 11 мА

Схема содержит небольшое количество элементов. Установка проста — все компоненты впаиваются согласно надписям на печатной плате.

Мелкие радиодетали, разъемы и т.п. упакованы в небольшие пакетики с защелкой. Индикаторы, микросхема и её панелька для исключения повреждений ножек вставлены в пенопласт.

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

Напряжение на выводах микроконтроллера

(измерения мультиметром)

  1. 4,0
  2. 4,0
  3. 0,3
  4. 5,0
  5. 0,98
  6. 0,98
  7. 0,98
  8. 0,98
  9. 0,98
  10. 0,98
  11. 5
  12. 1,26
  13. 2,13
  14. 4
  15. 4,12

Генератор для проверки кварцев

Приступаем к сборке

Высыпаем на стол содержимое пакета. Внутри находятся печатная плата, сопротивления, конденсаторы, диоды, транзисторы, разъемы, микросхема с панелькой и индикаторы.

Ну и вид на весь набор в полностью разложенном виде.

Теперь можно перейти к собственно сборке данного конструктора, а заодно попробовать разобраться, на сколько это сложно.

Я начинал сборку с установки пассивных элементов: резисторов, конденсаторов и разъёмов. При монтаже резисторов следует немного узнать об их цветовой маркировке из предыдущей статьи.

Дело в том, что резисторы очень мелкие, а при таких размерах цветовая маркировка очень плохо читается (чем меньше площадь закрашенного участка, тем сложнее определить цвет) и поэтому также посоветую просто измерить сопротивление резисторов при помощи мультиметра. И результат будем знать и за одно его исправность.

Конденсаторы маркируются также как и резисторы. Первые две цифры — число, третья цифра — количество нулей после числа. Получившийся результат равен емкости в пикофарадах. Но на этой плате есть конденсаторы, не попадающие под эту маркировку, это номиналы 1, 3 и 22 пФ.

Они маркируются просто указанием емкости так как емкость меньше 100 пФ, т.е. меньше трехзначного числа.

Резисторы и керамические конденсаторы можно впаивать любой стороной — здесь полярности нет.

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

Немного рассмотрим такой компонент, как —  подстроечный конденсатор. Это конденсатор, ёмкость которого можно изменять в небольших пределах (обычно 10-50пФ). Это элемент тоже неполярный, но иногда имеет значение как его впаивать.

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

Чтобы было меньше влияния отвертки на параметры цепи, надо впаивать его так, чтобы вывод соединенный со шлицом, соединялся с общей шиной платы.

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

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

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

Длительность пайки каждой ножки не должна превышать 2 сек! Между пайками ножек должно пройти не менее 3 сек на остывание.

Ну вот собственно и всё!

Теперь осталось смыть остатки канифоли щёткой со спиртом.

Теперь красивее

Источник: http://www.MasterVintik.ru/chastotomer-na-pic16f628-svoimi-rukami/

Схема частотомера на микроконтроллере с PIC16F628A. Описание

Некоторое время назад я сделал аудио-генератор с частотомером, который работал очень хорошо, но я его продал, и теперь я делаю новый. Частотомер в предыдущей конструкции был сделан на микросхемах КМОП логики, но поскольку на данный момент у меня есть программатор PIC микроконтроллеров — частотомер построен именно на микроконтроллере.

Как обычно идею для будущей конструкции я искал в интернете. Оригинальная идея пришла от этого проекта: Частотомер на PIC16F628A и ЖК индикаторе.

Как вы можете заметить – схема очень простая и в то же время элегантная.

Но я хотел использовать 7-сегментный светодиодный дисплей, а не жидкокристаллический, так что я нашел еще один интересный проект: Простой 100MHz счетчик частоты, в котором применен 6-разрядный светодиодный дисплей.

Описание частотомера

Конечно же, объединение двух проектов в один не простая задача. Прежде всего, я хотел чтобы это был частотомер на микроконтроллере, и не имел дополнительных микросхем. Помимо этого я выбрал 16F628A, и потому один из выводов ( порта RA5) может быть использованы только в качестве входа.

Для мультиплексного управление 6 цифрами 7-сегментного дисплея требуется 7 + 6 = 13 выходов.

Микроконтроллер16F628A имеет 16 выводов, два из которых используются для кварцевого генератора, один для входного сигнала и еще один может быть использован только для входа. Так что у нас остается только 12 свободных выводов.

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

В схеме частотомера применено два 3-разрядных 7-сегментных дисплея с общим катодом типа BC56-12SRWA . Цифры 2..5 включаются, когда соответствующие выводы устанавливаются на низком уровне. Когда на всех этих выводах находится высокий уровень, транзистор Q1 открывается и загорается первая цифра. Ток потребления для каждого сегмента составляет около 6-7mA.

Следует отметить, что выводы, связанные с общими катодами теоретически могут потреблять до 50 мА, если все сегменты светятся. Это, конечно же, немного выше характеристик микроконтроллера. Но так как каждая цифра включается на очень короткое время, то это безопасно. Вся схема частотомера потребляет в среднем около 30-40 мА.

Микроконтроллер тактируется от внутреннего 4 МГц генератора. Таймер1 использует внешний кварцевый генератор с частотой 32768Hz для установки односекундного интервала. Timer0 используется для подсчета входного сигнал на выводе RA4.

И, наконец, Таймер2 используется для обновлений цифры. Частотомер может измерять  частоту от 920 до 930 кГц, что для любительских целей вполне достаточно. В качестве источника питания используется стабилизатор напряжения 78L05.

Скачать прошивку и рисунок печатной платы (скачено: 1 021)

http://diyfan.blogspot.ro

Источник: http://fornk.ru/1679-sxema-chastotomera-na-mikrokontrollere-s-pic16f628a/

Простой частотомер на PIC16F628

0Спам20 modmc   (08-Ноя-2017 12:41:52)Доброго времени суток!Я заказывал на Алиэкспрессе такой вариант частотомера: https://ru.aliexpress.com/item/DIY-Digital-LED-1Hz-50MHz-Crystal-Oscillator-Frequency-Counter-Meter-Tester-Kit-M 25/32818347159.html?spm=a2g0s.issue_5ptha.0.0.l4GvoT  Приобреталпоследовательно 3 шт, у трех разных продавцов. Пытался найти контроллер с прошивкой, позволяющей выход в меню (мне необходимо обеспечить вычет ПЧ радиоприемника). К сожалению, ни один контроллер не позволил это сделать. Придется перепрошивать PIC . Столкнулся с ещёодной проблемой после приобретения – сборки третьего частотомера-измерителя кварцев. Включаю, изначальнозасвечиваются слева на право три точки и три чёрточки по середине, затем выдаёт четыре восьмёрки… и всё. При нажатии кнопки всё гаснет и начинается заново. Перебрасывалконтроллеры с платы на плату.  Прошивка контроллеров хоть и кривая у всех трех (повторюсь, ни у одного нет выхода в меню с помощью короткого либо длительного нажатия кнопки), но все 3 контроллера работают, хотя и с минимальным функционалом (только измеряют частоту) на двух платах, на третьей все 3 ведут себя одинаково “…засвечиваются слева на право три точки и три чёрточки по середине, затем выдаёт четыре восьмёрки… ивсё”.Прошу помощи! С уважением, Игорь.

0Спам18 sallecs   (13-Май-2016 05:24:42)Чем можно заменить кп 303? BF245 пойдет как аналог?

19 UR5MSO   (13-Май-2016 05:41:46)BF245 – конечно подойдет, можно использовать любой N-канальный для ВЧ усилителей.На алиэкспрес я беру набор транзисторов общего назначения, там есть и ВЧ и НЧ и переключающие и для генераторов – очень удобно!

1Спам16 emasutp   (06-Мар-2016 17:33:48)Решить проблему оказалось просто. Последовательно с анодами четырёх разрядов индикаторов нужно включить токоограничивающие резисторы 180-200ом и засветка пропадает. (Для индикаторов с общим анодом).

17 UR5MSO   (13-Мар-2016 09:26:12)Спасибо что пишите о решенных проблемах, это может помочь остальным, я часто не успеваю всем отвечать, да и не на все вопросы можно “с лету” ответить.

1Спам15 emasutp   (05-Мар-2016 18:35:17)Здравствуйте Евгений. Собрал частотомер на индикаторах с общим анодом, четыре разряда работают правильно, пятый подсвечен всеми сегментами но видно, что последовательность цифр меняется правильно. Полярность диодов д1-д4 поменял, д4 подключил к + питания, транзистор кт3107, прошивка №3. Ошибки в плате исключены. Что можете мне посоветовать.

0Спам13 emasutp   (25-Фев-2016 13:01:55)Здравствуйте Евгений подскажите частоту кварца в прошивке №2.

14 UR5MSO   (27-Фев-2016 05:00:08)Сергей, кварц стоит для осциллятора МК (задает тактовую частоту процессов) поэтому его частота не меняется. Такой узел с кварцем и двумя конденсаторами присутствует практически на всех схемах с микроконтроллерами.

0Спам11 alexsibilew2016   (20-Янв-2016 14:11:13)Добрый вечер!Я понял-овчинка выделки не стоит!Я сильно извиняюсь.но не могли бы ВЫ подсказать схему для измерения индуктивности и емкости.где можно использовать сей девайс?Просто жалко затраченых сил.Пожалуйста!

12 UR5MSO   (20-Янв-2016 14:38:48)Такую шкалу можно использовать на приемопередающей аппаратуре, мне допустим интересно радиолюбительство. Если увлекаешься просто электроникой используй на каком ни будь генераторе сигналов или просто как контрольный прибор для замера частоты. ведь генераторы сейчас стоят почти во всей технике

0Спам9 alexsibilew2016   (19-Янв-2016 09:26:56)ДОБРЫЙ ДЕНЬ! СПАСИБО ЧТО ОТВЕТИЛИ!СКАЖИТЕ ПОЖАЛУЙСТА .А ЕСЛИ ИСПОЛЬЗОВАТЬ ДЕЛИТЕЛЬ ЧАСТОТЫ? БУДЕТ ЛИДОСТИГНУТА МОЯ ЦЕЛЬ?

10 UR5MSO   (19-Янв-2016 09:40:28)Если правильно подобрать и настроить делитель, он будет работать но согласовать все не очень просто, к тому же шкала как показывала 50 мГц так и будет показывать. Придется устно запоминать к примеру что на шкале написано  35 на реальная частота,  х3 то есть 105 мГц. Но и при этом точность и адекватную работу на всех частотах гарантировать нельзя!

0Спам7 alexsibilew2016   (18-Янв-2016 20:51:25)добрый вечер!собрал данную схему на оа.замер своего кварца показал 19.99 .я понимаю так,что схема работает!подскажите пожалуйста как ее использовать вприемнике для просмотра фм каналов 88-108мгц.если что не так извините.я начинающий!

8 UR5MSO   (18-Янв-2016 22:23:15)Посмотри даташит на микросхему своего FM приемника, и подключи на выход гетеродина (микросхемы), уменьши емкость С2 в шкале до минимума (поэкспериментируй 5- 30 пф ), чтоб емкость схемы не влияла на гетеродин. У многих микросхем для fm приемников есть специальный выход для подключения цифровой шкалы.А вот шкалу придется собрать другую т.к. у  этой предел измерений 50 мгц

0Спам6 kvermishyan   (07-Ноя-2015 20:01:53)Извиняюсь, сам попробовал разобраться. Нарисовал схему по описанию к прошивке, проверьте, если не трудно. Прошивать прошивкой N3. И еще вопрос- если не нужен пятый сегмент, можно из схемы снять D1-D4, R6 и VТ3? https://yadi.sk/i/olDSedSTkJEzU

0Спам5 kvermishyan   (07-Ноя-2015 19:34:45)Здравствуйте! Очень интересная конструкция, но есть один вопрос. Никак не могу найти индикаторы с общим катодом, как переделать схему под индикаторы с общим анодом?

Источник: http://radiolubitel.moy.su/index/86-40-5-1

Частотомер до 150 МГц на PIC

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

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

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

Характеристики частотмера

  • Диапазон частот: 1Гц – 150MГц
  • Диапазон амплитуд входного сигнала: 250mV – 5V
  • Разрешение: до 5 знаков
  • Точность: 4 знака
  • Время измерения: 0.1 сек или 1сек; автоматический выбор
  • Полностью автоматическая работа
  • Работает от одной батарейки AA; потребляемый ток < 15mA

О точности измерений

В частотомере использован кварц на частоту f0=100KГц и допуском Δf/f0 = ±30ppm. Это означает, что реальная частота лежит в диапазоне 100KГц·(1 ± 3·10-5). То есть максимальное отклонение от 100KГц составляет 3Гц. Как это влияет на точность измерений?

Частотомер считает количество периодов, прошедших за интервал 0.1 сек. Таким образом, точность определяется точностью измерения этого интервала. В этом частотомере этот интервал устанавливается как скважность ШИМ модуля контроллера.

Формула для скважности такова: (CCPR1L:CCP1CON)·Tosc·(TMR2 prescale value) = 625·Tosc·16, гдеTosc = 1/f0 = 10-5 сек. Приводя к точности кварца, получаем разброс: 104·10-5(1± 3·10-5)= 0.1± 3·10-6сек.

Другими словами, точность отсчета временных интервалов зависит от точности кварцевого резонатора.

Возьмем крайний случай – временной интервал равен 0.1+3·10-6 сек. Пусть входная частота равна N герц (=периодов в секунду). Тогда измеренное значение будет N·(0.1+3·10-6) = N/10 + (N/10)·3·10-5. В 0.

1 секундном мы получаем значение частоты N/10 периодов, поэтому разница между измеренным и реальным значением N/10 будет (N/10)·3·10-5. Для частот больше, чем 333 KГц (3.33·105Гц) разница превышает 1, так что для этих частот наш счетчик будет показывать неправильное значение  N/10.

Важным следствием этих соображений является то, что можно гарантировать только 4 старших разряда измеренной частоты N/10, иногда 5 разрядов. 

Расчеты показывают, что при использовании кварцев с допуском несколько десятков ppm невозможно гарантировать точность в 6 или более знаков. А так как мы не можем гарантировать точность младших разрядов, то и нет смысла их отображать. Поэтому в частотомере отображается только 5 старших разрядов частоты, игнорируя остальные разряды.

Но на точность измерений влияет не только точность кварца, но и эффект его старения и рабочая температура. Однако, при температурах 10°C – 40°C  влияние температуры на общую точность составляет не более ±10ppm, так что мы все равно можем гарантировать 4 – 5 ти значную точность.

Форматирование вывода

На индикаторе, используемом в частотомере есть только восемь 7-сегментных символов, поэтому применена специальная схема отображения диапазонов частот. Схема показана в таблице ниже. Незначащие нули не отображаются и показаны серым цветом. Диапазон отображается справа в экспоненциальной системе. Где символ E представляет 10 а число – степень 10ти. 

ИндикацияДиапазон измеренийВремя счета
0. 0. 0. 0. 1 0.  E 0 0 – 9 Гц 1 сек
0. 0. 0. 1 2 0.  E 0 10 – 99 Гц 1 сек
0. 0. 1 2 3 0.  E 0 100 – 999 Гц 1 сек
0. 1. 2 3 4 0.  E 3 1 – 9.999 KГц 1 сек
1 2. 3 4 5 0.  E 3 10 – 99.999 KГц 1 сек
1 2 3. 4 5 0.  E 3 100 – 999.99 KГц 0.1 сек
1. 2 3 4 5 0.  E 6 1 – 9.9999 MГц 0.1 сек
1 2. 3 4 5 0.  E 6 10 – 99.999 MГц 0.1 сек
1 2 3. 4 5 0.  E 6 100 – 150 MГц 0.1 сек

Измеренная частота представлена целым числом с 1 до 8 цифр. Значения, имеющие более 5 цифр округляются до ближайшего целого цначения, имеющего 5 ненулевых цифр в старших разрядах. Например, значение 12,345,678 округляется до 12,346,000 ( на дисплее 12.346 E6 ), а 12,345,456 округляется до 12,345,000 (на дисплее 12.345 E6).

Железо

На входе схемы стоит предварительный усилитель, построенный на высокоскоростном компараторе LT1715. Согласно даташиту, он может работать на 150MГц.

Входы второго компаратора, находящегося в корпусе микросхемы соединены с землей и шиной +5V для предотвращения его срабатывания и влияния на работающий компаратор. Компаратор – самое медленное устройство в схеме и он определяет верхнюю границу измерений.

Резисторы по 10K сдвигают уровень на входах компаратора приблизительно до 2V. Резистор на 100 Ом добавлен для небольшого увеличения напряжения на инвертирующем входе.  Поэтому в спокойном состоянии на выходе всегда 0.

Разница во входных напряжениях составляет около 110мВ и определяет чувствительность предусилителя. Входное напряжение для гарантированной работы должно быть 150 мВ.  Резистор 10K на выходе компаратора необязателен.

Выход компаратора соединен с 4-битным двоичным асинхронным счетчиком SN74LV161A с макимальной рабочей частотой 220MГц при питании от 5 В. Счетчик использован как предделитель для таймера TMR1.

Он делит входную частоту на 16, поэтому на вход контроллера попадает максимум 10MГц, что удовлетворяет требованиям минимального периода в 60 нсек,  требуемых для работы таймера TMR1 в асинхронном режиме.

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

Сердце частотомера –  контроллер PIC16F648A ( можно использовать PIC16F628A). 

Контроллер PCF8562 управляет ЖК дисплеем VM-838. На плате микросхема контроллера дисплея расположена под ЖКИ.

Напряжение питания 5 В получается с помощью DC/DC преобразователя NCP1400A. Он обеспечивает 5 вольт от одной батарейки AA.

Ток потребления после преобразователя около 10 мA в покое, 9 мA из которых потребляется входным компаратором. Однако ток потребления от самой батарейки будет в 5 – 7 раз больше.

Максимальный измеренный ток потребления составляет 70 мА, а средний – 40 мА. От одной батарейки АА емкостью 2000 мА·Ч частотомер может работать около 40 часов.

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

Обратная сторона имеет олько 4 компонента: входной BNC разъем, держатель батарейки AA, 4 металлические стойки, и выключатель питания AS12AH. Плата разработана под  SMD резисторы и конденсаторы размера 0603, но размер 0805 тоже можно использовать.

На плате есть 3 площадки, соединенные с RA0, RA1 и RA5, которые можно использовать, например, для подключения частотомера к компьютеру.

Микроконтроллер должен быть запрограммирован либо во внешнем программаторе либо на плате, но до припайки счетчика SN74LV161A, так как счетчик блокирует выводы программирования контроллера.

Некоторые ошибки разработки..

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

Также из-за тяжелой батарейки плата не очень устойчива на столе и при подсоединенном кабеле норовит перевернуться из-за кручения кабеля.

Несмотря на то, что индикация довольно проста, она все равно трудна для понимания.

Скачать файлы проекта

Источник: http://micpic.ru/home/picprojects/87-chastotomer-do-150-mgts-na-pic.html

В этом проекте мы делаем простую и дешевую схему частотомера. Он может измерять сигналы от 16Гц до 100Гц с максимальной амплитудой 15В. Чувствительность высокая, разрешение 0,01Гц. Входной сигнал может быть синусоидальной, прямоугольной или треугольной волной.

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

Файл печатной платы представлен в формате PDF. Вы можете сделать плату используя метод ЛУТ.

Необходимые компоненты:

1 х Микроконтроллер PIC16F628 – 04/P.

4 х 7-сегментный индикатор с общим катодом.

1 × 4N25 Фототранзисторный оптрон общего назначения.

5 х NPN транзистор BC547.

1 × Стабилизатор напряжения 7805.

7 × Резистор 330 Ом 0,25Вт.

7 × Резистор 1 кОм.

1 × Резистор 470 Ом 0,25Вт.

1 × Резистор 10 кОм 0,25Вт.

1 × Резистор 4,7 кОм 0,25Вт.

1 × Диод 1N4148

2 × Полиэфирный конденсатор 220нФ

2 × Керамический конденсатор 22пФ

2 × Электролитический конденсатор 100мкФ 16В

1 × Кварц 4МГц

CCP (Capture(Захват)/Compare(Сравнение)/PWM(ШИМ)) модуль PIC микроконтроллера считывает входной сигнал. Используется только функция захвата. Чтобы узнать больше о CCP модуле PIC пожалуйста, посетите http://www.microchip.com.

Дисплеи – красные семи сегментные светодиодные дисплеи 14,2 мм с общим катодом.

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

Таким образом, входной сигнал надежно изолирован от микроконтроллера и превращается в меандр. Амплитуда сигнала не должна превышать 15В. Если это произойдет, резистор 1кОм может сгореть.

Если вы хотите измерить частоту сети, вы должны использовать 220В/9В трансформатор.

Напряжение питания должно быть в пределах 8-12В. При большем напряжении схема может быть повреждена, и вы должны быть осторожны с полярность при подключении питания.

Принципиальная схема счетчика(частотомера) приведена в файле проекта. Есть 4 дисплея, которые работают по методу мультиплексирования (динамическая индикация). Для измерения, вывод RB3 подключен к выходу оптического изолятора. 5 вывод второго дисплея подключен к питанию через резистор 1 кОм, так что точка после второго дисплея горит. Это соединение не показано на схеме.

C код, написанный в PIC C компиляторе доступен для скачивая. HEX также прилагается.

Мы использовали два дополнительных разъемов. Один (18 контактный, 2 ряда) для микроконтроллера PIC16F628, а другой (40 контактный, 2 ряда) за семь сегментных индикаторов.

Оригинал статьи

Прикрепленные файлы:

  • Frequency-Counter-1326216670.rar (281 Кб)

Источник: http://shemopedia.ru/chastotomer-na-pic16f628.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}