Курсовая работа: Программно управляемый частотомер
Контроллер АТ89С2051 содержит электрически перепрограммируемое ПЗУ объемом 2 Кбайт, внутреннее ОЗУ объемом 128 байт, 15 линий ввода‑вывода, два таймера‑счетчика (16 бит), шесть векторов прерываний и аналоговый компаратор. Таймеры‑счетчики полностью идентичны соответствующим узлам MCS51, АТ89С2051 имеет также стандартный для MCS51 последовательный порт. Поддерживаются режимы Idle и PowerDown. Выводы портов – сильноточные, допускающие прохождение через них тока до 20 мА (суммарный ток через все линии порта – не более 80 мА).
Напряжение питания – от 4 до 6 В.
Выводы Р1.2 – Р1.7 и порта Р3 имеют внутренние нагрузочные резисторы. Р1.0 и Р1.1 не имеют их и используются соответственно как неинвертирующий (AIN0) и инвертирующий (AIN1) входы встроенного прецизионного компаратора. Его выход соединен линией Р3.6, не выведенной из микросхемы контроллера. Линии порта Р3.0 – Р3.5 выполняют альтернативные функции: Р3.0 – RxD, P3.1 – TxD, P3.2 – INT0, P3.3 – INT1, P3.4 – T0, P3.5 – T1.
Из стандартного для контроллеров семейства MCS51 набора регистров SFR в АТ89С2051 присутствует аккумулятор, регистры B, PSW, IP, IE, TCON, TMOD, TL0, TH0, SP, PCON, DPTR, P1, P3, SCON, SBUF, TL1 и ТН1.
В принципиальной схеме частотомера можно выделить основные узлы, которые несут определенную функциональную нагрузку. Это входной блок, включающий в себя разделительные конденсаторы С5-С6, токоограничивающий резистор R1, резисторы R2-R5, конденсатор С9 и операционный усилитель DA3. Отдельно можно выделить входную логику прибора, составленную на интегральных микросхемах DD1-DD2. Функции устройства контроля и управления берет на себя микроконтроллер DD3. Источником эталонных счетных импульсов является кварцевый генератор на микросхеме DA2. Регистр сдвига DD4 служит для хранения полученного результата и связи микроконтроллера с устройством отображения информации на четырех семисегментных индикаторах HG1-HG4.
Подробнее о работе схемы.
На вход прибора подается изменяющееся напряжение, значение которого может быть 0,5‑10 вольт, а диапазон частот от 1Гц до 1МГц. Оно поступает на разделительные конденсаторы С5 – С6, которые отсекают постоянную составляющую измеряемого сигнала. При этом переменная составляющая остается без изменения. Этот сигнал полается на вход аналогового компаратора, выполненного на операционном усилителе DA3. ОУ включен без цепей обратной связи, что обеспечивает его работу в качестве компаратора. Если уровень сигнала, поступающего на его неинвертирующий вход, превышает величину напряжения, присутствующего на его инвертирующем входе, то напряжение на выходе ОУ скачком увеличится до максимально возможного. Это напряжение ненамного меньше величины его источника питания положительной полярности. И, наоборот, при условии если уровень сигнала, поступающего на его неинвертирующий вход, меньше величины напряжения, присутствующего на его инвертирующем входе, то напряжение на выходе ОУ скачком уменьшится до минимального. Минимальное значение напряжения на выходе определяется величиной его источника питания отрицательной полярности.
В данном проекте используется прецизионный быстродействующий операционный усилитель AD8055 – SOT-23-5 фирмы AnalogDevices [10]. Это недорогая микросхема, которая может работать как с двуполярным, так и с однополярным питанием. Его основные характеристики
- Граничная частота – 300 МГц.
- Скорость нарастания выходного сигнала – 1400 В/мкс.
- Шумы – 6 нВ/Гц.
- Напряжение смещения нуля (ошибки) – 5 мВ.
- Входные токи - 1,2 мкА.
Питание ОУ осуществляется однополярным источником +5 вольт. Исследуемый сигнал подается на неинвертирующий вход ОУ. Для того, чтобы он мог сравнивать как отрицательную, так и положительную полуволны входного сигнала, необходимо установить на обоих входах микросхемы постоянный потенциал, равный половине напряжения питания. Для этого служит делитель напряжения на резисторах R2 и R5. Это же напряжение подается на анод и катод соответствующего ограничительного диода. Входные токи операционного усилителя протекают через резисторы R3 и R4. Падение напряжения на этих диодах в результате протекания входных токов должно быть меньше напряжения ошибки. Конденсатор С9 уменьшает высокочастотные наводки.
Максимальное входное напряжение ОУ не должно превышать напряжение питания +5 вольт, а минимальное – быть меньше потенциала земли. Для ограничения подаваемого входного сигнала служат диоды VD1‑VD2. Если прикладываемое к диоду напряжение превысит порогового уровня, он открывается и поддерживает это напряжение на постоянном уровне. В качестве диодов выбран импульсный диод КД521Г. Его параметры
- Максимальное обратное напряжение – 30 вольт.
- Падение напряжения на открытом диоде – 1,0 вольта.
- Максимальный прямой ток – 50 мА.
- Обратный ток – 1 мкА.
- Время восстановления – 4 нс.
Таким образом, прошедшая переменная составляющая входного сигнала ограничена напряжением пробоя (открывания) ограничительных диодов, т. е. не превышает по абсолютной величине 1 вольта. Для ограничения прямого тока через диоды в пределах допустимого служит токоограничивающий резистор R1. С выхода ОУ получаем импульсную последовательность измеряемой частоты и ТТЛ-уровнями.
Эта последовательность поступает затем на вход временного селектора, выполненного на элементе «И‑НЕ» микросхемы логики DD1.
При включении микроконтроллера, он инициализирует свои счетчики Т0 и Т1 (соответственно выводы портов Р3.4 и Р3.5) в режиме подсчета внешних импульсов. При перепаде уровня входного сигнала из «1» в «0» содержимое счетчика увеличивается на единицу. Максимальная частота подсчитываемых импульсов равна 1/24 частоты тактовых импульсов контроллера, т. е. 1 МГц. С началом процесса измерения, на выводе линии порта Р3.7 программно формируется высокий логический уровень длительностью 1 с, открываются первые временные ворота. Импульсы с выхода ОУ начинают проходить через селектор 1 (DD2.2) на вход счетчика Т0, и в 16‑ти разрядном буфере счетчика TH0+TL0 фиксируется их число.
На элементах DD1.1‑DD2.1 выполнена схема формирования вторых временных ворот. Элементы DD1.4 и DD2.1 включены по стандартной схеме RS‑триггера с инверсными входами. Импульс длительностью 1 с поступает с контроллера на элемент DD1.2. Первый же импульс измеряемой частоты с операционного усилителя, подаваемый на второй вход DD1.2 изменяет состояние логического элемента, что в свою очередь приводит к смене уровня сигнала на выходе RS‑триггера из «0» в «1». Открываются вторые временные ворота. Через селектор 2, выполненный на элементе DD2.3, импульсы эталонной частоты начинают поступать с выхода кварцевого генератора на вход счетчика Т1 микроконтроллера. Количество этих импульсов начинает подсчитываться.
Кварцевый генератор счетных импульсов выполнен на основе интегральной микросхемы генератора импульсов КР531ГГ1. Частота работы микросхем этой серии – не более 50 МГц, напряжение питания +5 вольт, потребляемая мощность – не более 19 мВт. Вместо конденсатора, к входам генератора подключен кварцевый резонатор на 10 кГц, что обеспечивает высокую стабильность временных параметров счетных импульсов.
При смене состояния линии Р3.7 в логический ноль, т. е. по окончании первых временных ворот, импульсы перестают проходить через временной селектор 1, их подсчет прекращается. В микроконтроллере фиксируется количество прошедших импульсов измеряемой частоты – n.
С приходом самого первого импульса после окончания первых временных ворот на вход DD1.3, триггер изменяет свое состояние. Заканчивается формирование вторых временных ворот, и счетчик Т1 микроконтроллера фиксирует число прошедших через временной селектор 2 (DD2.3) импульсов N. Основной измерительный процесс заканчивается и остается только произвести соответствующие вычисления и получить результат в виде конкретного значения частоты. Теперь весь ход работ перекидывается на микроконтроллер.
В результате предыдущего измерительного цикла работы прибора, в памяти контроллера находятся значения прошедших импульсов n и N. Микроконтроллер производит ряд операций над двоичными числами n и N. В результате по формуле (1) вычисляет значение измеренной частоты в двоичном виде. Теперь это значение частоты необходимо перевести в привычный для человека вид и вывести на устройство отображения.
Согласно программе, производятся дальнейшие операции. Полученный результат переводится из двоичного кода в двоично‑десятичный код. Определяется предел частоты – герцы или килогерцы и выделяется значащая часть, т. е. четыре старшие цифры. Затем происходит определение места запятой в выводимом результате с учетом предела измерения. Производится преобразование полученного результата в код семисегментного индикатора. После всех операций получается результат в семисегментном коде, который занимает 4 байта (7 байт – цифра и восьмой – запятая) и два дополнительных бита – вывод предела измерения (Гц или кГц).