Главная > Бытовая электроника, Измерение и контроль, Микроконтроллеры > Цифровой частотомер на микроконтроллере PIC16F84

Цифровой частотомер на микроконтроллере PIC16F84




Главная особенность частотомера – простота   и экономичность. Основные характеристики частотомера: диапазон измерения частоты – от 0,1 Гц до 60 МГц ; порог чувствительности по входному напряжению – от 0,08 до 0,15 В (значение амплитуды); минимальная фиксируемая частотомером величина частоты синусоидального сигнала – 2 Гц (амплитудой 0,15 В); максимальная амплитуда входного сигнала – 3 В.

В качестве источника питания применена батарея «Крона» либо внешний источника питания с напряжением от 7 до 16 В, ток потребления составляет 10…12 мА. В частотомере есть возможность  изменения времени измерения (0,1; 1 и 10 с), умножение показаний на 1000 (при применении внешнего делителя частоты), удержание показаний, запись предыдущего значения частоты в энергонезависимую память и возможность последующего считывания.

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

Основа частотомера – микроконтроллер PIC16F84A, который осуществляет счет импульсов внешнего сигнала, обработку полученных значений и вывод результатов измерения на LCD. В функции микроконтроллера также входят опрос кнопок (SB1-SB4) и управление питанием частотомера.

Кнопка SB1 предназначена для включения и выключения частотомера. После подключения батареи питания частотомер находится  в выключенном состоянии. При нажатии на кнопку SB1 напряжение питания через диод VD1 поступает на интегральный стабилизатор напряжения DA1, а с его выхода – на входной каскад: транзистор VT3, микроконтроллер DА2 и индикатор LCD. Потом на выводе 1 (A2) микроконтроллера возникает высокий логический уровень, что приводит к открыванию транзисторов VT1 и VT2. Затем микроконтроллер ждет отпускания кнопки SB1 (контролируя сигнал на выводе 6). После размыкания кнопки SB1, напряжение питания подается на вход стабилизатора DA1 через открытый транзистор VT1 и начинается измерение частоты.

Во время удержания SB1 на экране индикатора  отображается надписи «ЧАСТОТОМЕР» и «ВЕРСИЯ: 1.00″. При вторичном нажатии на кнопку SB1, напряжение питания поступает на вывод 6 (B0) микроконтроллера, который после этого ожидает размыкания кнопки SB1, и когда это произойдет, устанавливает низкий логический уровень на выводе 1 (A2). В итоге транзисторы VT1, VT2 закрываются,  частотомер обесточивается. Если в режиме замера на индикаторе появляются  нулевые показания в течение приблизительно 3 мин, микроконтроллер устанавливает низкий логический уровень на выводе 1 (A2), таким образом, отключая   от источника питания.

Время измерения, выбранное кнопкой SB2 (0,1; 1 или 10 с), показывается  в правой части нижней строки индикатора. Цена младшего разряда – 10, 1 или 0,1 Гц соответственно. При времени измерения 0,1; 1 и 10 с максимально на LCD может отображаться семь, восемь или девять разрядов, т. е. наибольшее отображаемое значение равно соответственно 99,999.99, 99,999.999 или 99,999.999.9 МГц.

Нажатием кнопки SB3 показания частоты умножают на 1000. Это необходимо  для считывания показаний при использовании внешнего делителя на 1000. Этот коэффициент умножения («х1″ или «х1000″) отображается в середине нижней строки. Для удержания  показания, нажимают кнопку SB4 («Память»). При этом на LCD фиксируется значение той частоты, которое было в момент нажатия кнопки. Его можно сохранить в энергонезависимой памяти микроконтроллера, воспользовавшись кнопкой SB2, функция которой в этом случае – «Запомнить».

Прежнее значение при этом стирается. Для того чтобы почитать частоту из памяти, необходимо нажать на кнопку  SB3. Для выхода из режима работы с памятью используют кнопку SB4. В режиме работы с памятью, частотомер автоматически выключается примерно через 3 мин после нажатия на любую кнопку независимо от показаний индикатора. После выключения питания в энергонезависимой памяти сохраняются последние параметры измерения (время измерения и множитель).

В качестве VT1, VT2 в частотомере можно использовать произвольные транзисторы указанных на схеме серий. Стабилизатор 78L05  заменим на КР1157ЕН502А, LM2931Z.

Прошивка для микроконтроллера   (1.1 Мб, скачено - 6,396 )




  1. Ivan
    23 Апрель 2010г. 10:24 | #1

    Схема самая удачная которую мог найти в нете.

    Есть проблема ни как не проходит прошивка для пика. Я использую программатор екстрапис и програму винпик800 и PIC16F84A

    Помогите пожалуйста запрограмировать.

  2. argo 59
    18 Ноябрь 2010г. 23:40 | #2

    У меня эта штука не заработала.

  3. bestsergey
    27 Ноябрь 2010г. 00:44 | #3

    Собрал данную схемку,отлично работает.Запустилась с первого раза ,никаких проблем не возникло.Спасибо автору!!!!

  4. Men
    2 Декабрь 2010г. 09:17 | #4

    А печатная плата есть?Поделитесь….

  5. argo 59
    4 Декабрь 2010г. 13:28 | #5

    Печатная плата в Радио 2007г №7, в разделе «наши консультации»

  6. Игорь
    13 Февраль 2011г. 18:48 | #6

    Если кому нужна печатная плата в Sprint-Layout то пишите на мыло redheaven@rambler.ru Самый лучший частотомер

  7. 19 Февраль 2011г. 19:34 | #7

    Разбежка показаний при измерении 16Мгц и времени счета 0.1/1сек почти 3Кгц. Это как то многовато. У частотомера на дискретных элементах разбежка не более 500Гц. Надо бы доработать алгоритм счета, а в остальном все хорошо.

  8. Петр
    9 Апрель 2011г. 23:20 | #8

    отправте мне пожалуйста печатную плату для этого частотомера на адрес sparco-zvuk@mail.ru

  9. Юра
    24 Май 2011г. 11:14 | #9

    И мне пожайлуста печатную плату.
    geliznyk@rambler.ru

  10. gurvit60
    16 Ноябрь 2011г. 15:00 | #10

    Собрал, заработало с первого раза.Добавил разъем питания и регулировку контрастности индикатора.Проблема:измерения примерно до 500 кГц, если частота больше то показывал 1Гц. Решение: Заменил резистор R9 c 220 кОм на 200 Ом, все стало ОК!
    Подскажите все таки какой номинал этого резистора?
    Есть плата в Формате DipTrace c учетом описаных добавлений и разводкой кнопок.
    Кому надо вышлю/

  11. gurvit60
    16 Ноябрь 2011г. 16:08 | #11

    Собрал, заработало с первого раза.Добавил разъем питания и регулировку контрастности индикатора.Проблема:измерения примерно до 500 кГц, если частота больше то показывал 1Гц. Решение: Заменил резистор R9 c 220 кОм на 200 Ом, все стало ОК!
    Подскажите все таки какой номинал этого резистора?
    Есть плата в Формате DipTrace c учетом описаных добавлений и разводкой кнопок.
    Кому надо вышлю на E-Mail

  12. TheApl
    16 Декабрь 2011г. 20:16 | #12

    Добрый вечер может кто поделиться текстом программы в txt формате и печатку в спирит лейте. (DulikDS@gmail.com)

  13. sacha
    29 Декабрь 2011г. 19:20 | #13

    отправте мне пожалуйста печатную плату для этого частотомера на адрес
    sachapugowkin@rambler.ru

  1. Еще нет трэкбеков.