Принципи реалізації підрахунку імпульсів
На кристалі МК51 реалізовані два 16-бітовий таймера-лічильника подій, які програмно можуть бути налаштовані на роботу або в режимі таймера (реалізація або вимірювання часових інтервалів), або в режимі лічильника (підрахунок кількості зовнішніх імпульсів, які подані на вхід Т0 або Т1). З точки зору програміста, кожен таймер реалізований як пара таймерних (лічильних) регістрів розрядність 8 біт, на основі яких здійснюється підрахунок. Таймерние регістри мають символічні імена: Таймер 0: ТН0, ТL0; Таймер 1: ТН1, ТL1. rn При роботі в режимі таймірованія вміст лічильних регістрів інкрементіруется (збільшується на одиницю) один раз в кожному машинному циклі (при FТ = 12 Мгц - кожну мікросекунд ). Фактично в цьому режимі реалізується підрахунок імпульсів від внутрішнього генератора. rn При роботі в режимі лічильника вміст таймерних регістрів інкрементіруется під впливом переходу "1" - "0" зовнішнього сигналу, який подається на вхід Т0 або Т1 МК51. Опитування рівня сигналу на вході Т0 або Т1 здійснюється в будь-якому МЦ у фазі S5P2. Вміст лічильника буде збільшена на одиницю, якщо в минулому циклі була вважає "1", а в поточному циклі - "0". Значення лічильника при цьому збільшиться на одиницю у фазі S3P1 наступного за виявленням перепаду МЦ. Таким чином, на розпізнання перепаду і інкремент лічильника потрібно 2 МЦ. Тому максимальна частота підрахунку вхідних імпульсів дорівнює 1 /24 частоти резонатора: . При FТ = 12 МГц лічильник МК51 здатний підраховувати зовнішні події, які відбуваються з частотою від 0 Гц до 500 кГц. rn Для гарантованого прочитання вхідний сигнал повинен утримувати значення "1" як мінімум 1 МЦ (тобто протягом 1 мкс). rn В обох режимах таймер-лічильник, по суті, підраховує імпульси, але джерело цих імпульсів є різним. У режимі таймірованія підраховуються імпульси внутрішнього генератора, таким чином здійснюється заповнення заданого тимчасового інтервалу імпульсами генератора МК51. У режимі лічильника підраховується кількість зовнішніх імпульсів.
|