- •Пояснительная записка
- •Содержание
- •Введение
- •Выбор микроконтроллера для разработки измерителя частоты сигналов на микроконтроллере pic16f628
- •Проектирование измерителя частоты сигналов на микроконтроллере pic16f628
- •Разработка измерителя частоты сигналов на микроконтроллере pic16f628
- •Разработка программы измерителя частоты сигналов на микроконтроллере pic16f628
- •Тестирование программы измерителя частоты сигналов на микроконтроллере pic16f628
- •Заключение
- •Список литературы
Выбор микроконтроллера для разработки измерителя частоты сигналов на микроконтроллере pic16f628
Выбор микроконтроллера должен производиться не «с потолка» и пропускать этот шаг ни в коем случае нельзя. Подбор оптимальной модели во многом определяет стоимость будущего изделия, интерфейсы, через которыми он может «держать связь» с другими контроллерами и с пользовательским интерфейсом. Разные контроллеры требует разных подходов при программировании и разных программаторов. Стоит сразу определить, какие требования будут предъявляться к микроконтроллеру:
наличие всей необходимой периферии для поставленной задачи – лучше сразу выбрать устройство, оборудованное некоторыми полезными аппаратными средствами, чем усложнять код дополнительными процедурами для компенсации этих функций;
отсутствие избыточности функционала – само собой для частотомера подойдёт и какая-нибудь сороконогая схема контроллера ATmega 16, но большинство её выводов будет висеть в воздухе, а огромное количество периферии потреблять лишний ток, не говоря уже о занятии лишнего места на плате;
доступность – в некоторых ситуациях легче купить модель микроконтроллера, которая есть на прилавке, чем заказывать из сети и платить двойную, а то тройную цену с учётом доставки;
надёжность – этим давно хвастают как Microchip, так и AVR, так что в этом вопросе особенных проблем быть не может, большинство контроллеров этих фирм зарекомендовали себя как качественные и редко дающие сбои устройства.
Далее будут рассмотрены несколько моделей микроконтроллеров компании Microchip из линейки PIC:
|
|
Таблица 1 |
|||
|
Сравнение типовых микроконтроллеров PIC |
|
|||
|
PIC12F629 |
PIC16F628 |
PIC16F84A |
||
Кол-во выводов |
8 |
18 |
18 |
||
Кол-во таймеров |
2 |
3 |
1 |
||
Каналов ШИМ |
- |
1 |
1 |
||
Объём памяти программ, Кб |
14 |
28 |
1 |
||
Как видно из сравнения, первый контроллер PIC12F629 обладает достаточным объёмом памяти для достаточно объёмных программ, но при этом не имеет каналов широтно-импульсной модуляцией, которая может оказаться полезной практически в любом устройстве. PIC16F84A обладает модулем ШИМ, имеет 18 ножек и один таймер, но объём памяти – всего 1 Кб, этого очень мало даже для небольшого проекта.
PIC16F628 же обладает очень большим объёмом памяти, имеет модуль ШИМ, оборудован тремя таймерами и 18 выводами. Стоимость такого контроллера составляет порядка 100 рублей в розничной продаже, и выбор будет остановлен именно на нём.
Проектирование измерителя частоты сигналов на микроконтроллере pic16f628
Чтобы спроектировать устройство частотомера, нужно первым делом понять, что требуется от схемы, какие операции будет выполнять устройство и что для этого нужно, чтобы позже не путаться и лучше понимать суть проводимой работы.
Итак, прибор будет выполнять следующие операции:
считать количество импульсов за заданный период времени;
обрабатывать это число и преобразовывать его для вывода на индикатор;
выводить на индикатор числа поочерёдно с определённым интервалом;
При этом желательно, чтобы применялся внешний кварцевый резонатор, для чего это нужно – будет описано в следующей главе.
Обобщая предыдущие три пункта, можно составить функциональную схему данного устройства.
Рис. 1. Функциональная схема измерителя частоты сигналов
Для измерения частоты планируется применить встроенный в микроконтроллер аппаратный счётчик. Принцип его работы заложен в самом устройстве, а функционирование элементарно – устройство следит за появлением на специальной ножке высокого уровня напряжения и как только он будет зарегистрирован, прибавляет к значению счётчика единицу.
Несмотря на наличие системы прерываний, задержка будет формироваться пропуском тактов, такой метод неэффективен с точки зрения грамотного расходования ресурсов контроллера. Последний в данном устройстве не должен выполнять каких-либо сложных задач, которые требовали постоянной обработки. Вернее, конечно, счётный вход должен работать постоянно, но именно поэтому им занимается аппаратный счётчик, независимый от центрального процессора. В общем, такое формирование задержки вполне допустимо.
