Частотомер на микроконтроллере PIC16F873 » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Частотомер на микроконтроллере PIC16F873
    Автор публикации: alex Просмотров: 15975 Добавлен: 10-05-2013, 05:19 Комментарии: 4

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

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

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

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



    В архиве: Принципиальная сехма в формате SP7, Разводка печатной платы в формате LAY, исходный код программы на ассемблере и прошивка для микроконтроллера PIC16F873

    frecountnamkpic.rar [33,62 Kb] (cкачиваний: 1531)

    Комментарии
    radi_k 16 июня 2013 18:37 Группа: Посетители
    Нормально. А расширить для измерения периода возможно?
    pro100Koss 30 октября 2013 00:29 Группа: Гости
    Как открыть файл в формате lay. ?
    alex 30 октября 2013 20:32 Группа: Администраторы
    Программой Sprint-Layout. Можно взять здесь
    if_else 29 августа 2014 14:31 Группа: Посетители
    Уважаемые, администраторы, подскажите пожалуйста кто автор этого частотомера и откуда взяли фотки и схему.