Предлагаемый частотомер собран на микроконтроллере PIC16F873 и семиэлементных светодиодных индикаторах  с общим катодом. Его расширяющая способность  состовляет

0.1  Гц  что может быть полезным при проведении точных измерений..

 

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


 

Основные технические характеристики:

Диапазон измеряемых частот ………….……0.1Гц….40 МГц

Время измерения частот ……………….…….…….1с или 10с

Чувствительность………………………………..…………0.1в

Напряжение питания……………………………….…… 4.5-5в

Потребляемый ток в режиме ожидания ……………….. 10ма

в режиме измерения…………………30ма 

 

    Схема частотомера показанная на рисунке выше, На входе устройства установлен компаратор DA1, который включен по типовой схеме с инвертирующим входом. Порог срабатывания компаратора можно изменять подборкой резистора R4  - чем больше его сопротивление, тем выше порог. Робота компаратора управляется сигналом на входе LATCH (вывод 5) DA1, который поступает с линии порта RA3 (вывод 5 DD1), и разрешена при низком логическом уровне на этом входе.

     Порт в микроконтроллере DD1 задействован для подачи напряжения на элементы a-h индикаторов HG1. HG2.

Входной сигнал преобразуется компаратором  DA1 в прямоугольные импульсы с уровнями ТЛЛ, которые поступают на вход микроконтроллера для их дальнейшего счета. Восьмиразрядные регистры предделителя, таймера TMRO и двух счетчиков прерывания по переполнению TMR0 подсчитывают эти импульсы. Измерительный интервал задает таймер TMR1.

     Информация в регистрах таймера TMR0 и счетчиков доступна для чтения, а вот содержимое высокочастотного (до 90 МГц) регистрапредделителя не доступно. Поэтому для извлечения  информации, хранящейся в нем, применен ставший ставший уже классическим способом досчета импульсов  до переполнения предделителя. После остановки счета значения TMR0 сохраняется в цыфровом компараторе. Число поданных на вход  предделителя импульсов подсчитывается, и после каждого импульса сравниваются с текущее и сохраненное значения TMR0. При изменении текущего значения TMR0 подача импульсов на предделителе прекращается. Накопленное в младшем регистре число преобразованное  в дополнительный код, и будет тем числом, которое было в предделителе Двоичный код на выходах четырех восьмиразрядных регистров преобразуется в двоично-десятичный, а  затем в код для управления семиэлементными индикаторами.

 После подачи питающего напряжения осуществляется инициализация регистров микроконтроллера. Частота переключения разрядов при динамической индикации должна быть такой чтобы не было видно мерцания индикатора. Как известно эта частота должна быть не ниже 25 Гц. Выбранная длительность индикации одного разряда на восьмиразрядном индикаторе  составления F=1/T=1?(0.003*8) =41.7Гц, где F-частота обновления индикатора, Т- период. При такой частоте мерцание индикатора не заметно.

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

 В программе использованы два прерывания: одно по результату сравнения значений шестнадцатиразрядных регистров специального события (CCPR1H и CCPR1L) и регистров  таймера TMR1 (TMR1H и TMR1L), другое — по переполнению таймера TMR0. Регистры CCP1 b TMR1 используются для формирования временного интервала измерения частоты. Делитель на 10 для получения интервала 10с реализованы на отдельных регистрах которые заполняются прерывании.

   После сохранения значений контекстных регистров проверяются флаги прерывания. Если прерывание произошло по переполнению таймера TMR0, то инкрементируется счетчик и программа выходит из прерывания. При прерывании по результату сравнения модуля CCP1 заполняется регистр делителя на 10 и проверяется флаг временю Если установлено время измерения 10с заполняются регистр делителя на 10. После окончания времени измерения выполняются  досчет и определение  содержимого  предделителя Полученные данные перекодируются в девять разрядов двоичного-десятичного кода. Для экономии энергии батарей портативного прибора  все не значущие нули гасятся. При выполнении  операций во время   прерываний работа таймеров TMR0 и TMR1 не останавливается, поэтому цикл измерения повторяется непрерывно!

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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


Скачать [37,88 Kb] (cкачиваний: 836)прошивку,печатку, исходник

Источник: Радио 2010 №3

Фото собранного устройства и печатная плата от Александра Палей



   
al19 # 1
 
 
Собирал "Цифровой частотомер на микроконтроллере PIC16F84" работает, проверено, задавал образцовым прибором (МС-5 - до 50 кгц) повереным гос поверкой, показания - точность до 2 знака после запятой. На логике собирал кварцевае генераторы ( менял кварцы пока логика держала частоту (155,176,561, больше не пробовал меня удовлетаорил результат ), делитель не делал .Я доволен , и дешиво и сердито

АЛС отстой, порще динозавра откопать!!! 873 пик давно снят с производства, тоже не найдеш, в серии 873А с кампапратором на борту.

ad8611 цена компаратора на космодроме в харькове 30-37 гр., на другом магазине 6 баксов, больше не искал, девайс отстой полнейший


   
ASUS # 2
 
 
al19,
прошивка и 87A подходит
--------------------
против лома нет приема, разве что законы ома, лом ужасен и велик, он хороший проводник)))


   
RUS64 # 3
 
 
что то часто повторяется на схеме - к выв.1 DA1 )))


   
Nikolai4 # 4
 
 
RUS64, ошибка в схеме, схема исправлена


   
Bobi61 # 5
 
 
Подскажите, чем заменить AD8611?
Спасибо.


   
LAZERTRON # 6
 
 
С ЗАКАЧЕННЫХ ДИСТРИБУТИВОВ ОТСУТСТВУЮТ ДАННЫЕ О "ФЬЮЗАХ" ДЛЯ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРА !

БОЛЬШАЯ ПРОСЬБА !!! УКАЖИТЕ ПОЖАЛУЙСТА СОСТОЯНИЕ "ФЬЮЗОВ" ДЛЯ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРА .

СПАСИБО.


Обновления

Сообщения ФорумаОтветов
3D Модели для Авто0
Бакометр 2335
Touch Start-Stop Engine.587
Кодграберр17
Исправляем AVR фьюзы при помощ …109
Бакометр - измеритель остатка…4
IR конструктор на PIC12F62977
Универсальное зарядное устройство103
бaкoмeтр1974
Двунаправленный автомобильный…2
Программатор GENIUS G8401
Светодиодный тахометр34
Индикаторы ГРИ ИН1 - ИН141
Multiprog1
Управляющая программа LED CUB959
Универсальное зарядное устройство9
Изготовлю печатные платы29
Простой автоматический выключа…25