Курс лекций - Микропроцессоры

         

Использование таймера в качестве измерителя ширины импульсов


Известно, что измерение длительности импульса можно произвести, подсчитав импульсы эталонной частоты. Принцип измерения длительности импульсов иллюстрируется рисунком 8.

Для измерения длительности импульса измеряемый сигнал подаётся на вывод микроконтроллера INTx и в бит управления GATE записывается разрешающий сигнал логической единицы. Таймер/счётчик настраивается в режим таймера записью в бит C/Tx логического нуля. Содержимое таймера обнуляется.

Пример программы измерения длительности импульса приведён на рисунке 9.

Рисунок 8. Принцип измерения длительности импульсов

mov TMOD,#00001001b ; ;++--Перевести таймер T0 в шестнадцатиразрядный режим ;|+----Синхронизироваться от внутреннего генератора ;+-----Включать таймер от ножки микроконтроллера INT0 ;++------Перевести таймер T1 в тринадцатиразрядный режим ;|+--------Синхронизироваться от внутреннего генератора ;+---------Запретить управление таймером от ножки INT1 mov TH0, #0 ;Обнулить старший байт таймера mov TL0, #0 ;Обнулить младший байт таймера setb TR0 ;Включить измеритель ширины импульса TstLog0: jnb INT0, TstLog0 ;Подождать начало импульса TstLog1: jnb INT0, TstLog1 ;Подождать конец импульса Clr TR0 ;Отключить измеритель ширины импульса

Рисунок 9. Программа измерения длительности импульсов

Если теперь на вход микроконтроллера INT0 подать импульс с неизвестной длительностью, то в регистрах TH0 и TL0 будет записана его длительность в микросекундах.



Содержание раздела