Принцип работы цифрового частотомера, собранного на отечественном микроконтроллере КР1878ВЕ1. Входная формирующая цепь. Внешний генератор тактовых импульсов и устройство индикации. Стабилизатор напряжения питания для входной цепи и устройства индикации.
Аннотация к работе
Во многих устройствах техники связи и управления возникают задачи измерения и наблюдения за частотой периодических импульсов. Устройства, осуществляющие измерение частоты периодических импульсов (сигналов), называются частотомерами [3]. Однако во многих случаях требуется автоматический контроль и управление частотой импульсов (в некоторых устройствах автоматики) и индикация может отсутствовать. На проектирование был взят частотомер с верхним пределом измерения частоты 30МГЦ. Для расширения пределов измерений ко входу схемы можно подключить внешний делитель частоты.Как уже отмечалось, главной частью проектируемого устройства является микроконтроллер. Следует также сказать, что данный микроконтроллер производится фирмой «Ангстем» и на этот МК есть достаточно литературы на русском языке. В используемом микроконтроллере КР1878ВЕ1 шестнадцатиразрядный таймер-счетчик имеет восьмибитный предделитель и трехбитный счетчик переполнений, что в сумме составляет 27 разрядов. Секундный интервал отсчитывают с помощью программно организованных циклов, в течении которых выполняется динамическая индикация предыдущих показаний. По окончании счета получить значение измеренной частоты простым опросом регистров можно только из шестнадцатиразрядного таймера-счетчика и трехразрядного счетчика переполнений.Полный вариант программы (листинг) приведен в приложении 1.В программе используются 3 вектора прерываний: - начальный пуск программы. По адресу этого вектора прерывания находится команда безусловного перехода jmp, которая заносит в счетчик команд адрес точки старта (start) главной программы; Это прерывание обрабатывается командой rst (происходит установка указателей стеков команд и данных в начальное положение и сбрасывается сигнал прерывания по переполнению стеков команд или данных);Основная программа организована в виде бесконечного цикла. После начального пуска программы запускается подпрограмма init инициализации портов и таймера. Далее подпрограммой sec вырабатывается секундный интервал времени в течение которого будет происходить подсчет входных импульсов счетчиком-таймером и высвечивание на индикаторе результата предыдущего измерения.Подпрограмма инициализации портов и таймера init устанавливает режимы работы портов и счетчика-таймера: Порт A: Выводы PA0-PA2 переключаются на вход/выход; Порт B: Все линии порта переключены на вход/выход; Таймер: Таймер работает в режиме счетчика внешних импульсов; После установки режимов периферийных устройств производится начальная загрузка для теста (после включения устройства на индикаторе должно высветиться число «87654321»): Тест: movl a0,020h ; a0<-020h = 0010 0000b адрес a0-40h movl a1,0F6h ; a1<-0F6h = 1111 0110b адрес a1-41h movl a2,02Fh ; a2<-02Fh = 0010 1111b адрес a2-42h movl a3,0A7h ; a3<-0A7h = 1010 0111b адрес a3-43hПодпрограмма b_bcd преобразовывает двоичное 27-разрядное число, записанное по адресам 40-43h (или в сегментах a0-a3 рис.3.3.1) в двоично-десятичный код. После преобразования число записывается по адресам 44-47h (сегменты a4-a7) как показано на рисунке 3.4.1.Подпрограмма bcd_7 считывает двоичный код символов индикатора из ячеек памяти 44-47h (сегменты a4-a7). Для каждой тетрады подбирается соответствующий код семисегментного индикатора (из таблицы в памяти - вспомогательная подпрограмма to_led), который записывается в ячейки памяти 50-57h (сегменты с0-с7). Кроме того, в подпрограмме bcd_7 высвечивается кило-точка и с помощью вспомогательной подпрограммы no_0 осуществляется гашение незначащих нулей. Блок-схема алгоритма подпрограммы bcd_7 показана на рисунке 3.5.1.Подпрограмма sec производит отсчет интервала времени в 1 секунду и подключение вывода PA4/TCLC ко входу на данный интервал времени, в течении которого происходит подсчет поступающих на вход PA4/TCLC импульсов. Во время подсчета импульсов происходит индикация предыдущих измерений с помощью подпрограммы led_scan.Если в таймере-счетчике возникали переполнения (необработанные прерывания), то запускается подпрограмма count обработки прерывания с вектором , которая в ячейку 43h (a3) записывает количество необработанных прерываний по переполнению (3 разряда).Установкой на входе внешнего делителя частоты можно расширить диапазон измеряемых частот; установив на входе усилитель можно увеличить чувствительность разрабатываемого прибора.Другой вариант схемы формирующего устройства показан на рис.4.1.1. Данный формирователь увеличивает чувствительность до 100 - 200 МВ и защищает вход от воздействия сигналов с большой амплитудой. Импульсы измеряемой частоты подаются на входной формирователь, выполненный на VT1 и DD1. Для синусоидального входного сигнала нижняя граница измеряемых частот определяется емкостью C4 и C5, при указанном на схеме значении она равна 10Гц.Для увеличения диапазона измерений можно применить внешний делитель частоты.Спроектированное устройство может размещаться на отдельной печатной плате, или находиться вместе с какими - либо другими электронными узлами, в зависимости от предназначения.
План
СОДЕРЖАНИЕ
РЕФЕРАТ
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ОСНОВНЫЕ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
2. ОПИСАНИЕ РАБОТЫ ПРИНЦИПИАЛЬНОЙ СХЕМЫ
3. ОПИСАНИЕ ПРОГРАММЫ ДЛЯ МИКРОКОНТРОЛЛЕРА
3.1 ОБЛАСТЬ ВЕКТОРОВ ПРЕРЫВАНИЙ ПРОЦЕССОРА
3.2 ОСНОВНАЯ ПРОГРАММА
3.3 ПОДПРОГРАММА ИНИЦИАЛИЗАЦИИ ПОРТОВ И ТАЙМЕРА
3.4 ПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ ДВОИЧНОГО ЧИСЛА (ЧИСЛА ПОДСЧИТАННЫХ ИМПУЛЬСОВ) В ДВОИЧНО-ДЕСЯТИЧНЫЙ КОД
3.5 ПОДПРОГРАММА ПЕРЕВОДА ДВОИЧНО-ДЕСЯТИЧНОГО КОДА В КОД СЕМИСЕГМЕНТНОГО ИНДИКАТОРА
3.6 ПОДПРОГРАММА ВЫВОДА НА ИНДИКАТОР (ПОДПРОГРАММА ПЕРЕКЛЮЧЕННИЯ СКАНИРУЮЩЕЙ)
3.7 ПОДПРОГРАММА ЗАПУКА ТАЙМЕРА И ИНДИКАЦИИ НА 1 СЕКУНДУ (ОТСЧЕТ СЕКУНДНОГО ИНТЕРВАЛА СЧЕТА)
3.8 ПОДПРОГРАММА ВЫЕМКИ ДАННЫХ ИЗ ТАЙМЕРА И ПРЕДДЕЛИТЕЛЯ